Documentation
Get Votedesk running
Install on shared hosting or a VPS, set up background tasks, and embed the feedback widget in your product.
Requirements
| Component | Minimum |
|---|---|
| PHP | 8.3 or newer |
| Database | MySQL 8.0 / MariaDB 10.6 |
| PHP extensions | BCMath, Ctype, cURL, DOM, Fileinfo, GD, Mbstring, OpenSSL, PDO MySQL, Tokenizer, XML, Zip |
| Web server | Apache (mod_rewrite) or Nginx |
Node.js is not required on the server. Compiled assets ship in the public/build folder.
Installation
Shared hosting (cPanel)
- Create a MySQL database and user in cPanel → MySQL Databases.
- Upload the contents of the package to your domain folder and point the document root to the public folder.
- Open
https://yourdomain.com/installin your browser and follow the installer. - Add the cron job shown on the last installer step.
VPS
git clone your-repository votedesk && cd votedesk composer install --no-dev --optimize-autoloader cp .env.example .env && php artisan key:generate php artisan migrate --force
Cron & queue
Votedesk sends emails and digests in the background. Add one cron entry that runs every minute:
* * * * * php /path/to/votedesk/artisan schedule:run >> /dev/null 2>&1
The scheduler also processes the database queue, so no separate worker is needed on shared hosting. On a VPS you can run a Supervisor worker instead for faster delivery.
Widget API
Paste this snippet before the closing body tag of your app. It adds a floating feedback button with Submit, Ideas and What’s new tabs.
<script src="https://votedesk.devwhite.com/widget/votedesk.js"
data-workspace="your-workspace" defer></script>
| Attribute | Description |
|---|---|
data-workspace | Your workspace slug (required). |
data-position | bottom-right or bottom-left |
data-label | Text on the launcher button. |
data-sso-token | Signed JWT that identifies the current user (optional). |
You can also control the widget from JavaScript:
Votedesk.open('submit'); // 'submit', 'ideas' or 'changelog'
Votedesk.close();
Votedesk.identify(token); // sign a user in after page load
Widget single sign-on
Sign a JWT with HS256 on your server using the SSO secret from Workspace → Widget. Never expose the secret in the browser.
{
"id": "user_123",
"email": "lucas@example.com",
"name": "Lucas Meyer",
"avatar": "https://example.com/avatar.png"
}
Updating
- Back up your database and the .env file.
- Upload the new files, keeping your .env and storage folder.
- Open Super admin → System & updates and click Run update to apply new migrations.
Still stuck? Contact us.