From 3d11eafc9c516321901908338befe4c04b58f3aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Sat, 23 Jan 2021 23:26:11 +0100 Subject: Use peertube flake in modules --- modules/default.nix | 2 +- modules/private/databases/openldap/immae.schema | 18 +++- modules/private/websites/syden/peertube.nix | 2 +- .../private/websites/tools/peertube/default.nix | 2 +- modules/webapps/peertube.nix | 108 --------------------- 5 files changed, 18 insertions(+), 114 deletions(-) delete mode 100644 modules/webapps/peertube.nix (limited to 'modules') diff --git a/modules/default.nix b/modules/default.nix index abf4547..1b09c94 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -11,7 +11,7 @@ in etherpad-lite = ./webapps/etherpad-lite.nix; mastodon = ./webapps/mastodon.nix; mediagoblin = ./webapps/mediagoblin.nix; - peertube = ./webapps/peertube.nix; + peertube = (flakeCompat ../flakes/peertube).nixosModule; fiche = ./webapps/fiche.nix; opendmarc = (flakeCompat ../flakes/opendmarc).nixosModule; diff --git a/modules/private/databases/openldap/immae.schema b/modules/private/databases/openldap/immae.schema index f5ee5d5..d2ef972 100644 --- a/modules/private/databases/openldap/immae.schema +++ b/modules/private/databases/openldap/immae.schema @@ -161,7 +161,19 @@ objectclass ( ImmaeobjectClass:9 NAME 'immaeTaskClass' MUST ( immaeTaskId ) ) -# Last: -# attributetype (ImmaeattributeType:19 NAME 'immaeTaskId' -# objectclass ( ImmaeobjectClass:9 NAME 'immaeTaskClass' +# Peertube uid +attributetype ( ImmaeattributeType:20 NAME 'immaePeertubeId' + DESC 'login for Peertube' + EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +objectclass ( ImmaeobjectClass:10 NAME 'immaePeertubeClass' + DESC 'Expansion of the existing object classes for peertube' + SUP top AUXILIARY + MUST ( immaePeertubeId ) ) + + +# Last: +# attributetype ( ImmaeattributeType:20 NAME 'immaePeertubeId' +# objectclass ( ImmaeobjectClass:10 NAME 'immaePeertubeClass' diff --git a/modules/private/websites/syden/peertube.nix b/modules/private/websites/syden/peertube.nix index 5732928..aa465d7 100644 --- a/modules/private/websites/syden/peertube.nix +++ b/modules/private/websites/syden/peertube.nix @@ -3,7 +3,7 @@ let scfg = config.myServices.websites.syden.peertube; name = "peertube"; dataDir = "/var/lib/syden_peertube"; - package = (pkgs.mylibs.flakeCompat ../../../../flakes/private/peertube).default; + package = (pkgs.mylibs.flakeCompat ../../../../flakes/private/peertube).packages.x86_64-linux.peertube_syden; env = config.myEnv.tools.syden_peertube; in { diff --git a/modules/private/websites/tools/peertube/default.nix b/modules/private/websites/tools/peertube/default.nix index 3345453..9c5ef5a 100644 --- a/modules/private/websites/tools/peertube/default.nix +++ b/modules/private/websites/tools/peertube/default.nix @@ -15,7 +15,6 @@ in { services.peertube = { enable = true; configFile = "/var/secrets/webapps/tools-peertube"; - package = pkgs.webapps.peertube.override { ldap = true; sendmail = true; light = "fr-FR"; }; }; users.users.peertube.extraGroups = [ "keys" ]; @@ -73,6 +72,7 @@ in { captions: '${pcfg.dataDir}/storage/captions/' cache: '${pcfg.dataDir}/storage/cache/' plugins: '${pcfg.dataDir}/storage/plugins/' + client_overrides: '${pcfg.dataDir}/storage/client-overrides/' ''; }]; diff --git a/modules/webapps/peertube.nix b/modules/webapps/peertube.nix deleted file mode 100644 index 1d76e9b..0000000 --- a/modules/webapps/peertube.nix +++ /dev/null @@ -1,108 +0,0 @@ -{ lib, pkgs, config, ... }: -let - name = "peertube"; - cfg = config.services.peertube; - - uid = config.ids.uids.peertube; - gid = config.ids.gids.peertube; -in -{ - options.services.peertube = { - enable = lib.mkEnableOption "Enable Peertube’s service"; - user = lib.mkOption { - type = lib.types.str; - default = name; - description = "User account under which Peertube runs"; - }; - group = lib.mkOption { - type = lib.types.str; - default = name; - description = "Group under which Peertube runs"; - }; - dataDir = lib.mkOption { - type = lib.types.path; - default = "/var/lib/${name}"; - description = '' - The directory where Peertube stores its data. - ''; - }; - configFile = lib.mkOption { - type = lib.types.path; - description = '' - The configuration file path for Peertube. - ''; - }; - package = lib.mkOption { - type = lib.types.package; - default = pkgs.webapps.peertube; - description = '' - Peertube package to use. - ''; - }; - # Output variables - systemdStateDirectory = lib.mkOption { - type = lib.types.str; - # Use ReadWritePaths= instead if varDir is outside of /var/lib - default = assert lib.strings.hasPrefix "/var/lib/" cfg.dataDir; - lib.strings.removePrefix "/var/lib/" cfg.dataDir; - description = '' - Adjusted Peertube data directory for systemd - ''; - readOnly = true; - }; - }; - - config = lib.mkIf cfg.enable { - users.users = lib.optionalAttrs (cfg.user == name) { - "${name}" = { - inherit uid; - group = cfg.group; - description = "Peertube user"; - home = cfg.dataDir; - useDefaultShell = true; - }; - }; - users.groups = lib.optionalAttrs (cfg.group == name) { - "${name}" = { - inherit gid; - }; - }; - - systemd.services.peertube = { - description = "Peertube"; - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" "postgresql.service" ]; - wants = [ "postgresql.service" ]; - - environment.NODE_CONFIG_DIR = "${cfg.dataDir}/config"; - environment.NODE_ENV = "production"; - environment.HOME = cfg.package; - - path = [ pkgs.nodejs pkgs.bashInteractive pkgs.ffmpeg pkgs.openssl ]; - - script = '' - install -m 0750 -d ${cfg.dataDir}/config - ln -sf ${cfg.configFile} ${cfg.dataDir}/config/production.yaml - ln -sf ${cfg.package}/config/default.yaml ${cfg.dataDir}/config/default.yaml - exec npm run start - ''; - - serviceConfig = { - User = cfg.user; - Group = cfg.group; - WorkingDirectory = cfg.package; - StateDirectory = cfg.systemdStateDirectory; - StateDirectoryMode = 0750; - PrivateTmp = true; - ProtectHome = true; - ProtectControlGroups = true; - Restart = "always"; - Type = "simple"; - TimeoutSec = 60; - }; - - unitConfig.RequiresMountsFor = cfg.dataDir; - }; - }; -} - -- cgit v1.2.3