Server requirements
| Requirement | Minimum version |
|---|---|
| PHP | 8.2 |
| Node.js | 18 LTS or later |
| Composer | 2.x |
| Database | SQLite 3 or MySQL 8 |
| Web server | Nginx or Apache with URL rewriting |
| Queue worker | Supervisor (production) |
bcmath, ctype, curl, dom, fileinfo, json, mbstring, openssl, pcre, pdo, tokenizer, xml, zip
Clone and install dependencies
Omit
--no-dev if you want development tools (Debugbar, Pint, Sail, PHPUnit). For production, always use --no-dev.Configure the environment
Copy the example environment file and generate an application key:.env and set the values for your deployment:
Application
Database
- SQLite (default)
- MySQL
SQLite requires no additional setup. Ensure the database file exists:The default
.env settings work without changes:ElevenLabs
Twilio
Payments
- Stripe
- PayPal
- Paddle
Calendar integrations (optional)
Queue and cache
The default configuration uses the database driver for queues, cache, and sessions — no Redis required:REDIS_HOST, REDIS_PASSWORD, and REDIS_PORT, then switch the drivers to redis.
Run database migrations
Build the frontend
vite build and outputs compiled assets to public/build/. The build must be run any time you update frontend code.
Configure the queue worker
A persistent queue worker is required for batch calling, data extraction, webhook processing, and other background jobs.Production: Supervisor
Copy the included Supervisor configuration to your Supervisor config directory and reload:Development: composer run dev
For local development, a single command starts the PHP dev server, queue listener, and Vite in parallel:php artisan serve— Laravel development serverphp artisan queue:listen --tries=1— Queue workernpm run dev— Vite HMR dev server
Web-based installer
If you prefer a guided setup, navigate to/installer in your browser after starting the web server. The installer walks you through a 6-step process:
Welcome
The installer checks whether setup is needed. If the application is already installed, it redirects you to the dashboard.
License activation
Enter your license key (minimum 20 characters). The installer validates the key against the licensing server.
Requirements check
The installer verifies that all required PHP extensions are loaded and that the PHP version meets the minimum requirement.
Database configuration
Enter your MySQL host, port, database name, username, and password. The installer tests the connection before saving it to
.env.File permissions
The web server user must be able to write to the following directories:Optional: MCP server (PM2)
Sniko ships with a Model Context Protocol server that exposes agent and conversation data to compatible AI tooling. It runs as a separate Node.js process:3001 by default (MCP_HTTP_PORT=3001). Logs are written to storage/logs/pm2-error.log and storage/logs/pm2-out.log.
Verify the installation
After completing setup, confirm the following:- The dashboard loads at
APP_URL. - Settings → ElevenLabs validates your API key without errors.
- The queue worker is running:
sudo supervisorctl status sniko:* - A test agent can be created and simulated in the browser.
If the frontend shows a Vite manifest error after deployment, run
npm run build again to regenerate the compiled assets.