Skip to main content

Server commands

The konduktor-server binary manages the backend:

Data directory

All Konduktor data lives under ~/.konduktor/ by default: Override the data directory with the KONDUKTOR_DIR environment variable:

Environment variables

Running as a systemd service (Linux)

The one-liner install script creates a systemd unit at /etc/systemd/system/konduktor.service. Common operations:
The service is configured with:
  • Auto-restart on failure (5-second delay)
  • Read-only filesystem with write access only to ~/.konduktor
  • Process isolation (NoNewPrivileges=true)

Running on macOS

macOS doesn’t use systemd. Start the server manually:

Reverse proxy (nginx)

The install script optionally configures nginx. To set it up manually:
The Upgrade and Connection headers are required for SSE log streaming to work correctly. For HTTPS, use certbot:

Exposing for webhooks (development)

If your server isn’t publicly accessible and you want to use GitHub webhooks, you’ll need to use a tunneling service like Cloudflare Tunnel, ngrok, or zrok:
Then set your GitHub App’s webhook URL to the tunnel URL + /api/webhooks/github.

Database

Konduktor uses SQLite in WAL mode for concurrent read/write access. The database is at ~/.konduktor/konduktor.db. Migrations run automatically on server startup. To run them manually:
Backups — since it’s a single SQLite file, copy it while the server is running (WAL mode makes this safe):
You might also want to backup the entire ~/.konduktor directory to ensure you have a complete backup of all your data.
Store these backups in a secure location.

Background processes

The server runs several background tasks:

Health check

Resource metrics

Logging

Server logs go to both stderr (or systemd journal) and ~/.konduktor/server.log (10 MB, 3 rotated backups).