main
1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8with lib;
9let
10 cfg = config.services.gosmee;
11in
12{
13 options = {
14 services.gosmee = {
15 enable = mkEnableOption ''
16 gosmee is a webhook forwader/relayer
17 '';
18 package = mkOption {
19 type = types.package;
20 default = pkgs.gosmee;
21 description = ''
22 gosmee package to use.
23 '';
24 };
25
26 public-url = mkOption {
27 description = ''
28 Public URL to show to user, useful when you are behind a proxy.
29 '';
30 type = types.str;
31 default = "";
32 };
33 };
34 };
35 config = mkIf cfg.enable {
36 systemd.packages = [ cfg.package ];
37 systemd.services.gosmee = {
38 description = "Gosmee service";
39 after = [ "network.target" ];
40 wantedBy = [ "multi-user.target" ];
41 serviceConfig = {
42 # User = cfg.user;
43 Restart = "on-failure";
44 ExecStart = ''
45 ${cfg.package}/bin/gosmee server \
46 ${optionalString (cfg.public-url != "") "--public-url ${escapeShellArg cfg.public-url}"}
47 '';
48 };
49 path = [ cfg.package ];
50 };
51 };
52}