# Every variable the Community edition reads. docker-compose.yml passes this file to the app and # fills DATABASE_URL, PORT and PHOTO_DIR itself. # # The variables beginning NEXT_PUBLIC_ are compiled into the browser bundle at build time, not read # at runtime — set them before the first `docker compose up --build`, and rebuild if they change. # ---- required ---- # Signs every session cookie. Generate one per instance (`openssl rand -base64 48`). The server # refuses to start while it still says change-me. SESSION_SECRET=change-me # The bundled database's password (docker-compose.yml only). POSTGRES_PASSWORD= # The address people open the app at, e.g. https://uniforms.example.health. Used in emailed links. NEXT_PUBLIC_SITE_URL=http://localhost:3000 # Always "community" on your own server. EDITION=community # ---- your documents ---- # The staff sign-in and the account screens link to a terms page and a privacy notice. Point them # at your own; until you do they point at threadcount.tech's, which describe the hosted service. NEXT_PUBLIC_TERMS_URL= NEXT_PUBLIC_PRIVACY_URL= # ---- transactional mail (optional) ---- # With these unset nothing is sent: password resets and approval links are handled at the counter, # and the screens say so rather than claiming otherwise. SMTP_HOST= SMTP_PORT=587 SMTP_USER= SMTP_PASS= SMTP_FROM="ThreadCount " # ---- optional ---- # 1 hides the create-account form and refuses the sign-up endpoint. Set it once your facility exists. SIGNUPS_DISABLED= # Cloudflare Turnstile on sign-in and sign-up. Set both to enforce it; leave both blank to rely on # the per-address rate limits alone. TURNSTILE_SECRET= NEXT_PUBLIC_TURNSTILE_SITEKEY= # Your own GlitchTip (Sentry-protocol) DSN for error reports. Blank = nothing is reported anywhere. NEXT_PUBLIC_GLITCHTIP_DSN= # Stamped on error reports so a fault can be tied to a build. NEXT_PUBLIC_RELEASE= # Host port docker-compose.yml publishes the app on (the container always listens on 3000). APP_PORT=3000 # Your own Umami, if any: the tracker script address and the site ids. Blank = no statistics sent. NEXT_PUBLIC_UMAMI_SRC= NEXT_PUBLIC_UMAMI_SITE_ID= NEXT_PUBLIC_UMAMI_APP_ID=