# OpenVibe.Quest — environment (production: /etc/openvibe/quest.env). Names only; never commit values. NODE_ENV=production PORT=4980 HOST=127.0.0.1 BASE_URL=https://openvibe.quest TRUST_PROXY=2 # PostgreSQL (ADR-035), written by OpenVibe.Host roles/data/add-service.sh quest: 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=ov:quest: # Per-caller limits (server/http/caller-limits.js): requests one caller may make to the API per minute and per hour. #QUEST_LIMITS_MINUTE=120 #QUEST_LIMITS_HOUR=3000 # Guided personalized daily quest reader: default off until the owner enables it. QUEST_GUIDED_TODAY=off QUEST_MEME_EVENTS_ENABLED=off # OpenVibe.Network: SSO (OAuth client `quest`, PKCE S256) and its JWKS; app tokens for audience openvibe.quest. OV_NETWORK_URL=https://openvibe.network OV_NETWORK_INTERNAL_URL=http://127.0.0.1:4000 OV_DESIGN_INTERNAL_URL=http://127.0.0.1:5090 # QUEST_DESIGN_DRAFTS=off # Daily quest generation through OpenVibe.AI (ai.complete, with a hand-written fallback). OV_AI_INTERNAL_URL=http://127.0.0.1:4700 OV_OAUTH_CLIENT_ID=quest OV_OAUTH_CLIENT_SECRET= # OV_OAUTH_REDIRECT_URI=https://openvibe.quest/auth/callback # QUEST_AUDIENCE=openvibe.quest # optional: defaults to true in production # COOKIE_SECURE=true # OpenVibe.Events → Quest (server/events-consumer.js): POST /internal/events. The secret is what signs a delivery # (X-OpenVibe-Signature-V2, 32+ characters; comma-separated so one can be rotated in). Unset turns the consumer # off (503) and the quest log then never moves. QUEST_EVENTS_URL is OpenVibe.Events' base URL, used once at boot # to create the subscriptions for the events the catalog counts; unset leaves them to be created by hand. #QUEST_EVENTS_SECRET= #QUEST_EVENTS_URL= #QUEST_EVENTS_ENDPOINT= # OpenCoins (server/quests/coins.js). Rewards are badges and OpenCoins — loyalty points, never money, never Vibes. # QUEST_COINS is off by default: nothing is credited, a completion's coins are skipped, and the pages say the # rewards start soon. 'on' credits through OpenVibe.Network's wallet within the two daily caps, using this # service's client credentials. QUEST_COINS_RETRY_MS is how often a failed or unfinished credit is retried. QUEST_COINS=off #QUEST_COINS_DAILY_CAP=50 #QUEST_COINS_GLOBAL_DAILY_CAP=5000 #QUEST_COINS_RETRY_MS=300000 # Item rewards (server/quests/items.js): six quests also give one of Live's items in OpenVibe.Inventory, granted with # this service's client credentials (audience openvibe.inventory, inventory.item.grant; Live names Quest a grantor of # those items). On by default: an item is free and never money. A failed grant is retried, and so is every completion # from before items, so earlier finishers get theirs. #QUEST_ITEMS=on #OV_INVENTORY_INTERNAL_URL=http://127.0.0.1:5030 #QUEST_ITEMS_RETRY_MS=300000