- users.users.mediagoblin = {
- name = "mediagoblin";
- uid = config.ids.uids.mediagoblin;
- group = "mediagoblin";
- description = "Mediagoblin user";
- home = varDir;
- useDefaultShell = true;
- extraGroups = [ "keys" ];
- };
-
- users.groups.mediagoblin.gid = config.ids.gids.mediagoblin;
-
- 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=${socketsDir}/mediagoblin.pid
- '';
-
- preStop = ''
- exec ./bin/paster serve \
- --pid-file=${socketsDir}/mediagoblin.pid \
- ${paste_local} stop
- '';
- preStart = ''
- ./bin/gmg -cf ${mediagoblin_init} dbupdate
- '';
-
- serviceConfig = {
- User = "mediagoblin";
- PrivateTmp = true;
- Restart = "always";
- TimeoutSec = 15;
- Type = "simple";
- WorkingDirectory = pythonRoot;
- PIDFile = "${socketsDir}/mediagoblin.pid";
- };
-
- unitConfig.RequiresMountsFor = varDir;
- };
-
- systemd.services.mediagoblin-celeryd = {
- description = "Mediagoblin service";
- wantedBy = [ "multi-user.target" ];
- after = [ "network.target" "mediagoblin-web.service" ];
-
- environment.MEDIAGOBLIN_CONFIG = mediagoblin_init;
- environment.CELERY_CONFIG_MODULE = "mediagoblin.init.celery.from_celery";
-
- script = ''
- exec ./bin/celery worker \
- --logfile=${varDir}/celery.log \
- --loglevel=INFO
- '';
-
- serviceConfig = {
- User = "mediagoblin";
- PrivateTmp = true;
- Restart = "always";
- TimeoutSec = 60;
- Type = "simple";
- WorkingDirectory = pythonRoot;
- PIDFile = "${socketsDir}/mediagoblin-celeryd.pid";
- };
-
- unitConfig.RequiresMountsFor = varDir;
- };
-
- system.activationScripts.mediagoblin = {
- deps = [ "users" ];
- text = ''
- install -m 0755 -o mediagoblin -g mediagoblin -d ${socketsDir}
- install -m 0755 -o mediagoblin -g mediagoblin -d ${varDir}
- if [ -d ${varDir}/plugin_static/ ]; then
- rm ${varDir}/plugin_static/coreplugin_basic_auth
- ln -sf ${pythonRoot}/mediagoblin/plugins/basic_auth/static ${varDir}/plugin_static/coreplugin_basic_auth
- fi
- '';