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:
HTTPS
TimeNow does not terminate TLS itself. Place a reverse proxy (nginx, Caddy, Traefik) in front of port 8090 for HTTPS.