Commit graph

5 commits

Author SHA1 Message Date
Madhura68
4b2241235e feat(deploy): bin/deploy-to-nas.sh voor één-commando redeploy
Lost terugkerende pijn op: na cross-build op Mac vergeet je makkelijk
de .env mee te nemen of vanuit de juiste directory te starten, met
"FAIL: ... is not set" als gevolg in pre-flight.

Script doet in volgorde:
1. docker buildx build --platform linux/amd64 --load
2. docker save | gzip → scrum4me-agent-runner-amd64.tar.gz
3. scp tarball + compose + (eerste keer) .env naar NAS
4. ssh: docker load + sanity-check op .env + compose up --force-recreate
5. ssh: docker compose logs -f (Ctrl-C om te stoppen)

Bestaande NAS-.env wordt niet overschreven. Eerste deploy patcht de
NAS-paden via sed. Sanity-check faalt expliciet als anthropic-,
SCRUM4ME_- of DATABASE_URL-vars ontbreken — ipv stille pre-flight-fail.

Config via .env.deploy (zit in .gitignore). Voor eerste deploy en
volledige procedure: README "Deploy — cross-build" sectie.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 01:30:22 +02:00
Madhura68
6fb439cbd6 fix(qnap): default host-port 18080 + documenteer cross-build deploy
- docker-compose.yml + package.json: AGENT_HEALTH_PORT_HOST default
  van 8080 -> 18080. QTS-webinterface bezet host-poort 8080; eerdere
  default veroorzaakte een Container-Station retry-loop die de QTS-UI
  onderuit haalde. Container-interne 8080 blijft ongewijzigd.

- README.md: drie nieuwe / uitgebreide secties op basis van een echte
  deploy-sessie op TS-664:
  * "Vereisten op de NAS" verduidelijkt dat /share/Agent een echte
    QTS Shared Folder moet zijn (geen handmatige mkdir op de
    16 MB /share-tmpfs).
  * "Deploy - cross-build vanaf Mac" beschrijft de Apple Silicon ->
    amd64 flow met buildx, docker save | gzip, scp en docker load.
  * "Veelvoorkomende issues" verzamelt de gotchas: tmpfs-share,
    docker not on PATH bij non-interactive ssh (source /etc/profile),
    yaml control-character corruption na halve scp, en .env-loss
    na rm -rf van een corrupt-tmpfs-share.
2026-05-05 19:55:22 +02:00
Scrum4Me Agent
a7933f7420 docs(ST-mmuwreer): README deploy-procedure force-recreate na compose-wijziging
Voeg subsectie toe in "Updaten" die uitlegt dat docker compose restart
niet voldoende is bij volumes/tmpfs/ports-wijzigingen — force-recreate
is verplicht. Inclusief verify-stap met df -h /var/cache.
2026-05-03 18:23:06 +02:00
c090e6c349 feat(bootstrap): GH_TOKEN-based clone of Scrum4Me + scrum4me-mcp
Fixes the 'no GitHub credentials' deadlock observed in the first
NAS-Docker batch run (2 May 2026): scrum4me-mcp's `wait_for_job`
expects a local clone at `~/Projects/<repo-name>` (convention-fallback
in resolveRepoRoot) but the container had no credentials and no clone.
Agent asked the user how to proceed; turn closed without claim.

Changes:
- `.env.example`: GH_TOKEN (fine-grained PAT, repo+PR scope) and
  GH_PRECLONE_REPOS (comma-separated owner/name list, default covers
  Scrum4Me + scrum4me-mcp).
- `bin/repo-bootstrap.sh` (new): runs as agent-user; configures git
  credential-helper with HTTPS oauth2 token, then clones-or-fetches
  each entry in GH_PRECLONE_REPOS into ~/Projects/<name>. Idempotent.
- `bin/entrypoint.sh`: hooks repo-bootstrap before run-agent.sh.
- `Dockerfile`:
  - installs `gh` CLI (used for auto_pr `gh pr create`; reads GH_TOKEN
    from env directly).
  - pre-creates `~agent/Projects` and `~agent/.scrum4me-agent-worktrees`
    so directory-ownership is right from the first boot.
- `README.md`: 'Repo bootstrap (clone-on-start)' section + GH_TOKEN
  step in the deploy checklist; corrects the obsolete 'no push
  credentials' note (agent now pushes feature-branches, gh creates PRs).

Same token covers clone, push and PR-creation — one secret to rotate.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 19:48:57 +02:00
9d8a7fe237 initial: NAS agent runner setup 2026-05-02 15:43:59 +02:00