This guide is for local development purposes. For production deployment,
please refer to the Deploy Kodus
guide.
Prerequisites
- Node.js (LTS version)
- Docker
- Yarn or NPM
- LLM API Keys
Running the project
For a quick and automated setup, use our setup script:This script will automatically:With external integrations (webhooks, etc.):
- ✅ Check all required dependencies (Node.js, Yarn, Docker, OpenSSL)
- ✅ Install project dependencies
- ✅ Create and configure the
.env
file - ✅ Generate all required security keys automatically
- ✅ Set up Docker networks
- ✅ Provide clear next steps
Choose your LLM mode (required)
Select one mode and fill your .env before starting the services.This is the simplest mode and recommended for self-hosted installations. You only need to configure a single LLM model.
This mode is ideal for self-hosted because:
- Requires only a single API key
- Works with any OpenAI-compatible API provider
- Easier to configure and maintain
Model Configuration Guides
Check our model-specific guides for detailed setup instructions with popular providers like Novita, OpenAI, Anthropic, and more.
Next steps
Basic setup:Development workflow
Basic Local Development
- Start services:
yarn docker:start
- Run migrations:
yarn migrate:dev
- Load seed data:
yarn seed
- Create tunnel:
yarn tunnel
(creates public endpoint) - Health check:
yarn dev:health-check
Development with External Integrations
If you need to test integrations with external services (like Git webhooks):- Start services:
yarn docker:start && yarn migrate:dev && yarn seed
- Create tunnel:
yarn tunnel
(creates public endpoint) - Update webhook URLs: The tunnel command updates your
.env
automatically - Configure Git provider: Use the tunnel URL in your Git provider webhook settings
- Test integration: Trigger webhooks and monitor logs
Tunnel Benefits:
- Test real webhook integrations locally
- Debug external service communications
- Share your development environment with team members
- Test mobile apps or other external clients
Troubleshooting
Quick Health Check
- 🔌 Port availability: API (3001), PostgreSQL (5432), MongoDB (27017)
- 🗄️ Database setup: Migrations and seed data
- 🌐 API endpoints: Health endpoints and basic connectivity
Manual Verification
- Check API health: Visit
http://localhost:3001/health
in your browser - Verify database connections: Check the logs for successful database connections
- Test webhook endpoints: Your Git provider webhooks should point to
http://localhost:3001/[provider]/webhook
Setup Script Issues
If the automated setup script (yarn dev:first-run
) fails:
Missing dependencies:
Common Issues
Port conflicts:- Ensure ports 3001 (API), 5432 (PostgreSQL), and 27017 (MongoDB) are available
- Stop other services using these ports before starting Kodus
- Verify your
.env
file exists in the project root - Check that there are no trailing spaces in variable assignments
- Ensure all required security keys were generated properly
- Run
yarn dev:health-check
to get detailed diagnostics - Check if containers are fully started (wait 1-2 minutes after
yarn docker:start
) - Verify database migrations and seed data are loaded
- Check API logs with
yarn docker:logs
for startup errors
- The API takes time to fully initialize after container startup
- Check if migrations and seed data are loaded
- Verify the
.env
file has all required variables - Run health check to see which specific components are failing
- Use
yarn tunnel
to create a public endpoint for external webhooks - Update your Git provider webhook URLs to use the tunnel URL
- Ensure the tunnel is running when testing webhook integrations
- Check tunnel logs for connection issues