services: postgres: image: postgres:16 restart: unless-stopped environment: POSTGRES_DB: postgres POSTGRES_USER: postgres POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} volumes: - /data/postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres -d postgres"] interval: 10s timeout: 5s retries: 5 env_file: - .env printer: image: ghcr.io/browserless/chromium:latest restart: unless-stopped environment: - TIMEOUT=120000 - CONCURRENT=10 - HEALTH=true - TOKEN=MFRwf6r4boksnR62QAsk healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000/pressure?token=MFRwf6r4boksnR62QAsk"] interval: 30s timeout: 10s retries: 3 env_file: - .env app: image: amruthpillai/reactive-resume:latest restart: unless-stopped environment: - APP_URL=https://resume.lino.cooking - PRINTER_APP_URL=http://app:3000 - DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres - PRINTER_ENDPOINT=http://printer:3000 - AUTH_SECRET=${AUTH_SECRET} volumes: - /data/app:/app/data ports: - "3000:3000" depends_on: postgres: condition: service_healthy printer: condition: service_healthy healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"] interval: 30s timeout: 10s retries: 3 env_file: - .env