# Hypane - AI-powered Dashboard # # Quick start: # 1. Copy .env.example to .env and configure API key # 2. docker compose up -d services: mongodb: image: mongo:7 container_name: hypane-mongo restart: unless-stopped environment: MONGO_INITDB_ROOT_USERNAME: ${MONGO_USER:-root} MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORD} volumes: - mongo-data:/data/db splash: image: scrapinghub/splash:latest container_name: hypane-splash restart: unless-stopped environment: - SPLASH_MAX_TIMEOUT=30 dashboard: build: context: . dockerfile: Dockerfile image: hypane:latest container_name: hypane restart: unless-stopped depends_on: - mongodb - splash # No external port — nginx handles public access expose: - "8000" environment: # Pi Agent Provider & Model - PI_PROVIDER=${PI_PROVIDER:-anthropic} - PI_MODEL=${PI_MODEL:-claude-sonnet-4-20250514} # API Keys (Pi reads these directly) - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-} - OPENAI_API_KEY=${OPENAI_API_KEY:-} - GEMINI_API_KEY=${GEMINI_API_KEY:-} - OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-} # Custom provider (optional) - PI_CUSTOM_BASE_URL=${PI_CUSTOM_BASE_URL:-} - PI_CUSTOM_PROVIDER=${PI_CUSTOM_PROVIDER:-} - PI_CUSTOM_API=${PI_CUSTOM_API:-} - PI_CUSTOM_API_KEY_ENV=${PI_CUSTOM_API_KEY_ENV:-} - CUSTOM_API_KEY=${CUSTOM_API_KEY:-} # MongoDB - MONGO_DSN=${MONGO_DSN:-mongodb://${MONGO_USER:-root}:${MONGO_PASSWORD}@mongodb:27017/?authSource=admin} - MONGODB_DB=${MONGODB_DB:-hypane} # Splash (web scraping) - BROWSERLESS_URL=http://splash:8050 - BROWSERLESS_TOKEN=${BROWSERLESS_TOKEN:-} # App - HOST=0.0.0.0 - PORT=8000 - TZ=${TZ:-Asia/Singapore} volumes: # Persistent data (sessions still use filesystem) - dashboard-data:/app/data frontend: build: context: . dockerfile: docker/Dockerfile.frontend image: hypane-frontend:latest container_name: hypane-frontend restart: unless-stopped depends_on: - dashboard expose: - "3000" environment: - API_INTERNAL_URL=http://dashboard:8000 - NODE_ENV=production nginx: image: nginx:alpine container_name: hypane-nginx restart: unless-stopped depends_on: - dashboard - frontend ports: - "${PORT:-80}:80" volumes: - ./docker/nginx.conf:/etc/nginx/conf.d/default.conf:ro volumes: mongo-data: driver: local dashboard-data: driver: local