Installation¶
Get Kraken running locally with Docker Compose. This is the fastest way to start — all services (backend, frontend, MongoDB, Redis) are managed for you.
Prerequisites¶
Quick start¶
1. Clone the repository¶
2. Configure environment¶
Edit backend/.env and change the JWT secrets:
JWT_SECRET=replace-with-a-long-random-string
JWT_REFRESH_SECRET=replace-with-a-different-long-random-string
Security
Never use the default secrets in production. Generate strong values with openssl rand -base64 32.
See the Configuration page for the full environment variable reference.
3. Start all services¶
This brings up:
| Service | Description | URL |
|---|---|---|
| Frontend | React + Vite (hot reload) | http://localhost:5173 |
| Backend | NestJS API (hot reload) | http://localhost:3000 |
| MongoDB | Database (replica set) | localhost:27017 |
| Redis | Cache and pub/sub | localhost:6379 |
4. Initialize the database¶
On first run, push the Prisma schema to MongoDB:
This generates the Prisma client and pushes the schema to the database.
5. Open Kraken¶
Visit http://localhost:5173 in your browser. You're ready to create your first account.
Stopping and restarting¶
# Stop all services
docker-compose down
# Start again (data is persisted in Docker volumes)
docker-compose up
# Full reset (removes all data)
docker-compose down -v
Voice and video (optional)¶
Kraken uses LiveKit for voice and video calls. Without LiveKit configured, everything else works — voice/video features are simply disabled.
To enable voice and video:
- Sign up at LiveKit Cloud or run a self-hosted LiveKit server
- Add credentials to
backend/.env: - Configure webhooks — LiveKit needs to send events back to Kraken for voice presence tracking. Set the webhook URL to
https://your-kraken-domain.com/api/livekit/webhookand enable these events:participant_joinedparticipant_leftegress_startedegress_updatedegress_ended
See the Configuration page for all LiveKit-related variables.
Troubleshooting¶
"Replica set not initialized"¶
The Docker Compose setup automatically configures the MongoDB replica set. If you see this error, restart the containers:
"Port already in use"¶
Check what's using the port and stop it:
"Prisma client not generated"¶
Run the Prisma setup again:
Containers won't start¶
Rebuild from scratch:
Next steps¶
- Configuration — Full environment variable reference
- First Run — Create your first user, community, and channels
- Development Setup — Set up for contributing