Settings

1 · Display

Storage rule (unchanged): the database always keeps UTC. This setting only changes how times are shown. Schedule crons keep firing in their own timezone (America/Toronto for the presets).

2 · Web address

Where this app is currently reachable. Set an override when you access it via a different address than the one detected (e.g. a LAN IP or a reverse proxy). Used as the base for notification links and shared report URLs.

https://nlu.hopto.org

Leave the override empty to use the detected address.

3 · Notifications — Email

Phase 5, email first (Telegram is planned for a later version). Secrets never enter the database: put the SMTP password / Gmail app password in .env as EMAIL_SMTP_PASSWORD.

Email content

When it runs: the weekly PDF report is regenerated first, then the email is sent — with the PDF attached if the checkbox above is set.

Password: set in .env (EMAIL_SMTP_PASSWORD) · Gmail works with an app password (2FA required).

4 · Deployment — HTTPS (Docker + Caddy)

Generates the VPS bundle (SPEC D4): a Dockerfile, a docker-compose.yml and a Caddyfile into outputs/deploy/. Caddy terminates HTTPS and obtains/renews the Let’s Encrypt certificate automatically; the app itself stays plain HTTP inside the Docker network. Steps: point the domain’s DNS A record at the VPS, copy the generated folder there, then docker compose up -d. The bundle contains no secrets — put them in .env on the VPS.

After go-live you can set the Web-address override above to https://your-domain so notification links use it.

Coming later: Telegram channel, alert rules (thresholds per asset).