From 1a64deeb894dc95e2645a75771732c6cc53a79ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Wed, 4 Oct 2023 01:35:06 +0200 Subject: Squash changes containing private information There were a lot of changes since the previous commit, but a lot of them contained personnal information about users. All thos changes got stashed into a single commit (history is kept in a different place) and private information was moved in a separate private repository --- modules/webapps/mediagoblin.nix | 231 ---------------------------------------- 1 file changed, 231 deletions(-) delete mode 100644 modules/webapps/mediagoblin.nix (limited to 'modules/webapps/mediagoblin.nix') diff --git a/modules/webapps/mediagoblin.nix b/modules/webapps/mediagoblin.nix deleted file mode 100644 index 3fe5e38..0000000 --- a/modules/webapps/mediagoblin.nix +++ /dev/null @@ -1,231 +0,0 @@ -{ lib, pkgs, config, ... }: -let - name = "mediagoblin"; - cfg = config.services.mediagoblin; - - uid = config.ids.uids.mediagoblin; - gid = config.ids.gids.mediagoblin; - - paste_local = pkgs.writeText "paste_local.ini" '' - [DEFAULT] - debug = false - - [pipeline:main] - pipeline = mediagoblin - - [app:mediagoblin] - use = egg:mediagoblin#app - config = ${cfg.configFile} ${cfg.package}/mediagoblin.ini - /mgoblin_static = ${cfg.package}/mediagoblin/static - - [loggers] - keys = root - - [handlers] - keys = console - - [formatters] - keys = generic - - [logger_root] - level = INFO - handlers = console - - [handler_console] - class = StreamHandler - args = (sys.stderr,) - level = NOTSET - formatter = generic - - [formatter_generic] - format = %(levelname)-7.7s [%(name)s] %(message)s - - [filter:errors] - use = egg:mediagoblin#errors - debug = false - - [server:main] - use = egg:waitress#main - unix_socket = ${cfg.sockets.paster} - unix_socket_perms = 777 - url_scheme = https - ''; -in -{ - options.services.mediagoblin = { - enable = lib.mkEnableOption "Enable Mediagoblin’s service"; - user = lib.mkOption { - type = lib.types.str; - default = name; - description = "User account under which Mediagoblin runs"; - }; - group = lib.mkOption { - type = lib.types.str; - default = name; - description = "Group under which Mediagoblin runs"; - }; - dataDir = lib.mkOption { - type = lib.types.path; - default = "/var/lib/${name}"; - description = '' - The directory where Mediagoblin stores its data. - ''; - }; - socketsDir = lib.mkOption { - type = lib.types.path; - default = "/run/${name}"; - description = '' - The directory where Mediagoblin puts runtime files and sockets. - ''; - }; - configFile = lib.mkOption { - type = lib.types.path; - description = '' - The configuration file path for Mediagoblin. - ''; - }; - 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. - ''; - }; - 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 Mediagoblin data directory for systemd - ''; - readOnly = true; - }; - systemdRuntimeDirectory = lib.mkOption { - type = lib.types.str; - # Use ReadWritePaths= instead if socketsDir is outside of /run - default = assert lib.strings.hasPrefix "/run/" cfg.socketsDir; - lib.strings.removePrefix "/run/" cfg.socketsDir; - description = '' - Adjusted Mediagoblin sockets directory for systemd - ''; - readOnly = true; - }; - sockets = lib.mkOption { - type = lib.types.attrsOf lib.types.path; - default = { - paster = "${cfg.socketsDir}/mediagoblin.sock"; - }; - readOnly = true; - description = '' - Mediagoblin sockets - ''; - }; - pids = lib.mkOption { - type = lib.types.attrsOf lib.types.path; - default = { - paster = "${cfg.socketsDir}/mediagoblin.pid"; - celery = "${cfg.socketsDir}/mediagoblin-celeryd.pid"; - }; - readOnly = true; - description = '' - Mediagoblin pid files - ''; - }; - }; - - config = lib.mkIf cfg.enable { - users.users = lib.optionalAttrs (cfg.user == name) { - "${name}" = { - inherit uid; - group = cfg.group; - description = "Mediagoblin user"; - home = cfg.dataDir; - useDefaultShell = true; - }; - }; - users.groups = lib.optionalAttrs (cfg.group == name) { - "${name}" = { - inherit gid; - }; - }; - - systemd.slices.mediagoblin = { - description = "Mediagoblin slice"; - }; - systemd.services.mediagoblin-web = { - description = "Mediagoblin service"; - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" ]; - wants = [ "postgresql.service" "redis.service" ]; - - environment.SCRIPT_NAME = "/mediagoblin/"; - - script = '' - exec ./bin/paster serve \ - ${paste_local} \ - --pid-file=${cfg.pids.paster} - ''; - preStop = '' - exec ./bin/paster serve \ - --pid-file=${cfg.pids.paster} \ - ${paste_local} stop - ''; - preStart = '' - if [ -d ${cfg.dataDir}/plugin_static/ ]; then - rm ${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.package; - RuntimeDirectory = cfg.systemdRuntimeDirectory; - StateDirectory= cfg.systemdStateDirectory; - PIDFile = cfg.pids.paster; - }; - - unitConfig.RequiresMountsFor = cfg.dataDir; - }; - - systemd.services.mediagoblin-celeryd = { - description = "Mediagoblin service"; - wantedBy = [ "multi-user.target" ]; - after = [ "network.target" "mediagoblin-web.service" ]; - - environment.MEDIAGOBLIN_CONFIG = cfg.configFile; - environment.CELERY_CONFIG_MODULE = "mediagoblin.init.celery.from_celery"; - - script = '' - exec ./bin/celery worker \ - --logfile=${cfg.dataDir}/celery.log \ - --loglevel=INFO - ''; - - serviceConfig = { - Slice = "mediagoblin.slice"; - User = cfg.user; - PrivateTmp = true; - Restart = "always"; - TimeoutSec = 60; - Type = "simple"; - WorkingDirectory = cfg.package; - RuntimeDirectory = cfg.systemdRuntimeDirectory; - StateDirectory= cfg.systemdStateDirectory; - PIDFile = cfg.pids.celery; - }; - - unitConfig.RequiresMountsFor = cfg.dataDir; - }; - }; -} -- cgit v1.2.3