# ─── General ──────────────────────────────────────────────────────────────── FAMILYNIDO_BASE_URL=https://familia.example.com FAMILYNIDO_TIMEZONE=Europe/Madrid # UID/GID under which the API container will write files. Leave empty to # keep the default in-container user (UID 100, useful with Docker named # volumes). Set to a specific user (typically 1000:1000) when you bind-mount # a host directory and want files to remain owned by that host user — e.g. # /home/dan/familynido/files mapped to /app/data/files. PUID= PGID= # ─── GHCR (only consumed by docker-compose.prod.yml) ──────────────────────── # GitHub user or org that owns the published images under # ghcr.io//familynido-api and /familynido-web. GHCR_OWNER=your-github-user # ─── PostgreSQL ───────────────────────────────────────────────────────────── POSTGRES_DB=familynido POSTGRES_USER=familynido POSTGRES_PASSWORD=change-me-please # ─── OIDC (PocketID in prod) ──────────────────────────────────────────────── OIDC_AUTHORITY=https://pocketid.example.com OIDC_CLIENT_ID=familynido OIDC_CLIENT_SECRET= OIDC_REQUIRE_HTTPS=true # ─── Google Calendar (read-only sync) ─────────────────────────────────────── # Credentials issued by https://console.cloud.google.com/apis/credentials with # the Calendar API enabled. The redirect URI must match exactly the entry # registered as an "Authorized redirect URI" for the OAuth client. GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= GOOGLE_OAUTH_REDIRECT_URI=https://familia.example.com/api/calendar/google/callback # ─── Email (SMTP) — used by the invitation flow ───────────────────────────── # Generic SMTP relay. Works with Brevo (formerly Sendinblue), Gmail with an # app password, mailcow, an internal MTA, etc. Leave EMAIL__ENABLED=false to # disable email entirely; admins will still see the "copy link" fallback. EMAIL__ENABLED=false EMAIL__SMTPHOST=smtp-relay.example.com EMAIL__SMTPPORT=587 EMAIL__SMTPUSERNAME= EMAIL__SMTPPASSWORD= EMAIL__SMTPUSESTARTTLS=true EMAIL__FROM=FamilyNido EMAIL__APPBASEURL=https://familia.example.com EMAIL__INVITATIONLIFETIME=7.00:00:00 # ─── Traefik (optional — consumed by labels in docker-compose.prod.yml) ──── TRAEFIK_NETWORK=traefik TRAEFIK_ROUTER_NAME=familynido TRAEFIK_HOST=familia.example.com TRAEFIK_TLS_RESOLVER=letsencrypt