Installation
Deploy Pivota on your own infrastructure. Full control, full security.
Prerequisites
- Docker 20.10+ and Docker Compose v2
- 8GB RAM minimum (16GB recommended for teams)
- 20GB disk space for the platform and workspace data
- Git 2.30+ installed on the host
- API key for at least one AI provider (Claude, GPT-4, Gemini, or Z.ai)
Docker Installation
# 1. Clone the deployment repo git clone https://github.com/pivota-dev/deploy.git cd deploy # 2. Copy the environment template cp .env.example .env # 3. Configure your environment (see Configuration below) # 4. Start the platform docker compose up -d # 5. Check status docker compose ps docker compose logs -f pivota
Configuration
Pivota is configured through environment variables in your .env file:
# .env — Required configuration DATABASE_URL=postgresql://pivota:pivota@localhost:5432/pivota JWT_SECRET=your-secret-key-minimum-32-characters ENCRYPTION_KEY=64-character-hex-string-for-aes-256-gcm # AI Provider (at least one required) ANTHROPIC_API_KEY=sk-ant-... # GitHub Integration (optional) GITHUB_CLIENT_ID=your-github-oauth-client-id # Daytona Cloud (optional, for sandbox execution) DAYTONA_API_URL=https://api.daytona.io DAYTONA_API_KEY=your-daytona-api-key # OpenCode Agent OPENCODE_BINARY=opencode OPENCODE_PORT_START=4100 # MCP Server MCP_HOST=0.0.0.0 MCP_PORT=3001 # Execution EXECUTION_TIMEOUT_SECS=1800
Docker Compose
Reference docker-compose.yml for the full platform stack:
# docker-compose.yml
services:
postgres:
image: pgvector/pgvector:pg16
environment:
POSTGRES_USER: pivota
POSTGRES_PASSWORD: pivota
POSTGRES_DB: pivota
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U pivota"]
interval: 5s
pivota:
build: .
ports:
- "3000:3000" # Web UI + API
- "3001:3001" # MCP Server
depends_on:
postgres:
condition: service_healthy
env_file: .env
volumes:
- workspace_data:/root/pivota-workspaces
volumes:
pgdata:
workspace_data:Verify Installation
curl http://localhost:3000/health
# Expected:
{
"status": "ok",
"version": "1.2.0",
"database": "connected",
"mcp_server": "running"
}