Skip to main content

Syncthing + FileBrowser Quantum

The easiest and most reliable way is to use the Proxmox VE Community Helper-Script, which automates everything (including installing Syncthing from the Debian repo). It creates an LXC with reasonable defaults (~2GB RAM max, 2 cores—fine 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 runs initially as root (common with scripts), but we'll switch it to a dedicated user below.
  • After creation, access the Syncthing web UI at http://<LXC-IP>:8384 (set GUI auth on first access).

Option 2: Manual Setup

If you prefer full control:

  1. In Proxmox UI: Create a new unprivileged LXC (Debian/Bookworm template recommended).

    • CPU: 2 cores
    • RAM: 2048 MB (or adjust)
    • Storage: 8-20 GB root disk
    • Network: Static IP or DHCP
  2. Start the LXC, open console, and install Syncthing:

apt update && apt upgrade -y
apt install syncthing -y

Post-Setup: Run Syncthing as a Dedicated Non-Root User (Security Best Practice)

The script (or manual install) often starts Syncthing as root initially. Switch it to a proper user to avoid warnings and reduce risk.

  1. Stop and disable the root service:
systemctl stop syncthing@root
systemctl disable syncthing@root
systemctl list-unit-files | grep syncthing  # Verify it's disabled
  1. Create a dedicated system user:
adduser --system --group --home /var/lib/syncthing --shell /usr/sbin/nologin syncthing
  1. 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
  1. Create and secure your data directory (e.g., for your shares):
mkdir /data
chown -R syncthing:syncthing /data
chmod -R 750 /data
  • Later, mount your Proxmox storage here (e.g., bind-mount /data/usera, /data/userb, /data/shared from host via Proxmox UI > LXC > Resources > Add MP).
  1. Enable and start as the new user:
systemctl enable syncthing@syncthing
systemctl start syncthing@syncthing
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!