Skip to content

Configuration

TimeNow is configured via environment variables passed to the containers.

Ports

Service Default Port Override Variable
Backend (REST API) 8090 BACKEND_PORT
Frontend (UI) 3000 FRONTEND_PORT

Environment Variables

Backend

Variable Default Description
HTTP_PORT 8090 Port the Play Framework listens on
APPLICATION_SECRET auto-generated Play secret key — set for production
IERS_EOP_ENABLED true Enable IERS Earth Orientation Parameters corrections
SPA_ALGORITHM NREL Solar position algorithm (NREL or SIMPLE)
LOG_LEVEL INFO Logging verbosity (DEBUG, INFO, WARN, ERROR)

Frontend

Variable Default Description
NEXT_PUBLIC_API_URL http://localhost:8090 Backend URL the browser connects to
PORT 3000 Next.js port

Compose Profiles

# Full stack (default)
podman-compose up --build

# IoT profile — backend only, minimal footprint
podman-compose --profile iot up --build

Production Deployment Notes

Set APPLICATION_SECRET

For any non-local deployment, set a strong APPLICATION_SECRET:

export APPLICATION_SECRET=$(openssl rand -base64 32)

HTTPS

TimeNow does not terminate TLS itself. Place a reverse proxy (nginx, Caddy, Traefik) in front of port 8090 for HTTPS.

Example: Custom Port

# Run backend on port 9000
HTTP_PORT=9000 podman-compose up --build backend