1 { config, lib, pkgs, ... }:
3 cfg = config.myServices.websites.games.terraforming-mars;
4 terraforming-mars = pkgs.callPackage ./terraforming-mars.nix {};
7 options.myServices.websites.games.terraforming-mars.enable = lib.mkEnableOption "Enable Terraforming mars game";
8 config = lib.mkIf cfg.enable {
9 myServices.dns.zones."immae.eu".subdomains.games.subdomains.terraforming-mars = with config.myServices.dns.helpers;
10 ips servers.eldiron.ips.main;
11 myServices.chatonsProperties.services.terraforming-mars = {
12 file.datetime = "2022-08-27T14:20:00";
14 name = "Terraforming Mars";
15 description = "Terraforming Mars Boardgame";
16 website = "https://terraforming-mars.games.immae.eu/";
17 logo = "https://terraforming-mars.games.immae.eu/favicon.ico";
19 status.description = "OK";
20 registration."" = ["NONE"];
21 registration.load = "OPEN";
22 install.type = "PACKAGE";
25 name = "Terraforming Mars";
26 website = "https://github.com/terraforming-mars/terraforming-mars";
27 license.url = "https://github.com/terraforming-mars/terraforming-mars/blob/main/LICENSE";
28 license.name = "GNU General Public License v3.0";
29 version = "unversionned";
30 source.url = "https://github.com/terraforming-mars/terraforming-mars";
33 systemd.services.terraforming-mars = {
34 path = [ pkgs.nodejs_16 pkgs.bashInteractive ];
35 description = "Terraforming mars game";
36 wantedBy = [ "multi-user.target" ];
38 export PORT=/run/terraforming-mars/socket.sock
39 export NODE_ENV=production
40 mkdir -p /var/lib/terraforming-mars/db
45 chown :wwwrun /run/terraforming-mars/socket.sock
46 chmod g+w /run/terraforming-mars/socket.sock
48 environment.NPM_CONFIG_LOGS_DIR = "%S/terraforming-mars/npm_logs";
49 environment.NPM_CONFIG_CACHE = "%S/terraforming-mars/npm_cache";
51 User = "terraformingmars";
53 SupplementaryGroups = [ "wwwrun" ];
55 WorkingDirectory = terraforming-mars;
56 RuntimeDirectory = "terraforming-mars";
57 StateDirectory = "terraforming-mars";
61 security.acme.certs.games.extraDomainNames = [ "terraforming-mars.games.immae.eu" ];
62 security.acme.certs.games.domain = "games.immae.eu";
63 services.websites.env.tools.vhostConfs.games_terraforming-mars = {
65 hosts = [ "terraforming-mars.games.immae.eu" ];
69 ProxyPass / unix:///run/terraforming-mars/socket.sock|http://terraforming-mars.games.immae.eu/
70 ProxyPassReverse / unix:///run/terraforming-mars/socket.sock|http://terraforming-mars.games.immae.eu/