I have a dedicated server on my network (ie. NAS) that is running syncthing and I have several devices (ie. Steam Deck, Steam HTPC, Gaming PC, etc).
Is it best practice to link every device (and server) to every other device? …or should I just link each device to the server?)
It’s probably best to link everything together for redundancy, but my concern is with a device like the Steam Deck. After I finish playing a game I might close the Steam Deck so it doesn’t have much time to synchronize to several devices.
Is it an OK practice just use a client → server model for all devices and only link the devices to the server and not interconnect them?
Syncthing is peer-to-peer by design, and changes are propagated across the Syncthing cluster in such a manner. I would leave the Steam Deck peered with all other members of the cluster. As file blocks are synced to any node in the cluster, other nodes can get the same file blocks from those peers.
you can do it either way, but the best way is to let them all link with each other. If you’re traveling with your steamdeck and your laptop to the same location, your steamdeck could unload any changes quickly to the laptop and even if you turn off the steamdeck, the laptop will continue to sync to the NAS.
Based on firewall rules on each device you may find some devices can’t connect with each other, but when they can connect it’s almost always better to let them connect.
There are cases, where you don’t want to connect all devices together (e.g. limited bandwidth or very slow hardware), however I’d suggest to have at least two or three connections per device. Otherwise, if all devices depend on a central server or similar, and that device gets down, then the whole synchronisation will be stopped.
I like to have a shared file for common ignores. So I create let’s say a .commonIgnores.txt file at the root of the cluster and point all member devices to it (#include .commonIgnores.txt in the related GUI page).