55 lines
1.7 KiB
Nix
Executable file
55 lines
1.7 KiB
Nix
Executable file
{config, ...}: {
|
|
services.syncthing = {
|
|
enable = true;
|
|
key = config.age.secrets.syncthingKey.path;
|
|
cert = config.age.secrets.syncthingCert.path;
|
|
guiAddress = "0.0.0.0:8384";
|
|
settings.folders = {
|
|
"passwords" = {
|
|
path = "${config.services.syncthing.dataDir}/passwords";
|
|
};
|
|
"school-things" = {
|
|
label = "School things";
|
|
id = "z6alc-nfoqr";
|
|
devices = ["steamdeck" "server" "pc" "winmax2"];
|
|
path = "${config.services.syncthing.dataDir}/school-things";
|
|
};
|
|
"steam-201810" = {
|
|
label = "Wolfenstein The New Order Saves";
|
|
id = "laxxf-t2wmy";
|
|
devices = ["steamdeck" "server" "pc" "winmax2"];
|
|
path = "${config.services.syncthing.dataDir}/steam-201810";
|
|
};
|
|
"retroarch" = {
|
|
label = "RetroArch";
|
|
id = "jxuou-2yjnu";
|
|
devices = ["steamdeck" "server" "pc" "winmax2"];
|
|
path = "${config.services.syncthing.dataDir}/retroarch";
|
|
};
|
|
};
|
|
};
|
|
systemd.services.syncthing.serviceConfig = {
|
|
# Allow syncthing to change ownership of files
|
|
AmbientCapabilities = "CAP_CHOWN CAP_FOWNER";
|
|
};
|
|
|
|
# Add a cname for syncthing
|
|
services.dnsmasq.settings.cname = ["sync.everest.sable-pancake.ts.net,everest"];
|
|
|
|
# Set up traefik as the reverse proxy for syncthing
|
|
services.traefik = {
|
|
dynamicConfigOptions = {
|
|
http = {
|
|
routers = {
|
|
syncthing-subdomain = {
|
|
rule = "Host(`sync.everest.sable-pancake.ts.net`)";
|
|
service = "syncthing";
|
|
};
|
|
};
|
|
services.syncthing.loadBalancer.servers = [
|
|
{url = "http://localhost:8384";}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|