# ═══════════════════════════════════════════════════════════════ # OpenVibe.Wiki — Environment Configuration # Copy to .env and fill in values. In production this lives at /etc/openvibe/wiki.env (0600); # the systemd unit sets NODE_ENV and PORT itself. Names only here: never commit values. # ═══════════════════════════════════════════════════════════════ # Server PORT=4800 HOST=127.0.0.1 NODE_ENV=development #BASE_URL=https://openvibe.wiki # Hops in front of Node that set X-Forwarded-For (Cloudflare → nginx → Node). #TRUST_PROXY=2 # Per-actor limits (server/http/actor-limits.js): API reads one caller (a person, a service or app # acting as itself, else an address) may make per minute and per hour; past them 429 rate_limited with # Retry-After. Edits, publishing and settings have their own numbers (README). Per-address limits stay. #WIKI_LIMITS_MINUTE=120 #WIKI_LIMITS_HOUR=3000 # Store: PostgreSQL (ADR-035), written by OpenVibe.Host roles/data/add-service.sh wiki — the runtime role through # PgBouncer, the owner on a direct connection (migrations), and Valkey (shared limit counters). # Without DATABASE_URL, development uses an embedded PGlite database in data/pglite. DATABASE_URL= DATABASE_DIRECT_URL= VALKEY_URL= VALKEY_PREFIX= # Identity — OpenVibe.Network signs user JWTs (SSO) and service tokens. The public key is fetched # from /api/.well-known/jwks (internal URL first) and retried every 30 s until it loads. OV_NETWORK_URL=https://openvibe.network OV_NETWORK_INTERNAL_URL=http://127.0.0.1:4000 #OV_NETWORK_ISSUER=https://openvibe.network # Pin the key instead of fetching it (PEM; \n escapes allowed). #OV_NETWORK_PUBLIC_KEY= # A browser's user JWT is accepted when its aud contains one of these. #WIKI_USER_AUDIENCES=openvibe.wiki,openvibe.network # OAuth client `wiki` (browser sign-in, redirect /auth/callback) and service principal # svc:wiki (client credentials for Events, Community, Sources and Media) — one registration. OV_OAUTH_CLIENT_ID=wiki OV_OAUTH_CLIENT_SECRET= #OV_OAUTH_REDIRECT_URI=https://openvibe.wiki/auth/callback #COOKIE_SECURE=true # OpenVibe.Events — the outbox relay runs only when EVENTS_URL is set (events wait in the outbox until then). #EVENTS_URL=http://127.0.0.1:4300 # OpenVibe.Events → Wiki (ADR-033 account export and deletion): signs a delivery to POST /internal/events # (comma-separated for rotation, 32+ characters each). Unset: the route answers 503 and no subscription is created. #WIKI_EVENTS_SECRET= #EVENTS_RELAY_INTERVAL_MS=2000 # OpenVibe.Community — discussion threads (community.comment.write; community.comment.moderate # hides the thread of a page that is unpublished, deleted or no longer public). #OV_COMMUNITY_URL=https://openvibe.community #OV_COMMUNITY_INTERNAL_URL=http://127.0.0.1:4200 # OpenVibe.Sources — citation items (sources.item.read). Unset: Sources item citations are refused. #OV_SOURCES_INTERNAL_URL=http://127.0.0.1:4720 # OpenVibe.Media — attachment checks (media.object.read, namespace WIKI_MEDIA_APP) and public URLs. #OV_MEDIA_INTERNAL_URL=http://127.0.0.1:4100 #OV_MEDIA_URL=https://openvibe.media #WIKI_MEDIA_APP=wiki # OpenVibe.AI — "vibe a wiki" (research.gather, wiki.generate_space, wiki.generate_page). Unset: /vibe answers that it is # not available. Limits per person and per day, page counts by size, pages written at a time. #OV_AI_INTERNAL_URL=http://127.0.0.1:4700 #WIKI_VIBE_PER_PERSON_DAY=3 #WIKI_VIBE_PER_DAY=30 #WIKI_VIBE_PAGES_QUICK=6 #WIKI_VIBE_PAGES_STANDARD=12 #WIKI_VIBE_PAGES_BIG=24 #WIKI_VIBE_CONCURRENCY=2 #WIKI_MEDIA_VERIFY_INTERVAL_MS=21600000 # Scheduled publication worker. #WIKI_SCHEDULE_INTERVAL_MS=15000 #WIKI_WORKER_ID=wiki-1 # Indexability gate policy for pages (openvibe-publishing/seo). #WIKI_GATE_MIN_WORDS=80 #WIKI_GATE_REQUIRE_SOURCES=true #WIKI_GATE_MIN_SOURCES=1 # Release reporting (openvibe-shared/release): the deployed commit, read from git when unset. #RELEASE_COMMIT= #MIN_CLIENT_RELEASE=