Self-Hosting Conductor Cloud
Run your own Conductor Cloud server to sync credentials across devices
Why Self-Host?
- Full data sovereignty - Your credentials never leave your infrastructure
- No external dependencies - Everything runs locally
- Custom authentication - Use your own OAuth credentials
- Free forever - No subscription, no cloud fees
Quick Start (Docker)
# Clone the repository git clone https://github.com/useconductor/conductor.git cd conductor # Start the cloud server docker-compose -f docker-compose.cloud.yml up -d
The server will be available at http://localhost:3000
Configuration
Create a .env file:
# Server config PORT=3000 NODE_ENV=production # OAuth (get from GitHub/Google developer portals) GITHUB_CLIENT_ID=your_github_client_id GITHUB_CLIENT_SECRET=your_github_client_secret GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret # Security (generate a strong random string) JWT_SECRET=your_super_secret_jwt_key ENCRYPTION_KEY=your_256bit_encryption_key # Database DATABASE_URL=postgresql://conductor:conductor@db:5432/conductor
Docker Compose Services
services:
# API Server
conductor-api:
build: ./conductor
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgresql://conductor:conductor@db:5432/conductor
- JWT_SECRET=${JWT_SECRET}
depends_on:
- db
# PostgreSQL
db:
image: postgres:15-alpine
environment:
- POSTGRES_USER=conductor
- POSTGRES_PASSWORD=conductor
- POSTGRES_DB=conductor
volumes:
- postgres_data:/var/lib/postgresql/data
# Redis (optional, for caching)
redis:
image: redis:7-alpine
volumes:
- redis_data:/dataConnecting CLI
After starting your server, configure the CLI:
conductor cloud login --server http://localhost:3000
OAuth Setup
GitHub OAuth App
- Go to GitHub Developer Settings
- Create a new OAuth App
- Set Homepage URL to your domain
- Set Authorization callback URL to
https://yourdomain.com/auth/callback - Copy Client ID and Client Secret
Google OAuth
- Go to Google Cloud Console
- Create OAuth 2.0 Client ID
- Set authorized redirect URIs to
https://yourdomain.com/auth/callback - Copy Client ID and Client Secret