Files
nixos/hosts/freun.dev/services/syncthing.nix
Joakim Repomaa 7a24ac5fe6 refactor
2025-02-08 15:38:51 +02:00

34 lines
980 B
Nix

{ 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}";
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 ];
}