alpha
Login
or
Join now
hermes.pds.lassul.us
/
superconfig
forked from
lass.pds.lassul.us/superconfig
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
This repository has no description
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
configs.kannix: remove
author
lassulus
date
1 week ago
(Oct 11, 2026, 10:32 AM CEST)
commit
59925cfe
59925cfe066223b1728c1e0cf63dc7fe2d184324
parent
cf447587
cf447587f7ddf4e08ce51c8a177fa611db3f183b
-152
3 changed files
Expand all
Collapse all
Unified
Split
configs
kannix.nix
machines
neoprism
backup.nix
config.nix
-147
configs/kannix.nix
Reviewed
···
1
1
-
{
2
2
-
self,
3
3
-
pkgs,
4
4
-
lib,
5
5
-
...
6
6
-
}:
7
7
-
let
8
8
-
port = 4243;
9
9
-
stateDir = "/var/lib/kannix";
10
10
-
bareRepo = "${stateDir}/repos/kannix.git";
11
11
-
srcDir = "${stateDir}/checkout/kannix";
12
12
-
13
13
-
configFile = pkgs.writeText "kannix.json" (
14
14
-
builtins.toJSON {
15
15
-
columns = [
16
16
-
"backlog"
17
17
-
"planning"
18
18
-
"doing"
19
19
-
"review"
20
20
-
"done"
21
21
-
];
22
22
-
server = {
23
23
-
host = "127.0.0.1";
24
24
-
inherit port;
25
25
-
};
26
26
-
repos_dir = "${stateDir}/repos";
27
27
-
worktree_dir = "${stateDir}/worktrees";
28
28
-
}
29
29
-
);
30
30
-
31
31
-
kannixScript = pkgs.writeShellScript "kannix-run" ''
32
32
-
export KANNIX_CONFIG=${configFile}
33
33
-
export KANNIX_STATE_DIR=${stateDir}
34
34
-
export PATH=${
35
35
-
lib.makeBinPath [
36
36
-
pkgs.tmux
37
37
-
pkgs.git
38
38
-
pkgs.nix
39
39
-
pkgs.inotify-tools
40
40
-
pkgs.coreutils
41
41
-
]
42
42
-
}:$PATH
43
43
-
cd ${srcDir}
44
44
-
45
45
-
while true; do
46
46
-
nix run .# -- \
47
47
-
--host 127.0.0.1 \
48
48
-
--port ${toString port} &
49
49
-
PID=$!
50
50
-
51
51
-
inotifywait -r -e modify,create,delete,move \
52
52
-
--exclude '(__pycache__|\.pyc|\.git/|result)' \
53
53
-
${srcDir}/src ${srcDir}/flake.nix ${srcDir}/flake.lock ${srcDir}/package.nix ${srcDir}/pyproject.toml
54
54
-
55
55
-
echo "Change detected, restarting..."
56
56
-
kill $PID 2>/dev/null
57
57
-
wait $PID 2>/dev/null
58
58
-
sleep 1
59
59
-
done
60
60
-
'';
61
61
-
in
62
62
-
{
63
63
-
users.users.kannix = {
64
64
-
isNormalUser = true;
65
65
-
home = stateDir;
66
66
-
createHome = true;
67
67
-
group = "users";
68
68
-
shell = pkgs.bashInteractive;
69
69
-
linger = true;
70
70
-
openssh.authorizedKeys.keys = [
71
71
-
self.keys.ssh.barnacle.public
72
72
-
self.keys.ssh.yubi_pgp.public
73
73
-
self.keys.ssh.termux_massulus.public
74
74
-
self.keys.ssh.yubi1.public
75
75
-
self.keys.ssh.yubi2.public
76
76
-
self.keys.ssh.solo2.public
77
77
-
self.keys.ssh.xerxes.public
78
78
-
self.keys.ssh.ignavia.public
79
79
-
self.keys.ssh.phonetpm_massulus.public
80
80
-
self.keys.ssh.massulus.public
81
81
-
];
82
82
-
packages = [
83
83
-
pkgs.tmux
84
84
-
pkgs.git
85
85
-
(pkgs.writeShellScriptBin "kannix-ctl" ''
86
86
-
cd ${srcDir}
87
87
-
exec "$(nix build .# --no-link --print-out-paths)/bin/kannix-ctl" "$@"
88
88
-
'')
89
89
-
];
90
90
-
};
91
91
-
92
92
-
systemd.tmpfiles.rules = [
93
93
-
"d ${stateDir}/repos 0755 kannix users -"
94
94
-
"d ${stateDir}/worktrees 0755 kannix users -"
95
95
-
"d ${stateDir}/checkout 0755 kannix users -"
96
96
-
];
97
97
-
98
98
-
systemd.services.kannix-checkout = {
99
99
-
description = "Create kannix worktree from bare repo";
100
100
-
wantedBy = [ "multi-user.target" ];
101
101
-
unitConfig.ConditionPathExists = "!${srcDir}/.git";
102
102
-
serviceConfig = {
103
103
-
Type = "oneshot";
104
104
-
User = "kannix";
105
105
-
Group = "users";
106
106
-
ExecStart = toString (
107
107
-
pkgs.writeShellScript "kannix-checkout" ''
108
108
-
${pkgs.git}/bin/git --git-dir=${bareRepo} worktree add ${srcDir} main
109
109
-
''
110
110
-
);
111
111
-
};
112
112
-
};
113
113
-
114
114
-
systemd.user.services.kannix = {
115
115
-
description = "Kannix kanban server";
116
116
-
wantedBy = [ "default.target" ];
117
117
-
after = [ "network.target" ];
118
118
-
path = [
119
119
-
pkgs.tmux
120
120
-
pkgs.git
121
121
-
pkgs.nix
122
122
-
];
123
123
-
serviceConfig = {
124
124
-
Type = "simple";
125
125
-
ExecStart = toString kannixScript;
126
126
-
Restart = "on-failure";
127
127
-
RestartSec = 5;
128
128
-
WorkingDirectory = srcDir;
129
129
-
};
130
130
-
};
131
131
-
132
132
-
services.nginx.virtualHosts."kannix.lassul.us" = {
133
133
-
enableACME = true;
134
134
-
forceSSL = true;
135
135
-
locations."/" = {
136
136
-
proxyPass = "http://127.0.0.1:${toString port}";
137
137
-
proxyWebsockets = true;
138
138
-
extraConfig = ''
139
139
-
proxy_set_header Host $host;
140
140
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
141
141
-
proxy_set_header X-Forwarded-Proto $scheme;
142
142
-
proxy_read_timeout 3600s;
143
143
-
proxy_send_timeout 3600s;
144
144
-
'';
145
145
-
};
146
146
-
};
147
147
-
}
-2
machines/neoprism/backup.nix
View file
Reviewed
···
32
32
"/var/lib/matrix-synapse/media_store/local_content"
33
33
"/var/lib/radicale"
34
34
"/home/bot"
35
35
-
"/var/lib/kannix"
36
35
"/var/vmail"
37
36
"/var/dkim"
38
37
"/var/sieve"
···
46
45
"/home/bot/.cache"
47
46
"/home/bot/.nix-defexpr"
48
47
"/home/bot/.nix-profile"
49
49
-
"/var/lib/kannix/.cache"
50
48
"/var/lib/parley/*.db*"
51
49
];
52
50
repo = "u550643@u550643.your-storagebox.de:/./neoprism";
-3
machines/neoprism/config.nix
View file
Reviewed
···
91
91
# document signing
92
92
../../configs/docuseal.nix
93
93
94
94
-
# kannix (kanban board)
95
95
-
../../configs/kannix.nix
96
96
-
97
94
# timeful availability polls (when.lassul.us)
98
95
../../configs/timeful.nix
99
96