X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fprivate%2Fwebsites%2Ftools%2Fgames%2Fcodenames%2Fdefault.nix;fp=modules%2Fprivate%2Fwebsites%2Ftools%2Fgames%2Fcodenames%2Fdefault.nix;h=25eb62de6f13072e2abc7be58692aebdf7a0ad82;hb=de6002a102eb825678bebe12b13a119263e59eef;hp=0000000000000000000000000000000000000000;hpb=9c08c3bc093d3d4547214daf057051e7384581e9;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/private/websites/tools/games/codenames/default.nix b/modules/private/websites/tools/games/codenames/default.nix new file mode 100644 index 0000000..25eb62d --- /dev/null +++ b/modules/private/websites/tools/games/codenames/default.nix @@ -0,0 +1,50 @@ +{ config, lib, pkgs, ... }: +let + greenapid = pkgs.callPackage ./greenapid.nix {}; + frontend = pkgs.callPackage ./frontend.nix { nodeEnv = pkgs.callPackage pkgs.mylibs.nodeEnv {}; }; + wordlists = pkgs.runCommand "wordlists" {} '' + mkdir -p $out + cp -r ${./wordlists} $out/wordlists + ''; + cfg = config.myServices.websites.games.codenames; +in +{ + options.myServices.websites.games.codenames.enable = lib.mkEnableOption "Enable Codenames game"; + config = lib.mkIf cfg.enable { + systemd.services.codenames_api = { + description = "Api for codenames game"; + wantedBy = [ "multi-user.target" ]; + script = "${greenapid}/bin/greenapid"; + postStart = '' + sleep 5; + chown :wwwrun /run/codenamesgreen/socket.sock + chmod g+w /run/codenamesgreen/socket.sock + ''; + serviceConfig = { + User = "codenames"; + DynamicUser = true; + SupplementaryGroups = [ "wwwrun" ]; + Type = "simple"; + RuntimeDirectory = "codenamesgreen"; + WorkingDirectory = builtins.toString wordlists; + }; + }; + + services.websites.env.tools.vhostConfs.games_codenames = { + certName = "games"; + certMainHost = "games.immae.eu"; + hosts = [ "codenames.games.immae.eu" ]; + root = frontend; + extraConfig = [ + '' + ProxyPass /api/ unix:///run/codenamesgreen/socket.sock|http://codenames.games.immae.eu/ + ProxyPassReverse /api/ unix:///run/codenamesgreen/socket.sock|http://codenames.games.immae.eu/ + + + FallbackResource index.html + + '' + ]; + }; + }; +}