services: api: build: context: . dockerfile: Dockerfile container_name: linegestao-api restart: unless-stopped env_file: - .env environment: ASPNETCORE_ENVIRONMENT: ${ASPNETCORE_ENVIRONMENT:-Production} ASPNETCORE_URLS: http://+:8080 App__UseHttpsRedirection: ${APP_USE_HTTPS_REDIRECTION:-false} ConnectionStrings__Default: Host=db;Port=5432;Database=${POSTGRES_DB:-linegestao};Username=${POSTGRES_USER:-linegestao_app};Password=${POSTGRES_PASSWORD:-CHANGE_ME} Jwt__Issuer: ${JWT_ISSUER:-LineGestao} Jwt__Audience: ${JWT_AUDIENCE:-LineGestao} Jwt__Key: ${JWT_KEY:?JWT_KEY is required} Seed__AdminEmail: ${SEED_ADMIN_EMAIL:-admin@linegestao.local} Seed__AdminPassword: ${SEED_ADMIN_PASSWORD:-CHANGE_ME} Seed__AdminName: ${SEED_ADMIN_NAME:-Administrador} Seed__DefaultTenantName: ${SEED_DEFAULT_TENANT_NAME:-Default} Cors__AllowedOrigins__0: ${FRONTEND_PUBLIC_URL:-https://linegestao.inglinesystems.com.br} depends_on: db: condition: service_healthy db: image: postgres:16-alpine container_name: linegestao-db restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB:-linegestao} POSTGRES_USER: ${POSTGRES_USER:-linegestao_app} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-CHANGE_ME} volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-linegestao_app} -d ${POSTGRES_DB:-linegestao}"] interval: 10s timeout: 5s retries: 10 caddy: image: caddy:2-alpine container_name: linegestao-caddy restart: unless-stopped depends_on: api: condition: service_started environment: DOMAIN: ${DOMAIN:-linegestao.inglinesystems.com.br} ACME_AGREE: "true" EMAIL: ${ACME_EMAIL:-} ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - caddy_data:/data - caddy_config:/config volumes: postgres_data: caddy_data: caddy_config: