Server: move transmission nfs share settings to transmission.nix

This commit is contained in:
Toast 2024-07-12 01:52:26 +02:00
parent 675b8c7b85
commit 85ccce45b9
2 changed files with 28 additions and 19 deletions

View file

@ -2,29 +2,11 @@
services = {
nfs.server = {
enable = true;
exports = ''
${config.services.transmission.settings.download-dir} *.sable-pancake.ts.net(ro,all_squash,anonuid=${toString config.users.users.transmission.uid},anongid=${toString config.users.groups.transmission.gid})
'';
# NFSv3 uses random ports, so you need to make them static to be able to pass though the firewall
statdPort = 4000;
lockdPort = 4001;
mountdPort = 4002;
};
avahi.extraServiceFiles = {
Transmission-downloads-nfs = ''
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">Transmission Downloads on %h (NFS)</name>
<service>
<type>_nfs._tcp</type>
<port>2049</port>
<txt-record>path=${config.services.transmission.settings.download-dir}</txt-record>
</service>
</service-group>
'';
};
};
networking.firewall = {

View file

@ -1,4 +1,8 @@
{config, ...}: {
{config, ...}: let
transmissionUid = toString config.users.users.transmission.uid;
transmissionGid = toString config.users.groups.transmission.gid;
mountPoint = config.fileSystems."nfs_transmission".mountPoint;
in {
services.transmission = {
enable = true;
openFirewall = true;
@ -10,6 +14,29 @@
};
};
# Allow my devices to access the downloads folder though NFS
fileSystems."nfs_transmission" = {
device = config.services.transmission.settings.download-dir;
mountPoint = "/srv/nfs/transmission";
options = ["bind"];
};
services.nfs.server.exports = "${mountPoint} *.sable-pancake.ts.net(ro,all_squash,anonuid=${transmissionUid},anongid=${transmissionGid})";
services.avahi.extraServiceFiles = {
Transmission-downloads-nfs = ''
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">Transmission Downloads on %h (NFS)</name>
<service>
<type>_nfs._tcp</type>
<port>2049</port>
<txt-record>path=${mountPoint}</txt-record>
</service>
</service-group>
'';
};
# Add a cname for transmission
services.dnsmasq.settings.cname = ["transmission.everest.sable-pancake.ts.net,everest"];