feat: add Network Backup section to Database Management
PC2 can now automatically pull and restore a fresh copy of PC1's database on a daily schedule. Config and API key are stored in local JSON files so they survive database restores. - New networkSyncConfigService: file-based config (network-backup-key.json, network-sync-config.json) that persists through DB restores - New networkSyncService: streams live pg_dump from source PC over HTTP and pipes into psql, then reconnects Prisma and applies missing migrations - 6 new endpoints: get/regenerate API key, serve backup stream (key-auth only), get/save sync config, trigger immediate sync - Hourly cron job that fires only when current hour matches configured syncHour - NetworkBackupManager component: shows this machine's key (show/copy/regen) and receiver config (enable toggle, hour picker 0-23, source URL + key, Save + Sync Now, last sync status) - README setup guide for both PCs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
32
README.md
32
README.md
@@ -450,6 +450,38 @@ Paste this key into the Activation page in the app.
|
||||
|
||||
---
|
||||
|
||||
## Network Backup Setup (PC-to-PC Sync)
|
||||
|
||||
Two PCs running the app can be linked so the backup PC automatically pulls a fresh copy of the main PC's database every night. The config survives database restores because it is stored in local files, not in the database.
|
||||
|
||||
**Prerequisites:** Both PCs must be on the same local network (e.g. connected to the same router or switch). Set a static IP on the main PC so its address never changes after a reboot (set in the OS network settings, not in the router).
|
||||
|
||||
### On PC1 (main server)
|
||||
|
||||
1. Open the app → **Database Management** → **Network Backup**
|
||||
2. Under **This Machine's Backup Key**, click the eye icon to reveal the key
|
||||
3. Click the copy button to copy it
|
||||
|
||||
### On PC2 (backup PC)
|
||||
|
||||
1. Open the app → **Database Management** → **Network Backup**
|
||||
2. Under **Sync from Another PC**:
|
||||
- Toggle **Enable daily sync** on
|
||||
- Select the hour you want the sync to run (e.g. `12:00 AM (midnight)`)
|
||||
- Enter PC1's URL in the **Source PC URL** field, e.g. `http://192.168.0.94:3000`
|
||||
- Paste PC1's key into the **Source PC API Key** field
|
||||
3. Click **Save Settings**
|
||||
4. Click **Sync Now** to test — PC2's database will be replaced with PC1's
|
||||
|
||||
After a successful test, the sync will run automatically at the scheduled hour every day.
|
||||
|
||||
**Notes:**
|
||||
- The API key and sync config are stored in `apps/Backend/network-backup-key.json` and `apps/Backend/network-sync-config.json` — they survive database restores
|
||||
- If you regenerate PC1's key, you must update it on PC2 as well
|
||||
- The sync is one-way: PC2 always mirrors PC1; PC1 is never modified
|
||||
|
||||
---
|
||||
|
||||
## Claude Code Memory
|
||||
|
||||
Claude Code (the AI assistant used to build this project) stores its memory locally on the PC. This memory contains project context, architecture decisions, feature history, and working preferences — allowing Claude to pick up where it left off in new sessions.
|
||||
|
||||
Reference in New Issue
Block a user