blob: 04b6a8b28dc58b784a6b08de30a415c452842e15 (
plain) (
blame)
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
|
{config, ...}: let
taskStore = "/var/lib/taskserver";
in {
environment.etc = {
"tmpfiles.d/taskserver.conf".source = config.age.secrets.taskserverSystemdTmpfiles.path;
};
vhack.persist.directories = [
"/var/lib/taskserver"
];
services.taskserver = {
enable = true;
pki.manual = {
ca.cert = ./certs/ca.cert.pem;
server = {
cert = "${taskStore}/fullchain.pem";
key = "${taskStore}/key.pem";
};
};
debug = false;
ipLog = false;
trust = "strict";
organisations = import ./organisations.nix;
openFirewall = true;
fqdn = "taskserver.vhack.eu";
# This should tell taskd to bind to both ipv6 and ipv4 domains:
# This will ONLY work when the kernel option `sys.net.ipv6.bindv6only` is false
listenHost = "::";
};
boot.kernelParams = [
"sys.net.ipv6.bindv6only=0"
];
security.acme.certs.taskserver = {
domain = "taskserver.vhack.eu";
postRun =
/*
bash
*/
''
set -x
rm "${taskStore}/key.pem"
rm "${taskStore}/fullchain.pem"
cp key.pem "${taskStore}";
cp fullchain.pem "${taskStore}";
chown taskd:taskd "${taskStore}/key.pem"
chown taskd:taskd "${taskStore}/fullchain.pem"
'';
};
}
|