Syncthing + FileBrowser Quantum
SettingThe upeasiest Synchingand inmost Proxmoxreliable way is really easy. You can do it by yourself, or justto use the pre-madeProxmox VE Community Helper-Script, forwhich it.
Ieverything used(including installing Syncthing from the scriptDebian whichrepo). createdIt creates an LXC with maximumreasonable defaults (~2GB RAM max, 2 GBcores—fine RAM,for large transfers, low usage normally).
Option 1: Recommended – Use the Community Script (Quick & Easy)
Run this single command in the Proxmox shell (node console):
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/syncthing.sh)"
- It sets up a privileged LXC by default (simpler permissions for mounted storage).
- Syncthing installs and
gaveruns initially as root (common with scripts), but we'll switch it2 cores. Mainly for larger file transfers, but it should use way less that that maximum under normal circumstances. Justtobea dedicated user below. - After creation, access the Syncthing web UI at
http://<LXC-IP>:8384(set GUI auth onthefirstsafeaccess).
Option 2: Manual Setup
If you wantprefer tofull setcontrol:
-
onIn
yourProxmoxown,UI:createCreate a new unprivileged LXCwith(Debian/Bookworm template recommended).- CPU: 2 cores
- RAM: 2048 MB (or adjust)
- Storage: 8-20 GB root disk
- Network: Static IP or DHCP
-
After the LXC is created,LXC, opena consoleconsole, and installSyncthingvia theDebian Package Repository.Syncthing:
apt update && apt upgrade -y
apt install syncthing -y
CreatingPost-Setup: Run Syncthing as a userDedicated andNon-Root movingUser the(Security configurationBest filesPractice)
The Communityscript Script(or doesmanual notinstall) createoften starts Syncthing as root initially. Switch it to a separateproper user forto syncthing,avoid aswarnings such,and wereduce will do it now.risk.
1.
First- Stop
we need toand disable the syncthingroot serviceservice:
which is run under root
systemctl stop syncthing@root
systemctl disable syncthing@root
systemctl list-unit-files | grep syncthing # Verify it's disabled
- Create a dedicated system user:
adduser --system --group --home /var/lib/syncthing --shell /usr/sbin/nologin syncthing
- Migrate existing config (if any from root run):
mkdir -p /var/lib/syncthing/.config
cp -a /root/.config/syncthing/* /var/lib/syncthing/.config/ 2>/dev/null || true
chown -R syncthing:syncthing /var/lib/syncthing
- Create and secure your data directory (e.g., for your shares):
mkdir /data
chown -R syncthing:syncthing /data
chmod -R 750 /data
And
- Later,
ifmountthisyourisProxmoxnotstoragerunninghereanymore(e.g.,systemctl list-unit-files | grep syncthing2. Create Syncthing System useradduser \ --system \ --group \ --home /var/lib/syncthing \ --shell /usr/sbin/nologin \ syncthing3. Copy current configThe current config is here:bind-mount/,root/data/usera/data/userb,/data/sharedfrom host via Proxmox UI > LXC > Resources > Add MP).config/syncthing
mkdir -p /var/lib/syncthing/.config
cp -a /root/.config/syncthing /var/lib/syncthing/.config/
chown -R syncthing:syncthing /var/lib/syncthing4. Create and assign data folder
mkdir /data
chown -R syncthing:syncthing /data
chmod -R 750 /data5. Start Syncthing as syncthing-User
systemctl enable syncthing@syncthing
systemctl start syncthing@syncthing
Check status
systemctl status syncthing@syncthing # Check it's running
Integrating with Your FileBrowser Shares
- In Proxmox: Add bind mounts for your host directories to the LXC (e.g., mount host
/path/to/data/usera→ LXC/data/usera). - In Syncthing UI: Add folders pointing to
/data/usera,/data/userb,/data/shared.- Set "Send Only" for private user folders if laptops should receive but not push changes back.
- Full bi-directional for
/data/shared.
Hub-First Setup Reminder
- Configure folders and generate device IDs on the Proxmox hub first.
- Then install Syncthing on your laptop(s), add the hub's device ID, and connect (hub as introducer for easy hub-and-spoke).
This pairs perfectly with your FileBrowser Quantum on the hub for web access/management. If you run into permission issues with mounts (common in unprivileged LXCs), switch to privileged or adjust UID/GID mapping.
Let me know if you need steps for mounting storage or connecting devices!

