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 -dDuet 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:coreEnvironment Variables
| Variable | Required | Description |
|---|---|---|
| DATABASE_URL | Yes | PostgreSQL connection string |
| PORT | No | Server port (default 7777) |
| SESSION_SECRET | No | Secret for session cookies |
| GOOGLE_CLIENT_ID | No | For Google Calendar sync |
| GOOGLE_CLIENT_SECRET | No | For Google Calendar sync |