Self-hosted Setup

Get Duet running on your own server in under 5 minutes.

Prerequisites

  • Docker and Docker Compose
  • Or: Node.js 22+ and PostgreSQL 16+

Option 1: Docker Compose

# Clone the repo
git clone https://github.com/emreparker/duet.git
cd duet

# Start everything
docker compose up -d

Duet is now running at http://localhost:7777. Open it in your browser and set your password.

Option 2: Manual Setup

# Clone and install
git clone https://github.com/emreparker/duet.git
cd duet
pnpm install

# Create database
createdb duet_dev

# Run migrations
DATABASE_URL="postgresql://localhost:5432/duet_dev" pnpm db:migrate

# Start the server
DATABASE_URL="postgresql://localhost:5432/duet_dev" pnpm dev:core

Environment Variables

VariableRequiredDescription
DATABASE_URLYesPostgreSQL connection string
PORTNoServer port (default 7777)
SESSION_SECRETNoSecret for session cookies
GOOGLE_CLIENT_IDNoFor Google Calendar sync
GOOGLE_CLIENT_SECRETNoFor Google Calendar sync