118 lines
4.9 KiB
Text
118 lines
4.9 KiB
Text
# ============================================================
|
|
# scrum4me-agent-runner — environment configuratie
|
|
# ============================================================
|
|
# Kopieer naar .env en vul in. Houd .env buiten git (zie .gitignore).
|
|
# Permissies: chmod 600 .env
|
|
|
|
# ----- Claude Code authenticatie ----------------------------
|
|
# Genereer op je werkstation met: `claude setup-token`
|
|
# Output is een sk-ant-oat01-... token; geldig 1 jaar; gebruikt
|
|
# je Pro/Max subscription quota in plaats van per-token billing.
|
|
#
|
|
# Alternatief: ANTHROPIC_API_KEY (sk-ant-api03-...) voor pay-per-use
|
|
# via console.anthropic.com. Niet beide tegelijk zetten.
|
|
CLAUDE_CODE_OAUTH_TOKEN=sk-ant-oat01-vervang-mij
|
|
# ANTHROPIC_API_KEY=
|
|
|
|
# ----- Scrum4Me API token -----------------------------------
|
|
# Bearer-token van de DEDICATED agent-user (niet je persoonlijke
|
|
# account). Aanmaken: log in als de agent-user → /settings/tokens
|
|
# → label "NAS-runner". Token wordt eenmalig getoond.
|
|
#
|
|
# Als deze ge-revoked wordt: rebuild + redeploy (zie README).
|
|
SCRUM4ME_TOKEN=vervang-mij
|
|
|
|
# ----- Forgejo credentials (PBI-86 hybride model) -----------
|
|
# Personal Access Token van je Forgejo-account met scope read+write
|
|
# op de Scrum4Me-repos. Variabele heet historisch nog `GH_TOKEN`;
|
|
# in het hybride model bevat 'ie een Forgejo-PAT.
|
|
#
|
|
# Gebruikt voor:
|
|
# 1. Pre-clone van de repos in /home/agent/Projects/<name>/ bij
|
|
# container-start (entrypoint.sh)
|
|
# 2. `git push` van agent feature-branches naar Forgejo via HTTPS
|
|
#
|
|
# `gh pr create` is uit de worker-flow verwijderd (PBI-86, T-1005);
|
|
# de GitHub-PR ontstaat via de handmatig getriggerde promote-Action
|
|
# in Forgejo.
|
|
#
|
|
# Genereer in Forgejo: avatar → Settings → Applications →
|
|
# Generate New Token; scope minimaal `write:repository`.
|
|
GH_TOKEN=vervang-mij
|
|
|
|
# Lijst (komma-gescheiden) van repos om vooraf te clonen naar
|
|
# ~agent/Projects/<name>. resolveRepoRoot in scrum4me-mcp valt
|
|
# automatisch terug op die conventie. `<owner>/<repo>` zoals 'ie op
|
|
# Forgejo staat. Voeg meer toe als je nieuwe producten/repos toevoegt.
|
|
GH_PRECLONE_REPOS=janpeter/Scrum4Me,janpeter/scrum4me-mcp
|
|
|
|
# ----- Git commit-author -------------------------------------
|
|
# Verplicht — Vercel weigert deploys waarvan de commit-author email
|
|
# niet aan een GitHub-account hangt ("commit author email is not
|
|
# valid"). Gebruik de noreply-vorm voor maximale privacy:
|
|
#
|
|
# github.com → Settings → Emails → "Keep my email private"
|
|
# formaat: <user-id>+<username>@users.noreply.github.com
|
|
#
|
|
# Voorbeeld voor madhura68:
|
|
# GIT_AUTHOR_EMAIL=12345678+madhura68@users.noreply.github.com
|
|
GIT_AUTHOR_NAME="Scrum4Me Agent"
|
|
GIT_AUTHOR_EMAIL=vervang-mij@users.noreply.github.com
|
|
|
|
# ----- Scrum4Me database ------------------------------------
|
|
# Beide URLs uit het Neon-dashboard. DATABASE_URL is pooled,
|
|
# DIRECT_URL is unpooled — scrum4me-mcp gebruikt DATABASE_URL
|
|
# voor reads/writes; DIRECT_URL is alleen nodig als je de mcp
|
|
# uitbreidt met LISTEN/NOTIFY (op dit moment niet).
|
|
DATABASE_URL=postgresql://user:pass@host/dbname?sslmode=require
|
|
DIRECT_URL=postgresql://user:pass@host/dbname?sslmode=require
|
|
|
|
# ----- Scrum4Me API host ------------------------------------
|
|
# Voor token-validatie via /api/health en /api/products
|
|
# voorafgaand aan het starten van de daemon-loop. Gebruik je
|
|
# productie-URL.
|
|
SCRUM4ME_BASE_URL=https://scrum4me.example.com
|
|
|
|
# ----- Scrum4Me MCP versie ----------------------------------
|
|
# Pin een specifieke commit-sha of tag van scrum4me-mcp.
|
|
# `main` werkt voor ontwikkeling; in productie altijd vastpinnen.
|
|
MCP_GIT_REF=main
|
|
|
|
# Idem voor Claude Code zelf. `latest` of een specifieke versie.
|
|
CLAUDE_CODE_VERSION=latest
|
|
|
|
# ----- NAS paths --------------------------------------------
|
|
# Basis-share waaronder cache/, logs/ en state/ vallen.
|
|
# Pas aan als je een andere share-naam gebruikt op QNAP.
|
|
NAS_BASE=/share/Agent
|
|
|
|
# UID/GID matchen met de share-eigenaar op QNAP (admin = 1000
|
|
# bij standaard QTS-installatie).
|
|
AGENT_UID=1000
|
|
AGENT_GID=1000
|
|
|
|
# ----- Health endpoint --------------------------------------
|
|
# Externe poort op de NAS waarop /health bereikbaar is.
|
|
# Wijzig als 8080 al in gebruik is door iets anders op QTS.
|
|
AGENT_HEALTH_PORT_HOST=8080
|
|
|
|
# ----- Daemon-loop tuning -----------------------------------
|
|
# Maximum opeenvolgende mislukte batches voordat de container
|
|
# zichzelf "unhealthy" markeert.
|
|
AGENT_MAX_FAILURES=5
|
|
|
|
# Backoff in seconden: start, factor, max
|
|
AGENT_BACKOFF_START=5
|
|
AGENT_BACKOFF_FACTOR=2
|
|
AGENT_BACKOFF_MAX=300
|
|
|
|
# Hoeveel uur logs bewaren voor we comprimeren (gzip).
|
|
AGENT_LOG_GZIP_AFTER_HOURS=24
|
|
# Hoeveel dagen ge-gzipte logs bewaren voor we ze verwijderen.
|
|
AGENT_LOG_DELETE_AFTER_DAYS=30
|
|
|
|
# Claude CLI --output-format. Default 'stream-json' streamt de volledige
|
|
# event-stream (tool-calls, berichten) live naar de run-log; 'text' geeft
|
|
# alleen Claude's eind-samenvatting (terser, maar geen live-meekijken).
|
|
# stream-json maakt de run-log JSONL — gebruik jq of een viewer.
|
|
AGENT_CLAUDE_OUTPUT_FORMAT=stream-json
|