X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fwebapps%2Fmediagoblin.nix;h=3fe5e38327c23974e40169bebbfa80f4ea22bc34;hb=7ad4966f41db0669a77c7a6ee7f87f0d4e586b0c;hp=dbc4c2b19043aae5647a60820e987d14e4c9e33b;hpb=258dd18bac4bf5dd03cf1098ffa35cb954f9e015;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/webapps/mediagoblin.nix b/modules/webapps/mediagoblin.nix index dbc4c2b..3fe5e38 100644 --- a/modules/webapps/mediagoblin.nix +++ b/modules/webapps/mediagoblin.nix @@ -15,8 +15,8 @@ let [app:mediagoblin] use = egg:mediagoblin#app - config = ${cfg.configFile} ${cfg.workdir}/mediagoblin.ini - /mgoblin_static = ${cfg.workdir}/mediagoblin/static + config = ${cfg.configFile} ${cfg.package}/mediagoblin.ini + /mgoblin_static = ${cfg.package}/mediagoblin/static [loggers] keys = root @@ -87,26 +87,13 @@ in package = lib.mkOption { type = lib.types.package; default = pkgs.webapps.mediagoblin; + example = lib.literalExample '' + pkgs.webapps.mediagoblin.withPlugins (p: [p.basicsearch]) + ''; description = '' Mediagoblin package to use. ''; }; - plugins = lib.mkOption { - type = lib.types.listOf lib.types.package; - default = []; - description = '' - Mediagoblin plugins to use. - ''; - }; - # Output variables - workdir = lib.mkOption { - type = lib.types.package; - default = cfg.package.withPlugins cfg.plugins; - description = '' - Adjusted Mediagoblin package with plugins - ''; - readOnly = true; - }; systemdStateDirectory = lib.mkOption { type = lib.types.str; # Use ReadWritePaths= instead if varDir is outside of /var/lib @@ -166,6 +153,9 @@ in }; }; + systemd.slices.mediagoblin = { + description = "Mediagoblin slice"; + }; systemd.services.mediagoblin-web = { description = "Mediagoblin service"; wantedBy = [ "multi-user.target" ]; @@ -187,18 +177,19 @@ in preStart = '' if [ -d ${cfg.dataDir}/plugin_static/ ]; then rm ${cfg.dataDir}/plugin_static/coreplugin_basic_auth - ln -sf ${cfg.workdir}/mediagoblin/plugins/basic_auth/static ${cfg.dataDir}/plugin_static/coreplugin_basic_auth + ln -sf ${cfg.package}/mediagoblin/plugins/basic_auth/static ${cfg.dataDir}/plugin_static/coreplugin_basic_auth fi ./bin/gmg -cf ${cfg.configFile} dbupdate ''; serviceConfig = { + Slice = "mediagoblin.slice"; User = cfg.user; PrivateTmp = true; Restart = "always"; TimeoutSec = 15; Type = "simple"; - WorkingDirectory = cfg.workdir; + WorkingDirectory = cfg.package; RuntimeDirectory = cfg.systemdRuntimeDirectory; StateDirectory= cfg.systemdStateDirectory; PIDFile = cfg.pids.paster; @@ -222,12 +213,13 @@ in ''; serviceConfig = { + Slice = "mediagoblin.slice"; User = cfg.user; PrivateTmp = true; Restart = "always"; TimeoutSec = 60; Type = "simple"; - WorkingDirectory = cfg.workdir; + WorkingDirectory = cfg.package; RuntimeDirectory = cfg.systemdRuntimeDirectory; StateDirectory= cfg.systemdStateDirectory; PIDFile = cfg.pids.celery;