# Fiesta configuration. # # Copy to `.env` and fill in. `.env` and `.env.*` are gitignored (the one # exception is this file) — and they are gitignored for a reason: this # repository's history already contains a committed `.env` from before # 2026-08-03, so those database credentials are in the history and should be # rotated. Do not add another. # # `godotenv.Load()` in main.go reads `.env` from the working directory, so # `go run .` from this folder picks it up with no flags. # ── Where it listens ──────────────────────────────────────────────────────── # 1122 is what production serves on. Change it locally to run a second copy # beside something else; the console then points at the same number. APP_PORT=1122 ENV=development # ── The main database (nearledb) ──────────────────────────────────────────── # # ⚠️ POINTING THIS AT PRODUCTION MAKES LOCAL TESTING WRITE TO PRODUCTION. # # There is no "local mode" that protects you: `go run .` against the live host # creates real tenants, real logins and real stock movements, and main.go runs # schema migrations on boot. If the point of running locally is to try a change # before it is deployed, a local Postgres with a dump restored into it is the # only version that actually does that. # These match docker-compose.local.yml, so `docker compose -f # docker-compose.local.yml up -d` and `go run .` work together with no edits. DB_HOST=localhost DB_PORT=5433 DB_NAME=nearledb DB_USER=nearle DB_PASSWORD=localdev # ── The catalogue database (pgvector) ─────────────────────────────────────── # # A separate connection on purpose, so catalogue work never touches nearledb. # Leave blank to start without it: catalogue endpoints then fail at query time # rather than at boot, which is fine for testing anything else. # 5434, not 5432: a developer machine usually has something on 5432 already, # and a silent connection to the wrong database is worse than a refused one. CATALOGUE_DB_HOST=localhost CATALOGUE_DB_PORT=5434 CATALOGUE_DB_NAME=cataloguedb CATALOGUE_DB_USER=nearle CATALOGUE_DB_PASSWORD=localdev # ── Redis — POS terminal presence, under a TTL ────────────────────────────── # # Optional. Losing the health board is an inconvenience; losing a sale is not, # so the API runs without it. # Set to enable POS terminal presence. The local compose publishes redis on # 6379, so localhost is all it needs; leave blank to run without it. REDIS_HOST=localhost REDIS_PORT=6379 REDIS_USER= REDIS_DB=0 # ── Auth ──────────────────────────────────────────────────────────────────── JWT_SECRET_KEY= USER_CONTEXT_KEY=