summaryrefslogtreecommitdiff
path: root/modules/nixos/services/determinate.nix
diff options
context:
space:
mode:
authorSeth Flynn <[email protected]>2025-02-13 18:48:58 -0500
committerSeth Flynn <[email protected]>2025-02-13 22:09:11 -0500
commit3a2a22f50343b887a85cf18fca4720f751eeafb8 (patch)
tree3369a32ed7e409f54a1e68e9fa648be4e73efbe5 /modules/nixos/services/determinate.nix
parent3b4a9dc47ad660cd4d99bd66aed336abad5185b5 (diff)
modules/determinate: make dedicated module
Diffstat (limited to 'modules/nixos/services/determinate.nix')
-rw-r--r--modules/nixos/services/determinate.nix68
1 files changed, 68 insertions, 0 deletions
diff --git a/modules/nixos/services/determinate.nix b/modules/nixos/services/determinate.nix
new file mode 100644
index 0000000..6aa599e
--- /dev/null
+++ b/modules/nixos/services/determinate.nix
@@ -0,0 +1,68 @@
+{
+ config,
+ lib,
+ inputs',
+ ...
+}:
+
+let
+ cfg = config.services.determinate;
+
+ package = inputs'.determinate.packages.default;
+in
+
+{
+ config = lib.mkIf cfg.enable (
+ lib.mkMerge [
+ (lib.mkIf cfg.determinate-nixd.enable {
+ environment = {
+ # `determinate-nixd` overrides /etc/nix/nix.conf with it's own
+ etc."nix/nix.custom.conf" = { inherit (config.environment.etc."nix/nix.conf") source; };
+
+ systemPackages = [
+ package
+ ];
+ };
+
+ systemd = {
+ services.nix-daemon.serviceConfig = {
+ ExecStart = [
+ ""
+ "@${lib.getExe' package "determinate-nixd"} determinate-nixd --nix-bin ${config.nix.package}/bin daemon"
+ ];
+ KillMode = lib.mkDefault "process";
+ LimitNOFILE = lib.mkDefault 1048576;
+ LimitSTACK = lib.mkDefault "64M";
+ TasksMax = lib.mkDefault 1048576;
+ };
+
+ sockets = {
+ determinate-nixd = {
+ description = "Determinate Nixd Daemon Socket";
+ wantedBy = [ "sockets.target" ];
+ before = [ "multi-user.target" ];
+
+ unitConfig = {
+ RequiresMountsFor = [
+ "/nix/store"
+ "/nix/var/determinate"
+ ];
+ };
+
+ socketConfig = {
+ Service = "nix-daemon.service";
+ FileDescriptorName = "determinate-nixd.socket";
+ ListenStream = "/nix/var/determinate/determinate-nixd.socket";
+ DirectoryMode = "0755";
+ };
+ };
+
+ nix-daemon.socketConfig = {
+ FileDescriptorName = "nix-daemon.socket";
+ };
+ };
+ };
+ })
+ ]
+ );
+}