services: app: build: context: . dockerfile: Dockerfile args: - NODE_ENV=${NODE_ENV:-production} - PORT=${PORT:-3000} ports: - "${PORT:-3000}:${PORT:-3000}" volumes: - ./data:/app/data environment: - NODE_ENV=${NODE_ENV:-production} - PORT=${PORT:-3000} - VITE_API_URL=${VITE_API_URL:-http://localhost:${PORT:-3000}} - DB_PATH=${DB_PATH:-/app/data/petty-cash.db} - JWT_SECRET=${JWT_SECRET:-default-secret-key-change-in-production} - ADMIN_USERNAME=${ADMIN_USERNAME:-admin} - ADMIN_PASSWORD=${ADMIN_PASSWORD:-password} restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:${PORT:-3000}/api/health"] interval: 30s timeout: 10s retries: 3 logging: driver: "json-file" options: max-size: "10m" max-file: "3"