version: '3.9' # Core + Panel deployment for the main server. # Usage: docker compose -f docker-compose.base.yml up -d services: redis: image: redis:7-alpine container_name: nexuma-redis restart: unless-stopped volumes: - redis_data:/data networks: - nexuma core: image: nexuma/core:latest container_name: nexuma-core restart: unless-stopped environment: PORT: 3000 DB_HOST: your-postgres-host DB_PORT: 5432 DB_USER: postgres DB_PASSWORD: change-me DB_NAME: nexuma REDIS_HOST: redis REDIS_PORT: 6379 JWT_SECRET: replace-with-long-random-secret JWT_REFRESH_SECRET: replace-with-another-long-random-secret JWT_EXPIRES_IN: 15m JWT_REFRESH_EXPIRES_IN: 7d CORS_ORIGINS: https://panel.example.com # TELEGRAM_BOT_TOKEN: your-bot-token ports: - "3000:3000" depends_on: - redis networks: - nexuma healthcheck: test: ["CMD-SHELL", "wget -qO- http://localhost:3000/health || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 30s panel: image: nexuma/panel:latest container_name: nexuma-panel restart: unless-stopped environment: NUXT_CORE_URL: http://core:3000 NUXT_PUBLIC_API_BASE: /api ports: - "3010:3000" depends_on: - core networks: - nexuma volumes: redis_data: networks: nexuma: driver: bridge