]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - virtual/modules/websites/tools/mediagoblin/default.nix
Rename virtual folder to nixops
[perso/Immae/Config/Nix.git] / virtual / modules / websites / tools / mediagoblin / default.nix
diff --git a/virtual/modules/websites/tools/mediagoblin/default.nix b/virtual/modules/websites/tools/mediagoblin/default.nix
deleted file mode 100644 (file)
index 5f60503..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-{ lib, pkgs, config, myconfig, mylibs, ... }:
-let
-  mediagoblin = pkgs.callPackage ./mediagoblin.nix {
-    inherit (mylibs) fetchedGit fetchedGithub;
-    env = myconfig.env.tools.mediagoblin;
-  };
-
-  cfg = config.services.myWebsites.tools.mediagoblin;
-in {
-  options.services.myWebsites.tools.mediagoblin = {
-    enable = lib.mkEnableOption "enable mediagoblin's website";
-  };
-
-  config = lib.mkIf cfg.enable {
-    ids.uids.mediagoblin = 397;
-    ids.gids.mediagoblin = 397;
-
-    users.users.mediagoblin = {
-      name = "mediagoblin";
-      uid = config.ids.uids.mediagoblin;
-      group = "mediagoblin";
-      description = "Mediagoblin user";
-      home = mediagoblin.varDir;
-      useDefaultShell = true;
-    };
-
-    users.groups.mediagoblin.gid = config.ids.gids.mediagoblin;
-
-    systemd.services.mediagoblin-web = {
-      description = "Mediagoblin service";
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" ];
-
-      environment.SCRIPT_NAME = "/mediagoblin/";
-
-      script = ''
-        exec ./bin/paster serve \
-          ${mediagoblin.pythonRoot}/paste_local.ini \
-          --pid-file=${mediagoblin.socketsDir}/mediagoblin.pid
-      '';
-
-      preStop = ''
-        exec ./bin/paster serve \
-          --pid-file=${mediagoblin.socketsDir}/mediagoblin.pid \
-          ${mediagoblin.pythonRoot}/paste_local.ini stop
-        '';
-      preStart = ''
-        ./bin/gmg dbupdate
-      '';
-
-      serviceConfig = {
-        User = "mediagoblin";
-        PrivateTmp = true;
-        Restart = "always";
-        TimeoutSec = 15;
-        Type = "simple";
-        WorkingDirectory = mediagoblin.pythonRoot;
-        PIDFile = "${mediagoblin.socketsDir}/mediagoblin.pid";
-      };
-
-      unitConfig.RequiresMountsFor = mediagoblin.varDir;
-    };
-
-    systemd.services.mediagoblin-celeryd = {
-      description = "Mediagoblin service";
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" "mediagoblin-web.service" ];
-
-      environment.MEDIAGOBLIN_CONFIG = "${mediagoblin.pythonRoot}/mediagoblin_local.ini";
-      environment.CELERY_CONFIG_MODULE = "mediagoblin.init.celery.from_celery";
-
-      script = ''
-        exec ./bin/celery worker \
-          --logfile=${mediagoblin.varDir}/celery.log \
-          --loglevel=INFO
-      '';
-
-      serviceConfig = {
-        User = "mediagoblin";
-        PrivateTmp = true;
-        Restart = "always";
-        TimeoutSec = 60;
-        Type = "simple";
-        WorkingDirectory = mediagoblin.pythonRoot;
-        PIDFile = "${mediagoblin.socketsDir}/mediagoblin-celeryd.pid";
-      };
-
-      unitConfig.RequiresMountsFor = mediagoblin.varDir;
-    };
-
-    system.activationScripts.mediagoblin = {
-      deps = [ "users" ];
-      text = ''
-      install -m 0755 -o mediagoblin -g mediagoblin -d ${mediagoblin.socketsDir}
-      install -m 0755 -o mediagoblin -g mediagoblin -d ${mediagoblin.varDir}
-      if [ -d ${mediagoblin.varDir}/plugin_static/ ]; then
-        rm ${mediagoblin.varDir}/plugin_static/coreplugin_basic_auth
-        ln -sf ${mediagoblin.pythonRoot}/mediagoblin/plugins/basic_auth/static ${mediagoblin.varDir}/plugin_static/coreplugin_basic_auth
-      fi
-      '';
-    };
-
-    services.myWebsites.tools.modules = [
-      "proxy" "proxy_http" "proxy_balancer"
-      "lbmethod_byrequests" "lbmethod_bytraffic" "lbmethod_bybusyness" "lbmethod_heartbeat"
-    ];
-    users.users.wwwrun.extraGroups = [ "mediagoblin" ];
-    security.acme.certs."eldiron".extraDomains."mgoblin.immae.eu" = null;
-    services.myWebsites.tools.vhostConfs.mgoblin = {
-      certName    = "eldiron";
-      hosts       = ["mgoblin.immae.eu" ];
-      root        = null;
-      extraConfig = [ ''
-        Alias /mgoblin_media ${mediagoblin.varDir}/media/public
-        <Directory ${mediagoblin.varDir}/media/public>
-          Options -Indexes +FollowSymLinks +MultiViews +Includes
-          Require all granted
-        </Directory>
-
-        Alias /theme_static ${mediagoblin.varDir}/theme_static
-        <Directory ${mediagoblin.varDir}/theme_static>
-          Options -Indexes +FollowSymLinks +MultiViews +Includes
-          Require all granted
-        </Directory>
-
-        Alias /plugin_static ${mediagoblin.varDir}/plugin_static
-        <Directory ${mediagoblin.varDir}/plugin_static>
-          Options -Indexes +FollowSymLinks +MultiViews +Includes
-          Require all granted
-        </Directory>
-
-        ProxyPreserveHost on
-        ProxyVia On
-        ProxyRequests Off
-        ProxyPass /mgoblin_media !
-        ProxyPass /theme_static !
-        ProxyPass /plugin_static !
-        ProxyPassMatch ^/.well-known/acme-challenge !
-        ProxyPass / balancer://paster_server/
-        ProxyPassReverse / balancer://paster_server
-        <Proxy balancer://paster_server>
-          BalancerMember unix://${mediagoblin.socketsDir}/mediagoblin.sock|http://
-        </Proxy>
-      '' ];
-    };
-  };
-}