6.3 KiB
Syncthing Setup
Overview
Syncthing provides real-time file synchronization across all devices. Files sync automatically when devices connect.
Devices
| Device | ID Prefix | Local IP | Tailscale IP | Port | Role |
|---|---|---|---|---|---|
| Mac Mini | L3PJR73 | 10.10.10.123 | 100.108.89.58 | 22000 | Primary workstation |
| MacBook Pro | 3TFMYEI | 10.10.10.147 | 100.88.161.1 | 22000 | Laptop |
| TrueNAS | TPO72EY | 10.10.10.200 | 100.100.94.71 | 20978 | Storage server (central hub) |
| Windows PC | YDCPUQK | 10.10.10.150 | 100.120.97.76 | 22000 | Windows workstation |
| Phone (Android) | XLMZCCH | 10.10.10.54 | 100.106.175.37 | 22000 | Android, Notes only, HTTPS API |
Network Configuration
IPv4 Only - All devices configured with explicit IPv4 addresses (no dynamic/IPv6):
- Local network:
10.10.10.0/24 - Tailscale network:
100.x.x.x
Device address format: tcp4://IP:PORT (e.g., tcp4://10.10.10.123:22000)
Synced Folders
| Folder | Path | Devices | Notes |
|---|---|---|---|
| Downloads | ~/Downloads | Mac Mini, MacBook, TrueNAS, Windows | Large folder, 3600s rescan |
| Notes | ~/Notes | Mac Mini, MacBook, TrueNAS | Documentation |
| Projects | ~/Projects | Mac Mini, MacBook, TrueNAS | Code repositories |
| bin | ~/bin | Mac Mini, MacBook, TrueNAS | Scripts and tools |
| Documents | ~/Documents | Mac Mini, MacBook, TrueNAS | Personal documents |
| Desktop | ~/Desktop | Mac Mini, MacBook, TrueNAS | Desktop files |
| config | ~/.config | Mac Mini, MacBook | Shell configs, app settings |
| Antigravity | ~/.gemini | Mac Mini, MacBook, TrueNAS | Gemini config |
API Access
Mac Mini
API_KEY="oSQSrPnMnrEXuHqjWrRdrvq3TSXesAT5"
curl -s "http://127.0.0.1:8384/rest/system/status" -H "X-API-Key: $API_KEY"
MacBook Pro
API_KEY="qYkNdVLwy9qZZZ6MqnJr7tHX7KKdxGMJ"
curl -s "http://127.0.0.1:8384/rest/system/status" -H "X-API-Key: $API_KEY"
Windows PC
API_KEY="KPHGteJv6APPE7zFun33b3qM3Vn5KSA7"
curl -s "http://10.10.10.150:8384/rest/system/status" -H "X-API-Key: $API_KEY"
Phone (Android) - Uses HTTPS
API_KEY="Xxz3jDT4akUJe6psfwZsbZwG2LhfZuDM"
# Access via local IP (use -k to skip cert verification)
curl -sk "https://10.10.10.54:8384/rest/system/status" -H "X-API-Key: $API_KEY"
# Or via Tailscale
curl -sk "https://100.106.175.37:8384/rest/system/status" -H "X-API-Key: $API_KEY"
TrueNAS (Docker Container)
API_KEY="LNWnrRmeyrw4dbngSmJMYN4a5Z2VnhSE"
# Access via Tailscale (port 20910, not 8384)
curl -s "http://100.100.94.71:20910/rest/system/status" -H "X-API-Key: $API_KEY"
# Or via local network
curl -s "http://10.10.10.200:20910/rest/system/status" -H "X-API-Key: $API_KEY"
Note: TrueNAS Syncthing runs in Docker with:
- Config:
/mnt/.ix-apps/app_mounts/syncthing/config - Data:
/mnt/vault/shares/syncthing→ mounted as/datain container - Container name:
ix-syncthing-syncthing-1
Common Commands
Check Status
# Folder status
curl -s "http://127.0.0.1:8384/rest/db/status?folder=downloads" -H "X-API-Key: $API_KEY"
# Connection status
curl -s "http://127.0.0.1:8384/rest/system/connections" -H "X-API-Key: $API_KEY"
# Device completion for a folder
curl -s "http://127.0.0.1:8384/rest/db/completion?folder=downloads&device=DEVICE_ID" -H "X-API-Key: $API_KEY"
Check Errors
curl -s "http://127.0.0.1:8384/rest/folder/errors?folder=downloads" -H "X-API-Key: $API_KEY"
Rescan Folder
curl -X POST "http://127.0.0.1:8384/rest/db/scan?folder=downloads" -H "X-API-Key: $API_KEY"
Configuration Files
| Device | Config Path |
|---|---|
| Mac Mini | ~/Library/Application Support/Syncthing/config.xml |
| MacBook Pro | ~/Library/Application Support/Syncthing/config.xml |
| TrueNAS | /mnt/tank/syncthing/config/config.xml |
Performance Tuning
Speed Optimizations (2024-12-17)
Global Options
| Setting | Value | Effect |
|---|---|---|
numConnections |
4 | Parallel transfers per device |
compression |
never | No CPU overhead on fast LAN |
setLowPriority |
false | Normal CPU priority |
connectionPriorityQuicLan |
10 | QUIC preferred on LAN |
connectionPriorityTcpLan |
20 | TCP fallback on LAN |
connectionPriorityQuicWan |
30 | QUIC preferred on WAN |
connectionPriorityTcpWan |
40 | TCP fallback on WAN |
progressUpdateIntervalS |
-1 | Disabled progress updates (reduces overhead) |
maxConcurrentIncomingRequestKiB |
1048576 | 1GB buffer for incoming requests |
Applied to: Mac Mini, MacBook, Windows PC (Phone uses 512MB buffer)
Folder-Level Settings
| Setting | Value | Effect |
|---|---|---|
pullerMaxPendingKiB |
131072-262144 | 128-256MB pending data buffer per folder |
Applied to: downloads, projects, documents, desktop, notes folders
Rescan Intervals (set to 3600s for large folders)
Large folders like Downloads use 1-hour rescan intervals to reduce CPU usage:
- File system watcher handles real-time changes
- Hourly rescan catches anything missed
Power Optimization
From CLAUDE.md - Syncthing rescan optimization saved ~60-80W on TrueNAS VM.
Troubleshooting
Device Not Syncing
- Check connection status:
curl -s "http://127.0.0.1:8384/rest/system/connections" -H "X-API-Key: $API_KEY" | python3 -c "import sys,json; d=json.load(sys.stdin)['connections']; [print(f'{k[:7]}: {v[\"connected\"]}') for k,v in d.items()]"
- Check folder completion:
curl -s "http://127.0.0.1:8384/rest/db/status?folder=FOLDER" -H "X-API-Key: $API_KEY"
- Check for errors:
curl -s "http://127.0.0.1:8384/rest/folder/errors?folder=FOLDER" -H "X-API-Key: $API_KEY"
Many Pending Deletes
If a device shows thousands of "needDeletes", it means files were deleted elsewhere and need to propagate. This is normal after reorganization - let it complete.
Web UI
Access Syncthing web interface at http://127.0.0.1:8384
SSH Access to Devices
MacBook Pro (via Tailscale)
sshpass -p 'GrilledCh33s3#' ssh -o StrictHostKeyChecking=no hutson@100.88.161.1
Check Syncthing remotely
sshpass -p 'GrilledCh33s3#' ssh hutson@100.88.161.1 'curl -s "http://127.0.0.1:8384/rest/db/status?folder=downloads" -H "X-API-Key: qYkNdVLwy9qZZZ6MqnJr7tHX7KKdxGMJ"'