# GOA regio-ng lab (koopa) — empty → restore Operator path for live GOA on `goa-regio-ng` (ports 9010–9015 via pasta). 1. Empty image SoT: `localhost/goa-regio-ng:empty-current` (do **not** commit a restored CTR as empty). 2. Bak: `~/backups/goa/current` on koopa. 3. Copy helpers to `/tmp/` on koopa (or use `~/goa-regio-ng-scripts/`), then run `./goa-all-in-one.sh` (recreate from empty → restore → probes). 4. Helpers: `goa-vanilla-restore-do.sh`, `goa-pg-acl-fixup.sh`, `goa-wire-post-restore.sh` (hosts `*.goa.local`, nginx bank proxy → `:9012`, `taler-exchange-dbconfig -p -s`, wirewatch/transfer `-a exchange-account-default` drop-ins). Restore calls the wire helper after core units are up and requires wirewatch active. 5. Ansible SoT is laptop `taler-deployment` branch `dev/hernani/goa-regio-ng-vanilla` (lab inventory: `configs/lab-local/goa-regio-ng-koopa.yml`). koopa has no git.taler.net deploy key — rsync/copy tip when needed. 6. Host landings 9013–9015 + Caddy stay outside the CTR; deploy from `~/goa-landing-deploy`. Greenfield Ansible `site.yml` on a fresh host is separate; this tree covers the verified restore bring-up.