4.7 KiB
OTIVM — Offline Archive InventoryOffline archives are vzdump snapshots of LXC container 1105 (otivm-dev) on srv-a.Each archive is stored in /var/lib/vz/dump/ on srv-a and copied to USB after creation.Before restoring any archive, read the state description carefully.Restoring will overwrite everything on the container — all code, all data, all PM2 state.
The Gitea repo is always the SSOT for code. Archives cover the OS, stack, and configuration.
Archive log
vzdump-lxc-1105-2026_04_25-04_10_53.tar.zst
| Property | Value |
|---|---|
| File | vzdump-lxc-1105-2026_04_25-04_10_53.tar.zst |
| Date | 2026-04-25 04:10 UTC |
| Size | 552 MB |
| Container | LXC 1105 — otivm-dev |
| Host | srv-a (10.0.0.11) |
| Storage | /var/lib/vz/dump/ + USB copy |
Container state at time of archive:
- Debian 12, unprivileged LXC
- 2 cores, 512 MB RAM, 8 GB disk (upgraded to 4 cores, 2 GB RAM on 2026-04-25 after archive)
- LAN IP: 10.0.0.23, WireGuard: 10.110.0.18
- Node.js v22 installed (system)
- Python venv at /home/otivm/venv
serveinstalled globally at /home/otivm/.npm-global/bin/serve- Nginx on wg-pk configured and proxying otium.civicus.us → 10.110.0.18:3000
- SSL active on otium.civicus.us
- otivm user created, bashrc configured,
workalias present - Gitea repo cloned to /home/otivm/OTIVM
- PM2 NOT yet configured at time of this archive
- Vite + React scaffold NOT yet present at time of this archive
What this archive is good for:
Restoring the base OS and software stack if the container is lost or corrupted.
After restore, you must: clone the repo, run npm install, run npm run build,
install serve globally, and start PM2 manually.
Restore command (run on srv-a as root):
pct restore 1105 /var/lib/vz/dump/vzdump-lxc-1105-2026_04_25-04_10_53.tar.zst --force
vzdump-lxc-1105-2026_04_25-07_16_04.tar.zst
| Property | Value |
|---|---|
| File | vzdump-lxc-1105-2026_04_25-07_16_04.tar.zst |
| Date | 2026-04-25 07:16 UTC |
| Size | 759 MB |
| Container | LXC 1105 — otivm-dev |
| Host | srv-a (10.0.0.11) |
| Storage | /var/lib/vz/dump/ + USB copy |
Container state at time of archive:
- All of archive 1 plus:
- Vite + React scaffold present at /home/otivm/OTIVM
npm run buildcompleted — dist/ presentserveinstalled globally at /home/otivm/.npm-global/bin/serve- PM2 configured via ecosystem.config.cjs, running, saved
- PM2 startup configured via systemd unit pm2-otivm.service
- App serving on port 3000, responding HTTP 200
- otium.civicus.us live and serving Vite welcome page over HTTPS
- Gitea repo at commit
6725f11(scaffold) + subsequent config commits
What this archive is good for:
Restoring a fully working serving stack. After restore the app will come up
automatically via PM2 on boot. The game code is not yet present — pull from
Gitea and run npm run build to get the latest game.
Restore command (run on srv-a as root):
pct restore 1105 /var/lib/vz/dump/vzdump-lxc-1105-2026_04_25-07_16_04.tar.zst --force
vzdump-lxc-1105-2026_04_25-12_08_28.tar.zst
| Property | Value |
|---|---|
| File | vzdump-lxc-1105-2026_04_25-12_08_28.tar.zst |
| Date | 2026-04-25 12:08 UTC |
| Size | 791 MB |
| Container | LXC 1105 — otivm-dev |
| Host | srv-a (10.0.0.11) |
| Storage | /var/lib/vz/dump/ + USB copy |
Container state at time of archive:
- All of archive 2 plus:
- OTIVM-I complete and playable at otium.civicus.us
- Fastify backend running — static serving + save API on port 3000
- Save files per player in data/saves/ (gitignored)
- React frontend: App.jsx, Game.jsx, constants.js, gameState.js, api.js
- H3 IDs assigned to all five waypoints — permanent, TESSERA-compatible
- All five trade routes working — Ostia → Capua → Brundisium → Carthago → Alexandria
- Journal entries firing correctly on dispatch milestones
- Otium/negotium mechanic working
- 128 concurrent players supported
- Gitea repo at commit
9ef837d(Game.jsx) + subsequent commits - docs/roadmap.md committed — public, permanent
What this archive is good for:
Restoring OTIVM-I in its complete, playable state. This is the baseline before OTIVM-II map work begins. If OTIVM-II development breaks something fundamental, restore this archive and start OTIVM-II again from the Gitea repo at the commit before the rename/navigation scaffold.
Restore command (run on srv-a as root):
pct restore 1105 /var/lib/vz/dump/vzdump-lxc-1105-2026_04_25-12_08_28.tar.zst --force
Convention
Archive filenames follow Proxmox default: vzdump-lxc-{CTID}-{YYYY_MM_DD-HH_MM_SS}.tar.zst
Add a new entry to this file every time an archive is created and copied to USB.
Always note exactly what is and is not present in the container at time of archive.