Coolify's HTTP health check hits localhost:3000 from the host — but the
container port is only reachable inside the Docker network via Traefik.
Docker's own HEALTHCHECK runs inside the container where localhost works.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
All /api/* routes require Authorization: Bearer <token>.
Tokens are configured via API_TOKENS env var (comma-separated for multiple).
/health remains public for Coolify health checks.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove process.exit(-1) on pool error — a DB blip killed the whole container
- Health check now always returns 200 so Coolify doesn't mark it unhealthy
when PostgreSQL is temporarily unreachable
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Node.js/Express API server that connects to PostgreSQL via environment variables.
Includes health check, table listing, row queries, and raw SQL endpoint.
Designed for deployment in Coolify alongside the snakkimo PostgreSQL container.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>