openvibers/openvibe.design .env.example

.env.example

main 4.0 KB · 93 lines · plaintext

1# OpenVibe.Design — environment (production: /etc/openvibe/design.env). Names only; never commit values.
2
3NODE_ENV=production
4PORT=5090
5HOST=127.0.0.1
6BASE_URL=https://openvibe.design
7TRUST_PROXY=2
8
9# OpenVibe.Network: the theme API this service proxies, sign-in (OAuth client `design`, PKCE S256) and its JWKS.
10OV_NETWORK_INTERNAL_URL=http://127.0.0.1:4000
11OV_OAUTH_CLIENT_ID=design
12OV_OAUTH_CLIENT_SECRET=
13# The browser is sent to the public origin; the token exchange and the JWKS use the internal one above.
14# OV_NETWORK_URL=https://openvibe.network
15# OV_NETWORK_ISSUER=https://openvibe.network
16# OV_OAUTH_REDIRECT_URI=https://openvibe.design/auth/callback
17# OV_SESSION_AUDIENCE=openvibe.network
18
19# Optional: the public catalogue's in-process cache (default 5 minutes), the Network timeout, the per-IP limit.
20# DESIGN_THEME_CACHE_MS=300000
21# DESIGN_UPSTREAM_TIMEOUT_MS=8000
22# DESIGN_RATE_LIMIT_PER_MIN=120
23
24# optional: defaults to true in production
25# COOKIE_SECURE=true
26
27# The Arena's PostgreSQL (ADR-035): DATABASE_URL serves (PgBouncer), DATABASE_DIRECT_URL migrates (owner role).
28# In development without DATABASE_URL an embedded PGlite database in data/pglite is used.
29DATABASE_URL=
30DATABASE_DIRECT_URL=
31# DESIGN_PGLITE_DIR=
32
33# OpenVibe.AI: the generate operation, called as Design with a client-credentials token.
34# Network grants scope ai.run.create (audience openvibe.ai, namespace ai.generate).
35OV_AI_INTERNAL_URL=http://127.0.0.1:4700
36# DESIGN_AI_AUDIENCE=openvibe.ai
37# DESIGN_AI_SCOPE=ai.run.create
38# DESIGN_AI_WAIT_MS=55000
39# DESIGN_AI_TIMEOUT_MS=120000
40# DESIGN_AI_POLL_MS=1500
41
42# OpenVibe.Exchange's icon reference search (the Exchange platform API, served by OpenVibe.AI): Design mints its own
43# client-credentials token (audience openvibe.ai, scope exchange.search.icons), so no Exchange key is needed.
44# EXCHANGE_SEARCH_KEY is the owner's override; Iconify is the fallback when neither answers.
45# EXCHANGE_API_URL=https://api.openvibe.exchange
46# DESIGN_EXCHANGE_AUDIENCE=openvibe.ai
47# DESIGN_EXCHANGE_SCOPE=exchange.search.icons
48# DESIGN_EXCHANGE_TIMEOUT_MS=5000
49# EXCHANGE_SEARCH_KEY=
50# Three explicit provider:model slots; unset pins AI's generate-route offers (fewer than three falls back to its pool).
51# DESIGN_ARENA_MODELS=shared:gpt-5-mini,local:qwen2.5
52
53# OpenVibe.Billing: the person's Balance for the create estimate, read with their own token. A missing
54# service leaves the Balance unknown, never zero.
55OV_BILLING_INTERNAL_URL=http://127.0.0.1:4600
56# DESIGN_BILLING_TIMEOUT_MS=3000
57
58# OpenVibe.Media: a starting picture is uploaded there and named by its id; this is the public file origin.
59# OV_MEDIA_PUBLIC_ORIGIN=https://openvibe.media
60
61# OpenVibe.Bench owns new Arena rounds, entries, votes and boards.
62OV_BENCH_INTERNAL_URL=http://127.0.0.1:5230
63# OV_BENCH_URL=https://bench.openvibe.services
64# DESIGN_BENCH_AUDIENCE=openvibe.bench
65# DESIGN_BENCH_SCOPE=bench.task.create bench.round.create bench.round.read bench.judgement.cast bench.entry.create bench.board.read
66
67# Design Studio part B: AI edits allowed per design (each accepted chat edit is one paid AI run).
68# DESIGN_CHAT_EDITS_PER_DESIGN=5
69
70# Legacy Arena settings retained for compatibility; Bench enforces active round limits and runs generation.
71# DESIGN_ARENA_PER_DAY=3
72# DESIGN_ARENA_DAILY=20
73# DESIGN_ARENA_JOB_INTERVAL_MS=1500
74# The drill flag controls other Design background work.
75# DESIGN_DRILL=0
76
77# OpenVibe.Events → this service for ADR-033 account export/deletion; unset turns the route off (503).
78# DESIGN_EVENTS_SECRET=
79# DESIGN_EVENTS_URL=
80# DESIGN_EVENTS_ENDPOINT=
81
82# Drawing an icon without signing in (plan L50 step 5): caps a day per guest, per address and for all guests.
83DESIGN_GLYPH_GUEST_PER_DAY=2
84DESIGN_GLYPH_GUEST_PER_ADDRESS=4
85DESIGN_GLYPH_GUEST_DAILY=25
86# Cloudflare Turnstile on the guest form: on only when both are set (the site key is public, the secret is not).
87DESIGN_TURNSTILE_SITE_KEY=
88DESIGN_TURNSTILE_SECRET=
89
90# Publishing tokens (D11 owner settings): the admin panel's design.publishing namespace wins; this is
91# the fallback when no value was entered there.
92#FIGMA_TOKEN=
93