| 15 |
15 |
|
| `post-receive` | git remote | Push-to-deploy hook. |
|
| 16 |
16 |
|
| `sandod-backup-fetch.{service,timer}` | Sando host | Daily pull of the prod backup to `/srv/sando/backups/latest.sql.gz` (04:00 UTC). |
|
| 17 |
17 |
|
| `mnw-testnot-seed.{sh,service}` | Sando host | Reset testnot.work to the fabricated example catalog (`--seed-examples`). On-demand, not scheduled. |
|
| 18 |
|
- |
| `mnw-testnot-refresh.{sh,service,timer}` | Sando host | Prod-restore refresh of testnot (05:00 UTC). **Superseded by the seed flow; kept for rollback.** |
|
| 19 |
18 |
|
| `sando-update@.service` + `sando-self-update.sh` | Sando host | Self-update: rebuild + restart `sandod` to a target sha. |
|
| 20 |
19 |
|
| `10-sando-update.rules` | Sando host | polkit grant letting the `sando` user start (only) `sando-update@*`. |
|
| 21 |
20 |
|
| `install-companion.sh` | a deploy target | Install a staged companion binary + restart its unit (companion services). |
|
| 146 |
145 |
|
sudo systemctl daemon-reload
|
| 147 |
146 |
|
```
|
| 148 |
147 |
|
|
| 149 |
|
- |
Cutover (prod-mirror → example catalog):
|
| 150 |
|
- |
|
| 151 |
|
- |
```sh
|
| 152 |
|
- |
sudo /usr/local/bin/mnw-testnot-seed.sh # reseed the box
|
| 153 |
|
- |
sudo systemctl disable --now mnw-testnot-refresh.timer # stop the daily prod restore
|
| 154 |
|
- |
```
|
| 155 |
|
- |
|
| 156 |
|
- |
Reset testnot any time afterward: `sudo /usr/local/bin/mnw-testnot-seed.sh`
|
|
148 |
+ |
Reset testnot any time: `sudo /usr/local/bin/mnw-testnot-seed.sh`
|
| 157 |
149 |
|
(or `sudo systemctl start mnw-testnot-seed.service`).
|
| 158 |
150 |
|
|
| 159 |
|
- |
**Rollback** to the prod-mirror flow: `sudo systemctl enable --now
|
| 160 |
|
- |
mnw-testnot-refresh.timer` (its units are kept installed), then run
|
| 161 |
|
- |
`sudo /usr/local/bin/mnw-testnot-refresh.sh` once to reload from the backup.
|
|
151 |
+ |
The seed flow is the only way testnot gets its data. The prod-restore refresh it
|
|
152 |
+ |
replaced was deleted on 2026-07-22; testnot holds no prod-derived data and there
|
|
153 |
+ |
is no path that puts any there.
|
| 162 |
154 |
|
|
| 163 |
155 |
|
**Redeploy the binary** (no Sando integration yet — manual): build the release
|
| 164 |
156 |
|
on the Sando host, then over Tailscale SSH as root on the target, copy the
|