name: ${COMPOSE_PROJECT_NAME:-hexabot} services: api: build: context: ../ dockerfile: ./Dockerfile target: production pull_policy: build env_file: - ../.env.docker environment: NODE_ENV: production PORT: ${PORT:-3000} DB_SYNCHRONIZE: ${DB_SYNCHRONIZE:-true} DB_AUTO_MIGRATE: ${DB_AUTO_MIGRATE:-true} ports: - ${API_PORT:-3000}:${PORT:-3000} networks: - app-network volumes: - api-data:/app/uploads - api-sqlite-data:/app/data healthcheck: test: [ "CMD", "node", "-e", "const http = require('http'); const port = process.env.PORT || 3000; http.get({ host: '127.0.0.1', port, path: '/api/health' }, (res) => process.exit(res.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1));" ] interval: 10s timeout: 10s retries: 5 start_period: 30s volumes: api-data: api-sqlite-data: networks: app-network: