services: app: build: context: . dockerfile: Dockerfile image: linumiq-invoice:latest container_name: linumiq-invoice restart: unless-stopped env_file: - .env.production environment: # SQLite file lives on a named volume so it survives image rebuilds. DATABASE_URL: "file:/data/prod.sqlite" NODE_ENV: production PORT: "3000" volumes: - /docker/linumiq-invoice/data:/data healthcheck: test: ["CMD", "wget", "-qO-", "http://127.0.0.1:3000/healthz", "||", "exit", "0"] interval: 30s timeout: 5s retries: 3 networks: - caddy_net networks: caddy_net: name: caddy_net external: true