openvibers/openvibe.shoes .env.example

.env.example

main 3.1 KB · 80 lines · plaintext

1# OpenVibe.Shoes — environment (production: /etc/openvibe/shoes.env). Names only; never commit values.
2
3NODE_ENV=production
4PORT=5180
5HOST=127.0.0.1
6BASE_URL=https://open.shoes
7TRUST_PROXY=2
8# PostgreSQL (ADR-035), written by OpenVibe.Host roles/data/add-service.sh: the runtime role through PgBouncer,
9# the owner on a direct connection (migrations), and Valkey (shared limit counters).
10# Without DATABASE_URL, development uses an embedded PGlite database in data/pglite.
11DATABASE_URL=
12DATABASE_DIRECT_URL=
13VALKEY_URL=
14VALKEY_PREFIX=ov:shoes:
15# Per-address limits (server/app.js).
16#SHOES_API_RATE_LIMIT_PER_MIN=240
17#SHOES_RATE_LIMIT_PER_MIN=300
18
19# OpenVibe.Network: SSO (OAuth client `shoes`, PKCE S256) and its JWKS.
20OV_NETWORK_URL=https://openvibe.network
21OV_NETWORK_INTERNAL_URL=http://127.0.0.1:4000
22# OV_NETWORK_ISSUER=https://openvibe.network
23OV_OAUTH_CLIENT_ID=shoes
24OV_OAUTH_CLIENT_SECRET=
25# OV_OAUTH_REDIRECT_URI=https://open.shoes/auth/callback
26# SHOES_AUDIENCE=open.shoes
27# OV_SESSION_AUDIENCE=openvibe.network
28# SHOES_PGLITE_DIR=./data/pglite
29
30# OpenVibe.Events: account export/deletion deliveries to POST /internal/events. The secret signs a delivery
31# (comma-separated for rotation, 32+ characters each; unset makes the route answer 503).
32SHOES_EVENTS_SECRET=
33SHOES_EVENTS_URL=
34#SHOES_EVENTS_ENDPOINT=http://127.0.0.1:5180/internal/events
35#SHOES_EVENTS_INTERVAL_MS=5000
36
37# The sources the jobs read. OpenVibe.Deals' public API needs no key.
38SHOES_DEALS_URL=https://openvibe.deals
39# How many newest offer pages per run (25 offers a page; 20 pages = 500 offers).
40#SHOES_OFFERS_PAGES=20
41# How many product lookups per run (the public product record gives the brand).
42#SHOES_PRODUCT_LOOKUPS=300
43#SHOES_STALE_HOURS=48
44#SHOES_UPSTREAM_TIMEOUT_MS=15000
45# A polite gap between reads of the public source, in milliseconds (0 turns it off).
46#SHOES_REQUEST_GAP_MS=250
47
48# The official release calendar (a brand's or a store's own page), and optional RSS feeds as a JSON array:
49# SHOES_DROP_FEEDS=[{"url":"https://example.com/releases.rss","name":"Example releases","type":"rss"}]
50SHOES_DROPS_URL=https://www.nike.com/launch
51SHOES_DROPS_SOURCE_NAME=Nike SNKRS launch calendar
52
53# eBay's official Browse API: off unless both are set. Never commit the pair; production reads it from this file.
54SHOES_EBAY_CLIENT_ID=
55SHOES_EBAY_CLIENT_SECRET=
56#SHOES_EBAY_MARKETPLACE=EBAY_US
57#SHOES_EBAY_CATEGORY_ID=93427
58#SHOES_EBAY_LIMIT=50
59
60# OpenVibe.Watch: a watch is created with the signed-in person's own Network token. Without one the watch is saved
61# on Shoes and marked "not connected" (a plain note, never an error).
62SHOES_WATCH_URL=https://openvibe.watch
63SHOES_WATCH_INTERNAL_URL=http://127.0.0.1:4730
64#SHOES_WATCH_EVERY_SEC=21600
65
66# OpenVibe.Today: the drops calendar's reminders (the person's own Network token is the Bearer).
67SHOES_TODAY_URL=https://openvibe.today
68SHOES_TODAY_INTERNAL_URL=http://127.0.0.1:5100
69
70# Job intervals (off under SHOES_DRILL=1).
71#SHOES_OFFERS_INTERVAL_MS=1800000
72#SHOES_DROPS_INTERVAL_MS=21600000
73#SHOES_EBAY_INTERVAL_MS=3600000
74
75# A restore drill starts no jobs and creates no subscriptions.
76#SHOES_DRILL=0
77
78# optional: defaults to true in production
79# COOKIE_SECURE=true
80