Files
sydnix/modules/nixos/deertopia/syncthing.nix
2025-04-08 00:08:49 -06:00

51 lines
1.2 KiB
Nix

{ config, lib, pkgs, ... }:
let cfg = config.sydnix.deertopia.syncthing;
in {
options.sydnix.deertopia.syncthing.enable =
lib.mkEnableOption "Syncthing, à la Deertopia";
config = lib.mkIf cfg.enable {
sydnix.syncthing = {
enable = true;
includeDevices = [
"sydpc"
"nixos-testbed"
];
directories = {
"Music" = {
path = "${config.nixarr.mediaDir}/library/music";
ignorePerms = true;
devices = [
"sydpc"
];
};
"org" = {
path = "/persist/deertopia.net/dav/org";
ignorePerms = true;
devices = [
"sydpc"
];
};
};
};
# HACK: I don't understand the idioms of Unix file permissions.
# TODO: Consult molly for this shit TwT.
users.users.${config.services.syncthing.user}.extraGroups = [
"jellyfin"
"nginx"
"media"
];
sydnix.deertopia.nginx.vhosts."syncthing".vhost = {
forceSSL = true;
enableACME = true;
locations."/" = {
# TODO: This should work if guiAddress already specifies a protocol.
proxyPass = "http://" + config.services.syncthing.guiAddress;
};
};
};
}