magicciv/.env.example
Natalie c88e136469 fix(@projects): 🐛 update deployment and guide workflows
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 03:38:03 -07:00

68 lines
3.5 KiB
Text

# Magic Civilization — environment template.
#
# Copy to `.env.local` and fill in the secret values. `.env.local` is
# gitignored so your secrets stay out of git. The loader in
# `scripts/run/common.sh` cascades:
#
# .env → .env.local → .env.<mode> → .env.<mode>.local
#
# Variables already set in your shell always win over every file.
# Only keys with a SECRET value belong in .env.local; non-secret
# defaults (hostnames, paths) stay in the tracked `.env`.
# ── Forgejo forge ──────────────────────────────────────────────────
# HOST and ORG ship in the tracked `.env`. The runner token is per-host
# and ephemeral — mint via forge UI or `POST /api/v1/orgs/<org>/actions/runners/registration-token`.
FORGEJO_HOST=http://forge.black.lan
FORGEJO_ORG=magicciv
FORGEJO_RUNNER_TOKEN= # required for `./run setup:<os> --with-runner`
FORGEJO_RELEASE_TOKEN= # required for `.forgejo/workflows/release.yml` — PAT w/ write:repository
# ── Two-host workflow (edit host → run host) ───────────────────────
# These ship in tracked `.env` — override in .env.local only if your
# dev machine differs from the canonical mapping.
AUTOPLAY_HOST=lilith@apricot.lan
PROJECT_ROOT_REMOTE=~/Code/@projects/@magic-civilization
REMOTE_RUNNER=~/bin/run_ap3.sh
SCREENSHOT_HOST=natalie@plum.lan
# ── Dev-guide deploy (p1-15, tourguide) ────────────────────────────
# rsync target for `./run deploy:guide:next`. The host-nginx vhost for
# mc.next.black.lan bind-mounts the deploy path read-only. See
# .project/objectives/p1-15-guide-next-deploy-infra.md for the runbook.
NEXT_DEPLOY_HOST=lilith@black.lan
NEXT_DEPLOY_PATH=/bigdisk/next/mc/
# ── Guide resource / simulator paths (p2-21, tourguide) ────────────
# Relative to the repo root. Consumed by
# public/games/age-of-dwarves/guide/tools/bake-simcache.ts and any
# other script that needs the climate-sim inputs without hardcoding
# the subdirectory layout.
GUIDE_RESOURCES_DIR=public/resources
GUIDE_TERRAIN_DIR=public/resources/tiles
GUIDE_CLIMATE_PARAMS=public/resources/worlds/earth/climate_params.json
# ── Game runtime flags (read by Godot `EnvConfig` autoload) ────────
# These are tracked in `.env.development` / `.env.production` and
# deployed with the build via `scripts/run/remote.sh`. Override here
# only for per-developer experimentation.
# FORCE_DISABLE_FOGOFWAR=false
# FORCE_UNLIMITED_RESEARCH=false
# ── Batch runner resource policy (scripts/apricot-run.sh) ──────────
# USE_MAX_CORES=true → PARALLEL defaults to `nproc` on the RUN host
# (saturates CPU). Games still respect their own
# per-instance single-core cost; this controls
# how many games run concurrently.
# USE_MAX_CORES=false → PARALLEL defaults to MIN_CORES below (safe for
# shared / laptop hosts).
# An explicit PARALLEL=N in the caller's environment ALWAYS wins over
# both of the above.
USE_MAX_CORES=false
MIN_CORES=4
# AI_GPU_ROLLOUT=true routes MCTS rollouts through the WGSL compute
# kernel when an adapter is available. Smoke/clan batches flip this on
# by default in scripts/apricot-run.sh. `gpu-walltime` mode overrides
# per iteration (explicitly runs both true and false for comparison).
# AI_GPU_ROLLOUT=true