ORCH_PLANE_API_URL=http://plane-app-api-1:8000 # External (browser) web URL of Plane for clickable issue links in notifications # (ORCH-017). Falls back to ORCH_PLANE_API_URL; a loopback fallback is treated as # "no web URL" and the Plane link is omitted. Example: https://plane.example.org ORCH_PLANE_WEB_URL= ORCH_PLANE_API_TOKEN= ORCH_PLANE_WORKSPACE_SLUG= ORCH_PLANE_WEBHOOK_SECRET= ORCH_GITEA_URL=http://localhost:3000 ORCH_GITEA_TOKEN= ORCH_GITEA_WEBHOOK_SECRET= ORCH_CLAUDE_BIN=/usr/bin/claude ORCH_REPOS_DIR=/home/slin/repos ORCH_DB_PATH=/app/data/orchestrator.db # ORCH-042: live-tracker mode. edit (DEFAULT) -> the task card is edited in place # (editMessageText). bump -> on every update the old card is deleted and a fresh # one is sent silently to the BOTTOM of the chat (deleteMessage + sendMessage + # repoint). One card per task in both modes. Any value other than "bump" -> edit. ORCH_TRACKER_MODE=edit # ORCH-043: merge-gate (auto-rebase onto current origin/main + re-test + merge-lock) # on the deploy-staging -> deploy edge. Deterministic sub-gate (no LLM) that catches # the branch up to the CURRENT origin/main, re-tests it, and serialises merges so two # green parallel branches can't break main. # ENABLED -> global kill-switch (false -> whole gate is a no-op pass). # REPOS -> CSV of repos where the gate is REAL; empty -> only the self-hosting # repo (orchestrator); other repos -> conditional no-op (mirrors ORCH-35). # RETEST_TIMEOUT_S -> wall-clock budget for the post-rebase re-test. # RETEST_TARGET -> pytest target for the re-test. # LOCK_TIMEOUT_S -> max merge-lease age before a stale lease is reclaimed. # DEFER_DELAY_S -> delay before re-running the gate when the lock is busy. # DEFER_MAX_ATTEMPTS -> defer retries before escalation (avoids livelock). ORCH_MERGE_GATE_ENABLED=true ORCH_MERGE_GATE_REPOS= ORCH_MERGE_RETEST_TIMEOUT_S=600 ORCH_MERGE_RETEST_TARGET=tests/ ORCH_MERGE_LOCK_TIMEOUT_S=300 ORCH_MERGE_DEFER_DELAY_S=60 ORCH_MERGE_DEFER_MAX_ATTEMPTS=5 # ORCH-036: executable self-deploy of the `deploy` stage. For the self-hosting repo # (orchestrator) the stage REALLY restarts prod (8500) via a detached host hook; # deploy_status: SUCCESS means proven health-ok, not an LLM declaration. Three # deterministic phases (A: request approve, B: human Approved -> detached deploy, # C: finalizer maps hook exit-code -> deploy_status). Non-self repos: unchanged # synchronous ssh deploy. SECRETS / host paths live ONLY on the host — do NOT commit. # SELF_DEPLOY_ENABLED -> global kill-switch (false -> legacy synchronous deploy for all). # SELF_DEPLOY_REPOS -> CSV of repos where Phase A/B/C is REAL; empty -> only the # self-hosting repo (orchestrator); others -> no-op (mirrors ORCH-35). # DEPLOY_REQUIRE_MANUAL_APPROVE -> require a human Plane "Approved" before the prod # deploy (true on rollout; full auto is ORCH-54). # DEPLOY_FINALIZE_DELAY_S -> delay before the first/each finalize poll (>= hook+health). # DEPLOY_FINALIZE_MAX_ATTEMPTS -> bounded finalize-defer budget (anti-livelock). # DEPLOY_SSH_USER / DEPLOY_SSH_HOST -> ssh target for the host hook (DEPLOY_SSH_HOST # empty -> detached deploy will NOT launch; set on the host). # DEPLOY_HOOK_SCRIPT -> path to the hook ON THE HOST (relative to the repo). # DEPLOY_HOST_REPO_PATH -> orchestrator clone path on the host. # DEPLOY_PROD_SOURCE_IMAGE -> staging-validated image, retagged build-once (no rebuild). # DEPLOY_PROD_TARGET_SERVICE / _PORT / _IMAGE / _COMPOSE_PROFILE -> prod compose profile. # DEPLOY_PROD_PREV_IMAGE_FILE -> prod prev-image snapshot (separate from staging's). ORCH_SELF_DEPLOY_ENABLED=true ORCH_SELF_DEPLOY_REPOS= ORCH_DEPLOY_REQUIRE_MANUAL_APPROVE=true ORCH_DEPLOY_FINALIZE_DELAY_S=90 ORCH_DEPLOY_FINALIZE_MAX_ATTEMPTS=10 ORCH_DEPLOY_SSH_USER=slin ORCH_DEPLOY_SSH_HOST= ORCH_DEPLOY_HOOK_SCRIPT=scripts/orchestrator-deploy-hook.sh ORCH_DEPLOY_HOST_REPO_PATH=/home/slin/repos/orchestrator ORCH_DEPLOY_PROD_SOURCE_IMAGE=orchestrator-orchestrator-staging ORCH_DEPLOY_PROD_TARGET_SERVICE=orchestrator ORCH_DEPLOY_PROD_TARGET_PORT=8500 ORCH_DEPLOY_PROD_TARGET_IMAGE=orchestrator-orchestrator ORCH_DEPLOY_PROD_COMPOSE_PROFILE= ORCH_DEPLOY_PROD_PREV_IMAGE_FILE=.deploy-prev-image-prod