X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=nixops%2Fmodules%2Fwebsites%2Ftools%2Fdiaspora.nix;h=221e01c27af101270f2819e16156581a4a5617ae;hb=daf64e3f7de98e4267823d14fa34891b27b5f657;hp=53989b7fa31b526fd8f718dadf820f37c3f29268;hpb=79d2de8b83d765721b2cb720b2bc59673df54a4a;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/nixops/modules/websites/tools/diaspora.nix b/nixops/modules/websites/tools/diaspora.nix index 53989b7..221e01c 100644 --- a/nixops/modules/websites/tools/diaspora.nix +++ b/nixops/modules/websites/tools/diaspora.nix @@ -1,41 +1,18 @@ -{ lib, pkgs, config, myconfig, mylibs, ... }: +{ lib, pkgs, config, myconfig, ... }: let - varDir = "/var/lib/diaspora_immae"; - - diaspora = pkgs.webapps.diaspora.override { - ldap = true; - inherit varDir; - podmin_email = "diaspora@tools.immae.eu"; - config_dir = "/var/secrets/webapps/diaspora"; - }; - - railsSocket = "${socketsDir}/diaspora.sock"; - socketsDir = "/run/diaspora"; env = myconfig.env.tools.diaspora; root = "/run/current-system/webapps/tools_diaspora"; cfg = config.services.myWebsites.tools.diaspora; + dcfg = config.services.diaspora; in { options.services.myWebsites.tools.diaspora = { enable = lib.mkEnableOption "enable diaspora's website"; }; config = lib.mkIf cfg.enable { - ids.uids.diaspora = env.user.uid; - ids.gids.diaspora = env.user.gid; - - users.users.diaspora = { - name = "diaspora"; - uid = config.ids.uids.diaspora; - group = "diaspora"; - description = "Diaspora user"; - home = varDir; - useDefaultShell = true; - packages = [ diaspora.gems pkgs.nodejs diaspora.gems.ruby ]; - extraGroups = [ "keys" ]; - }; + users.users.diaspora.extraGroups = [ "keys" ]; - users.groups.diaspora.gid = config.ids.gids.diaspora; - mySecrets.keys = [ + secrets.keys = [ { dest = "webapps/diaspora/diaspora.yml"; user = "diaspora"; @@ -54,7 +31,7 @@ in { logrotate: debug: server: - listen: '${socketsDir}/diaspora.sock' + listen: '${dcfg.sockets.rails}' rails_environment: 'production' chat: server: @@ -160,75 +137,30 @@ in { } ]; - systemd.services.diaspora = { - description = "Diaspora"; - wantedBy = [ "multi-user.target" ]; - after = [ - "network.target" "redis.service" "postgresql.service" - ]; - wants = [ - "redis.service" "postgresql.service" - ]; - - environment.RAILS_ENV = "production"; - environment.BUNDLE_PATH = "${diaspora.gems}/${diaspora.gems.ruby.gemPath}"; - environment.BUNDLE_GEMFILE = "${diaspora.gems.confFiles}/Gemfile"; - environment.EYE_SOCK = "${socketsDir}/eye.sock"; - environment.EYE_PID = "${socketsDir}/eye.pid"; - - path = [ diaspora.gems pkgs.nodejs diaspora.gems.ruby pkgs.curl pkgs.which pkgs.gawk ]; - - preStart = '' - ./bin/bundle exec rails db:migrate - ''; - - script = '' - exec ${diaspora}/script/server - ''; - - serviceConfig = { - User = "diaspora"; - PrivateTmp = true; - Restart = "always"; - Type = "simple"; - WorkingDirectory = diaspora; - StandardInput = "null"; - KillMode = "control-group"; - }; - - unitConfig.RequiresMountsFor = varDir; - }; - - system.activationScripts.diaspora = { - deps = [ "users" ]; - text = '' - install -m 0755 -o diaspora -g diaspora -d ${socketsDir} - install -m 0755 -o diaspora -g diaspora -d ${varDir} \ - ${varDir}/uploads ${varDir}/tmp \ - ${varDir}/log - install -m 0700 -o diaspora -g diaspora -d ${varDir}/tmp/pids - if [ ! -f ${varDir}/schedule.yml ]; then - echo "{}" | $wrapperDir/sudo -u diaspora tee ${varDir}/schedule.yml - fi - ''; + services.diaspora = { + enable = true; + package = pkgs.webapps.diaspora.override { ldap = true; }; + dataDir = "/var/lib/diaspora_immae"; + adminEmail = "diaspora@tools.immae.eu"; + configDir = "/var/secrets/webapps/diaspora"; }; - services.myWebsites.tools.modules = [ + services.websites.tools.modules = [ "headers" "proxy" "proxy_http" ]; security.acme.certs."eldiron".extraDomains."diaspora.immae.eu" = null; system.extraSystemBuilderCmds = '' mkdir -p $out/webapps - ln -s ${diaspora}/public/ $out/webapps/tools_diaspora + ln -s ${dcfg.workdir}/public/ $out/webapps/tools_diaspora ''; - services.myWebsites.tools.vhostConfs.diaspora = { + services.websites.tools.vhostConfs.diaspora = { certName = "eldiron"; hosts = [ "diaspora.immae.eu" ]; root = root; extraConfig = [ '' RewriteEngine On RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f - RewriteRule ^/(.*)$ unix://${railsSocket}|http://diaspora.immae.eu/%{REQUEST_URI} [P,NE,QSA,L] + RewriteRule ^/(.*)$ unix://${dcfg.sockets.rails}|http://diaspora.immae.eu/%{REQUEST_URI} [P,NE,QSA,L] ProxyRequests Off ProxyVia On