1 { config, lib, pkgs, ... }:
3 greenapid = pkgs.callPackage ./greenapid.nix {};
4 frontend = pkgs.callPackage ./frontend.nix { nodeEnv = pkgs.callPackage pkgs.mylibs.nodeEnv {}; };
5 wordlists = pkgs.runCommand "wordlists" {} ''
7 cp -r ${./wordlists} $out/wordlists
9 cfg = config.myServices.websites.games.codenames;
12 options.myServices.websites.games.codenames.enable = lib.mkEnableOption "Enable Codenames game";
13 config = lib.mkIf cfg.enable {
14 myServices.dns.zones."immae.eu".subdomains.games.subdomains.codenames = with config.myServices.dns.helpers;
15 ips servers.eldiron.ips.main;
17 myServices.chatonsProperties.services.codenames = {
18 file.datetime = "2022-08-27T14:08:00";
20 name = "Codenames Green";
21 description = "Co-op codenames app";
22 website = "https://codenames.games.immae.eu/";
23 logo = "https://codenames.games.immae.eu/images/apple-touch-icon.png";
25 status.description = "OK";
26 registration."" = ["NONE"];
27 registration.load = "OPEN";
28 install.type = "PACKAGE";
31 name = "Codenames Green";
32 website = "https://www.codenamesgreen.com/";
33 license.url = "https://github.com/jbowens/codenamesgreen/blob/master/package.json";
35 version = greenapid.version;
36 source.url = "https://github.com/jbowens/codenamesgreen";
39 systemd.services.codenames_api = {
40 description = "Api for codenames game";
41 wantedBy = [ "multi-user.target" ];
42 script = "${greenapid}/bin/greenapid";
45 chown :wwwrun /run/codenamesgreen/socket.sock
46 chmod g+w /run/codenamesgreen/socket.sock
51 SupplementaryGroups = [ "wwwrun" ];
53 RuntimeDirectory = "codenamesgreen";
54 WorkingDirectory = builtins.toString wordlists;
58 security.acme.certs.games.domain = "games.immae.eu";
59 security.acme.certs.games.extraDomainNames = [ "codenames.games.immae.eu" ];
60 services.websites.env.tools.vhostConfs.games_codenames = {
62 hosts = [ "codenames.games.immae.eu" ];
66 ProxyPass /api/ unix:///run/codenamesgreen/socket.sock|http://codenames.games.immae.eu/
67 ProxyPassReverse /api/ unix:///run/codenamesgreen/socket.sock|http://codenames.games.immae.eu/
69 <Directory ${frontend}>
70 FallbackResource index.html