Save Sync Vita
More actions
| https://www.reddit.com/r/SwitchPirates/comments/1n9f333/here_are_latest_paywalled_homebrews_hos_ports/ | |
|---|---|
| General | |
| Author | unveroleone, iamcco |
| Type | Other Apps |
| Version | 0.1.4 |
| License | GPL-3.0 |
| Last Updated | 2026/06/28 |
| Links | |
| Download | |
| Website | |
| Source | |
Save Sync is a self-hosted cloud save sync project for PS Vita, PPSSPP, and RetroArch across multiple devices.
It uses one server with multiple clients, where all saves go to the same place. The project is forked from Save Cloud Vita, with Baidu Cloud replaced by a self-hosted HTTP API and all strings translated to English.
The PS Vita app backs up native PS Vita saves, PSP/Adrenaline saves, and RetroArch saves. It can upload saves to the user's server as a zip, then download and restore them on another Vita. It also shows per-game sync status on the Cloud tab with one-tap Sync All.
Save Sync Hub is the companion app for desktop and Android. It syncs PPSSPP and RetroArch saves from macOS, Windows, Linux, and Android, using the same server and API token as the Vita app.
The Vita app requires HENkaku and iTLS-Enso. Save Sync Hub is a standard desktop/Android app.
Features
- Self-hosted cloud save sync for PS Vita, PPSSPP, and RetroArch.
- Supports native PS Vita saves, PSP/Adrenaline saves, and RetroArch saves on PS Vita.
- Uploads saves to the server as zip files.
- Downloads and restores saves on another Vita.
- Cloud tab shows per-game sync status.
- One-tap Sync All from the Cloud tab.
- Save Sync Hub syncs PPSSPP and RetroArch saves from macOS, Windows, Linux, and Android.
- Save Sync Hub detects default save locations automatically per platform.
- Save Sync Hub can upload to server, download to local, or restore directly from cloud.
- Uses the same server and API for the Vita app and Save Sync Hub.
- Local Backup tab on Vita can manage save slots on the Vita itself, independently of the server.
- Conflicts are reported but not touched.
Installation
Server setup
The server is a small Node.js app. It stores save files on disk and exposes a REST API. The server needs to be running while syncing, but does not need to be on 24/7.
Docker
Create a docker-compose.yml file:
services:
vita-save-sync:
image: ghcr.io/unveroleone/vita-save-sync-server:latest
container_name: vita-save-sync
restart: unless-stopped
ports:
- "3099:3000"
environment:
- USER_TOKEN=${USER_TOKEN:?set a strong token}
- DATA_DIR=/data
volumes:
- vita-save-data:/data
volumes:
vita-save-data:
driver: local
Create a .env file:
USER_TOKEN=change-me-to-a-long-random-string
Run:
docker compose up -d
To update later:
docker compose pull && docker compose up -d
If .env is changed, run docker compose up -d instead of docker compose restart, because docker compose restart reuses the cached environment.
The server can be put behind Nginx Proxy Manager or Cloudflare Tunnel for HTTPS. The Vita needs HTTPS with a valid certificate, and iTLS-Enso provides the modern TLS roots.
Node.js directly
Node.js 20 or newer is required. It works on macOS, Windows, and Linux.
git clone https://github.com/unveroleone/vita-save-sync.git cd vita-save-sync/server npm install npm run build USER_TOKEN=your-secret-token DATA_DIR=./data node dist/index.js
The server listens on port 3000. Add PORT=3099 to the command if a different port is needed.
Raspberry Pi
Start from a fresh Raspberry Pi OS Bookworm or newer. Ethernet is recommended for reliability, but Wi-Fi works too.
Install Node.js LTS:
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt install -y nodejs git
Clone and start:
git clone https://github.com/unveroleone/vita-save-sync.git cd vita-save-sync/server npm install npm run build USER_TOKEN=your-secret-token DATA_DIR=./data node dist/index.js
To auto-start on boot with systemd, replace pi with the actual username if needed:
sudo tee /etc/systemd/system/vita-save-sync.service << 'EOF' [Unit] Description=Save Sync server After=network-online.target Wants=network-online.target [Service] Type=simple User=pi WorkingDirectory=/home/pi/vita-save-sync/server Environment=USER_TOKEN=your-secret-token Environment=DATA_DIR=/home/pi/vita-save-sync/server/data Environment=PORT=3000 ExecStart=/usr/bin/node dist/index.js Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable --now vita-save-sync
Check status:
sudo systemctl status vita-save-sync
Background service on laptop
On macOS, create a launchd plist so the server starts automatically at login. First find the Node.js path:
which node
Save the plist as ~/Library/LaunchAgents/com.vita-save-sync.plist, replacing paths and token:
Label com.vita-save-sync ProgramArguments /usr/local/bin/node /Users/you/vita-save-sync/server/dist/index.js EnvironmentVariables USER_TOKEN your-secret-token DATA_DIR /Users/you/vita-save-sync/server/data PORT 3000 WorkingDirectory /Users/you/vita-save-sync/server RunAtLoad KeepAlive
Load it:
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.vita-save-sync.plist
On Linux, use the systemd unit from the Raspberry Pi setup.
On Windows, run a terminal on login and keep it open, or use Task Scheduler to launch node dist/index.js at boot with USER_TOKEN and DATA_DIR set as environment variables.
HTTPS
The Vita requires HTTPS with a valid certificate. Cloudflare Quick Tunnel can be used without an account or domain.
Install cloudflared:
| Platform | | | ------------------------------------------------ | | | | | | | | | | sudo bash && sudo apt install cloudflared | | | | | | | | |
While the server is running: cloudflared tunnel --url http://localhost:3000 It prints a *.trycloudflare.com address. Use that address as the server URL on the Vita. The tunnel closes when the terminal is closed. For a permanent setup with a domain, Cloudflare Tunnel with a named tunnel can also be used. First-time setup on VitaInstall the VPK via VitaDB Downloader by searching for Save Sync, or download it from GitHub Releases and install manually via VitaShell.
Test Connection checks both reachability and the token. Save Sync Hub setupSave Sync Hub is the companion app for PC and Android. It syncs PPSSPP and RetroArch saves using the same server and API token as the Vita app. Download the latest release from GitHub Releases for the platform:
First-time setup:
Default save paths:
|
|---|