X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fprivate%2Fftp.nix;h=142819870b5f17bce2f5630e2a40445d05d2eab7;hb=4c4652aabf2cb3ac8b40f2856eca07a1df9c27e0;hp=9b6a98f3b21bc318ca7661ddb8f956430839b077;hpb=d2e703c560bc029c3d607058de2935bbf1cb0559;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/private/ftp.nix b/modules/private/ftp.nix index 9b6a98f..1428198 100644 --- a/modules/private/ftp.nix +++ b/modules/private/ftp.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, config, myconfig, ... }: +{ lib, pkgs, config, ... }: let package = pkgs.pure-ftpd.override { ldapFtpId = "immaeFtp"; }; in @@ -16,6 +16,7 @@ in config = lib.mkIf config.services.pure-ftpd.enable { services.duplyBackup.profiles.ftp = { rootDir = "/var/lib/ftp"; + remotes = [ "eriomem" "ovh" ]; }; security.acme.certs."ftp" = config.myServices.certificates.certConfig // { domain = "eldiron.immae.eu"; @@ -32,16 +33,13 @@ in }; }; - users.users = [ - { - name = "ftp"; - uid = config.ids.uids.ftp; # 8 - group = "ftp"; - description = "Anonymous FTP user"; - home = "/homeless-shelter"; - extraGroups = [ "keys" ]; - } - ]; + users.users.ftp = { + uid = config.ids.uids.ftp; # 8 + group = "ftp"; + description = "Anonymous FTP user"; + home = "/homeless-shelter"; + extraGroups = [ "keys" ]; + }; users.groups.ftp.gid = config.ids.gids.ftp; @@ -49,23 +47,22 @@ in install -m 0755 -o ftp -g ftp -d /var/lib/ftp ''; - secrets.keys = [{ - dest = "pure-ftpd-ldap"; + secrets.keys."pure-ftpd-ldap" = { permissions = "0400"; user = "ftp"; group = "ftp"; text = '' - LDAPServer ${myconfig.env.ftp.ldap.host} + LDAPServer ${config.myEnv.ftp.ldap.host} LDAPPort 389 LDAPUseTLS True - LDAPBaseDN ${myconfig.env.ftp.ldap.base} - LDAPBindDN ${myconfig.env.ftp.ldap.dn} - LDAPBindPW ${myconfig.env.ftp.ldap.password} + LDAPBaseDN ${config.myEnv.ftp.ldap.base} + LDAPBindDN ${config.myEnv.ftp.ldap.dn} + LDAPBindPW ${config.myEnv.ftp.ldap.password} LDAPDefaultUID 500 LDAPForceDefaultUID False LDAPDefaultGID 100 LDAPForceDefaultGID False - LDAPFilter ${myconfig.env.ftp.ldap.filter} + LDAPFilter ${config.myEnv.ftp.ldap.filter} LDAPAuthMethod BIND @@ -73,11 +70,11 @@ in # Compile dans pure-ftpd directement avec immaeFtpUid / immaeFtpGid LDAPHomeDir immaeFtpDirectory ''; - }]; + }; services.filesWatcher.pure-ftpd = { restart = true; - paths = [ "/var/secrets/pure-ftpd-ldap" ]; + paths = [ config.secrets.fullPaths."pure-ftpd-ldap" ]; }; systemd.services.pure-ftpd = let @@ -96,7 +93,7 @@ in SyslogFacility ftp DontResolve yes MaxIdleTime 15 - LDAPConfigFile /var/secrets/pure-ftpd-ldap + LDAPConfigFile ${config.secrets.fullPaths."pure-ftpd-ldap"} LimitRecursion 10000 8 AnonymousCanCreateDirs no MaxLoad 4 @@ -113,7 +110,7 @@ in MaxDiskUsage 99 CustomerProof yes TLS 1 - CertFile ${config.security.acme.directory}/ftp/full.pem + CertFile ${config.security.acme.certs.ftp.directory}/full.pem ''; in { description = "Pure-FTPd server";