syncthing

Continuous file synchronization via Syncthing.

The service runs in a NixOS container with three ports: the web GUI (8384), the sync protocol (22000, TCP and UDP), and the local discovery protocol (21027, UDP). idleTimeout is null because stopping a Syncthing instance breaks the P2P sync mesh — peers cannot push changes to an offline node. The service is always-on.

The blueprint sets dataDir to /var/lib/syncthing inside the container. Without a volume mount to a persistent host path, Syncthing’s configuration database and index are lost on container restart.

AttributeValue
RuntimeNative (NixOS container)
Ports8384 (Web GUI), 22000 (Sync protocol), 21027 (Discovery)
Idle timeoutNone (always-on)
OCI image

Consumer must provide: A volume mount for /var/lib/syncthing mapped to a persistent host directory.

nixda.zones.private.services.syncthing = lib.recursiveUpdate
  config.nixda.catalog.syncthing
  {
    id = 25;
    runtime.native.volumes = [
      "/data/syncthing:/var/lib/syncthing"
    ];
  };

Back to Blueprint Catalog