{ config, pkgs, ... }: { services.syncthing = { enable = true; openDefaultPorts = true; dataDir = "/home/user/Documents/syncthing/"; configDir = "/home/user/.config/syncthing"; user = "user"; # Optional: GUI credentials (can be set in the browser instead if you don't want plaintext credentials in your configuration.nix file) # or the password hash can be generated with "syncthing generate --config --gui-password=" settings.gui = { user = "user"; password = "user"; }; settings = { devices = { "phone" = { id = "N3RII7R-4YOKJ46-HY6NSTD-TPE7SW4-N66CWVQ-J2JVW7E-NARRMBF-JG27YQ7"; }; "bigbox" = { id = "RFFXZJI-HJTEDCU-M7MU3SW-M7DJK4U-MESRKYA-OGHYOSG-KNZO7JB-6LQ5VAE"; }; }; folders = { "brain_zero" = { # Name of folder in Syncthing, also the folder ID path = "/home/user/brain_zero/"; # Which folder to add to Syncthing devices = [ "phone" ]; # Which devices to share the folder with }; "puter_home" = { path = "/home/user/"; type = "sendonly"; devices = [ "bigbox" ]; ignores = [ ".*" "!.ssh/" ]; }; }; }; }; }