From 94cf4c20059838a04d8a44c1b6ef460d362d9f73 Mon Sep 17 00:00:00 2001 From: twoneis Date: Sun, 23 Mar 2025 21:14:34 +0100 Subject: [PATCH] started writing module --- modules/fedi/iceshrimp/iceshrimp.nix | 2 ++ modules/fedi/iceshrimp/option.nix | 33 ++++++++++++++++++++++++++++ modules/fedi/iceshrimp/service.nix | 20 +++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 modules/fedi/iceshrimp/option.nix create mode 100644 modules/fedi/iceshrimp/service.nix diff --git a/modules/fedi/iceshrimp/iceshrimp.nix b/modules/fedi/iceshrimp/iceshrimp.nix index 85d972b..c3786fd 100644 --- a/modules/fedi/iceshrimp/iceshrimp.nix +++ b/modules/fedi/iceshrimp/iceshrimp.nix @@ -5,6 +5,7 @@ makeWrapper, zstd, dotnetCorePackages, + postgres, }: let version = "v2025.1-beta5.patch2.security1"; in @@ -26,6 +27,7 @@ in buildInputs = [ dotnetCorePackages.sdk_9_0 + postgres ]; unpackPhase = '' diff --git a/modules/fedi/iceshrimp/option.nix b/modules/fedi/iceshrimp/option.nix new file mode 100644 index 0000000..3db2b6d --- /dev/null +++ b/modules/fedi/iceshrimp/option.nix @@ -0,0 +1,33 @@ +{ + pkgs, + lib, + ... +}: let + inherit + (lib) + mkOption + mkPackageOption + ; + inherit (lib.types) nonEmptyStr attrsOf str; +in { + options = { + services.iceshrimp = { + user = mkOption { + type = nonEmptyStr; + default = "iceshrimp"; + }; + + group = mkOption { + type = nonEmptyStr; + default = "iceshrimp"; + }; + + package = mkPackageOption pkgs "iceshrimp" {}; + + config = mkOption { + type = attrsOf str; + default = ./default_config.nix; + }; + }; + }; +} diff --git a/modules/fedi/iceshrimp/service.nix b/modules/fedi/iceshrimp/service.nix new file mode 100644 index 0000000..1029a09 --- /dev/null +++ b/modules/fedi/iceshrimp/service.nix @@ -0,0 +1,20 @@ +{iceshrimp}: { + systemd.services.iceshrimp = { + enable = true; + description = "Iceshrimp.NET daemon"; + + requires = ["postgresql.service"]; + after = ["postgersql.service"]; + wantedBy = ["multi-user.target"]; + + serviceConfig = { + Type = "simple"; + Restart = "on-failure"; + + ExecStart = "${iceshrimp}/bin/iceshrimp --migrate-and-start"; + + User = "iceshrimp"; + Group = "iceshrimp"; + }; + }; +}