Commit f42c7b62cf6a

Vincent Demeester <vincent@sbr.pm>
2025-06-14 00:32:25
systems/kerkouane: add a gosmee service and use it
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent f68ac6f
Changed files (4)
lib/default.nix
@@ -75,6 +75,7 @@
         self.nixosModules.wireguard-client
         self.nixosModules.wireguard-server
         self.nixosModules.govanityurl
+        self.nixosModules.gosmee
         inputs.agenix.nixosModules.default
         inputs.lanzaboote.nixosModules.lanzaboote
         homeInput.nixosModules.home-manager
modules/gosmee.nix
@@ -0,0 +1,52 @@
+{
+  config,
+  lib,
+  pkgs,
+  ...
+}:
+
+with lib;
+let
+  cfg = config.services.gosmee;
+in
+{
+  options = {
+    services.gosmee = {
+      enable = mkEnableOption ''
+        gosmee is a webhook forwader/relayer
+      '';
+      package = mkOption {
+        type = types.package;
+        default = pkgs.gosmee;
+        description = ''
+          gosmee package to use.
+        '';
+      };
+
+      public-url = mkOption {
+        description = ''
+          Public URL to show to user, useful when you are behind a proxy.
+        '';
+        type = types.str;
+        default = "";
+      };
+    };
+  };
+  config = mkIf cfg.enable {
+    systemd.packages = [ cfg.package ];
+    systemd.services.gosmee = {
+      description = "Gosmee service";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        # User = cfg.user;
+        Restart = "on-failure";
+        ExecStart = ''
+          ${cfg.package}/bin/gosmee server \
+          ${optionalString (cfg.public-url != "") "--public-url ${escapeShellArg cfg.public-url}"}
+        '';
+      };
+      path = [ cfg.package ];
+    };
+  };
+}
systems/kerkouane/extra.nix
@@ -17,6 +17,11 @@
     peers = globals.fn.generateWireguardPeers globals.machines;
   };
 
+  services.gosmee = {
+    enable = true;
+    public-url = "https://webhook.sbr.pm";
+  };
+
   security.pam.enableSSHAgentAuth = true;
   services.govanityurl = {
     enable = true;
flake.nix
@@ -142,6 +142,7 @@
         wireguard-client = ./modules/wireguard-client.nix;
         wireguard-server = ./modules/wireguard-server.nix;
         govanityurl = ./modules/govanityurl.nix;
+        gosmee = ./modules/gosmee.nix;
       };
 
       # system-manager configurations