Session-gated MinIO save sync with AppImage GUI, CLI edit/session flow, and Gitea release helper. Co-authored-by: Cursor <[email protected]>
2.4 KiB
2.4 KiB
SyncGames
Session-gated save sync for Steam (incl. Seamless Coop) and emulator titles across Linux PCs/laptops and Android.
Architecture: Path 3 — MinIO SSOT on NAS, Python agent on Linux, light Kotlin UI on Android.
Ingress: Cloudflare → Tunnel → NGINX → MinIO (WAN HTTPS, no VPN required).
Safety model
- Pull SSOT into the game’s native save path only at session start.
- Play against local WIP only.
- Push WIP to SSOT only at session end (history slot + live promote).
- One lease per game; hash gate blocks stale WIP overwrites.
- Per-device history keeps the last N versions (default 5) for LOPE recovery.
Never point continuous sync tools at live game save directories.
Download (multi-device)
Repo: git.hisora.dev/Dawnsorrow/SyncGames
Grab the latest Release assets (AppImage / APK) — do not commit binaries into git.
# Linux
chmod +x SyncGames-*-x86_64.AppImage
./SyncGames-*-x86_64.AppImage
Use the Setup tab for endpoint/keys, Games to add/edit titles, Session for start/end/restore.
Quick start (Linux)
Build AppImage from source
cd agent
./packaging/build-appimage.sh
# → agent/dist/SyncGames-*-x86_64.AppImage
CLI / editable install
cd agent
python -m venv .venv && source .venv/bin/activate
pip install -e ".[gui]"
syncgames-gui # thin management UI
# or: syncgames gui
cp ../config/agent.toml.example ~/.config/syncgames/agent.toml
syncgames doctor
Docs
| Doc | Purpose |
|---|---|
| docs/architecture.md | System overview |
| docs/protocol.md | Shared SSOT protocol (Python ↔ Android) |
| docs/nas-minio-cloudflare.md | MinIO + NGINX + Cloudflare |
| docs/add-game.md | Add / remove games |
| docs/fallback-path1.md | Syncthing fallback |
| docs/planning/ | Planning archive |
Layout
SyncGames/
agent/ Python CLI + thin GUI (+ AppImage packaging)
android/ Kotlin/Compose light UI
config/ Device + game TOML
deploy/
docker/ Docker Compose (MinIO SSOT)
nginx/ Example NGINX vhost
systemd/ User units for watchers
docs/
MinIO / NAS Docker
See deploy/docker/README.md for Compose (MinIO on 127.0.0.1:9000 behind your existing NGINX).