add dufs module to thinkpad

This commit is contained in:
Yan Lin 2025-11-27 21:50:48 +01:00
parent dd47a6a18d
commit d234b775e2
3 changed files with 43 additions and 1 deletions

View file

@ -7,6 +7,7 @@
../../../modules/hyprland/system.nix
../../../modules/wireguard.nix
../../../modules/login-display.nix
../../../modules/dufs.nix
];
# Bootloader - standard UEFI setup
@ -253,4 +254,10 @@
showDiskUsage = true;
};
services.dufs = {
sharedPath = "/home/yanlin/NSFW";
user = "yanlin";
group = "users";
};
}

View file

@ -66,6 +66,18 @@
};
};
# NSFW WebDAV (dufs on thinkpad)
nsfw = {
rule = "Host(`nsfw.yanlincs.com`)";
service = "nsfw";
tls = {
certResolver = "cloudflare";
domains = [{
main = "*.yanlincs.com";
}];
};
};
};
services = {
@ -115,6 +127,15 @@
};
};
# NSFW backend (dufs on thinkpad via WireGuard)
nsfw = {
loadBalancer = {
servers = [{
url = "http://10.2.2.30:5099";
}];
};
};
};
};

View file

@ -18,6 +18,18 @@ in
default = 5099;
description = "Port to listen on";
};
user = lib.mkOption {
type = lib.types.str;
default = "root";
description = "User account under which dufs runs";
};
group = lib.mkOption {
type = lib.types.str;
default = "root";
description = "Group under which dufs runs";
};
};
config = lib.mkIf (cfg.sharedPath != null) {
@ -35,7 +47,9 @@ in
serviceConfig = {
Type = "simple";
User = "root"; # Run as root to access any system path
User = cfg.user;
Group = cfg.group;
UMask = "0022";
ExecStart = ''/bin/sh -c "${pkgs.dufs}/bin/dufs ${cfg.sharedPath} --port ${toString cfg.port} --bind 0.0.0.0 --allow-all --auth $(cat ${authFile})@/:rw"'';
Restart = "on-failure";
RestartSec = "10s";