Session-gated MinIO save sync with AppImage GUI, CLI edit/session flow, and Gitea release helper. Co-authored-by: Cursor <[email protected]>
49 lines
1.6 KiB
Markdown
49 lines
1.6 KiB
Markdown
# Path 1 fallback — Hardened Syncthing
|
|
|
|
Use this if Path 3 (MinIO over Cloudflare/NGINX) becomes unreliable or Android S3 access is blocked more often than Syncthing-Fork would be.
|
|
|
|
## Triggers
|
|
|
|
- WAN MinIO downtime / CF limits / NGINX upload bugs that block play sessions
|
|
- Android app cannot obtain durable storage access for emulator saves and Syncthing folder sync of the **SSOT tree** is acceptable
|
|
- You still refuse to sync live game directories directly
|
|
|
|
## What stays the same
|
|
|
|
Keep the Python session agent (`start`/`end`). It continues to copy:
|
|
|
|
`native save paths` ↔ local SSOT tree
|
|
|
|
Only the transport of the SSOT tree changes (Syncthing instead of MinIO).
|
|
|
|
## Migration MinIO → Syncthing SSOT folder
|
|
|
|
1. On a trusted machine with MinIO access:
|
|
|
|
```bash
|
|
syncgames export-ssot --out ~/SyncGames-SSOT
|
|
```
|
|
|
|
(Downloads all `games/*/live`, `history`, `meta.json` into a filesystem mirror.)
|
|
|
|
2. Share `~/SyncGames-SSOT` with Syncthing across devices.
|
|
3. Enable **Simple File Versioning**, Keep Versions ≥ 5, on every device.
|
|
4. Point `agent.toml`:
|
|
|
|
```toml
|
|
store = "filesystem"
|
|
ssot_root = "/home/you/SyncGames-SSOT"
|
|
```
|
|
|
|
5. Stop relying on MinIO for that install (or keep MinIO as cold backup via periodic `export-ssot`).
|
|
|
|
## Hardening rules (do not violate)
|
|
|
|
- Syncthing folder = SSOT tree **only**
|
|
- Never add Proton `compatdata` / Android emulator internal dirs as Syncthing folders
|
|
- Lease/hash gates remain enforced by the agent against filesystem `meta.json`
|
|
|
|
## Rollback
|
|
|
|
Point `store` back to `minio` and keep using the same game ids if the bucket is still intact.
|