openvibers/openvibe.tips .env.example

.env.example

main 5.8 KB · 106 lines · plaintext

1# ═══════════════════════════════════════════════════════════════
2# openvibe.tips — Environment Configuration
3# Copy to .env for development. In production this lives at /etc/openvibe/tips.env (0600).
4# Names only here; never commit a value.
5# ═══════════════════════════════════════════════════════════════
6
7# Server
8PORT=4610
9HOST=127.0.0.1
10NODE_ENV=development
11BASE_URL=http://localhost:4610
12TRUST_PROXY=1
13
14# ── Data: PostgreSQL + Valkey (ADR-035) ──────────────────────
15# In production OpenVibe.Host writes all four (sudo /opt/openvibe.host/roles/data/add-service.sh tips).
16# DATABASE_URL: the runtime role through PgBouncer (transaction mode; DML only). Unset in development:
17# an embedded PGlite database in data/pglite (one process). Tests need neither (PGlite, or the containers
18# of node_modules/openvibe-sdk/scripts/test-services.sh).
19DATABASE_URL=
20# DATABASE_DIRECT_URL: the owner role on a direct connection, for the migrations at boot.
21DATABASE_DIRECT_URL=
22# VALKEY_URL: shared, never authoritative state (per-actor limits, overlay fan-out and stream slots).
23# Unset: kept in each process, right for one process only.
24VALKEY_URL=
25VALKEY_PREFIX=ov:tips:
26
27# ── Identity: OpenVibe.Network ──────────────────────────────
28OV_NETWORK_URL=https://openvibe.network
29OV_NETWORK_INTERNAL_URL=http://127.0.0.1:4000
30#OV_NETWORK_ISSUER=https://openvibe.network
31# Optional: pin the Network's RS256 public key (PEM, \n escaped) instead of fetching the JWKS.
32#OV_NETWORK_PUBLIC_KEY=
33# Audience Tips accepts on incoming service tokens.
34TIPS_AUDIENCE=openvibe.tips
35# Tips' client in the Network (client `tips`): browser sign-in (redirect ${BASE_URL}/auth/callback)
36# and client-credentials tokens for Billing, Events, Live and Network.
37OV_OAUTH_CLIENT_ID=tips
38OV_OAUTH_CLIENT_SECRET=
39#OV_OAUTH_REDIRECT_URI=https://openvibe.tips/auth/callback
40#COOKIE_SECURE=true
41# Signs the anti-forgery tokens of the server-rendered forms (openssl rand -hex 32). Every process must
42# share it; unset, it is derived from OV_OAUTH_CLIENT_SECRET (and random per process without either).
43TIPS_FORM_SECRET=
44
45# ── OpenVibe.Billing (money moves only there) ───────────────
46BILLING_URL=http://127.0.0.1:4600
47#BILLING_AUDIENCE=openvibe.billing
48# Checkout providers offered on tip pages (must be enabled on Billing).
49# optional: defaults to 'powerchat'
50# TIPS_CHECKOUT_PROVIDERS=powerchat
51# Billing's minimum purchase in bits; smaller tips can only be paid from a Vibes balance.
52#TIPS_MIN_CHECKOUT_BITS=100
53# Billing answers a PowerChat intent with a checkout_ref, not a URL. If set, Tips builds the link
54# from it: {ref}, {cents} and {bits} are replaced. Without it the receipt says no link is available.
55#TIPS_POWERCHAT_LINK_TEMPLATE=
56
57# ── OpenVibe.Events ─────────────────────────────────────────
58# Relay of Tips' outbox (tips.*); off when unset (rows wait in event_outbox).
59#EVENTS_URL=http://127.0.0.1:4300
60#EVENTS_RELAY_INTERVAL_MS=2000
61# Signing secret of Tips' subscription to billing.transaction.* (scripts/subscribe.js hands it to
62# Events). Comma-separated during a rotation. Without it /internal/events answers 503.
63TIPS_EVENTS_SECRET=
64
65# ── Chat delivery ───────────────────────────────────────────
66# chat (OpenVibe.Chat's /internal/chat/messages + /internal/chat/events) | test | none (production default)
67# chat needs the tips principal granted chat.message.send and chat.event.publish (audience openvibe.chat)
68# and identity.subject.resolve (the creator's Live user id is Chat's room).
69#TIPS_CHAT_ADAPTER=none
70#TIPS_CHAT_URL=http://127.0.0.1:4400
71#CHAT_AUDIENCE=openvibe.chat
72#OV_NETWORK_AUDIENCE=openvibe.network
73#TIPS_DELIVERY_MAX_ATTEMPTS=6
74#TIPS_DELIVERY_BACKOFF_MS=2000,10000,60000,300000,900000
75
76# ── Overlays ────────────────────────────────────────────────
77#TIPS_OVERLAY_TTL_MS=600000
78#TIPS_OVERLAY_HEARTBEAT_MS=25000
79#TIPS_OVERLAY_REPLAY_LIMIT=50
80# Open event streams per overlay token (more answer 429)
81#TIPS_OVERLAY_MAX_STREAMS=10
82
83# ── Limits ──────────────────────────────────────────────────
84#TIPS_MAX_BITS=10000000
85#TIPS_MESSAGE_CHARS=300
86#TIPS_TTS_HARD_CAP=1200
87#TIPS_MEDIA_HOSTS=youtube.com,www.youtube.com,m.youtube.com,music.youtube.com,youtu.be
88# Unpaid checkouts one supporter may hold within a day (more answer 429)
89#TIPS_MAX_PENDING_CHECKOUTS=20
90# Per-actor limits on /api/v1 (server/api/actor-limits.js): reads one caller (a service principal,
91# a person, else an address) may make per minute and per hour; past them 429 rate_limited with
92# Retry-After. Payments (20 a minute per person) and other writes have their own numbers (README).
93#TIPS_LIMITS_MINUTE=120
94#TIPS_LIMITS_HOUR=3000
95
96# ── IndexNow ────────────────────────────────────────────────
97# IndexNow (openvibe-shared/indexnow): 8–128 hex/alphanumeric characters. Set: the key file is served
98# at /<key>.txt and a creator's public page appearing, changing or going away pings the engines.
99# Unset: off, nothing is mounted and nothing is sent.
100#INDEXNOW_KEY=
101
102# ── Background jobs: effects worker, due transfers, overlay window, outbox relay ──
103#TIPS_JOBS=on
104#TIPS_JOBS_INTERVAL_MS=2000
105#LIVE_URL=https://openvibe.live
106