services: automatisch: image: automatischio/automatisch:0.15.0 restart: unless-stopped environment: - HOST=${DOMAIN} - PROTOCOL=http - PORT=3000 - API_URL=http://${DOMAIN} - WEB_APP_URL=http://${DOMAIN} - APP_ENV=production - REDIS_HOST=automatisch-redis - REDIS_PASSWORD=${REDIS_PASSWORD} - POSTGRES_HOST=automatisch-postgres - POSTGRES_DATABASE=automatisch - POSTGRES_USERNAME=postgres - POSTGRES_PASSWORD=${DB_PASSWORD} - ENCRYPTION_KEY=${ENCRYPTION_KEY} - WEBHOOK_SECRET_KEY=${WEBHOOK_SECRET_KEY} - APP_SECRET_KEY=${APP_SECRET_KEY} volumes: - storage:/automatisch/storage depends_on: automatisch-postgres: condition: service_healthy automatisch-redis: condition: service_started automatisch-worker: image: automatischio/automatisch:0.15.0 restart: unless-stopped environment: - APP_ENV=production - REDIS_HOST=automatisch-redis - REDIS_PASSWORD=${REDIS_PASSWORD} - POSTGRES_HOST=automatisch-postgres - POSTGRES_DATABASE=automatisch - POSTGRES_USERNAME=postgres - POSTGRES_PASSWORD=${DB_PASSWORD} - ENCRYPTION_KEY=${ENCRYPTION_KEY} - WEBHOOK_SECRET_KEY=${WEBHOOK_SECRET_KEY} - APP_SECRET_KEY=${APP_SECRET_KEY} - WORKER=true volumes: - storage:/automatisch/storage depends_on: - automatisch automatisch-postgres: image: postgres:15-alpine restart: unless-stopped environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=${DB_PASSWORD} - POSTGRES_DB=automatisch volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres -d automatisch"] interval: 10s timeout: 5s retries: 5 automatisch-redis: image: redis:7-alpine restart: unless-stopped command: redis-server --requirepass ${REDIS_PASSWORD} volumes: - redis_data:/data volumes: storage: {} postgres_data: {} redis_data: {}