blob: 6aa599ecff094b3d8eed730f8cb6c0b81f5d4037 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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";
};
};
};
})
]
);
}
|