openvibers/openvibe.tours .env.example
.env.example
| 1 | # OpenVibe.Tours — copy to /etc/openvibe/tours.env in production; never commit the real file. |
| 2 | NODE_ENV=production |
| 3 | PORT=5170 |
| 4 | HOST=127.0.0.1 |
| 5 | BASE_URL=https://openvibe.tours |
| 6 | |
| 7 | # PostgreSQL (ADR-035): DATABASE_URL serves, DATABASE_DIRECT_URL migrates with the owner role. |
| 8 | DATABASE_URL=postgres://openvibe_tours:[email protected]:6432/openvibe_tours |
| 9 | DATABASE_DIRECT_URL=postgres://openvibe_tours:[email protected]:5432/openvibe_tours |
| 10 | VALKEY_URL=redis://127.0.0.1:6379 |
| 11 | VALKEY_PREFIX=ov:tours: |
| 12 | |
| 13 | # OpenVibe.Network: OAuth client tours + the session JWKS. |
| 14 | OV_NETWORK_URL=https://openvibe.network |
| 15 | OV_NETWORK_INTERNAL_URL=http://127.0.0.1:4000 |
| 16 | OV_NETWORK_ISSUER=https://openvibe.network |
| 17 | OV_OAUTH_CLIENT_ID=tours |
| 18 | OV_OAUTH_CLIENT_SECRET= |
| 19 | OV_OAUTH_REDIRECT_URI=https://openvibe.tours/auth/callback |
| 20 | OV_SESSION_AUDIENCE=openvibe.network |
| 21 | TOURS_AUDIENCE=openvibe.tours |
| 22 | COOKIE_SECURE=true |
| 23 | |
| 24 | # Account export/deletion delivery from OpenVibe.Events (32+ chars, comma-separated for rotation). |
| 25 | TOURS_EVENTS_SECRET= |
| 26 | TOURS_EVENTS_URL=https://openvibe.events |
| 27 | TOURS_EVENTS_ENDPOINT= |
| 28 | TOURS_EVENTS_SCOPE=events.subscription.manage |
| 29 | |
| 30 | # The public APIs and open data the jobs read (all keyless). |
| 31 | OV_LIVE_URL=https://openvibe.live |
| 32 | OV_LIVE_PUBLIC_URL=https://openvibe.live |
| 33 | OV_VIDEO_PUBLIC_URL=https://openvibe.video |
| 34 | OV_RENT_URL=https://openvibe.rent |
| 35 | OV_RENT_PUBLIC_URL=https://openvibe.rent |
| 36 | OV_WIKIVOYAGE_URL=https://en.wikivoyage.org |
| 37 | OV_WIKIDATA_URL=https://www.wikidata.org |
| 38 | OV_WIKIPEDIA_URL=https://en.wikipedia.org |
| 39 | OV_COMMONS_URL=https://commons.wikimedia.org |
| 40 | OV_OVERPASS_URL=https://overpass-api.de/api/interpreter |
| 41 | |
| 42 | # Identify every OpenStreetMap request; pace each host; bound each city query by radius. |
| 43 | TOURS_USER_AGENT=OpenVibeTours/0.1 (+https://openvibe.tours; [email protected]) |
| 44 | TOURS_OSM_EMAIL= |
| 45 | TOURS_MIN_INTERVAL_MS=1100 |
| 46 | TOURS_OSM_RADIUS_M=3500 |
| 47 | TOURS_OSM_MAX_PER_CITY=80 |
| 48 | TOURS_CITY_LIMIT=100 |
| 49 | TOURS_WIKIVOYAGE_DISTRICTS=2 |
| 50 | TOURS_UPSTREAM_TIMEOUT_MS=60000 |
| 51 | TOURS_OSM_CITIES_PER_RUN=10 |
| 52 | |
| 53 | # Source jobs: off under TOURS_DRILL; each has its own refresh interval. |
| 54 | TOURS_JOBS=on |
| 55 | TOURS_JOBS_INTERVAL_MS=21600000 |
| 56 | TOURS_CITIES_INTERVAL_MS=86400000 |
| 57 | TOURS_PLACES_INTERVAL_MS=604800000 |
| 58 | TOURS_ROUTES_INTERVAL_MS=604800000 |
| 59 | TOURS_LIVE_INTERVAL_MS=120000 |
| 60 | TOURS_STAYS_INTERVAL_MS=21600000 |
| 61 | |
| 62 | # Flights: no key in v1. The form links the official airline-neutral search. A key alone leaves the seam off until |
| 63 | # an adapter exists; never put a real key in this file in git. |
| 64 | TOURS_FLIGHTS_SEARCH_URL=https://www.google.com/travel/flights |
| 65 | TOURS_DUFFEL_API_KEY= |
| 66 | TOURS_KIWI_API_KEY= |
| 67 | |
| 68 | # Limits. |
| 69 | TOURS_RATE_LIMIT_PER_MIN=300 |
| 70 | TOURS_API_RATE_LIMIT_PER_MIN=240 |
| 71 | TOURS_LIMITS_MINUTE=120 |
| 72 | TOURS_LIMITS_HOUR=3000 |
| 73 | |
| 74 | # Development only: embedded PGlite directory when DATABASE_URL is unset. |
| 75 | TOURS_PGLITE_DIR= |
| 76 |