-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
43 lines (37 loc) · 2.38 KB
/
Copy path.env.example
File metadata and controls
43 lines (37 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# Postgres connection (used by the app + drizzle-kit + the migrate script).
DATABASE_URL=postgres://postgres:postgres@localhost:5432/deforum
# Public-facing origin.
PUBLIC_ORIGIN=http://localhost:5173
# ── Sign in with Minister (OIDC relying-party config) ─────────────────────────
# All four required to enable the "Sign in with Minister" path. When any is
# unset, Minister auth is disabled and the route returns 503 (mirrors FreedInk).
#
# COUPLING (root CLAUDE.md): the badge-VC issuer DID is derived from the OIDC
# issuer host (did:web:<host>), with no override. MINISTER_ISSUER's host MUST
# equal Minister's own issuer domain, or every disclosed badge silently lands in
# `rejected` and no badge counts (fails closed: login still works).
MINISTER_ISSUER=http://localhost:3000
MINISTER_CLIENT_ID=
MINISTER_CLIENT_SECRET=
MINISTER_REDIRECT_URI=http://localhost:5173/api/auth/oidc/callback
# The Ministry anonymous-identity handoff needs NO RP secret. Ministry delivers
# this app's per-app BRANCH of the user's single identity root in the OIDC
# callback fragment (#minister_anon=...); the client derives every per-sub-forum
# commitment from it locally. Re-keying is gated on the signed minister_anon_epoch
# claim (server-side), so there is nothing to provision, back up, or rotate here.
# 32-byte hex secret for hashing the user nullifier (the Minister pairwise sub)
# at rest. Generate with: openssl rand -hex 32. The raw sub is never stored.
USER_NULLIFIER_HASH_SECRET=replace_me_with_64_hex_chars
# Secret for HMAC-signing the app session cookie. Generate with: openssl rand -hex 32.
SESSION_SECRET=replace_me_with_64_hex_chars
# ── Operator (service-runner) admin dashboard ────────────────────────────────
# Comma-separated allowlist of OPERATOR IDs that may access /admin (create/edit
# sub-forums, approve/reject requests, moderate, manage members/mods). FAIL
# CLOSED: when unset/empty, nobody is an operator and every /admin power 403s.
#
# An "operator ID" is a signed-in user's durable per-account identifier (an HMAC
# of their Minister subject - Deforum never stores the raw subject). Sign in,
# open /admin, and copy the "Your operator ID" value shown there into this list,
# then restart the app. Example:
# DEFORUM_OPERATOR_SUBS=abc123...def,another-operator-id
DEFORUM_OPERATOR_SUBS=