doxa-maps/.env.example
Doxa Maps 490dfd1f8c The table is development and main is production: the joining page, DEPLOY and the laptop sync follow it
The joining page now teaches laptop (the workshop), development (the table everyone lands on, followed by the
shared dev server) and main (production: /cdn, the websites and every partner snippet load it; never pushed to
directly). Its commands pull and push development. Schema is made on a laptop, never in the shared server's
PocketBase screen, whose automatic migration files are lost at the next restart.

DEPLOY: the cloud server follows development and publishes main at /cdn (PRODUCTION_BRANCH=main); publishing
merges development into main; EMBED_BASE_URL makes snippets absolute; /cdn revalidates within 5 minutes. The
drop-in example pointed at a deleted branch and now names research-gallery-drop-in, with a link to running all
three DX-life ways on a laptop.

Laptop sync (DX_SYNC_REMOTE) follows development by default, so teammates' landings arrive before they are
published.
2026-09-29 00:59:13 +00:00

41 lines
3.2 KiB
Text

# .env.example — every local setting, each shown with its DEFAULT.
# A fresh clone needs NONE of this: `bun run dev` works with no .env at all. To change something, copy
# this file to .env (or .env.local, which wins; both are gitignored) and edit only the lines you need.
# An empty value means "use the default".
# ── Maps ─────────────────────────────────────────────────────────────────────────────────────────
# A Mapbox public token (starts with pk.) for the map backgrounds. Empty = no Mapbox background; set
# "provider": "maplibre" on a plugin (or ?provider=maplibre on a page) to draw with MapLibre, no key.
# Production hosts pass the token through profile-config.tk; never bake it into a bundle.
VITE_MAPBOX_TOKEN=
# The data API the maps read when a plugin's profile does not name one (profile apiBaseUrl and a host
# page's window.MAP_APP_API_URL come first). This is the value the maps are built against.
VITE_API_BASE_URL=https://pray.doxa.life
# ── Hot reload from a shared branch (internal/dev-sync-plugin.mjs) ───────────────────────────────
# Empty = OFF: the dev server hot-reloads YOUR local edits only (the default).
# Set to a remote name (origin) or a repo URL (https://…/repo.git) and `bun run dev` fetches every few
# seconds and fast-forwards when this checkout is on that branch with no local edits or commits; otherwise
# it only reports "development is N commits ahead" (in the log and at /api/dev-sync). It never merges over your work.
DX_SYNC_REMOTE=
# The branch to follow. Empty = development (the shared table; main is production).
DX_SYNC_BRANCH=
# Seconds between checks. Empty = 5 (minimum 2).
DX_SYNC_INTERVAL=
# ── PocketBase, the backend for plugins (internal/backend-dev-plugin.mjs) ────────────────────────
# Empty = a LOCAL PocketBase: `bun run dev` downloads the pinned binary once (checksum-verified) and
# serves it at /api/pb, admin UI /api/pb/_/, data in .pb/dev (gitignored). Nothing leaves this computer.
# Set to a PocketBase root (e.g. https://<your team's dev server>/pb) to use a shared team one instead.
DX_PB_URL=
# The local PocketBase's port. Empty = 8090 (change it only if the log says the port is in use).
DX_PB_PORT=
# ── Rudder, voice to text (backend/rudder-engine) ────────────────────────────────────────────────
# These are read from the SHELL ENVIRONMENT, not from this file (e.g. `RUDDER_PORT=6193 bun run dev`).
# Rudder runs when its engine is built: install Go 1.22+ and run `bash backend/rudder-engine/setup-runtime.sh`.
# RUDDER_ENGINE 0 = never start the engine here (default: start it if it is built)
# RUDDER_PORT the engine's port (default 5193)
# RUDDER_NEMO_PORT the speech server's port (default 5194)
# RUDDER_HOME where the runtime and model live (default ~/.local/share/rudder)
# RUDDER_LANG the default language (default en-US)