Initial SyncGames tree: agent, Android, deploy, docs.
Session-gated MinIO save sync with AppImage GUI, CLI edit/session flow, and Gitea release helper. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user