2026-07-11 00:29:47 +00:00
|
|
|
# Copy to /etc/thermograph.env on the VPS and edit.
|
|
|
|
|
# Read by the systemd unit (EnvironmentFile).
|
|
|
|
|
|
|
|
|
|
# Port uvicorn binds on loopback. Caddy proxies to this. Keep 8137 unless it clashes.
|
|
|
|
|
PORT=8137
|
|
|
|
|
|
|
|
|
|
# Base path the app is served under.
|
2026-07-15 19:58:32 +00:00
|
|
|
# / -> app at the domain root (Thermograph owns the whole domain —
|
|
|
|
|
# this is what the Caddyfile expects: thermograph.org proxies "/")
|
2026-07-11 03:01:16 +00:00
|
|
|
# /thermograph -> app under a sub-path (share the host with other apps, e.g. a
|
2026-07-15 19:58:32 +00:00
|
|
|
# portfolio at the root)
|
|
|
|
|
THERMOGRAPH_BASE=/
|
2026-07-16 18:08:09 +00:00
|
|
|
|
|
|
|
|
# --- SEO: search-engine verification + IndexNow ---------------------------------
|
|
|
|
|
# Ownership-verification tokens, rendered as <meta> tags in every page's <head>.
|
|
|
|
|
# Google Search Console → add property https://thermograph.org → "HTML tag" method
|
|
|
|
|
# → paste just the content="…" value below. (Or verify via DNS TXT and skip this.)
|
|
|
|
|
#THERMOGRAPH_GOOGLE_VERIFY=
|
|
|
|
|
# Bing Webmaster Tools → add site → "HTML Meta Tag" (msvalidate.01) → paste the
|
|
|
|
|
# content value. (Bing can also import verification from Google Search Console.)
|
|
|
|
|
#THERMOGRAPH_BING_VERIFY=
|
|
|
|
|
|
|
|
|
|
# IndexNow key (Bing/DuckDuckGo/Yandex instant re-crawl). Auto-generated to
|
|
|
|
|
# data/indexnow_key.txt on first use; set here to pin a specific key.
|
|
|
|
|
#THERMOGRAPH_INDEXNOW_KEY=
|
2026-07-16 20:38:59 +00:00
|
|
|
# Public site URL for IndexNow. The deploy hook auto-pings IndexNow after a
|
|
|
|
|
# successful deploy, but only when the URL set changed (a new/removed city), so
|
|
|
|
|
# code-only deploys don't resubmit. `make indexnow` forces a full submit.
|
2026-07-16 18:08:09 +00:00
|
|
|
THERMOGRAPH_BASE_URL=https://thermograph.org
|
2026-07-17 00:12:14 +00:00
|
|
|
|
|
|
|
|
# --- Web Push (VAPID) -----------------------------------------------------------
|
|
|
|
|
# Keys that sign push notifications. If unset, the app generates a pair into
|
|
|
|
|
# data/vapid.json on first run — fine as long as that file PERSISTS (it lives in the
|
|
|
|
|
# writable data dir and survives deploys). PIN them here to be safe: if the keys ever
|
|
|
|
|
# change, every existing browser subscription silently stops receiving (the push
|
|
|
|
|
# service rejects with 401/403), and users must toggle alerts off/on to re-subscribe.
|
|
|
|
|
# Generate a pair: cd backend && ../.venv/bin/python -c "import push,json; k=push._generate(); print('PRIVATE=',k['private_key']); print('PUBLIC=',k['public_key'])"
|
|
|
|
|
#THERMOGRAPH_VAPID_PRIVATE_KEY=
|
|
|
|
|
#THERMOGRAPH_VAPID_PUBLIC_KEY=
|
|
|
|
|
# Contact (mailto: or https URL) sent to push services in the VAPID claim.
|
|
|
|
|
#THERMOGRAPH_VAPID_CONTACT=mailto:you@example.com
|