docs: [nomad-step-6] S6 — cutover runbook from docker-compose to Nomad+Vault #1037
Labels
No labels
action
backlog
blocked
bug-report
cannot-reproduce
in-progress
in-triage
needs-triage
prediction/actioned
prediction/dismissed
prediction/unreviewed
priority
rejected
reproduced
tech-debt
underspecified
vision
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: disinto-admin/disinto#1037
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Factory migration from docker-compose (
disinto-dev-box@ 10.10.10.67) to Nomad+Vault (disinto-nomad-box@ 10.10.10.216).Steps 0–5 verified via
./bin/disinto init --backend=nomad --import-env /tmp/.env --with edgeon a wiped LXC. Step 6 is docs-only: the cutover runbook from live docker-compose to live Nomad.Scope
Produce a runbook covering:
1. Pre-cutover readiness checklist
deploy.shtimeout extended past 240s for chat (cold-start observed ~200–270s)2. Data migration matrix
Map each docker-compose named volume → Nomad host volume under
/srv/disinto/*:disinto_forgejo-data/srv/disinto/forgejodocker cp+ rsync, then chown to forgejo uiddisinto_woodpecker-data/srv/disinto/woodpecker-serverdisinto_caddy_data/srv/disinto/caddy-datadisinto_chat-config/srv/disinto/chatdisinto_project-repos*/srv/disinto/agents-reposdisinto_agent-data*/srv/disinto/agents-datadisinto_llama-datadisinto_disinto-logs/srv/disinto/logsOpen questions:
gitea.com/forgejo/forgejo:X.Ytag matches.3. Secrets migration
.envon dev-box already imported viatools/vault-import.shduring step 2 verification.Recommend (a) unless user sessions must survive cutover.
4. Cutover sequence (production box)
docker-compose stop(keep volumes mounted)tar -czf /srv/backup-pre-cutover-$(date +%Y%m%d).tar.gz /var/lib/docker/volumes/disinto_*/srv/disinto/*(see matrix above)lib/init/nomad/install.sh,systemd.sh)./bin/disinto init --backend=nomad --import-env /root/.env --with edge(imports .env, seeds vault, deploys all jobs)self.disinto.ai→ new port (or keep port identical if reusing dev-box)/etc/systemd/system/reverse-tunnel.service)curl https://self.disinto.ai/(forgejo), CI pipeline on a test PR, chat login5. Rollback plan
If Nomad stack fails to come up healthy within 30 min:
nomad system gc && systemctl stop nomad vaultdocker-compose up -don dev-box (volumes unchanged)/opt/nomad/data/alloc/*/alloc/logs/Rollback-safe because step 3 snapshots volumes before any writes.
6. Post-cutover cleanup
docker system prune -a, remove docker-compose from systemd if unit existsdisinto_*named volumesproject_nomad_migration.mdmemory: mark step 6 done, remove "cutover pending" linesBlockers (must close before executing this runbook)
127.0.0.1:3000— unreachable from bridge networkMissing: vault.read(kv/data/disinto/bots/vault)template error on fresh initlib/init/nomad/deploy.shAcceptance
docs/nomad-cutover-runbook.md