openvibers/openvibe.shoes .env.example
.env.example
| 1 | # OpenVibe.Shoes — environment (production: /etc/openvibe/shoes.env). Names only; never commit values. |
| 2 | |
| 3 | NODE_ENV=production |
| 4 | PORT=5180 |
| 5 | HOST=127.0.0.1 |
| 6 | BASE_URL=https://open.shoes |
| 7 | TRUST_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. |
| 11 | DATABASE_URL= |
| 12 | DATABASE_DIRECT_URL= |
| 13 | VALKEY_URL= |
| 14 | VALKEY_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. |
| 20 | OV_NETWORK_URL=https://openvibe.network |
| 21 | OV_NETWORK_INTERNAL_URL=http://127.0.0.1:4000 |
| 22 | # OV_NETWORK_ISSUER=https://openvibe.network |
| 23 | OV_OAUTH_CLIENT_ID=shoes |
| 24 | OV_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). |
| 32 | SHOES_EVENTS_SECRET= |
| 33 | SHOES_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. |
| 38 | SHOES_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"}] |
| 50 | SHOES_DROPS_URL=https://www.nike.com/launch |
| 51 | SHOES_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. |
| 54 | SHOES_EBAY_CLIENT_ID= |
| 55 | SHOES_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). |
| 62 | SHOES_WATCH_URL=https://openvibe.watch |
| 63 | SHOES_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). |
| 67 | SHOES_TODAY_URL=https://openvibe.today |
| 68 | SHOES_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 |