Configuration reference

All configuration is passed to the app container as environment variables — in the quick-start setup, via the environment: block of docker-compose.yml and the .env file next to it.

Database

These tell the app where its PostgreSQL database is. The quick-start compose file wires them to the bundled postgres container, so normally only DB_PASSWORD (in .env) is yours to choose.

Variable What it does

DB_HOST

Hostname of the PostgreSQL server. postgres in the bundled setup.

DB_PORT

PostgreSQL port. 5432 unless you changed it.

DB_NAME

Database name. thosedays by default.

DB_USER

Database user. thosedays by default.

DB_PASSWORD

Database password. Set once in .env before the first start.

Email (optional)

Needed only if you want period reminders or release-notification emails. Both features stay silently off when these are unset.

Variable What it does

NOTIFY_REMINDERS

true to enable period-reminder emails. Each user still has to opt in from the app’s Settings page.

NOTIFY_ON_DEPLOY

true to email opted-in users when the running version changes (i.e. after you update).

PUBLIC_BASE_URL

The address your users reach the app at (e.g. https://rosella.example.com). Used for links inside emails.

SMTP_HOST / SMTP_PORT

Your mail server. For Gmail: smtp.gmail.com / 587 (STARTTLS).

SMTP_USER / SMTP_PASS

Login for the mail server. For Gmail, SMTP_PASS is a 16-character app password, not your account password.

SMTP_FROM

The From address on outgoing mail (usually the same as SMTP_USER).

SMTP_ACCEPT_ALL_CERTS

true skips TLS certificate checks — only for self-signed mail servers on your own LAN. Leave false otherwise.

Logs & traces (optional)

The app always logs to the container’s console (docker compose logs app) and to a rolling file inside the container — you don’t need any of this. Set these only if you want logs/traces in your own observability stack.

Variable What it does

OTEL_EXPORTER_OTLP_ENDPOINT

Ship logs and traces (OpenTelemetry) to any OTLP collector — an OTel Collector, Jaeger, Grafana Tempo/Alloy, etc. Give the collector’s base HTTP (protobuf) URL, e.g. http://collector:4318; the app appends /v1/logs and /v1/traces itself. gRPC (4317) is not supported.

SEQ_URL

Prefer Seq? Set this instead (e.g. http://seq): logs go to Seq natively and traces to the same Seq via its OTLP ingest. If both variables are set, OTEL_EXPORTER_OTLP_ENDPOINT wins for traces and each destination gets the logs.