{ pkgs, config, lib, ... }: let fqdn = "sync.freun.dev"; port = 8384; storage_dir = "/mnt/storage/syncthing"; in { services.syncthing = { enable = true; dataDir = "/mnt/storage/syncthing"; openDefaultPorts = true; guiAddress = "127.0.0.1:${toString port}"; }; modules.webserver.vHosts.${fqdn}.locations."/" = { proxy = "http://localhost:${toString port}"; extraConfig = '' proxy_set_header Host $host; ''; }; fileSystems."${storage_dir}" = { device = "//u407959.your-storagebox.de/backup/syncthing"; fsType = "cifs"; options = let # this line prevents hanging on network split automount_opts = "x-systemd.automount,auto,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s"; uid = builtins.toString config.users.users.syncthing.uid; gid = builtins.toString config.users.groups.syncthing.gid; in [ "${automount_opts},credentials=/var/secrets/smb-storage,uid=${uid},gid=${gid}" ]; }; environment.systemPackages = [ pkgs.cifs-utils ]; }