version: "3.8" volumes: lago_postgres_data: lago_redis_data: services: db: image: postgres:14.0-alpine container_name: lago-db restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB:-lago} POSTGRES_USER: ${POSTGRES_USER:-lago} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme} PGDATA: /data/postgres volumes: - lago_postgres_data:/data/postgres ports: - ${POSTGRES_PORT:-5432}:5432 redis: image: redis:6.2-alpine container_name: lago-redis restart: unless-stopped volumes: - lago_redis_data:/data ports: - ${REDIS_PORT:-6379}:6379 api: container_name: lago-api image: getlago/api:v0.1.1-alpha restart: unless-stopped depends_on: - db - redis command: ["./scripts/start.sh"] environment: - DATABASE_URL=postgresql://${POSTGRES_USER:-lago}:${POSTGRES_PASSWORD:-changeme}@${POSTGRES_HOST:-db}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-lago} - REDIS_URL=redis://${REDIS_HOST:-redis}:${REDIS_PORT:-6379} - SECRET_KEY_BASE=${SECRET_KEY_BASE:-your-secret-key-base-hex-64} - RAILS_ENV=production - SENTRY_DSN=${SENTRY_DSN} - LAGO_FRONT_URL=${LAGO_FRONT_URL:-http://localhost} - RSA_PRIVATE_KEY=${LAGO_RSA_PRIVATE_KEY} # Should be base64 encoded ports: - ${API_PORT:-3000}:3000 front: container_name: lago-front image: getlago/front:v0.1.1-alpha restart: unless-stopped depends_on: - api environment: - API_URL=${LAGO_API_URL:-http://localhost:3000} - APP_ENV=${APP_ENV:-production} - CODEGEN_API=${LAGO_API_URL:-http://localhost:3000} ports: - ${FRONT_PORT:-80}:80 api-worker: container_name: lago-worker image: getlago/api:v0.1.1-alpha restart: unless-stopped depends_on: - api command: ["./scripts/start.worker.sh"] environment: - LAGO_API_URL=${LAGO_API_URL:-http://localhost:3000} - DATABASE_URL=postgresql://${POSTGRES_USER:-lago}:${POSTGRES_PASSWORD:-changeme}@${POSTGRES_HOST:-db}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-lago} - REDIS_URL=redis://${REDIS_HOST:-redis}:${REDIS_PORT:-6379} - SECRET_KEY_BASE=${SECRET_KEY_BASE:-your-secret-key-base-hex-64} - RAILS_ENV=production - SENTRY_DSN=${SENTRY_DSN} - RSA_PRIVATE_KEY=${LAGO_RSA_PRIVATE_KEY} # Should be base64 encoded api-clock: container_name: lago-clock image: getlago/api:v0.1.1-alpha restart: unless-stopped depends_on: - api command: ["./scripts/start.clock.sh"] environment: - LAGO_API_URL=${LAGO_API_URL:-http://localhost:3000} - DATABASE_URL=postgresql://${POSTGRES_USER:-lago}:${POSTGRES_PASSWORD:-changeme}@${POSTGRES_HOST:-db}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-lago} - REDIS_URL=redis://${REDIS_HOST:-redis}:${REDIS_PORT:-6379} - SECRET_KEY_BASE=${SECRET_KEY_BASE:-your-secret-key-base-hex-64} - RAILS_ENV=production - SENTRY_DSN=${SENTRY_DSN} - RSA_PRIVATE_KEY=${LAGO_RSA_PRIVATE_KEY} # Should be base64 encoded