Self Hosting

Run Conductor on your own server and bootstrap the first login

This page shows the smallest self-hosted setup for Conductor.

What you need

SMS is optional. You can bootstrap the first web login without SMS.

1. Configure the server

Create web/.env.production.local and set the values you need.

At minimum, configure:

DATABASE_URL=postgresql://user:password@host:5432/conductor
NEXT_PUBLIC_URL=https://your-domain.com
JWT_SECRET=replace-with-a-long-random-secret
HOST=0.0.0.0
PORT=6152

If you do not want to use PostgreSQL yet, SQLite also works for small setups:

DATABASE_URL=file:/absolute/path/to/conductor.sqlite.db
NEXT_PUBLIC_URL=https://your-domain.com
JWT_SECRET=replace-with-a-long-random-secret
HOST=0.0.0.0
PORT=6152

2. Start the web service

From web/:

pnpm install
pnpm db:generate
pnpm db:push
pnpm build
pnpm start

This starts the Conductor web app and API server.

3. Bootstrap the first login without SMS

If you have not configured SMS, create or reuse the first user with:

pnpm bootstrap:self-host --phone +8613800138000 --base-url https://your-domain.com

The command will:

Open the printed Login URL once in the browser to establish the web session.

Treat the printed API token and login URL as secrets.

4. Configure the CLI on worker machines

On each machine that will run agents:

conductor config

Then start the daemon:

conductor daemon

After that, tasks created from the web app can be picked up by the daemon.

5. Optional integrations

You only need these if your deployment requires them:

For the smallest self-hosted setup, you can skip all of them.

Notes