Installation
This guide gets CallMineAI running from source. For the full environment reference see Configuration; for production hosting see Deployment.
Prefer a browser-based setup?
Once the files are on your server you can run the guided Web installer at /install instead of the CLI steps below — it checks requirements, tests the database, migrates, seeds, and creates your admin account (with an optional demo-data import).
Requirements
| Requirement | Minimum |
|---|---|
| PHP | 8.2+ (8.3 recommended) with ext-intl, ext-pdo, ext-mbstring, ext-openssl, ext-curl |
| Database | MySQL 8 / MariaDB 10.4+ (SQLite supported for local dev) |
| Node.js | 18+ (for building the frontend) |
| Composer | 2.x |
| Web server | Nginx or Apache with HTTPS (required for Twilio webhooks) |
| Queue worker | A supervised php artisan queue:work process |
| Cron | One entry running the Laravel scheduler every minute |
| Redis | Optional (recommended for queue/cache at scale) |
HTTPS in production
Twilio only calls publicly reachable HTTPS webhook URLs. Local development can place calls only through a tunnel (e.g. ngrok) pointed at your machine.
Install steps
# 1. Dependencies
composer install --optimize-autoloader
npm install
# 2. Environment
cp .env.example .env
php artisan key:generate
# 3. Configure .env (see the Configuration page) — at minimum:
# APP_NAME, APP_URL, DB_DATABASE, DB_USERNAME, DB_PASSWORD
# 4. Database — create a database named `callmineai`, then migrate + seed
# (seeds ESSENTIAL data only: RBAC, plans, currencies, locales, templates)
php artisan migrate --seed
# Optional — load a realistic sample tenant across every module:
# php artisan db:seed --class="Database\Seeders\DemoSeeder"
# 5. Build the frontend
npm run build
For local development you can run the app and Vite dev server instead of building:
php artisan serve # http://localhost:8000
npm run dev # Vite HMR
Queue worker & scheduler (required for calling)
The dialer runs on the queue + scheduler — without them, campaigns will queue calls but nothing will dial.
Add the Laravel scheduler to cron:
* * * * * cd /path/to/callmineai && php artisan schedule:run >> /dev/null 2>&1
Run a supervised queue worker (see Deployment for the full Supervisor config):
php artisan queue:work --tries=1 --timeout=120
The scheduler runs calling:dispatch every minute; it claims due calls (bounded by your ElevenLabs key-pool capacity) and dispatches them onto the queue. See Campaigns & Calls for the full pipeline.
Default accounts
The essential seed (php artisan db:seed) creates the super-admin account. The demo customer is created only when you import demo data (DemoSeeder, or the installer's "Import demo data" option). Change these before production (override with ADMIN_SEED_* / CLIENT_SEED_* in .env before seeding).
| Panel | Sign in at | Password | Created by | |
|---|---|---|---|---|
| Super admin | /admin/login | admin@callmineai.com | 123456 | essential seed |
| Customer | /login (workspace at /app) | customer@callmineai.com | 123456 | demo data only |
When present, the customer demo account is seeded KYC-verified so you can buy numbers and launch campaigns immediately.
Tips
If you use the Web installer, you create your own super-admin in the wizard instead of relying on the default above.
Post-install configuration
Sign in to the admin panel and connect the integrations:
- ElevenLabs →
/admin/elevenlabs-keys→ add an API key, run Health check, then Sync voices. See Voice & AI. - Twilio → set
TWILIO_ACCOUNT_SID+TWILIO_AUTH_TOKEN(+ a From number) in.env. See Telephony. - OpenAI → set
OPENAI_API_KEYfor the agent conversation + call analysis. - Plans & Credit Packages → review the seeded plans and packs. See Billing & Credits.
- Payment gateways → enable Stripe / PayPal / Paddle if you want paid subscriptions.
Demo mode
Set APP_DEMO_MODE=true to disable all create/update/delete actions in both panels — ideal for a public live-preview deployment.
Next
Head to Configuration for the complete .env reference, then Deployment to go live.