# 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. → .env..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//actions/runners/registration-token`. FORGEJO_HOST=http://forge.black.lan FORGEJO_ORG=magicciv FORGEJO_RUNNER_TOKEN= # required for `./run setup: --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