Compare commits

...

542 commits

Author SHA1 Message Date
1408470a53
who up grading to 26.05
Some checks failed
ci/woodpecker/push/build-cache Pipeline failed
2025-11-27 14:01:07 +01:00
d74a131529
meow
Some checks failed
ci/woodpecker/push/build-cache Pipeline failed
2025-11-26 11:11:49 +01:00
0eb6953b0d
meow
Some checks failed
ci/woodpecker/push/build-cache Pipeline failed
2025-11-24 09:44:09 +01:00
83de52d5db Add 'old-conf/' from commit '62a64a79a8'
git-subtree-dir: old-conf
git-subtree-mainline: 4667974392
git-subtree-split: 62a64a79a8
2025-11-21 13:33:06 +01:00
4667974392 meow 2025-11-21 13:32:44 +01:00
62a64a79a8
lms bc jellyfin buggy qwq 2025-11-17 15:12:32 +01:00
2614910b6f
gruvbox gtk
Some checks failed
ci/woodpecker/push/build-cache Pipeline failed
2025-11-12 16:24:27 +01:00
6088d13939
fix dark theme
Some checks failed
ci/woodpecker/push/build-cache Pipeline failed
2025-11-12 15:27:53 +01:00
acea54db81
meow 2025-11-07 14:12:17 +01:00
f63d3785e4
mew 2025-11-04 06:14:54 +01:00
245c5a7d27 update
Some checks failed
ci/woodpecker/push/build-cache Pipeline failed
2025-11-01 14:08:31 +01:00
9b13868f9a mew
Some checks failed
ci/woodpecker/push/build-cache Pipeline failed
2025-10-30 20:54:22 +01:00
6002b09ca6
moar -> moor
Some checks failed
ci/woodpecker/push/build-cache Pipeline failed
ci/woodpecker/cron/dependency-pr Pipeline was successful
2025-10-27 15:52:41 +01:00
3df730a55a
fix lix
Some checks failed
ci/woodpecker/push/build-cache Pipeline failed
2025-10-27 10:37:19 +01:00
714e1d5cd3
mew 2025-10-13 08:13:16 +02:00
a046f47171
meow 2025-10-07 19:36:37 +02:00
effe64b494
meow 2025-09-30 21:19:49 +02:00
cc9a4376b9
meow 2025-09-28 23:08:03 +02:00
d9aecb96c7
meow 2025-09-26 18:10:35 +02:00
e085b8d286
snipe-it 2025-09-26 15:22:08 +02:00
995671dd46
meow 2025-09-23 19:22:11 +02:00
5bc41085e5
a 2025-09-18 22:40:12 +02:00
9983854936
meow 2025-09-09 07:06:54 +02:00
6207e4227c
flake update 2025-09-03 15:54:05 +02:00
70bb2e784d
ytdl changes 2025-09-03 15:44:51 +02:00
866fd953bb
matrixchange trusted key servers 2025-09-03 11:09:40 +02:00
00b7fc1f03
aaaa# Please enter the commit message for your changes. Lines starting 2025-09-03 11:06:35 +02:00
ebdc6debe4
update authentik 2025-08-27 10:16:07 +02:00
bdaf07dca9
pg update 2025-08-23 17:54:34 +02:00
2d0c946fe3
yt-dl sub 2025-08-17 18:45:21 +02:00
4978d56c8c
zfs mail changes 2025-08-16 20:32:33 +02:00
6dd6a4021f
beep 2025-08-12 18:11:34 +02:00
a701e6ead9
update 2025-08-11 19:12:46 +02:00
b4483eb4e6
new blog 2025-08-10 17:41:43 +02:00
c66b9071d9
caddy force letsencrypt 2025-07-23 18:10:02 +02:00
152afb4b93
fuck 2025-07-13 20:46:57 +02:00
1c549d1242
update authentik 2025-07-10 18:36:45 +02:00
da09df49b1
ntfy 2025-07-07 12:04:38 +02:00
ab44dd5abb
meow 2025-06-30 20:57:10 +02:00
1ca1890e33
changes 2025-06-28 14:07:59 +02:00
a62aae0d45
ahhh 2025-06-24 22:25:32 +02:00
d7ce4d6800
fix mail notifications 2025-05-22 19:04:37 +02:00
010951c77b
labello font fix 2025-05-21 20:07:37 +02:00
02188142e6
a 2025-05-03 21:04:51 +02:00
24d01f1c96
mew 2025-05-03 20:42:15 +02:00
83cfa03146
gts 2025-05-03 17:23:29 +02:00
1289e626d8
meow 2025-05-01 20:33:54 +02:00
e5ba903fe9
mew 2025-04-24 20:07:00 +02:00
7c3124dd43
meow 2025-04-18 18:34:45 +02:00
41d1b7a331
meow 2025-04-11 15:34:32 +02:00
6ac1410e3e
authentik stuff 2025-04-02 21:31:50 +02:00
97220577b9
add mail for picard, add picard to ds9 proxy 2025-04-02 19:24:30 +02:00
a38e5fd3a9
paperless 2025-03-30 17:05:27 +02:00
bde01c887c
matrix update 2025-03-27 20:54:17 +01:00
91bf1a644a
update 2025-03-27 12:26:11 +01:00
73a1c0b1e9
add cp 2025-03-23 00:30:20 +01:00
cfa803bc82
partsdb 2025-03-06 15:32:34 +01:00
458168036c
mewo 2025-02-27 15:09:22 +01:00
9eaf15ca39
authentik ldap 2025-02-27 13:23:32 +01:00
18403cff70
add hedgedoc to sso 2025-02-27 12:36:55 +01:00
1c3e1d0a91
ds9 http auth 2025-02-23 23:06:00 +01:00
f6d88dc51f
authentik 2025-02-23 18:05:13 +01:00
151180b02f
meow 2025-02-22 12:38:33 +01:00
d6e453664d
fix ds9 immich port 2025-02-15 19:22:51 +01:00
0f2c8049fd
tailscale exit node support 2025-02-14 12:43:45 +01:00
b42a8d1c99
ds9 ipv6 prefixstable 2025-02-12 01:49:14 +01:00
0ed30c35cf
ds9 http3 2025-02-11 05:33:18 +01:00
3b2e87acad
ds9 dyndns 2025-02-11 05:29:27 +01:00
27b46b5f57
caddy ipv6 2025-02-11 05:15:12 +01:00
56d7d47a8b
meow 2025-02-11 04:48:38 +01:00
a30ff16bc2
archive 2025-02-10 01:38:11 +01:00
ced68275e7
a 2025-02-09 20:33:34 +01:00
b74826a63a
added grafana optsions 2025-02-02 05:59:58 +01:00
c6fad213b4 meow 2025-01-31 18:57:38 +01:00
61b4ceedfa
add beets 2025-01-30 06:24:42 +01:00
d6ae95ef9b
meow 2025-01-26 09:26:39 +01:00
1685aa3a52 a 2025-01-02 16:55:10 +01:00
dd2e47cf52
mew 2025-01-02 16:03:03 +01:00
46617e5292
mew 2024-12-26 12:47:38 +01:00
66642ac0f2
fix samba 2024-12-16 00:10:22 +01:00
8b72e73fb0
mew 2024-12-16 00:01:53 +01:00
6198165886 mewo 2024-12-02 18:23:49 +01:00
86953ea925 mew 2024-11-29 01:02:14 +01:00
9c9a3fe8ad a 2024-11-11 00:04:12 +01:00
25483265e1 mewo 2024-11-10 23:55:03 +01:00
a7c7406e11
rekey 2024-11-06 21:49:12 +01:00
7ffa34c604 mewo 2024-11-06 21:47:58 +01:00
71acefb35a
meow 2024-11-04 11:48:04 +01:00
fccd07da33
a 2024-11-03 22:59:44 +01:00
ae9f1cfdfb
meow 2024-11-03 19:00:16 +01:00
c309e5a4c2
meow 2024-10-31 23:30:34 +01:00
de8a55a7e8
meow 2024-10-31 21:27:21 +01:00
5ff6757c07
add theseus 2024-10-31 20:29:05 +01:00
0d80c86e20
notes 2024-10-18 14:33:04 +02:00
0755b908da
update 2024-09-25 17:36:38 +02:00
90e0c66a3b
db access for nodered 2024-09-15 16:18:28 +02:00
cd8418388d
node-red 2024-09-15 16:06:05 +02:00
29cbe09ba0
grafana 2024-09-11 17:40:29 +02:00
f6342a6c30
UPGRADE 2024-09-09 11:01:15 +02:00
eb9cd960e5
mrow 2024-09-03 23:35:28 +02:00
279570c40b
update 2024-08-30 13:16:18 +02:00
e5b7a4b9c6
fix: ds9 acme 2024-08-19 23:59:03 +02:00
cb2b888386
navidrome 2024-08-19 23:39:29 +02:00
e011751f61
small changes
lol
2024-08-08 09:08:52 +02:00
ae1594d006
ahahahahahahahahahahha 2024-07-05 17:42:31 +02:00
598e2f47fc
meow 2024-07-05 17:33:20 +02:00
f70bd1ef0b
meow 2024-07-04 19:06:45 +02:00
6182ab3108
flake me 2024-07-01 15:54:10 +02:00
000e050396
k3s 2024-06-22 19:21:26 +02:00
3b6a28a896
upadte 2024-06-19 16:51:59 +02:00
2cafcd6880
upadte 2024-06-19 16:25:27 +02:00
8ba0b48f34
meow 2024-06-18 22:12:38 +02:00
4aca99be34
mrowwww 2024-06-18 18:08:57 +02:00
e0a8e0ceb2
mrow 2024-05-28 17:11:54 +02:00
ef53eba774
mrow 2024-05-10 14:37:22 +02:00
c03012c20c
meww 2024-04-23 19:01:03 +02:00
8f6a996176
meow 2024-04-23 18:20:54 +02:00
339d69b1c7
a 2024-04-16 21:52:33 +02:00
491c8bf72c
voy is back 2024-04-16 21:51:08 +02:00
7f365f0bd2
meow 2024-04-16 20:34:59 +02:00
c58c137f5a
aaa 2024-04-04 16:39:51 +02:00
1e7dd05f6e
a 2024-04-02 18:44:44 +02:00
f38f819450
a 2024-04-02 18:34:57 +02:00
7eda91e4df
a 2024-04-02 18:16:26 +02:00
6772b3da9c
a 2024-04-02 18:14:01 +02:00
5825c85b7e
awawawaw 2024-04-02 18:05:04 +02:00
77e5045896
aaa 2024-04-02 17:56:35 +02:00
486fe5fc8b
aaaaa 2024-04-02 17:52:14 +02:00
8da8606655
a 2024-04-02 16:40:51 +02:00
bee3835027
a 2024-04-02 16:34:32 +02:00
0188f55024
stoopid 2024-04-02 16:29:11 +02:00
626cf8adba
aaaa 2024-04-02 16:15:31 +02:00
aed461750e
aawawwaawawaw 2024-04-02 16:13:43 +02:00
bd783d415d
boop 2024-04-02 16:05:00 +02:00
4cc8b030de
mew 2024-04-02 15:40:17 +02:00
2ccaa53a9c
a 2024-04-02 15:36:07 +02:00
8116a2953d
a 2024-04-02 15:35:35 +02:00
9ef6e78e2d
meow 2024-04-02 15:34:03 +02:00
37fdae42d2
this will explode 2024-04-02 15:30:58 +02:00
08cc8d5e82
stupid? 2024-03-25 04:08:28 +01:00
c88d03bfb0
oops 2024-03-25 03:53:31 +01:00
e1d6fe22c0
fix picard compile 2024-03-17 10:45:21 +01:00
1d7bb49bfe
format 2024-03-17 10:27:57 +01:00
d1ab22a870
the unfuckening 2024-03-17 10:20:54 +01:00
443f53cf8f
meow 2024-03-17 09:52:35 +01:00
56562e07e5
b 2024-03-17 09:43:59 +01:00
a5f2da1890
caddy: abort on yeet 2024-03-17 09:32:01 +01:00
3c2cfcd1d9
fix: caddy compile 2024-03-17 09:29:21 +01:00
422cefb45c
migrate ds9 and daedalus 2024-03-17 09:15:21 +01:00
ff468ca2d7
some slight changes 2024-03-17 09:07:28 +01:00
be17bb97d2
vscode changes 2024-03-17 08:05:29 +01:00
4a9a646c01
a 2024-03-15 02:56:37 +01:00
d81f95d233
aaaaaaaa 2024-03-15 02:45:06 +01:00
d053ac4011
a 2024-03-15 02:38:16 +01:00
1172dea819
aaaaa 2024-03-15 02:22:14 +01:00
1297b5e1ed
b 2024-03-15 02:18:08 +01:00
9524881bd2
a 2024-03-15 02:17:27 +01:00
88d9c061e1
a 2024-03-15 02:09:36 +01:00
334544c21c
a 2024-03-15 01:57:31 +01:00
6e43725b67
a 2024-03-15 01:32:27 +01:00
af04454135
a 2024-03-15 01:26:28 +01:00
fccfed75c5
a 2024-03-15 01:23:56 +01:00
ceec1c7de0
update 2024-03-14 11:05:36 +01:00
e9ac6a4a14
meoow 2024-03-10 17:38:14 +01:00
2dcd176432
fix: fix 2024-03-05 12:51:43 +01:00
Lucy
9ab8a19570
Update default.nix 2024-02-28 00:22:36 +01:00
Lucy
981a8bd6ec
Update flake.nix 2024-02-28 00:21:16 +01:00
Lucy
379df0bfe7
Update default.nix 2024-02-28 00:20:48 +01:00
Lucy
a91c31dd2a
Update default.nix 2024-02-28 00:14:31 +01:00
Lucy
53231babb9
Update default.nix 2024-02-28 00:10:59 +01:00
Lucy
c11180d2e7
Update default.nix 2024-02-28 00:08:21 +01:00
4a83409eb9
a 2024-02-24 16:30:32 +01:00
72791a0160
mew 2024-02-24 16:29:04 +01:00
c0d89b3a05
calcom 2024-02-24 16:25:59 +01:00
70c5effc5c
feat: moved hass 2024-02-23 18:16:41 +01:00
283f08edf9
update 2024-02-12 21:13:51 +01:00
353e586801
update 2024-02-03 22:57:38 +01:00
7f4a9e8752
vscode 2024-01-25 17:26:47 +01:00
5c56fab15e
git 2024-01-16 14:59:41 +01:00
4e9c46011a
IHATEIPv4AWAAWAWWAAWAWAWAOINWIONATTNIO 2024-01-15 18:02:13 +01:00
fa1fa0c102
awawqaawawawawawawawawaawwaayuftwfyutau[wftnuwft 2024-01-15 17:57:13 +01:00
cc8a1b1fa3
awwawaawawawwaaw 2024-01-15 17:54:58 +01:00
9c1343bfbd
nosrebuild logging 2024-01-11 16:46:11 +01:00
1aa80a380b
fix caddy 2024-01-04 15:34:25 +01:00
40dcdceef4
picard caddy 2024-01-04 15:21:40 +01:00
4299c9ff93
a 2024-01-03 21:02:50 +01:00
ae6fa526f2
hm-vm? 2024-01-03 17:51:12 +01:00
db89325b56
update 2023-12-25 18:50:39 +01:00
403554015a
fix 2023-12-10 13:16:29 +01:00
0cae64a938
plausible 2023-12-10 13:06:39 +01:00
73f05761cc
fix hedgedoc 2023-12-10 13:05:45 +01:00
05efb10642
no exa anymore 2023-12-10 12:23:49 +01:00
defee15663
23.11? 2023-12-10 12:21:59 +01:00
2707a0bd5d
xonsh test 2023-12-03 23:08:28 +01:00
9f52a76307 bla 2023-11-26 17:56:41 +01:00
Lucy
8e94894814
Create LICENSE 2023-11-25 15:36:51 +01:00
71c3a9d42a
bla 2023-11-20 23:51:41 +01:00
121f4a1a68
a 2023-11-11 00:49:08 +01:00
5e47c211dd
a 2023-11-11 00:44:29 +01:00
c47fe97b0f
update 2023-11-08 14:05:09 +01:00
8627a33aa5
a 2023-10-24 18:42:46 +02:00
de33341053
feat: backup daedalus 2023-10-23 16:52:38 +02:00
b0871baea6
add borgmatic darwin module 2023-10-23 16:05:01 +02:00
323d7fc16b
update 2023-10-18 14:27:34 +02:00
65ddda79a3
vscode changes 2023-10-14 12:24:30 +02:00
8b4d9841ab
feat: enable nixd 2023-10-12 15:11:27 +02:00
af77a7b187
spice tests 2023-10-12 14:45:17 +02:00
ecd5b1065d
vscode changes 2023-10-12 14:06:56 +02:00
b6233301dc
vscode addon changes 2023-10-12 10:13:54 +02:00
360acefef9
more vscode 2023-10-11 17:50:21 +02:00
95128333e3
feat: added vscode config 2023-10-11 15:58:15 +02:00
c685ff4bb9
update (especially blog) 2023-10-04 14:02:43 +02:00
d2d1d690fe
new aliases 2023-10-04 00:07:57 +02:00
05e929339c
update 2023-10-03 23:51:16 +02:00
7a49d05fb7
picard offsite backup 2023-10-03 23:48:53 +02:00
03a5599963
gatebridge backup via borg 2023-10-01 14:20:52 +02:00
8d22854d9c
doing curesd shit 2023-09-28 20:12:35 +02:00
a54f25d863
fix plausible 2023-09-28 20:09:29 +02:00
6546b000a1
update 2023-09-26 13:36:01 +02:00
a905642fad
i like cute enbies 2023-09-25 18:50:55 +02:00
18cd02b352
i like twains 2023-09-25 18:41:12 +02:00
3107f13416
feat: added dartls to lsp 2023-09-23 12:53:53 +02:00
ad2f6ea099
test sign 2023-09-18 14:14:28 +02:00
880fdb7057
a 2023-09-18 14:14:02 +02:00
af77965d9d fix ssh url 2023-09-16 17:31:03 +02:00
c5ee7d11e0 a 2023-09-16 16:19:51 +02:00
beec0badfb bm 2023-09-16 16:06:13 +02:00
91259d02e7 desec 2023-09-16 15:55:50 +02:00
0342390b6f b 2023-09-14 15:46:48 +02:00
38ca2ee874 a 2023-09-14 15:43:01 +02:00
1233b1afde feat: hedgedoc 2023-09-14 15:16:09 +02:00
2822385074 nginx more body size 2023-09-01 15:15:55 +02:00
e4edb18e54 vim
: try light theme
2023-09-01 15:07:07 +02:00
3385de5cbb feat: google support for plausible 2023-08-29 22:00:01 +02:00
c9758ba2f7 update blog to do target blank 2023-08-28 19:47:42 +02:00
6dfe9b82a6 fix: synapse 2023-08-28 19:06:49 +02:00
c50fe37300 blog update/wght-italic.css' 2023-08-28 15:05:56 +02:00
0c426b48fc update blog 2023-08-28 14:55:39 +02:00
02f7c40137 update again 2023-08-28 14:47:39 +02:00
0a058eb6c6 fix url 2023-08-28 14:06:56 +02:00
03080b0809 update 2023-08-28 14:06:48 +02:00
def29fc90e remove newline on pw 2023-08-28 14:05:00 +02:00
6fe8342476 fix admin email 2023-08-28 13:57:50 +02:00
f2e51f0fb9 feat: plausible email 2023-08-28 13:54:25 +02:00
4cc6bf950d fix plausible pw 2023-08-28 13:42:22 +02:00
08557afe58 disable nginx prometheus stuff 2023-08-28 13:34:35 +02:00
324018e6f9 feat: plausible 2023-08-28 13:30:24 +02:00
471e943c6e matrix: enabled sliding sync for xyno.space 2023-08-25 22:23:38 +02:00
e34f36e42a i like trains 2023-08-21 23:00:03 +02:00
1781b8adca feat: borgmatic 2023-08-16 13:49:15 +02:00
98ce595512 more time machine sadness 2023-08-16 13:26:27 +02:00
9abf13e018 a 2023-08-14 11:02:50 +02:00
08246988d0 a 2023-08-14 11:00:56 +02:00
d43797232c a 2023-08-14 10:59:27 +02:00
09477d1eb3 a 2023-08-14 10:58:30 +02:00
c4311c5837 a 2023-08-14 10:56:49 +02:00
72ab536262 try make samba better 2023-08-14 10:51:24 +02:00
042d8bd8df a 2023-08-11 21:41:26 +02:00
629804bb5a blog update 2023-08-09 02:29:04 +02:00
fb5fa40e86 aaa 2023-08-08 00:48:01 +02:00
62f7bcc397 a 2023-08-07 19:10:05 +02:00
dccd3bc200 fixi fixi 2023-08-07 19:03:46 +02:00
ae32486447 fix: matrix host stuffzies 2023-08-07 15:20:48 +02:00
96a4ece962 a 2023-08-01 16:54:15 +02:00
846aa3ba2e a 2023-08-01 16:48:32 +02:00
c955e6ba58 feat: maybe now logging is better'ish 2023-08-01 16:41:43 +02:00
3afc46dd2f update 2023-08-01 16:10:18 +02:00
fd98b92b88 feat: xynospace matrix 2023-07-28 04:31:01 +02:00
a703a8eb57 you're getting an upgrade 2023-07-28 01:21:56 +02:00
41fb35ed8e fixi fixi 2023-07-27 21:24:04 +02:00
8b8a8b511d a 2023-07-18 00:02:02 +02:00
c3d9498341 arc 2023-07-17 23:54:39 +02:00
bd63f2c4d4 aaaaaaaaaa 2023-07-10 18:02:58 +02:00
04b46ef7c9 a 2023-07-03 19:12:49 +02:00
b36df8a627 heroic 2023-07-03 19:10:56 +02:00
18d47f2e8a localhost 2023-06-30 23:11:14 +02:00
158a5cef7b sliding sync 2023-06-30 22:48:35 +02:00
061293e537 changes 2023-06-30 03:14:53 +02:00
94d60b5a4e chore :update 2023-06-28 23:24:16 +02:00
2618e51072 fix host 2023-06-23 16:32:21 +02:00
ac505934cf update 2023-06-22 18:02:23 +02:00
31637568e2 feat: add beliskner 2023-06-18 04:12:49 +02:00
8149d5a71d a 2023-06-10 01:22:30 +02:00
a71f59264c chore: update 2023-06-02 16:06:38 +02:00
b41df72bdb chore: zsh stuff 2023-05-31 15:51:43 +02:00
13d38caa18 feat: ds9 -> offsite backup monitoring 2023-05-26 14:34:09 +02:00
da5f533399 chore: update 2023-05-19 20:00:09 +02:00
Philipp Hochkamp
13cd2a8ca5 new domain 2023-05-15 17:01:00 +02:00
Philipp Hochkamp
2efadc1c9e key added 2023-05-12 07:36:41 +02:00
Philipp Hochkamp
d915e02e3a a 2023-05-10 07:40:01 +02:00
Philipp Hochkamp
8de7a014b5 a 2023-05-05 01:53:16 +02:00
Philipp Hochkamp
fe322905be a 2023-05-03 13:41:56 +02:00
Philipp Hochkamp
d59bfa1906 a 2023-04-30 23:44:18 +02:00
Philipp Hochkamp
da23e52670 test 2023-04-30 23:11:54 +02:00
Philipp Hochkamp
3ce1b14157 some changes 2023-04-30 23:02:16 +02:00
Philipp Hochkamp
7cdd07a9ae added haskell language server 2023-04-28 17:28:52 +02:00
Philipp Hochkamp
b0d67cc741 fixi2 2023-04-27 16:25:50 +02:00
Philipp Hochkamp
99e51034e1 fixi fixi wupsi upsi 2023-04-27 16:23:13 +02:00
Philipp Hochkamp
d8fafd40b6 forgot bind 2023-04-25 12:59:04 +02:00
Philipp Hochkamp
bf6b806f88 update 2023-04-24 21:15:11 +02:00
Philipp Hochkamp
8531fab65b dap 2023-04-24 06:59:40 +02:00
Philipp Hochkamp
b84724fe2c add nzbr user 2023-04-24 00:11:00 +02:00
Philipp Hochkamp
2c6f3a5ee3 redo daedalusvm 2023-04-23 23:56:59 +02:00
Philipp Hochkamp
8bb834b24f Revert "gruvbox material?"
This reverts commit a03dfbc8dd.
2023-04-22 02:51:34 +02:00
Philipp Hochkamp
a03dfbc8dd gruvbox material? 2023-04-22 02:37:58 +02:00
Philipp Hochkamp
380be27b0a feat: nvim with lsp 2023-04-22 02:25:15 +02:00
Philipp Hochkamp
7b690a7714 a 2023-04-16 20:54:12 +02:00
Philipp Hochkamp
8523ef80be chore: ssl on hseu 2023-04-16 20:51:16 +02:00
Philipp Hochkamp
5b240e6fff revert neovim version 2023-04-12 08:10:14 +02:00
Philipp Hochkamp
c18d20d33d fixes 2023-04-11 21:16:07 +02:00
Philipp Hochkamp
4e740a4bc0 update flake lock 2023-04-11 20:03:49 +02:00
Philipp Hochkamp
88159f6711 nushell 2023-04-05 19:36:03 +02:00
Philipp Hochkamp
1d4aea0e8e ds9: spin down hdds without use 2023-04-04 22:26:36 +02:00
Philipp Hochkamp
ea320ce789 fix: websockets for bw 2023-03-23 17:01:19 +01:00
Philipp Hochkamp
d21325b307 auto optimise store on macos 2023-03-10 22:14:15 +01:00
Philipp Hochkamp
2fd8760eda vimtex 2023-03-10 19:05:45 +01:00
Philipp Hochkamp
40b7cedf19 picard nginx cache 2023-03-10 12:34:55 +01:00
Philipp Hochkamp
2459c30198 update blog 2023-03-10 12:30:42 +01:00
Philipp Hochkamp
50f1f37da6 a 2023-03-10 12:07:56 +01:00
Philipp Hochkamp
6187f85e3c a 2023-03-10 12:04:07 +01:00
Philipp Hochkamp
59a1e58620 a 2023-03-10 12:03:41 +01:00
Philipp Hochkamp
3cfa496984 a 2023-03-10 11:55:14 +01:00
Philipp Hochkamp
3539821976 a 2023-03-10 11:37:21 +01:00
Philipp Hochkamp
29d434925f chore: update 2023-03-10 10:36:32 +01:00
Philipp Hochkamp
2cb4835f7a chore: update 2023-03-09 14:57:17 +01:00
Philipp Hochkamp
6c615e4ed6 vim stuffzies 2023-03-08 22:35:02 +01:00
Philipp Hochkamp
ff9e47e96b update 2023-03-07 17:00:51 +01:00
Philipp Hochkamp
a0b8181590 update 2023-03-06 21:00:37 +01:00
Philipp Hochkamp
44c2cd9bbc update 2023-03-06 20:46:03 +01:00
Philipp Hochkamp
c27f88ec40 update 2023-03-06 20:37:22 +01:00
Philipp Hochkamp
55988d9e11 chore: nvim stuffzies 2023-03-06 20:30:25 +01:00
Philipp Hochkamp
00fde05b66 update 2023-03-06 16:06:01 +01:00
Philipp Hochkamp
2932f801b3 picardbackup uid fix 2023-03-04 13:20:39 +01:00
Philipp Hochkamp
08970559b1 finicky make some stuff go to work 2023-02-27 07:24:39 +01:00
Philipp Hochkamp
868bf90a7c samba: reenable logging on ds9 as it no longer breaks timemachine 2023-02-27 02:44:17 +01:00
Philipp Hochkamp
b1347e0ea9 a 2023-02-25 21:06:46 +01:00
Philipp Hochkamp
547217d52c a 2023-02-25 21:04:17 +01:00
Philipp Hochkamp
4909ed3985 chore: add vimspector 2023-02-25 20:51:32 +01:00
Philipp Hochkamp
e73d74951d chore: fix nix-path for darwin 2023-02-24 21:35:26 +01:00
Philipp Hochkamp
5b92ba7f32 chore: update 2023-02-20 19:18:13 +01:00
Philipp Hochkamp
556eb2cc12 a 2023-02-20 01:11:16 +01:00
Philipp Hochkamp
0126bacb43 ds9 java 17 2023-02-20 01:04:01 +01:00
Philipp Hochkamp
c908b30b0b hs changse 2023-02-15 14:59:27 +01:00
Philipp Hochkamp
04d78344bb update 2023-02-09 16:23:26 +01:00
Philipp Hochkamp
0a759cc943 change to releases 2023-02-06 22:11:11 +01:00
Philipp Hochkamp
bfb1842988 fix: warnings 2023-02-06 21:56:03 +01:00
Philipp Hochkamp
220c5614ca chore: update 2023-02-06 21:10:18 +01:00
Philipp Hochkamp
f7ac9c2ace fix: nvim escape time 2023-01-26 16:46:59 +01:00
Philipp Hochkamp
7e0ca28180 update 2023-01-25 08:13:18 +01:00
Philipp Hochkamp
f2d5f4e7c9 :s/rls/rust-analyzer 2023-01-25 07:46:58 +01:00
Philipp Hochkamp
db86293a46 a 2023-01-20 10:43:59 +01:00
Philipp Hochkamp
0703c3be34 a 2023-01-20 10:42:09 +01:00
Philipp Hochkamp
2e48a2a467 a 2023-01-19 12:18:50 +01:00
Philipp Hochkamp
c430b03c8f a 2023-01-18 19:39:32 +01:00
Philipp Hochkamp
8c0eff23c1 :s/rnix-lsp/nil 2023-01-18 19:30:34 +01:00
Philipp Hochkamp
7b8535e3d8 true 2023-01-18 05:17:29 +01:00
Philipp Hochkamp
0eddaa2893 a 2023-01-15 22:04:31 +01:00
Philipp Hochkamp
c2a8bd6db1 tmux split stuff 2023-01-14 22:37:17 +01:00
Philipp Hochkamp
2396d6d5cc fixi fixi 2023-01-13 13:24:34 +01:00
Philipp Hochkamp
b4713eed04 feat: hammerspoon mouse3/4 2023-01-12 12:53:45 +01:00
Philipp Hochkamp
c87bb609e0 update new blog version 2023-01-04 22:50:10 +01:00
Philipp Hochkamp
c3d496e034 fix: dotnet 2022-12-30 11:33:34 +01:00
Philipp Hochkamp
d1394482e4 vim again 2022-12-28 16:17:00 +01:00
Philipp Hochkamp
ba6f5ed81b a 2022-12-19 22:49:49 +01:00
Philipp Hochkamp
e2179efcd5 a 2022-12-19 22:42:30 +01:00
Philipp Hochkamp
d25a8cb5a6 a 2022-12-17 13:01:48 +01:00
Philipp Hochkamp
1c4b8a4233 ifix fruit 2022-12-17 12:44:17 +01:00
Philipp Hochkamp
4ae761d6e3 update 2022-12-17 12:38:29 +01:00
Philipp Hochkamp
25224d5d87 fix syncoid 2022-12-08 19:48:16 +01:00
Philipp Hochkamp
5f47648835 backup changes 2022-12-08 04:47:31 +01:00
Philipp Hochkamp
ba21bbcb41 nginx fix 2022-12-05 21:19:48 +01:00
Philipp Hochkamp
5edc532791 update 2022-12-05 21:14:41 +01:00
Philipp Hochkamp
4bc19dd1e3 uptdate readme 2022-12-05 20:14:28 +01:00
Philipp Hochkamp
1d9d18014f a 2022-11-30 15:39:15 +01:00
Philipp Hochkamp
94b617caac feat: added woolsey 2022-11-22 16:31:00 +01:00
Philipp Hochkamp
0c0048e5da
fix: paperless 2022-11-18 11:49:20 +01:00
Philipp Hochkamp
efb65de325 feat: icarus 2022-11-17 10:12:51 +01:00
Philipp Hochkamp
e84e2fc020 Revert "update"
This reverts commit 173936ba02.
2022-11-17 08:50:19 +01:00
Philipp Hochkamp
173936ba02 update 2022-11-17 08:40:31 +01:00
Philipp Hochkamp
67c4ff9222
update 2022-11-15 07:49:31 +01:00
Philipp Hochkamp
89fdc7570e
notmuch indicator tuning 2022-11-15 00:12:30 +01:00
Philipp Hochkamp
42ddb294ef chore: update 2022-11-12 20:23:57 +01:00
Philipp Hochkamp
6658775af1 feat: hammerspoon notmuch indicator 2022-11-08 12:56:19 +01:00
Philipp Hochkamp
cddfcc1018
fix: octopi tcp 2022-11-06 08:58:28 +01:00
Philipp Hochkamp
0e83460939
a 2022-11-06 08:33:53 +01:00
Philipp Hochkamp
127e2d9b40
:s/video0/video1 2022-11-06 08:29:12 +01:00
Philipp Hochkamp
a5dd0ba83e feat: added octopi 2022-11-06 08:18:30 +01:00
Philipp Hochkamp
3a6a4f230c
ds9 increase nginx body size 2022-11-05 18:52:11 +01:00
Philipp Hochkamp
12f7af903d
disable default maximizemode 2022-11-04 06:17:19 +01:00
Philipp Hochkamp
2775868542
privaterev 2022-11-04 04:40:28 +01:00
Philipp Hochkamp
7d18ec2ac5
fix: nosrebuild 2022-11-04 04:30:43 +01:00
Philipp Hochkamp
6a0d496a0b
nosrebuild changes 2022-11-04 04:25:10 +01:00
Philipp Hochkamp
de24b6d88b
removed octopine 2022-11-04 04:20:37 +01:00
Philipp Hochkamp
8dfd536e38 add jupyter 2022-11-03 10:51:48 +01:00
Philipp Hochkamp
1373c5cc6a
test installing x86 via environment.systemPackages 2022-11-03 02:42:20 +01:00
Philipp Hochkamp
953704cd65 update 2022-11-01 02:57:46 +01:00
Philipp Hochkamp
94647074cf add mailmover 2022-10-31 06:03:09 +01:00
Philipp Hochkamp
9fa0311a30 smart email notifications 2022-10-31 02:56:55 +01:00
Philipp Hochkamp
76832972e6 update 2022-10-30 16:45:42 +01:00
Philipp Hochkamp
8f190e8957 update 2022-10-28 23:03:55 +02:00
Philipp Hochkamp
5da0b32099
some vm changes 2022-10-26 22:20:34 +02:00
Philipp Hochkamp
f3c11facc8
new vm 2022-10-26 21:01:10 +02:00
Philipp Hochkamp
acd17514fd
facilethings capture prompt 2022-10-26 17:14:53 +02:00
Philipp Hochkamp
4e463149a5 facilethings 2022-10-25 19:02:22 +02:00
Philipp Hochkamp
40045e7478 ay 2022-10-21 16:55:16 +02:00
Philipp Hochkamp
184b0b0e7f new hammerspoon config 2022-10-16 08:33:05 +02:00
Philipp Hochkamp
dbf3186cc2 fix: nvim 2022-10-15 10:08:14 +02:00
Philipp Hochkamp
0fcef04e5c update 2022-10-12 09:24:36 +02:00
Philipp Hochkamp
0812d40e35 a 2022-10-06 15:55:30 +02:00
Philipp Hochkamp
f03fe0e542 a 2022-10-06 15:53:33 +02:00
Philipp Hochkamp
14af1ab2bf update 2022-10-04 20:33:13 +02:00
Philipp Hochkamp
a8560c8738 update 2022-10-04 20:32:46 +02:00
Philipp Hochkamp
8e0143a9cb update 2022-10-04 20:32:03 +02:00
Philipp Hochkamp
69a99fc934 update 2022-10-04 20:30:42 +02:00
Philipp Hochkamp
8b13ef95c8 update 2022-10-04 16:17:30 +02:00
Philipp Hochkamp
3ba72b101b update 2022-10-04 15:04:22 +02:00
Philipp Hochkamp
7c8fd7f658 update 2022-09-25 20:03:02 +02:00
Philipp Hochkamp
97362705ac update 2022-09-25 19:45:15 +02:00
Philipp Hochkamp
de52d23fca fix: emacs term 2022-09-23 21:39:54 +02:00
Philipp Hochkamp
4d253644e8 feat: plex 2022-09-17 09:55:51 +02:00
Philipp Hochkamp
7c78aecb78 emacs flake 2022-09-12 01:00:20 +02:00
Philipp Hochkamp
2f749ac51c emacs flake 2022-09-11 23:55:01 +02:00
Philipp Hochkamp
a25ea1f4aa power 2022-09-11 23:25:11 +02:00
Philipp Hochkamp
f8be7905e8 power 2022-09-11 09:35:28 +02:00
Philipp Hochkamp
1c13d0d3b8 unifi ws 2022-09-10 01:02:18 +02:00
Philipp Hochkamp
e7535dfa03 update 2022-09-07 15:29:27 +02:00
Philipp Hochkamp
5f2d2fc54b feat: mail 2022-09-06 10:29:47 +02:00
Philipp Hochkamp
f83f1f3524 feat: dns provider changes 2022-09-06 08:38:46 +02:00
Philipp Hochkamp
0378909589 emacs server 2022-09-06 06:14:22 +02:00
Philipp Hochkamp
8af7ea5958 daedalusvm rosetta 2022-09-05 21:22:27 +02:00
Philipp Hochkamp
b32498e5d0 fix-darwin 2022-08-30 09:09:51 +02:00
Philipp Hochkamp
ae980aa07b update 2022-08-30 09:03:18 +02:00
Philipp Hochkamp
50adba0f93 update 2022-08-30 08:25:22 +02:00
Philipp Hochkamp
0ce3335cdd update 2022-08-30 08:20:02 +02:00
Philipp Hochkamp
602ede18ad octopine wifi 2022-08-30 06:08:17 +02:00
Philipp Hochkamp
f8716d8a92 update 2022-08-23 22:51:33 +02:00
Philipp Hochkamp
12358a6dff update 2022-08-22 22:54:46 +02:00
Philipp Hochkamp
a1f11cd2ca update 2022-08-22 22:53:15 +02:00
Philipp Hochkamp
3cb8c3359d update 2022-08-22 22:51:02 +02:00
Philipp Hochkamp
d339ee4c07 feat: added octoprint 2022-08-19 17:56:24 +02:00
Philipp Hochkamp
9bbbba6049 added octopine 2022-08-19 11:11:46 +02:00
Philipp Hochkamp
dba07a05b8 fix 2022-08-18 12:21:30 +02:00
Philipp Hochkamp
44f14d497f changes 2022-08-18 12:08:31 +02:00
Philipp Hochkamp
c57ad4632e daedalusvm gui 2022-08-17 07:00:31 +02:00
Philipp Hochkamp
a7888851b4 daedalusvm gui 2022-08-17 06:42:19 +02:00
Philipp Hochkamp
995e9617d8 update 2022-08-15 22:18:32 +02:00
Philipp Hochkamp
e06b368828 update 2022-08-11 23:13:05 +02:00
Philipp Hochkamp
f384de4b24 ds9 ssd 2022-08-11 21:46:01 +02:00
Philipp Hochkamp
3551af3246 nginxstatus 2022-08-11 01:28:23 +02:00
Philipp Hochkamp
70d1930701 nginxstatus 2022-08-09 02:15:18 +02:00
Philipp Hochkamp
43cae6649c nginxstatus 2022-08-09 02:09:19 +02:00
Philipp Hochkamp
7c5150c6d8 nginxstatus 2022-08-09 02:08:47 +02:00
Philipp Hochkamp
5b8e13008a close firewall on prometheus 2022-08-09 02:06:28 +02:00
Philipp Hochkamp
5c5202f4d7 close firewall on prometheus 2022-08-09 01:57:01 +02:00
Philipp Hochkamp
054b18e763 many many new things 2022-08-09 01:30:45 +02:00
Philipp Hochkamp
2e16f22d37 update 2022-07-24 10:11:58 +02:00
Philipp Hochkamp
55aa43585e nvim 2022-07-16 14:32:07 +02:00
Philipp Hochkamp
064848f34b update 2022-07-14 10:57:27 +02:00
Philipp Hochkamp
5f675f31bb update 2022-07-14 00:43:07 +02:00
Philipp Hochkamp
7156bdc1be add vm to build 2022-07-13 14:48:47 +02:00
Philipp Hochkamp
2e8589c3fa tailscale exit node 2022-07-12 11:14:05 +02:00
Philipp Hochkamp
ba7f19a5bf tailscale stuff 2022-07-11 15:16:04 +02:00
Philipp Hochkamp
c2c03c4260 update 2022-07-05 13:32:29 +02:00
Philipp Hochkamp
b9ed5ff43c update 2022-07-03 07:26:27 +02:00
Philipp Hochkamp
746af4aea4 update 2022-07-03 04:24:36 +02:00
Philipp Hochkamp
87d484016c add cmake for emacs on daedalus 2022-06-19 13:41:37 +02:00
Philipp Hochkamp
47b22d69c6 update blog 2022-06-15 20:52:09 +02:00
Philipp Hochkamp
bc19fdb84b update 2022-06-15 20:38:30 +02:00
Philipp Hochkamp
51f9675843 chore: add blog 2022-06-15 19:23:41 +02:00
Philipp Hochkamp
aa1c642ec9
pubkey for daedalusvm 2022-06-03 03:47:30 +02:00
Philipp Hochkamp
408a693b3f
add daedalusvm to flake 2022-06-03 03:44:25 +02:00
Philipp Hochkamp
76679c2275
add daedalusvm 2022-06-03 02:30:06 +02:00
Philipp Hochkamp
6e94311435 daedalus emacs overlay 2022-05-29 04:03:32 +02:00
xyno
181a6f9c88
Merge pull request #6 from thexyno/create-pull-request/patch
Automated Flake update
2022-05-29 03:53:49 +02:00
GitHub Ations
2d86439988 flake.lock: Update
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/0d5e59ed645e4c7b60174bc6f6aac6a203dc0b01' (2022-04-02)
  → 'github:ryantm/agenix/7e5e58b98c3dcbf497543ff6f22591552ebfe65b' (2022-05-16)
• Updated input 'coc-nvim':
    'github:neoclide/coc.nvim/16ef1eccad26dfbbce672018f811456497656534' (2022-04-20)
  → 'github:neoclide/coc.nvim/042d0c7d0f3a29409347fe5c2b754f6686f16578' (2022-05-28)
• Updated input 'dart-vim':
    'github:dart-lang/dart-vim-plugin/42e6f57f2404b882cb7e491d50e525f8a8eb7f1f' (2022-01-25)
  → 'github:dart-lang/dart-vim-plugin/81e50e80329e5eac2c115f45585b1838a614d07a' (2022-05-23)
• Updated input 'darwin':
    'github:lnl7/nix-darwin/2979028c51ba0ad7e2062dbdc1674be0f71092fc' (2022-04-19)
  → 'github:lnl7/nix-darwin/2f2bdf658d2b79bada78dc914af99c53cad37cba' (2022-05-07)
• Updated input 'home-manager':
    'github:nix-community/home-manager/93a69d07389311ffd6ce1f4d01836bbc2faec644' (2022-04-20)
  → 'github:nix-community/home-manager/64831f938bd413cefde0b0cf871febc494afaa4f' (2022-05-25)
• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/edf6d999c74bf9772afd7c027e0d0a73bf033b4a' (2022-04-21)
  → 'github:nix-community/neovim-nightly-overlay/b2cf1606e66564f1d277e76aec8bf7474ffffd04' (2022-05-27)
• Updated input 'neovim-nightly-overlay/neovim-flake':
    'github:neovim/neovim/db851cb105ac9f295a836a39ff73da14a70ae754?dir=contrib' (2022-04-21)
  → 'github:neovim/neovim/e2940d3c79586503c0a645010ae56c7097ca7c3f?dir=contrib' (2022-05-26)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/6b4ebea9093c997c5f275c820e679108de4871ab' (2022-04-21)
  → 'github:NixOS/nixos-hardware/39a7bfc496d2ddfce73fe9542af1f2029ba4fe39' (2022-05-25)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1ffba9f2f683063c2b14c9f4d12c55ad5f4ed887' (2022-04-17)
  → 'github:NixOS/nixpkgs/7fa8d8b2e206be87de8e4128441384f171c8a33b' (2022-05-25)
• Updated input 'nixpkgs-master':
    'github:NixOS/nixpkgs/523ee17e9b43da28e98224ccd73ba65121b0b118' (2022-04-22)
  → 'github:NixOS/nixpkgs/c2efec21ca3c9ead79c9bd8d6d08ba5a957ba369' (2022-05-28)
• Updated input 'rnix-lsp':
    'github:nix-community/rnix-lsp/4d1024ccfe1bc569811769d1ef52a2fc6c1d482d' (2022-03-14)
  → 'github:nix-community/rnix-lsp/9736265eb4fd4d1488b34b229ad1ab589610740e' (2022-04-29)
• Updated input 'utils':
    'github:numtide/flake-utils/a4b154ebbdc88c8498a5c7b01589addc9e9cb678' (2022-04-11)
  → 'github:numtide/flake-utils/04c1b180862888302ddfb2e3ad9eaa63afc60cf8' (2022-05-17)
• Updated input 'zsh-completions':
    'github:zsh-users/zsh-completions/00a7cc2200de179d21a5b359c6d670007cf44b08' (2022-04-20)
  → 'github:zsh-users/zsh-completions/2e3c3f6cf06bfdf0adf96a5b67f1eff2d67d85de' (2022-05-23)
• Updated input 'zsh-syntax-highlighting':
    'github:zsh-users/zsh-syntax-highlighting/c5ce0014677a0f69a10b676b6038ad127f40c6b1' (2022-02-23)
  → 'github:zsh-users/zsh-syntax-highlighting/caa749d030d22168445c4cb97befd406d2828db0' (2022-05-14)
2022-05-28 06:26:59 +00:00
Philipp Hochkamp
a213499beb fix ds9 backup home restart 2022-05-24 17:53:22 +02:00
Philipp Hochkamp
44e6454788
picard healthchecks 2022-05-12 02:18:49 +02:00
Philipp Hochkamp
8d62eb3a63
fix: too many open files 2022-05-12 02:08:46 +02:00
Philipp Hochkamp
b3ef74da74 tectonic 2022-05-02 14:58:25 +02:00
Philipp Hochkamp
d490504240 feat: add website 2022-04-28 14:29:53 +02:00
Philipp Hochkamp
d38327dfea fixi fixi wupsi wupsi 2022-04-25 16:00:34 +02:00
Philipp Hochkamp
8305195687 fix(nginx): return 404 on ip 2022-04-25 13:01:09 +02:00
Philipp Hochkamp
73dc0aa6ac fix(ds9): removed double snapshots 2022-04-25 09:17:45 +02:00
Philipp Hochkamp
454665e77d a 2022-04-23 02:53:57 +02:00
Philipp Hochkamp
33e4c75e19 Merge remote-tracking branch 'origin/main' 2022-04-23 01:35:48 +02:00
Philipp Hochkamp
fb42273014 feat: ds9 offsite 2022-04-23 01:35:17 +02:00
xyno
6245b9f519
Merge pull request #5 from thexyno/create-pull-request/patch
Automated Flake update
2022-04-22 14:39:09 +02:00
GitHub Ations
a4e6f5e689 flake.lock: Update
Flake lock file updates:

• Updated input 'coc-nvim':
    'github:neoclide/coc.nvim/968e9a25e32e1cdb362a9894a96e038b3c1be0c9' (2022-04-13)
  → 'github:neoclide/coc.nvim/16ef1eccad26dfbbce672018f811456497656534' (2022-04-20)
• Updated input 'darwin':
    'github:lnl7/nix-darwin/4fdbb8168f61d31d3f90bb0d07f48de709c4fe79' (2022-03-26)
  → 'github:lnl7/nix-darwin/2979028c51ba0ad7e2062dbdc1674be0f71092fc' (2022-04-19)
• Updated input 'home-manager':
    'github:nix-community/home-manager/92f58b6728e7c631a7ea0ed68cd21bb29a4876ff' (2022-04-13)
  → 'github:nix-community/home-manager/93a69d07389311ffd6ce1f4d01836bbc2faec644' (2022-04-20)
• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/12d8c6b785d578379d178d3102a7ccfcf7335f47' (2022-04-13)
  → 'github:nix-community/neovim-nightly-overlay/edf6d999c74bf9772afd7c027e0d0a73bf033b4a' (2022-04-21)
• Updated input 'neovim-nightly-overlay/flake-compat':
    'github:edolstra/flake-compat/64a525ee38886ab9028e6f61790de0832aa3ef03' (2022-03-25)
  → 'github:edolstra/flake-compat/b4a34015c698c7793d592d66adbab377907a2be8' (2022-04-19)
• Updated input 'neovim-nightly-overlay/neovim-flake':
    'github:neovim/neovim/18152cf6f17fb4fd6dc6194bad33a971fc985b75?dir=contrib' (2022-04-12)
  → 'github:neovim/neovim/db851cb105ac9f295a836a39ff73da14a70ae754?dir=contrib' (2022-04-21)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/1a0ccdbf4583ed0fce37eea7955e8ef90f840a9f' (2022-04-13)
  → 'github:NixOS/nixos-hardware/6b4ebea9093c997c5f275c820e679108de4871ab' (2022-04-21)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ff9efb0724de5ae0f9db9df2debefced7eb1571d' (2022-04-13)
  → 'github:NixOS/nixpkgs/1ffba9f2f683063c2b14c9f4d12c55ad5f4ed887' (2022-04-17)
• Updated input 'nixpkgs-master':
    'github:NixOS/nixpkgs/ce932dbcf14884c7c76888ebf8cf80f789250afd' (2022-04-14)
  → 'github:NixOS/nixpkgs/523ee17e9b43da28e98224ccd73ba65121b0b118' (2022-04-22)
• Updated input 'zsh-completions':
    'github:zsh-users/zsh-completions/3d394ebaa14f50a8498ab29b3a3d07cb82dee1e5' (2022-04-11)
  → 'github:zsh-users/zsh-completions/00a7cc2200de179d21a5b359c6d670007cf44b08' (2022-04-20)
2022-04-22 06:26:35 +00:00
Philipp Hochkamp
3c787359f5 remove docker from daedalus cause it broken 2022-04-14 11:02:02 +02:00
xyno
e866d07748
Merge pull request #4 from thexyno/create-pull-request/patch
Automated Flake update
2022-04-14 10:56:14 +02:00
GitHub Ations
9bd983fb9d flake.lock: Update
Flake lock file updates:

• Updated input 'coc-nvim':
    'github:neoclide/coc.nvim/ac40a80aaf261cdce2537529b0bc2396a426636b' (2022-04-10)
  → 'github:neoclide/coc.nvim/968e9a25e32e1cdb362a9894a96e038b3c1be0c9' (2022-04-13)
• Updated input 'home-manager':
    'github:nix-community/home-manager/e39a9d0103e3b2e42059c986a8c633824b96c193' (2022-04-11)
  → 'github:nix-community/home-manager/92f58b6728e7c631a7ea0ed68cd21bb29a4876ff' (2022-04-13)
• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/43585324d016cb89ba29490bdc2bc68d54a5b172' (2022-04-11)
  → 'github:nix-community/neovim-nightly-overlay/12d8c6b785d578379d178d3102a7ccfcf7335f47' (2022-04-13)
• Updated input 'neovim-nightly-overlay/neovim-flake':
    'github:neovim/neovim/8f95f3ea0612d1887f68c9663ee6bc831168a04e?dir=contrib' (2022-04-11)
  → 'github:neovim/neovim/18152cf6f17fb4fd6dc6194bad33a971fc985b75?dir=contrib' (2022-04-12)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/f4160a629bac3538939a3005c8b5c7fb320bcf59' (2022-04-11)
  → 'github:NixOS/nixos-hardware/1a0ccdbf4583ed0fce37eea7955e8ef90f840a9f' (2022-04-13)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/fd364d268852561223a5ada15caad669fd72800e' (2022-04-09)
  → 'github:NixOS/nixpkgs/ff9efb0724de5ae0f9db9df2debefced7eb1571d' (2022-04-13)
• Updated input 'nixpkgs-master':
    'github:NixOS/nixpkgs/e4cf7af6a9c35b046a32b2ef79ae5556030652c3' (2022-04-11)
  → 'github:NixOS/nixpkgs/ce932dbcf14884c7c76888ebf8cf80f789250afd' (2022-04-14)
2022-04-14 06:26:21 +00:00
Philipp Hochkamp
c181069544 allow sftp 2022-04-13 15:17:54 +02:00
Philipp Hochkamp
73e31ca37c feat: picard to ds9 backups 2022-04-13 08:51:27 +02:00
Philipp Hochkamp
2601467bee fix: bitwarden persistence 2022-04-12 04:15:53 +02:00
Philipp Hochkamp
b530960d55 fix synapse 2022-04-12 02:31:42 +02:00
Philipp Hochkamp
dfe9305117 fix: picard 2022-04-12 02:09:20 +02:00
Philipp Hochkamp
5125947e03 fix: journal getting to big 2022-04-12 02:03:51 +02:00
Philipp Hochkamp
5a8184351a chore: add readme 2022-04-12 01:45:48 +02:00
Philipp Hochkamp
d2748133d5 fix: nosrebuild script 2022-04-12 01:31:27 +02:00
xyno
2cbcfa0f98
Merge pull request #2 from thexyno/create-pull-request/patch
Automated Flake update
2022-04-12 01:19:57 +02:00
GitHub Ations
dae6c80c40 flake.lock: Update
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/764c975e74bce2f89a5106b68ec48e2b586f893c' (2022-03-09)
  → 'github:ryantm/agenix/0d5e59ed645e4c7b60174bc6f6aac6a203dc0b01' (2022-04-02)
• Updated input 'coc-nvim':
    'github:neoclide/coc.nvim/16e74f9b31d20b8dfc8933132beed4c175d824ea' (2022-03-26)
  → 'github:neoclide/coc.nvim/ac40a80aaf261cdce2537529b0bc2396a426636b' (2022-04-10)
• Updated input 'home-manager':
    'github:nix-community/home-manager/888eac32bd657bfe0d024c8770130d80d1c02cd3' (2022-03-27)
  → 'github:nix-community/home-manager/e39a9d0103e3b2e42059c986a8c633824b96c193' (2022-04-11)
• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/400d52d370fb9482f426f0c64f60b798cae9b8e0' (2022-03-28)
  → 'github:nix-community/neovim-nightly-overlay/43585324d016cb89ba29490bdc2bc68d54a5b172' (2022-04-11)
• Updated input 'neovim-nightly-overlay/neovim-flake':
    'github:neovim/neovim/79dcd045d3623ff71903e2806be489bd5fe3200d?dir=contrib' (2022-03-27)
  → 'github:neovim/neovim/8f95f3ea0612d1887f68c9663ee6bc831168a04e?dir=contrib' (2022-04-11)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/feceb4d24f582817d8f6e737cd40af9e162dee05' (2022-03-24)
  → 'github:NixOS/nixos-hardware/f4160a629bac3538939a3005c8b5c7fb320bcf59' (2022-04-11)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ce8cbe3c01fd8ee2de526ccd84bbf9b82397a510' (2022-03-27)
  → 'github:NixOS/nixpkgs/fd364d268852561223a5ada15caad669fd72800e' (2022-04-09)
• Updated input 'nixpkgs-master':
    'github:NixOS/nixpkgs/80d8655c15055472f0118a877351085cc22c1e92' (2022-03-28)
  → 'github:NixOS/nixpkgs/e4cf7af6a9c35b046a32b2ef79ae5556030652c3' (2022-04-11)
• Updated input 'utils':
    'github:numtide/flake-utils/0f8662f1319ad6abf89b3380dd2722369fc51ade' (2022-03-26)
  → 'github:numtide/flake-utils/a4b154ebbdc88c8498a5c7b01589addc9e9cb678' (2022-04-11)
• Updated input 'zsh-completions':
    'github:zsh-users/zsh-completions/55d07cc57750eb90f8b02be3ddf42c206ecf17b1' (2022-03-04)
  → 'github:zsh-users/zsh-completions/3d394ebaa14f50a8498ab29b3a3d07cb82dee1e5' (2022-04-11)
2022-04-11 18:29:01 +00:00
xyno
36f69c5ece
Merge pull request #1 from thexyno/create-pull-request/patch
Automated Flake update
2022-03-28 19:11:45 +02:00
GitHub Ations
9c5e18b863 flake.lock: Update
Flake lock file updates:

• Updated input 'agenix':
    'github:ryantm/agenix/297cd58b418249240b9f1f155d52b1b17f292884' (2022-03-01)
  → 'github:ryantm/agenix/764c975e74bce2f89a5106b68ec48e2b586f893c' (2022-03-09)
• Updated input 'coc-nvim':
    'github:neoclide/coc.nvim/f1a027298cb58b8ddf12ff1193b9e2706b4909a2' (2022-02-27)
  → 'github:neoclide/coc.nvim/16e74f9b31d20b8dfc8933132beed4c175d824ea' (2022-03-26)
• Updated input 'darwin':
    'github:lnl7/nix-darwin/1df878b6f8351795a3bebfbe4fd2d02e1e8b29d6' (2022-02-19)
  → 'github:lnl7/nix-darwin/4fdbb8168f61d31d3f90bb0d07f48de709c4fe79' (2022-03-26)
• Updated input 'home-manager':
    'github:nix-community/home-manager/ea85f4b1fdf3f25cf97dc49f4a9ec4eafda2ea25' (2022-02-27)
  → 'github:nix-community/home-manager/888eac32bd657bfe0d024c8770130d80d1c02cd3' (2022-03-27)
• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/359449438c8c6e435cf0d4bc16a79433bca46c8a' (2022-03-01)
  → 'github:nix-community/neovim-nightly-overlay/400d52d370fb9482f426f0c64f60b798cae9b8e0' (2022-03-28)
• Updated input 'neovim-nightly-overlay/flake-compat':
    'github:edolstra/flake-compat/b7547d3eed6f32d06102ead8991ec52ab0a4f1a7' (2022-01-03)
  → 'github:edolstra/flake-compat/64a525ee38886ab9028e6f61790de0832aa3ef03' (2022-03-25)
• Updated input 'neovim-nightly-overlay/neovim-flake':
    'github:neovim/neovim/37a86a2f964b5d6f9dbfae8b78acaa3a71f981bb?dir=contrib' (2022-03-01)
  → 'github:neovim/neovim/79dcd045d3623ff71903e2806be489bd5fe3200d?dir=contrib' (2022-03-27)
• Updated input 'neovim-nightly-overlay/neovim-flake/flake-utils':
    'github:numtide/flake-utils/997f7efcb746a9c140ce1f13c72263189225f482' (2021-08-20)
  → 'github:numtide/flake-utils/3cecb5b042f7f209c56ffd8371b2711a290ec797' (2022-02-07)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/c3c66f6db4ac74a59eb83d83e40c10046ebc0b8c' (2022-02-26)
  → 'github:NixOS/nixos-hardware/feceb4d24f582817d8f6e737cd40af9e162dee05' (2022-03-24)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/7f9b6e2babf232412682c09e57ed666d8f84ac2d' (2022-02-21)
  → 'github:NixOS/nixpkgs/ce8cbe3c01fd8ee2de526ccd84bbf9b82397a510' (2022-03-27)
• Updated input 'nixpkgs-master':
    'github:NixOS/nixpkgs/bc52b6406e1eefd9fa35cd88ab1a36916a84b389' (2022-03-01)
  → 'github:NixOS/nixpkgs/80d8655c15055472f0118a877351085cc22c1e92' (2022-03-28)
• Updated input 'pandoc-latex-template':
    'github:Wandmalfarbe/pandoc-latex-template/30cfc57a0c64fad1202aa1422e2ed3a77535bf02' (2021-12-19)
  → 'github:Wandmalfarbe/pandoc-latex-template/04e329698d01c3a25aa72ad81d98483284669316' (2022-03-04)
• Updated input 'rnix-lsp':
    'github:nix-community/rnix-lsp/41eb2f3366e3f351bf2563c2a7c46fd17e78dfe0' (2022-01-30)
  → 'github:nix-community/rnix-lsp/4d1024ccfe1bc569811769d1ef52a2fc6c1d482d' (2022-03-14)
• Updated input 'utils':
    'github:numtide/flake-utils/3cecb5b042f7f209c56ffd8371b2711a290ec797' (2022-02-07)
  → 'github:numtide/flake-utils/0f8662f1319ad6abf89b3380dd2722369fc51ade' (2022-03-26)
• Updated input 'zsh-completions':
    'github:zsh-users/zsh-completions/6fbf5fc9a7033bc47d4c61b2d6b97fe0c74d9c45' (2022-02-24)
  → 'github:zsh-users/zsh-completions/55d07cc57750eb90f8b02be3ddf42c206ecf17b1' (2022-03-04)
2022-03-28 17:11:21 +00:00
Philipp Hochkamp
f158f6e411 ci test 2022-03-28 19:07:40 +02:00
Philipp Hochkamp
dcb627c4a4
feat: github updater 2022-03-28 18:33:43 +02:00
Philipp Hochkamp
2c860c57aa other kernel 2022-03-26 21:13:34 +01:00
Philipp Hochkamp
601734a116 rpi syntax 2022-03-26 18:32:47 +01:00
Philipp Hochkamp
8a6a55d5d2 rpi fix wifi 2022-03-26 18:18:26 +01:00
Philipp Hochkamp
4aa1a76b7a rpi fix 2022-03-26 17:53:44 +01:00
Philipp Hochkamp
3d8ab55a8f music fixes 2022-03-26 17:25:52 +01:00
Philipp Hochkamp
bfb12e3eca fix: pi 2022-03-25 15:56:57 +01:00
Philipp Hochkamp
083a898579 ds9 arm 2022-03-25 13:54:40 +01:00
Philipp Hochkamp
6477dee99b feat: musicpi 2022-03-25 13:52:42 +01:00
Philipp Hochkamp
7a85f7cec6 feat: working nixos 2022-03-25 13:32:05 +01:00
Philipp Hochkamp
fff61d5fd7
pam 2022-03-22 20:27:42 +01:00
Philipp Hochkamp
4ec2d7975a
added element and otterrss 2022-03-22 20:14:35 +01:00
Philipp Hochkamp
3294d69d93
daedalus docker 2022-03-15 15:41:33 +01:00
Philipp Hochkamp
e152121ada
a 2022-03-15 14:43:59 +01:00
Philipp Hochkamp
6d573f15fd
a 2022-03-15 14:41:58 +01:00
Philipp Hochkamp
f0376918bd
a 2022-03-15 14:40:40 +01:00
Philipp Hochkamp
49140379c3
a 2022-03-15 14:38:24 +01:00
Philipp Hochkamp
5a7e42c4e7
fix 2022-03-15 14:35:12 +01:00
Philipp Hochkamp
e6ea8bfb13
fix nixosMods 2022-03-15 14:29:50 +01:00
Philipp Hochkamp
4beaa903fd
remove wormhole 2022-03-15 14:26:45 +01:00
Philipp Hochkamp
3dfbdbfdfc
feat: auto hostname 2022-03-15 14:23:43 +01:00
Philipp Hochkamp
d63366468e parsec 2022-03-14 16:55:41 +01:00
Philipp Hochkamp
981d3b4ca3 2022-03-09 18:15:41 +01:00
Philipp Hochkamp
353b0c7fd8 feat: packages2 2022-03-05 12:56:37 +01:00
Philipp Hochkamp
7cca126b52 feat: packages2 2022-03-05 12:38:34 +01:00
Philipp Hochkamp
40f300f95a feat: packages 2022-03-05 12:34:52 +01:00
Philipp Hochkamp
39f91ed113 chore a 2022-03-05 10:07:02 +01:00
Philipp Hochkamp
5bc3cc3184
a 2022-03-04 21:42:57 +01:00
Philipp Hochkamp
eb5617bc08
logseq 2022-03-04 16:36:46 +01:00
Philipp Hochkamp
31b1c03740
logseq 2022-03-04 15:14:38 +01:00
Philipp Hochkamp
255086e61b
add lens 2022-03-04 14:15:49 +01:00
Philipp Hochkamp
4a5255f127 add seashore 2022-03-03 15:59:21 +01:00
Philipp Hochkamp
318a66724c
fix-zsh 2022-03-02 01:15:08 +01:00
Philipp Hochkamp
c47e83f453
fix-nvim2 2022-03-02 01:11:47 +01:00
Philipp Hochkamp
cfb0036917
fix-nvim 2022-03-02 01:08:16 +01:00
Philipp Hochkamp
849bb9bb96
gitignore 2022-03-02 00:42:05 +01:00
Philipp Hochkamp
c39f8252f7
feat: daedalus brew 2022-03-02 00:32:03 +01:00
Philipp Hochkamp
b744693f0e
initial(ish) commit 2022-03-01 23:53:11 +01:00
46 changed files with 1926 additions and 654 deletions

View file

@ -1,6 +1,11 @@
[language-server.nil]
command = "nil"
[language-server.nixd]
command = "nixd"
# args = ["--log=debug"]
[language-server.nixd.config.nixd]
nixpkgs = { expr = "import (builtins.getFlake (builtins.toString ./.)).inputs.nixpkgs { }" }
options = { nixos = { expr = "(builtins.getFlake (builtins.toString ./.)).colmenaHive.nodes.theseus.options" }}#, home-manager = { expr = "(builtins.getFlake (builtins.toString ./.)).colmenaHive.nodes.theseus.options.home-manager.users.type.getSubOptions []" } }
[[language]]
name = "nix"
formatter = {command = "nixfmt"}
language-servers = [ "nil" ]
language-servers = [ "nixd" ]

1030
flake.lock generated

File diff suppressed because it is too large Load diff

View file

@ -15,12 +15,19 @@
colmena.url = "github:zhaofengli/colmena/release-0.4.x";
colmena.inputs.nixpkgs.follows = "nixpkgs";
oldConf.url = "github:thexyno/nixos-config";
# software
rust-overlay = { # https://github.com/nix-community/lanzaboote/issues/485#issuecomment-3466684727
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.2";
# Optional but recommended to limit the size of your system closure.
inputs.nixpkgs.follows = "nixpkgs";
inputs.rust-overlay.follows = "rust-overlay";
};
zen-browser.url = "github:0xc000022070/zen-browser-flake";
@ -33,10 +40,6 @@
niri.inputs.nixpkgs.follows = "nixpkgs-master";
xwayland-satellite.url = "github:Supreeeme/xwayland-satellite";
xwayland-satellite.inputs.nixpkgs.follows = "nixpkgs-master";
nheko.url = "github:Nheko-Reborn/nheko";
nheko.flake = false;
mtxclient.url = "github:Nheko-Reborn/mtxclient";
mtxclient.flake = false;
nix-ci.url = "git+https://git.xyno.systems/xyno/nix-ci";
nix-ci.inputs.nixpkgs.follows = "nixpkgs";
@ -49,13 +52,23 @@
helix.inputs.nixpkgs.follows = "nixpkgs-master";
# csharp-language-server.url = "github:sofusa/csharp-language-server";
# csharp-language-server.inputs.nixpkgs.follows = "nixpkgs-master";
# authentik
# # authentik
# authentik.url = "github:nix-community/authentik-nix";
# authentik.inputs.nixpkgs.follows = "nixpkgs";
# terranix.url = "github:terranix/terranix";
# terranix.inputs.nixpkgs.follows = "nixpkgs";
# non flake inputs, maybe use npins in the future?
adw-colors.url = "github:lassekongo83/adw-colors";
adw-colors.flake = false;
nheko.url = "github:Nheko-Reborn/nheko";
nheko.flake = false;
mtxclient.url = "github:Nheko-Reborn/mtxclient";
mtxclient.flake = false;
authentik.url = "github:nix-community/authentik-nix";
authentik.inputs.nixpkgs.follows = "nixpkgs";
terranix.url = "github:terranix/terranix";
terranix.inputs.nixpkgs.follows = "nixpkgs";
};
@ -101,7 +114,7 @@
inputs.lanzaboote.nixosModules.lanzaboote
inputs.sops-nix.nixosModules.sops
inputs.impermanence.nixosModules.impermanence
inputs.authentik.nixosModules.default
# inputs.authentik.nixosModules.default
inputs.nix-index-database.nixosModules.nix-index
]
++ (import ./modules/module-list.nix);
@ -113,11 +126,19 @@
importConfigs =
n:
map (x: {
${x} = {nodes, ...}: {
networking.hostName = x;
imports = modules ++ [ (./instances/${x}) ];
_module.args.otherNodes = lib.filterAttrs (n: v: n != x) nodes;
};
${x} =
{ nodes, pkgs, ... }:
{
nixpkgs.overlays = overlays;
nix.package = pkgs.unstable.lixPackageSets.latest.lix;
networking.hostName = x;
imports = modules ++ [ (./instances/${x}) ];
_module.args.otherNodes = lib.filterAttrs (n: v: n != x) nodes;
deployment.privilegeEscalationCommand = [
"run0"
"--unit=colmena-apply"
];
};
}) n;
in
lib.foldl' lib.recursiveUpdate { } (
@ -130,13 +151,9 @@
specialArgs = { inherit inputs; };
nixpkgs = genPkgs "x86_64-linux";
};
deployment.privilegeEscalationCommand = [
"run0"
"--unit=colmena-apply"
];
}
(importConfigs [
"ds9"
"nemesis"
"picard"
"theseus"
])
@ -178,6 +195,7 @@
devShells.${system}.default = pkgs.mkShell {
packages = [
pkgs.nixfmt-rfc-style
pkgs.nixd
pkgs.nil
pkgs.sops
(pkgs.runCommand "nix-config-bin" { } ''
@ -187,7 +205,7 @@
pkgs.colmena
]
++ (lib.attrValues self.packages.${system});
SOPS_CONFIG = (pkgs.callPackage ./sops.nix { instanceConfigs = lib.xyno.getDirs ./instances; });
SOPS_CONFIG = (pkgs.callPackage ./sops.nix { instanceConfigs = self.colmenaHive.nodes; });
};

View file

@ -23,10 +23,10 @@ in
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
};
qt = {
enable = true;
style.name = "breeze";
};
# qt = {
# enable = true;
# style.name = "breeze";
# };
};
}

View file

@ -362,7 +362,7 @@ in
"user-filters" =
''marketplace.visualstudio.com##+js(rpnt, script, /"(DisableVSCodeDownloadButtonEnabled|Microsoft\\.VisualStudio\\.Services\\.Gallery\\.DisableVSCodeDownloadButton)":true/, "$1":false)'';
"hostnameSwitchesString" =
"no-large-media: behind-the-scene false\nno-remote-fonts: * true\nno-csp-reports: * true";
"no-large-media: behind-the-scene false\nno-remote-fonts: * false\nno-csp-reports: * true";
};
};

View file

@ -9,13 +9,14 @@ in
{
options.xyno.git.enable = lib.mkEnableOption "xynos git config";
config = lib.mkIf cfg.enable {
programs.difftastic.git.enable = true;
programs.difftastic.enable = true;
programs.git = {
enable = true;
difftastic.enable = true;
lfs.enable = true;
# Default configs
extraConfig = {
settings = {
commit.gpgSign = true;
gpg.format = "ssh";

View file

@ -22,20 +22,21 @@ in
# nodePackages_latest.prettier
dprint
markdown-oxide
codebook
# codebook
## python
# ruff-lsp
# nodePackages_latest.pyright
# inputs.csharp-language-server.packages.${pkgs.system}.csharp-language-server
]
++ (optionals cfg.withLargeLSPs [
netcoredbg
nodePackages_latest.typescript-language-server
nodePackages_latest.vscode-langservers-extracted
typescript
# jsonnet-language-server
# jsonnet
lazygit
ltex-ls-plus # languagetool
tinymist # typst lsp
]);
programs.helix = {
@ -107,8 +108,7 @@ in
keys = {
normal = {
space."=" = ":fmt";
"C-g" =
":sh tmux popup -d \"#{pane_current_path}\" -xC -yC -w80%% -h80%% -E lazygit";
"C-g" = ":sh tmux popup -d \"#{pane_current_path}\" -xC -yC -w80%% -h80%% -E lazygit";
"C-t" = ":sh tmux split-window -v -l '35%%'";
"C-h" = ":sh tmux select-pane -t '{left-of}'";
"C-l" = ":sh tmux select-pane -t '{right-of}'";
@ -143,55 +143,143 @@ in
language-server.csharp = {
command = "csharp-language-server";
};
language-server.codebook = {
command = "codebook-lsp";
args = ["serve"];
};
language = flatten [
(map
(x: {
name = x;
language-servers = [
"typescript-language-server"
"eslint"
];
#formatter = { command = "dprint"; args = [ "fmt" "--stdin" x ]; };
# formatter = { command = "prettier"; args = [ "--parser" "typescript" ]; };
})
[
"typescript"
"javascript"
"jsx"
"tsx"
]
)
{
name = "nix";
formatter = {
command = "nixpkgs-fmt";
};
}
{
name = "python";
language-servers = [
"pyright"
"ruff"
language-server.ltex = {
command = "ltex-ls-plus";
config = {
additionalRules.motherTongue = "de-DE";
additionalRules.enablePickyRules = true;
language = [
"en-US"
"de-DE"
];
}
{
name = "markdown";
language-servers = ["codebook"];
}
{
name = "c-sharp";
language-servers = [ "csharp" ];
formatter = {
command = "dotnet";
args = [ "csharpier" ];
};
};
};
language-server.tinymist = {
command = "tinymist";
};
# language-server.nil = {
# command = "nil";
# config.nil.nix = {
# maxMemoryMB = 5120;
# flake = {
# autoEvalInputs = true;
# autoArchive = true;
# };
# };
# };
language =
let
applySingleConfig =
languages: config:
let
applied =
foldl'
(
acc: l:
if (any (x: l.name == x) config.languages) then
{
done = acc.done ++ [
(mkMerge [
l
config.conf
])
];
notFound = filter (x: x != l.name) acc.notFound;
}
else
{
done = acc.done ++ [ l ];
notFound = acc.notFound;
}
)
{
done = [ ];
notFound = config.languages;
}
languages;
in
applied.done ++ (map (x: { name = x; } // config.conf) applied.notFound);
applyConfs = lspConfs: languages: foldl' applySingleConfig languages lspConfs;
in
applyConfs
[
{
languages = [
"typescript"
"javascript"
"jsx"
"tsx"
];
conf = {
language-servers = [
"typescript-language-server"
"eslint"
];
};
}
{
languages = [
"markdown"
"typst"
"bibtex"
"comment"
"latex"
"html"
];
conf = {
language-servers = [
"ltex"
];
};
}
]
[
{
name = "__common__";
scope = "source.__common__";
file-types = [ ];
language-servers = [
"ltex"
];
}
# {
# name = "nix";
# language-servers = [
# "nixd"
# ];
# formatter = {
# command = "nixpkgs-fmt";
# };
# }
{
name = "python";
language-servers = [
"pyright"
"ruff"
];
}
{
name = "markdown";
language-servers = [
"markdown-oxide"
];
}
{
name = "typst";
language-servers = [
"tinymist"
];
}
{
name = "c-sharp";
language-servers = [ "csharp" ];
formatter = {
command = "dotnet";
args = [ "csharpier" ];
};
}
];
}
];
};
};
};

View file

@ -14,6 +14,11 @@ in
programs.mpv = {
enable = true;
scripts = with pkgs.mpvScripts; [ mpv-webm sponsorblock ];
config = {
profile = "gpu-hq";
ytdl-format = "bestvideo[width<=1920]+bestaudio";
cache-secs = 1200;
};
};
};

View file

@ -1,36 +0,0 @@
{
config,
pkgs,
lib,
...
}:
{
nixpkgs.system = "x86_64-linux";
imports = [
./hardware-configuration.nix
./services/attic.nix
./services/immich.nix
./services/jellyfin.nix
./services/paperless.nix
./services/ytdl-sub.nix
];
time.timeZone = "Europe/Berlin";
networking.hostId = "7b4c2932";
xyno.presets.cli.enable = true;
xyno.presets.server.enable = true;
xyno.services.wireguard.enable = true;
xyno.services.caddy.enable = true;
xyno.services.monitoring.enable = true;
xyno.services.authentik.enable = true;
xyno.presets.home-manager.enable = true;
xyno.system.user.enable = true;
xyno.networking.networkd = {
enable = true;
};
system.stateVersion = "24.11";
}

View file

@ -1,11 +0,0 @@
{
imports = [ ./configuration.nix ];
xyno.services.monitoring.prometheusServer = true;
xyno.meta = {
sopsKey = "fada7e7be28e186e463ad745a38d17f36849d8a7";
};
xyno.services.wireguard.pubKey = "aZvSeAhKG3B5I2My5IqQoSlntMzbCHM6OU92WEScohc=";
deployment = {
targetHost = "ds9.hailsatan.eu";
};
}

View file

@ -1,59 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports = [ "${modulesPath}/installer/scan/not-detected.nix" ];
boot.lanzaboote = {
enable = true;
pkiBundle = "/var/lib/sbctl";
};
boot.loader.systemd-boot.enable = lib.mkForce false;
boot.initrd.availableKernelModules = [ "r8169" "ahci" "vfio-pci" "xhci_pci" "ehci_pci" "nvme" "usbhid" "sd_mod" "sr_mod" ];
boot.kernelModules = [ "kvm-amd" ];
nix.settings.max-jobs = lib.mkDefault 12;
powerManagement.powertop.enable = true;
powerManagement.cpuFreqGovernor = "powersave";
powerManagement.scsiLinkPolicy = "min_power";
services.zfs.autoScrub.enable = true;
services.sanoid.datasets."rpool/content/safe/data/media" = { };
services.sanoid.enable = true;
services.sanoid.interval = "0/8:00:00";
swapDevices = [{ device = "/dev/disk/by-id/nvme-eui.000000000000000100a075202c247839-part1"; randomEncryption = true; }];
fileSystems."/boot".device = "/dev/disk/by-uuid/149F-23AA";
fileSystems."/" = {
device = "spool/safe/persist";
fsType = "zfs";
};
fileSystems."/nix" = {
device = "spool/local/nix";
fsType = "zfs";
};
fileSystems."/var/log" = {
device = "spool/local/journal";
fsType = "zfs";
};
fileSystems."/data" = {
device = "rpool/content/safe/data";
fsType = "zfs";
};
fileSystems."/data/media" = {
device = "rpool/content/safe/data/media";
fsType = "zfs";
};
fileSystems."/backups" = {
device = "rpool/content/local/backups";
fsType = "zfs";
};
}

View file

@ -0,0 +1,121 @@
{
config,
pkgs,
lib,
inputs,
...
}:
{
nixpkgs.system = "x86_64-linux";
imports = [
./hardware-configuration.nix
# ./services/attic.nix
# ./services/immich.nix
# ./services/jellyfin.nix
# ./services/paperless.nix
# ./services/ytdl-sub.nix
];
time.timeZone = "Europe/Berlin";
networking.hostId = "7b4c2932";
containers.ds9 = {
autoStart = true;
timeoutStartSec = "10000000min";
privateNetwork = true;
enableTun = true;
additionalCapabilities = [
"CAP_NET_ADMIN"
"CAP_MKNOD"
"CAP_BPF"
"CAP_DAC_READ_SEARCH"
"CAP_SYS_RESOURCE"
"CAP_SYS_ADMIN"
];
hostAddress = "192.168.100.10";
localAddress = "192.168.100.11";
# hostAddress6 = "fc00::1";
# localAddress6 = "fc00::2";
path = inputs.oldConf.nixosConfigurations.ds9.config.system.build.toplevel;
bindMounts = {
"/data" = {
hostPath = "/data";
isReadOnly = false;
};
"/backups" = {
hostPath = "/backups";
isReadOnly = false;
};
"/persistent" = {
hostPath = "/oldds9/persistent";
isReadOnly = false;
};
"/var/lib/containers" = {
hostPath = "/oldds9/persistent/var/lib/containers";
isReadOnly = false;
};
};
};
networking.nat.enable = true;
networking.nat.enableIPv6 = true;
networking.nat.internalInterfaces = [ "ve-+" ];
networking.nat.externalInterface = "enp1s0f1"; # TODO: changeme
services.traefik.dynamicConfigOptions.http.routers.simpleproxy-oldds9-router.rule =
lib.mkForce "HostRegexp(`^.+\.hailsatan\.eu$`)";
# services.traefik.dynamicConfigOptions.http.routers.simpleproxy-oldds9-router.tls.options = "old";
services.traefik.dynamicConfigOptions.http.routers.simpleproxy-oldds9-router-robotstxt.rule =
lib.mkForce "HostRegexp(`^.+\.hailsatan\.eu$`) && Path(`/robots.txt`)";
xyno.services.traefik = {
enable = true;
simpleProxy.oldds9 = {
host = "*.hailsatan.eu";
internal = "http://192.168.100.11";
};
};
users.users.root.password = "hunter2";
systemd.services."dyndns-refresh" = {
script = ''
set -eu
export PATH=$PATH:${pkgs.curl}/bin:${pkgs.jq}/bin:${pkgs.iproute2}/bin
${pkgs.bash}/bin/bash ${config.sops.secrets.dyndns.path}
'';
serviceConfig = {
Type = "oneshot";
User = "root";
};
startAt = "*:0/10";
};
sops.secrets.dyndns = {
sopsFile = ./secrets/dyndns.yaml;
};
xyno.presets.cli.enable = true;
xyno.presets.server.enable = true;
xyno.impermanence.enable = true;
# xyno.services.wireguard.enable = true;
# xyno.services.caddy.enable = true;
# xyno.services.monitoring.enable = true;
# xyno.services.authentik.enable = true;
xyno.presets.home-manager.enable = true;
xyno.system.user.enable = true;
xyno.networking.networkd = {
enable = true;
};
networking.useDHCP = lib.mkForce false;
networking.interfaces."enp1s0f1" = {
useDHCP = true;
tempAddress = "enabled";
};
systemd.network.networks."40-enp1s0f1" = {
networkConfig = {
IPv6AcceptRA = true;
};
};
system.stateVersion = "25.11";
}

View file

@ -0,0 +1,11 @@
{
imports = [ ./configuration.nix ];
# xyno.services.monitoring.prometheusServer = true;
xyno.meta = {
sopsKey = "fada7e7be28e186e463ad745a38d17f36849d8a7";
};
# xyno.services.wireguard.pubKey = "aZvSeAhKG3B5I2My5IqQoSlntMzbCHM6OU92WEScohc=";
deployment = {
targetHost = "10.0.0.2";
};
}

View file

@ -0,0 +1,150 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{
config,
lib,
pkgs,
modulesPath,
...
}:
{
imports = [ "${modulesPath}/installer/scan/not-detected.nix" ];
# boot.lanzaboote = {
# enable = true;
# pkiBundle = "/var/lib/sbctl";
# };
# boot.loader.systemd-boot.enable = lib.mkForce false;
boot.loader.systemd-boot.enable = true;
boot.initrd.availableKernelModules = [
"r8169"
"ahci"
"vfio-pci"
"xhci_pci"
"ehci_pci"
"nvme"
"usbhid"
"sd_mod"
"sr_mod"
];
boot.kernelModules = [ "kvm-amd" ];
nix.settings.max-jobs = lib.mkDefault 12;
powerManagement.powertop.enable = true;
powerManagement.cpuFreqGovernor = "powersave";
powerManagement.scsiLinkPolicy = "min_power";
services.zfs.autoScrub.enable = true;
services.sanoid.datasets."rpool/content/safe/data/media" = { };
services.sanoid.datasets."rpool/content/safe/data" = { };
services.sanoid.datasets."spool/nemesis/persistent" = { };
services.sanoid.enable = true;
services.sanoid.interval = "0/8:00:00";
# boot.initrd.systemd = {
# enable = true;
# };
boot.initrd.network = {
enable = true;
postCommands = ''
zpool import rpool
zpool import spool
echo "zfs load-key -a; killall zfs" >> /root/.profile
'';
ssh = {
enable = true;
port = 2222;
hostKeys = [
"/persistent/initrd/ssh_host_rsa_key"
"/persistent/initrd/ssh_host_ed25519_key"
];
authorizedKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID/oMAi5jyQsNohfhcSH2ItisTpBGB0WtYTVxJYKKqhj" # TODO
];
};
};
# swapDevices = [
# {
# device = "/dev/disk/by-id/nvme-eui.000000000000000100a075202c247839-part1";
# randomEncryption = true;
# }
# ];
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/149F-23AA";
fsType = "vfat";
options = [
"noauto"
"x-systemd.automount"
];
};
zramSwap.enable = true;
zramSwap.writebackDevice = "/dev/zvol/spool/nemesis/zswap";
fileSystems."/persistent/var/lib/postgres" = {
# has things of https://wiki.archlinux.org/title/ZFS#Databases set
device = "spool/nemesis/postgres";
fsType = "zfs";
neededForBoot = true;
};
fileSystems."/persistent" = {
device = "spool/nemesis/persistent";
fsType = "zfs";
neededForBoot = true;
};
fileSystems."/var/log" = lib.mkForce {
device = "spool/nemesis/varlog";
fsType = "zfs";
neededForBoot = true;
};
fileSystems."/nix" = {
device = "spool/local/nix";
fsType = "zfs";
neededForBoot = true;
};
fileSystems."/data" = {
device = "rpool/content/safe/data";
fsType = "zfs";
neededForBoot = true;
};
fileSystems."/data/media" = {
device = "rpool/content/safe/data/media";
fsType = "zfs";
neededForBoot = true;
};
fileSystems."/backups" = {
device = "rpool/content/local/backups";
fsType = "zfs";
neededForBoot = true;
};
fileSystems."/oldds9/persistent" = {
device = "spool/safe/persist";
fsType = "zfs";
neededForBoot = true;
};
fileSystems."/oldds9/persistent/var/lib/containers" = {
device = "spool/safe/containers";
fsType = "zfs";
neededForBoot = true;
};
fileSystems."/oldds9/varlog" = {
device = "spool/local/journal";
fsType = "zfs";
neededForBoot = true;
};
fileSystems."/" = {
device = "none";
fsType = "tmpfs";
options = [ "size=8G" ];
neededForBoot = true;
};
}

View file

@ -0,0 +1,38 @@
dyndns: ENC[AES256_GCM,data:yDDTTBimaFcd/MG+eSbYmOHq/Ij0fAoz0zDY+C4bv7ZNn1yAA6C8DE3fXnvAvWhatLLSbRGDxHRRm7JuAHOfGGisN9cXwL+fkB7rZMVZemaL2wrOAQxyzHDEeZnZHRwsVGYhAmTsbUCVLi4CyzjRHGbCLZtZ8b+DzT0644uTi9IQovcLrWun62KMt7yjFS+Wb85XItMrIk4gJRCOhllrAXKY/z0idgv8GCNRDsDsmKL8arfcWzo2+bU/Uqhqt1Md6++jySPNPxwwcORYUudqQM63N0g47jSnmbXJ11XRRq6ZBQJaHhx25YOj2WiDH1382Kn71hnnObWS8HcXI3pwAg51mQ7Wlu+Mlt/3iZjOS1ble4IrQGItLVQUqWjyKSLvTbPfe6P/AuQ9VFGLZ7VGhVUAuyum727bx7jg1oQmqETrkL9BwaW/2FsBCVfKobgBOM6s/XMO07dOrzkO14BxOgM7zcILkz0J3IClXDOnK+Qtqe9d0E4JiSItk1hlL+PI256dGt3J2oHHAZTNOhCn1f3/t1nwkDaPM379LhVHVGhGNFtPkwp1itAQPe/zY6apHCOrcd4sti7QjVssW+ekWjMGqIC0D41aw5oRUhE0pGSwVzVTwrxqc/IiLag8UxjFpBEWO9826I5qD3LQhH+sAfsrcBp9SeRrrt5icNbqLhKDxeB2,iv:Bj9aQZ8X1j5tV+iRPwFQ9NvNaxtlaRn6u60qqzHmWmw=,tag:gDKAPd8FEomSwyiT3yy2iw==,type:str]
sops:
lastmodified: "2025-11-24T15:13:32Z"
mac: ENC[AES256_GCM,data:f+3n2Xc7jU+qW+vHk98BTgwLwVHTXzWHMjLwNr3Y3Pp8VIQf8d8iF8QwhDFPWN1uqsxsb/XD48CXbd5AwxuVcgcSM7FIHkjfIn0pHRk0jTAkXTxjWIwg9pqnGAZ5B/fA8XAvcyPpE299gMYzU2soAL11DZtrEVVXJWN2sD5IlL8=,iv:Uykx2R6xO/KW1XP0Nm8GyaoepmdU96AfGQQhLz6BlNQ=,tag:bqe0gZF6WhQg55NhWyNC5A==,type:str]
pgp:
- created_at: "2025-11-24T13:05:23Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hL4DAAAAAAAAAAASBAMEDMeIdplYrk7VppUFRCTcB7Pv+xnVKSLhhSoN6kqbHXqA
YYv8o4AbT9bf1+L9wywA+Eg55tj8aocse/tdRQWTymy4+8grb/sm0oZQT22T51JP
mWxhWIX+sliCqHnS/W2tuVLyDzAiJ/Tg19kOc576OH1z6f2HMIM7yvADoKupfqIw
rbwo0G8CdZCW1hzutCnC2mD4Op2BxK1b26oZdNA06y+BMHHefyDTl/wXwiNQKWiq
0l4BoaYNx2ma5ZTSBk7YNeIXikwM3XtZnUZU+V17EgClNbxhmTRc0h7fmeprjYcW
zETvhSIm+JFTR0mdQsrDvTs7kt+PnaYptoM0CHaYCHTq48pyYKL3Gm0NtCAHuFc3
=UlnU
-----END PGP MESSAGE-----
fp: 0D98D5964AC8BB1CA034CE4EC456133700066642
- created_at: "2025-11-24T15:13:16Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQGMAwAAAAAAAAAAAQv/SQPw9p1r4Sg9zYTyX1n3n6xJzhr+hEGLwwGhcmJh8mup
D9n+aaZU4WK2Huha8Jd1bNqNo3J9UpqQMIaexfd64HoVdDHCxBzfThiMvgwpQ30a
kTQqC0DGkLaFM5W8IVOremwjhLzrTBesu8ny8CasQYJ0tZ+QFU51OvxD4q0r9OLT
BcCGqDsKZ3HDr7OIi4FsqdZRfxinJ+zteK93uxA+fB8Hkxok2g7Z2A5Nv2cOo54X
NJxwsCN4l2Hs8MaVMTC+KGASn87m+Q1xwcVD7ujPmGGjMYb84j2sBn0DP3mNQh7y
89jz6HPbq9goF++Sp172bwswmJwZLVCWkgvzQo+szfCqGnq6LTlG9JaVswkkSz7N
z9kvF6L2dg7N2XlkLLP9UnxMkNxUrA615LvSn/z9AA7Dp6ay7TCsOeSWrz5m7+PF
VVfTp4PN3y7hsZXvWWk1eqsOaThI5GY7N7W6aQlNmvhibjw7FJEF4Iv4FBJsOD23
vYv+38yn377hnimtzoVt0lgBFtO8QhedShEvVjROUNjjEE2WB2jpP5/wZVIsrefs
tl87MAyLedE/Zs5MByubb0buC2jifQnkxsA1QSvbZB2/NTi/SLSPeCMdFrVkYdcG
hP8cp1HkI81F
=iDKg
-----END PGP MESSAGE-----
fp: b730b2bf54eb792a14bfd3e68c14c08894376c5f
unencrypted_suffix: _unencrypted
version: 3.11.0

View file

@ -20,7 +20,7 @@
xyno.presets.server.enable = true;
xyno.presets.cli.enable = true;
xyno.services.wireguard.enable = true;
xyno.services.caddy.enable = true;
# xyno.services.caddy.enable = true;
xyno.services.monitoring.enable = true;
xyno.presets.home-manager.enable = true;
xyno.system.user.enable = true;

View file

@ -12,6 +12,35 @@ let
'';
in
{
# containers.podmantest = {
# privateNetwork = true;
# enableTun = true;
# additionalCapabilities = [
# "CAP_NET_ADMIN"
# "CAP_MKNOD"
# "CAP_BPF"
# "CAP_DAC_READ_SEARCH"
# "CAP_SYS_RESOURCE"
# "CAP_SYS_ADMIN"
# ];
# hostAddress = "192.168.100.10";
# localAddress = "192.168.100.11";
# config =
# { ... }:
# {
# virtualisation.oci-containers.containers.test = {
# image = "docker.io/library/nginx";
# ports = [
# "80:80"
# "443:443"
# ];
# };
# };
# };
# networking.nat.enable = true;
# networking.nat.internalInterfaces = [ "ve-+" ];
# networking.nat.externalInterface = "enp195s0f4u1u3";
nixpkgs.system = "x86_64-linux";
imports = [ ./hardware-configuration.nix ];
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
@ -48,7 +77,7 @@ in
pandoc
tectonic
rquickshare
supersonic-wayland
unstable.supersonic-wayland
nheko
anki-bin
gimp3
@ -64,14 +93,15 @@ in
time.timeZone = "Europe/Berlin";
# orcaslicer
networking.firewall.allowedTCPPorts = [
1880
2021
4711
];
networking.firewall.allowedUDPPorts = [
1880
5353
2021
];

View file

@ -16,7 +16,7 @@
"${inputs.nixos-hardware}/framework/13-inch/7040-amd"
];
hardware.framework.laptop13.audioEnhancement.enable = true;
# hardware.framework.laptop13.audioEnhancement.hideRawDevice = false;
hardware.framework.laptop13.audioEnhancement.hideRawDevice = false;
services.fwupd.enable = true;
boot.initrd.availableKernelModules = [

View file

@ -229,9 +229,39 @@ in
];
};
};
configPackages = [
(pkgs.writeTextDir "share/pipewire/pipewire.conf.d/snapcast-discover.conf" ''
context.modules = [
{
name = libpipewire-module-snapcast-discover
args = {
snapcast.discover-local = true
stream.rules = [
{
matches = [
{
snapcast.ip = "~.*"
}
]
actions = {
create-stream = {
# node.name = "Snapcast"
# snapcast.stream-name = "default"
}
}
}
]
}
}
]
'')
];
wireplumber.extraConfig."98-bluetooth"."wireplumber.settings"."bluetooth.autoswitch-to-headset-profile" =
false;
wireplumber.configPackages = mapAttrsToList (n: v: eqPkg v) cfg.eq;
wireplumber.configPackages = mapAttrsToList (n: v: eqPkg v) cfg.eq ++ [
];
};
};

View file

@ -1,27 +0,0 @@
{
pkgs,
config,
lib,
...
}:
let
cfg = config.xyno.desktop.fcitx5;
in
{
options.xyno.desktop.fcitx5.enable = lib.mkEnableOption "enable fcitx5 input daemon thing";
config = lib.mkIf cfg.enable {
i18n.inputMethod = {
type = "fcitx5";
enable = true;
fcitx5.addons = with pkgs; [
fcitx5-table-other
];
fcitx5.waylandFrontend = true;
fcitx5.quickPhrase = {
":pleading:" = "🥺";
":pointing_right:" = "👉";
":pointing_left:" = "👈";
};
};
};
}

81
modules/desktop/ibus.nix Normal file
View file

@ -0,0 +1,81 @@
{
pkgs,
config,
lib,
...
}:
with lib;
let
cfg = config.xyno.desktop.ibus;
in
{
options.xyno.desktop.ibus.enable = mkEnableOption "enable ibus input daemon thing";
options.xyno.desktop.ibus.wantedBy = mkOption {
type = types.str;
default = "niri.service";
};
config = mkIf cfg.enable {
services.libinput.enable = true;
# just... enable ibus as input method and maybe now we have consistent unicode input everywhere
# fuck qt tbh
i18n.inputMethod = {
enable = true;
package = pkgs.ibus;
# ibus.engines = with pkgs.ibus-engines; [ uniemoji ];
};
# home-manager.sharedModules = [
# (
# { lib, ... }:
# {
# dconf.settings = {
# "org/gnome/desktop/input-sources" = {
# sources = [
# (lib.hm.gvariant.mkTuple [
# "xkb"
# "us"
# ])
# (lib.hm.gvariant.mkTuple [
# "ibus"
# "libpinyin"
# ])
# (lib.hm.gvariant.mkTuple [
# "ibus"
# "mozc-jp"
# ])
# ];
# };
# };
# }
# )
# ];
systemd.user.services."org.freedesktop.IBus.session.generic".wantedBy = [ cfg.wantedBy ];
systemd.packages = [ pkgs.ibus ];
# systemd.user.services.ibus =
# let
# ibusPackage = config.i18n.inputMethod.package;
# in
# assert hasPrefix "ibus-with-plugins" ibusPackage.name;
# {
# # panel is weird...
# # default is ${ibusPackage}/libexec/ibus-ui-gtk3 which works but sends a notification that it's misconfigured
# # wayland support can be enabled with --enable-wayland-im but that segfaults (possible due to zwp_input_method_v1 not being available?)
# script = ''
# exec ${ibusPackage}/bin/ibus-daemon --xim --replace --panel '${ibusPackage}/libexec/ibus-ui-gtk3'
# '';
# serviceConfig = {
# Type = "dbus";
# BusName = "org.freedesktop.IBus";
# Restart = "on-abnormal";
# };
# unitConfig = {
# CollectMode = "inactive-or-failed";
# };
# # yeah we hardcoding this now, fuck it
# wantedBy = [ cfg.wantedBy ];
# partOf = [ "graphical-session.target" ];
# };
};
}

View file

@ -14,6 +14,8 @@ let
"KeePassXC"
"org.gnome.NautilusPreviewer"
"io.github.Qalculate.qalculate-qt"
"ibus-ui-emojier"
"ibus-ui-gtk3"
];
matchFloat = concatStringsSep "\n" (
map (x: ''
@ -52,20 +54,22 @@ in
value = 1;
}
];
home-manager.users.${config.xyno.system.user.name} = mkIf config.xyno.presets.home-manager.enable (
{ ... }:
{
xyno.dark-theme.enable = true;
# home.file.".config/xdg-desktop-portal-termfilechooser/config".text = ''
# [filechooser]
# cmd=${pkgs.xdg-desktop-portal-termfilechooser}/share/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh
# default_dir=$HOME
# env=TERMCMD=footclient --app-id floating-alacritty
# open_mode = suggested
# save_mode = suggested
# '';
}
);
home-manager.sharedModules = [
(
{ ... }:
{
xyno.dark-theme.enable = true;
# home.file.".config/xdg-desktop-portal-termfilechooser/config".text = ''
# [filechooser]
# cmd=${pkgs.xdg-desktop-portal-termfilechooser}/share/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh
# default_dir=$HOME
# env=TERMCMD=footclient --app-id floating-alacritty
# open_mode = suggested
# save_mode = suggested
# '';
}
)
];
xdg.portal = {
extraPortals = [
@ -88,7 +92,16 @@ in
environment.systemPackages = with pkgs; [
playerctl
xwayland-satellite
nirius
];
systemd.user.services.niriusd = {
unitConfig.PartOf = "graphical-session.target";
unitConfig.After = "graphical-session.target";
unitConfig.Requisite = "graphical-session.target";
serviceConfig.Restart = "on-failure";
wantedBy = [ "niri.service" ];
script = "exec ${pkgs.nirius}/bin/niriusd";
};
programs.niri.enable = true;
environment.etc."niri/config.kdl".mode = "444"; # copy file so niri detects changes
environment.etc."niri/config.kdl".text = ''
@ -105,11 +118,15 @@ in
Mod+T { spawn "${cfg.term}" "tmux" "new-session" "-t" "main"; }
Mod+Shift+T { spawn "${cfg.term}"; }
Mod+Y { spawn "${cfg.term}" "--app-id" "floating-alacritty" "-W" "120x37" "yazi"; }
Mod+Shift+M { spawn "sh" "-c" "notify-send -t 3000 -a umpv umpv-paste $(wl-paste); umpv $(wl-paste)"; }
Mod+P { spawn "keepassxc"; }
Mod+S { spawn "qalculate-qt"; }
Mod+Shift+N { spawn "makoctl" "dismiss" "-a"; }
Mod+N { spawn "makoctl" "dismiss"; }
Mod+E { spawn "makoctl" "menu" "fuzzel -d"; }
Mod+G { spawn "nirius" "toggle-follow-mode"; }
Mod+Shift+bracketleft { spawn "nirius" "scratchpad-show"; }
Mod+Shift+bracketright { spawn "nirius" "scratchpad-toggle"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.03+"; }
XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.03-"; }
XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; }

View file

@ -24,13 +24,14 @@ let
UNTIL="1d"
EVENT="$(
khal list "$SINCE" "$UNTIL" \
(khal list "$SINCE" "$UNTIL" \
--day-format 'SKIPME' \
--format "{start-end-time-style} {title:.31}{repeat-symbol}" |
grep -v SKIPME | # filter out headers
grep -v -P '| |' | # filter out continuing all day events
grep -v '^ ' | # exclude full-day events
head -n 1 # show just the first
) || echo ""
)"
if [ -z "$EVENT" ]; then

View file

@ -5,9 +5,9 @@
./desktop/audio.nix
./desktop/common-programs.nix
./desktop/easyeffects.nix
./desktop/fcitx5.nix
./desktop/foot.nix
./desktop/fuzzel.nix
./desktop/ibus.nix
./desktop/mako.nix
./desktop/niri.nix
./desktop/shikane.nix
@ -21,17 +21,18 @@
./presets/common.nix
./presets/development.nix
./presets/gui.nix
./presets/server.nix
./presets/home-manager.nix
./services/authentik
./services/caddy
./presets/server.nix
# ./services/authentik
# ./services/caddy
./services/traefik.nix
./services/monitoring.nix
./services/wireguard.nix
./system/impermanence.nix
./system/meta.nix
./system/user.nix
./to-upstream/fido2-hid-bridge.nix
./user-services/khal.nix
./user-services/syncthing.nix
./to-upstream/fido2-hid-bridge.nix
]

View file

@ -1,5 +1,6 @@
{
config,
inputs,
lib,
pkgs,
...
@ -44,6 +45,11 @@ in
LC_COLLATE = "de_DE.UTF-8";
};
nix.channel.enable = false;
nix.nixPath = [
"nixpkgs=${inputs.nixpkgs}"
"nixpkgs-master=${inputs.nixpkgs-master}"
];
nix.settings = {
substituters = [
# "https://cache.lix.systems"
@ -55,6 +61,7 @@ in
# "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
# "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
];
trusted-users = lib.mkDefault [
"root"
"@wheel"
@ -130,7 +137,7 @@ in
imagemagick
jq
lm_sensors
moar
moor
neofetch
nix-output-monitor
poppler
@ -145,7 +152,7 @@ in
programs.mosh.enable = true;
environment.variables.EDITOR = "hx";
environment.variables.VISUAL = "hx";
environment.variables.PAGER = "moar";
environment.variables.PAGER = "moor";
environment.shellAliases = {
l = "ls -alh";
@ -161,7 +168,7 @@ in
p = "cd ~/proj";
ytl = ''yt-dlp -f "bv*+mergeall[vcodec=none]" --audio-multistreams'';
sudo = "run0";
less = "moar";
less = "moor";
};
};
}

View file

@ -1,6 +1,7 @@
{
pkgs,
config,
inputs,
lib,
...
}:
@ -21,6 +22,7 @@ in
pkgs.yubikey-personalization
];
xyno.desktop.niri.enable = true;
xyno.desktop.ibus.enable = true;
xyno.desktop.audio.enable = mkDefault true;
xyno.user-services.khal.enable = true;
boot.kernelPackages = mkDefault pkgs.linuxPackages_zen;
@ -40,9 +42,60 @@ in
qt = {
enable = true;
style = "breeze";
# platformTheme = "gnome";
platformTheme = "qt5ct";
};
home-manager.sharedModules =
let
gruvboxDarkColors = pkgs.writeText "gruvbox-dark.conf" ''
[ColorScheme]
active_colors=#ffebdbb2, #ff1d2021, #ffbdae93, #ffa89984, #ff3c3836, #ff504945, #ffebdbb2, #ffebdbb2, #ffebdbb2, #ff282828, #ff1d2021, #ff504945, #ff458588, #ff282828, #ff458588, #ffcc241d, #ff282828, #ffebdbb2, #ff1d2021, #ffebdbb2, #ffbdae93
disabled_colors=#ffbdae93, #ff1d2021, #ffbdae93, #ffa89984, #ff3c3836, #ff504945, #ffbdae93, #ffbdae93, #ffbdae93, #ff282828, #ff1d2021, #ff504945, #ff438184, #ff3c3836, #ff458588, #ffcc241d, #ff282828, #ffebdbb2, #ff1d2021, #ffebdbb2, #ffbdae93
inactive_colors=#ffebdbb2, #ff1d2021, #ffbdae93, #ffa89984, #ff3c3836, #ff504945, #ffebdbb2, #ffebdbb2, #ffebdbb2, #ff282828, #ff1d2021, #ff504945, #ff438184, #ffa89984, #ff458588, #ffcc241d, #ff282828, #ffebdbb2, #ff1d2021, #ffebdbb2, #ffbdae93
'';
qt5ctConf = pkgs.writeText "qt5ct.conf" ''
[Appearance]
color_scheme_path=${gruvboxDarkColors}
custom_palette=true
icon_theme=breeze-dark
standard_dialogs=xdgdesktopportal
style=Breeze
[Fonts]
fixed="Source Sans 3,12,-1,5,50,0,0,0,0,0"
general="Source Sans 3,12,-1,5,50,0,0,0,0,0"
'';
in
[
{
home.file.".config/qt5ct/qt5ct.conf".source = qt5ctConf;
home.file.".config/qt6ct/qt6ct.conf".source = qt5ctConf;
dconf = {
settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
gtk-theme = "adw-gtk3-dark";
};
};
};
gtk = {
enable = true;
iconTheme.name = "breeze-dark";
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
gtk3.theme.package = pkgs.adw-gtk3;
gtk3.theme.name = "adw-gtk3-dark";
gtk3.extraCss = ''
@import url("${inputs.adw-colors}/themes/adw-gruvbox/gtk3-dark.css");
'';
gtk4.extraCss = ''
@import url("${inputs.adw-colors}/themes/adw-gruvbox/gtk4-dark.css");
'';
};
}
];
programs.yazi = {
settings.keymap.mgr.prepend_keymap = [
@ -70,11 +123,34 @@ in
# enable the gnome shit
services.gnome.gnome-keyring.enable = true;
services.gnome.gnome-online-accounts.enable = true;
services.gnome.core-apps.enable = true;
environment.systemPackages = with pkgs; [
gnome-calendar
gnome-clocks
gnome-font-viewer
mate.engrampa
papirus-folders
kdePackages.gwenview
kdePackages.skanlite
kdePackages.okular
kdePackages.breeze-gtk
kdePackages.breeze.qt5
kdePackages.breeze
kdePackages.breeze-icons
nautilus # for xdg portal
];
services.gnome.gcr-ssh-agent.enable = mkForce false;
services.gnome.sushi.enable = true;
# services.gnome.sushi.enable = true;
services.gnome.gnome-settings-daemon.enable = true;
services.gvfs.enable = true;
programs.thunar = {
enable = true;
plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-volman
];
};
services.tumbler.enable = true; # thunar image preview
services.gvfs.enable = true; # thunar network device mount
xdg.terminal-exec = {
enable = true;
@ -88,35 +164,28 @@ in
{ pkgs, ... }:
{
xyno.mpv.enable = true;
# xdg.mimeApps = {
# enable = true;
# defaultApplications = {
# "x-scheme-handler/mailto" = [ "aerc.desktop" ];
# "inode/directory" = [ "org.gnome.Nautilus.desktop" ];
# "application/x-gnome-saved-search" = [ "org.gnome.Nautilus.desktop" ];
# "x-scheme-handler/http" = "userapp-Zen-D2P132.desktop";
# "x-scheme-handler/https" = "userapp-Zen-D2P132.desktop";
# "x-scheme-handler/chrome" = "userapp-Zen-D2P132.desktop";
# "text/html" = "userapp-Zen-D2P132.desktop";
# "application/x-extension-htm" = "userapp-Zen-D2P132.desktop";
# "application/x-extension-html" = "userapp-Zen-D2P132.desktop";
# "application/x-extension-shtml" = "userapp-Zen-D2P132.desktop";
# "application/xhtml+xml" = "userapp-Zen-D2P132.desktop";
# "application/x-extension-xhtml" = "userapp-Zen-D2P132.desktop";
# "application/x-extension-xht" = "userapp-Zen-D2P132.desktop";
# "application/pdf" = "org.gnome.Evince.desktop";
# xdg.mimeApps = {
# enable = true;
# defaultApplications = {
# "x-scheme-handler/mailto" = [ "aerc.desktop" ];
# "inode/directory" = [ "org.gnome.Nautilus.desktop" ];
# "application/x-gnome-saved-search" = [ "org.gnome.Nautilus.desktop" ];
# "x-scheme-handler/http" = "userapp-Zen-D2P132.desktop";
# "x-scheme-handler/https" = "userapp-Zen-D2P132.desktop";
# "x-scheme-handler/chrome" = "userapp-Zen-D2P132.desktop";
# "text/html" = "userapp-Zen-D2P132.desktop";
# "application/x-extension-htm" = "userapp-Zen-D2P132.desktop";
# "application/x-extension-html" = "userapp-Zen-D2P132.desktop";
# "application/x-extension-shtml" = "userapp-Zen-D2P132.desktop";
# "application/xhtml+xml" = "userapp-Zen-D2P132.desktop";
# "application/x-extension-xhtml" = "userapp-Zen-D2P132.desktop";
# "application/x-extension-xht" = "userapp-Zen-D2P132.desktop";
# "application/pdf" = "org.gnome.Evince.desktop";
# };
# };
# };
# };
};
environment.systemPackages = with pkgs; [
kdePackages.breeze-gtk
kdePackages.breeze.qt5
kdePackages.breeze
kdePackages.breeze-icons
];
# fonts
fonts.fontconfig.defaultFonts = {
sansSerif = [

View file

@ -7,71 +7,16 @@
with lib;
let
cfg = config.xyno.services.caddy;
wildcardMatcherStr = wildcard: hostName: content: ''
@${hostName} host ${hostName}.${wildcard}
handle @${hostName} {
${content.extraConfig}
}
'';
genOneWildcard = wildcard: host: {
extraConfig = ''
# extra pre
${host.extraConfigPre}
# block bots
${optionalString host.blockBots "import blockBots"}
# hosts handler
${concatStrings (mapAttrsToList (n: v: wildcardMatcherStr wildcard n v) host.hosts)}
# extra post
${host.extraConfigPost}
abort
'';
schema = import ./json-schema.nix {
inherit pkgs lib;
schema = builtins.fromJSON (builtins.readFile ./caddy_schema.json);
};
genVHostsFromWildcard = mapAttrs' (
n: v: nameValuePair "*.${n}" (genOneWildcard n v)
) cfg.wildcardHosts;
schema = import ./json-schema.nix { inherit pkgs lib; schema = builtins.fromJSON (builtins.readFile ./caddy_schema.json); };
in
{
options.xyno.services.caddy.enable = mkEnableOption "enables caddy with the desec plugin";
options.xyno.services.caddy.config = mkOption {
default = {};
type = schema.type;
};
options.xyno.services.caddy.wildcardHosts = mkOption {
example = {
"hailsatan.eu" = {
blockBots = true;
hosts.md.extraConfig = ''reverse_proxy ...'';
};
};
default = { };
type =
with types;
attrsOf (submodule {
options = {
blockBots = mkOption {
type = bool;
default = false;
};
extraConfigPre = mkOption {
type = str;
default = "";
};
extraConfigPost = mkOption {
type = str;
default = "";
};
hosts = mkOption {
default = {};
type = attrsOf (submodule {
options = {
extraConfig = mkOption { type = lines; };
};
});
};
};
});
type = schema.type;
};
config = lib.mkIf cfg.enable {
networking.firewall.allowedTCPPorts = [
@ -79,34 +24,32 @@ in
443
];
networking.firewall.allowedUDPPorts = [ 443 ];
xyno.services.caddy.config = {
apps = {
http.metrics.per_host = true;
tls.automation.policies = [
{
issuers = [
{
ca = "https://acme-v02.api.letsencrypt.org/directory";
challenges.dns.provider = {
name = "desec";
token.path = ""; # TODO
};
}
];
module = "acme";
}
];
};
};
services.caddy = {
enable = true;
package = pkgs.caddy-desec;
adapter = "json";
configFile = json.generate "caddy-config.json" cfg.config;
# virtualHosts = genVHostsFromWildcard;
# email = mkDefault "ssl@xyno.systems";
# acmeCA = mkDefault "https://acme-v02.api.letsencrypt.org/directory";
# globalConfig = ''
# metrics {
# per_host
# }
# '';
# extraConfig = ''
# (blockBots) {
# @botForbidden header_regexp User-Agent "(?i)AdsBot-Google|Amazonbot|anthropic-ai|Applebot|Applebot-Extended|AwarioRssBot|AwarioSmartBot|Bytespider|CCBot|ChatGPT|ChatGPT-User|Claude-Web|ClaudeBot|cohere-ai|DataForSeoBot|Diffbot|FacebookBot|Google-Extended|GPTBot|ImagesiftBot|magpie-crawler|omgili|Omgilibot|peer39_crawler|PerplexityBot|YouBot"
# handle @botForbidden {
# redir https://hil-speed.hetzner.com/10GB.bin
# }
# handle /robots.txt {
# respond <<TXT
# User-Agent: *
# Disallow: /
# TXT 200
# }
# }
# '';
};
xyno.services.monitoring.exporters.caddy = 2019;

View file

@ -36,6 +36,11 @@ let
in
result;
deref = x: if x ? "$ref" then getRef x."$ref" else x;
fileSubmod = types.submodule {
options.path = mkOption {
type = types.pathWith { inStore = false; absolute = true; };
};
};
buildOptionType =
{
spec,
@ -43,7 +48,8 @@ let
...
}:
let
strType = if spec ? enum then types.enum spec.enum else types.str;
strType = if spec ? enum then types.enum spec.enum else (types.either types.str fileSubmod);
objType = types.submodule {
freeformType = json.type;
options = submoduleOptions { inherit spec depth; };

View file

@ -0,0 +1,88 @@
{
pkgs,
lib,
config,
...
}:
let
inherit (lib) mkEnableOption mkIf mkOption;
inherit (lib.types) str nullOr pathWith;
absPath = pathWith {
inStore = false;
absolute = true;
};
cfg = config.xyno.services.kanidm;
in
{
options.xyno.services.kanidm.enable = mkEnableOption "enables kanidm";
options.xyno.services.kanidm.domain = mkOption {
default = "idm.xyno.systems";
type = str;
};
options.xyno.services.kanidm.isReplica = mkEnableOption "replica";
options.xyno.services.kanidm.setupTraefik = mkEnableOption "traefik";
options.xyno.services.kanidm.tls = {
keyPem = mkOption {
type = nullOr absPath;
default = null;
description = "autogenerated if unset";
};
certPem = mkOption {
default = "/run/generated/kanidm-tls/cert.pem";
type = absPath;
};
};
config = mkIf cfg.enable {
services.kanidm = {
enableServer = true;
enableClient = true;
adminPasswordFile = config.sops.secrets."kanidm.password".path;
provision = {
adminPasswordFile = config.sops.secrets."kanidm.password".path;
};
serverSettings = {
tls_key = if cfg.tls.keyPem != null then cfg.tls.keyPem else "/run/generated/key.pem";
tls_chain = cfg.tls.certPem;
bindaddress = "127.0.0.3:8443";
};
};
xyno.services.traefik.simpleProxy = mkIf cfg.setupTraefik {
host = cfg.domain;
internal = "https://127.0.0.3:8443";
transport = "kanidm-https";
};
services.traefik.dynamicConfigOptions.http = mkIf cfg.setupTraefik {
serversTransports."kanidm-https" = {
serverName = cfg.domain;
certificates = [
cfg.certPem
];
};
};
systemd.services.generate-kanidm-tls = mkIf (cfg.tls.keyPem == null) {
serviceConfig = {
User = "root";
Group = "kanidm";
};
wantedBy = [
"kanidm.service"
"traefik.service"
];
script = ''
mkdir -p /run/generated/kanidm-tls
${pkgs.openssl}/bin/openssl req -x509 -newkey ed25519 -noenc -subj "/CN=generated.${cfg.domain}" -addext "subjectAltName=DNS:${cfg.domain}" -keyout /run/generated/key.pem -out /run/generated/cert.pem
'';
};
sops.secrets."kanidm.password" = {
sopsFile = ../../instances/${config.networking.hostName}/secrets/kanidm.yaml;
};
# sops.templates."kanidm.env".content = ''
# DESEC_TOKEN=${config.sops.placeholder.desec_token}
# DESEC_PROPAGATION_TIMEOUT=1200
# '';
# sops.templates."kanidm.env".reloadUnits = [ "kanidm.service" ];
};
}

View file

@ -9,17 +9,21 @@ with lib;
let
cfg = config.xyno.services.monitoring;
firstInstanceWithPromServer = if cfg.prometheusServer then config.networking.hostName else (builtins.head (
attrValues (filterAttrs (n: v: v.config.xyno.services.monitoring.prometheusServer) (otherNodes))
)).config.networking.hostName;
vmBasicAuthUsername = "xyno-monitoring";
# firstInstanceWithPromServer =
# if cfg.prometheusServer then
# config.networking.hostName
# else
# (builtins.head (
# attrValues (filterAttrs (n: v: v.config.xyno.services.monitoring.prometheusServer) (otherNodes))
# )).config.networking.hostName;
# vmBasicAuthUsername = "xyno-monitoring";
in
{
options.xyno.services.monitoring.enable =
mkEnableOption "enables monitoring (prometheus exporters and stuff)";
options.xyno.services.monitoring.remoteWriteUrl = mkOption {
type = types.str;
default = "http://${firstInstanceWithPromServer}.${config.xyno.services.wireguard.monHostsDomain}:8428/api/v1/write";
default = "https://metrics.xyno.systems/api/v1/write";
description = "where prometheus metrics should be pushed to";
};
options.xyno.services.monitoring.prometheusServer = mkOption {
@ -44,8 +48,9 @@ in
enabledCollectors = [ "systemd" ];
};
xyno.services.monitoring.exporters.node = config.services.prometheus.exporters.node.port;
# TODO: oauth2 with client per host -> kanidm -> oauth2-proxy -> victoriametrics server
services.vmagent = {
remoteWrite.url = cfg.remoteWriteUrl;
remoteWrite.url = if cfg.prometheusServer then "http://localhost:8428/api/v1/write" else cfg.remoteWriteUrl;
remoteWrite.basicAuthUsername = vmBasicAuthUsername;
remoteWrite.basicAuthPasswordFile = config.sops.secrets."victoriametrics/basicAuthPassword".path;
@ -84,7 +89,9 @@ in
];
};
services.grafana.declarativePlugins = with pkgs.grafanaPlugins; [ victoriametrics-metrics-datasource ];
services.grafana.declarativePlugins = with pkgs.grafanaPlugins; [
victoriametrics-metrics-datasource
];
})
];

View file

@ -0,0 +1,197 @@
{
pkgs,
lib,
config,
...
}:
let
cfg = config.xyno.services.traefik;
simpleProxyOpts = lib.mapAttrsToList (
n: v:
let
router = "simpleproxy-${n}-router";
service = "simpleproxy-${n}-service";
spl = lib.splitString "." v.host;
certDomain =
if (builtins.length spl) > 2 then lib.concatStringsSep "." (builtins.tail spl) else spl;
in
{
routers."${router}-robotstxt" = {
service = "robotstxt";
rule = "Host(`${v.host}`) && Path(`/robots.txt`)";
tls.certResolver = "letsencrypt";
tls.domains = [
{
main = certDomain;
sans = [ "*.${certDomain}" ];
}
];
};
routers.${router} = {
inherit service;
rule = "Host(`${v.host}`)";
tls.certResolver = "letsencrypt";
tls.domains = [
{
main = certDomain;
sans = [ "*.${certDomain}" ];
}
];
};
services.${service} = {
loadBalancer.servers = [
{ url = v.internal; }
];
loadBalancer.serverTransport = lib.mkIf (v.transport != null) v.transport;
};
services.robotstxt = {
loadBalancer.servers = [
{ url = "http://127.0.0.2:8080"; }
];
};
}
) cfg.simpleProxy;
in
{
options.xyno.services.traefik.enable = lib.mkEnableOption "enables traefik";
options.xyno.services.traefik.noBots = lib.mkOption {
type = lib.types.bool;
default = true;
};
options.xyno.services.traefik.simpleProxy = lib.mkOption {
example = {
"example" = {
host = "example.org";
middlewares = [ "meow" ];
internal = "http://127.0.0.1:8080";
};
};
default = { };
type = lib.types.attrsOf (
lib.types.submodule {
options = {
middlewares = lib.mkOption {
type = lib.types.nullOr (lib.types.listOf lib.types.str);
};
internal = lib.mkOption {
type = lib.types.str;
};
host = lib.mkOption {
type = lib.types.str;
};
transport = lib.mkOption {
type = lib.types.nullOr lib.types.anything;
default = null;
};
};
}
);
};
config = lib.mkIf cfg.enable {
services.nginx = {
enable = lib.mkIf cfg.noBots true;
defaultListen = lib.mkIf cfg.noBots [
{
addr = "127.0.0.2";
port = 8080;
}
];
virtualHosts._.default = true;
virtualHosts._.locations."/".root = pkgs.writeTextFile {
name = "robots.txt";
destination = "/robots.txt";
text = ''
User-agent: *
Disallow: /
'';
};
};
services.traefik = {
enable = true;
environmentFiles = [
config.sops.templates."traefik.env".path
];
staticConfigOptions = {
metrics = lib.mkIf config.xyno.services.monitoring.enable {
otlp.http.endpoint = "http://localhost:8429/v1/metrics";
};
entryponits.web = {
address = ":80";
redirections.entryPoint = {
to = "websecure";
scheme = "https";
permanent = true;
};
};
entrypoints.websecure = {
address = ":443";
http.tls.certResolver = "letsencrypt";
http3 = { };
};
log.level = "INFO";
certificatesResolvers.letsencrypt.acme = {
email = "ssl@xyno.systems";
caServer = "https://acme-v02.api.letsencrypt.org/directory";
dnsChallenge = {
resolvers = [ "8.8.8.8" "1.1.1.1" ];
provider = "desec";
};
};
};
dynamicConfigOptions = {
http = lib.mkMerge simpleProxyOpts;
# tls.options.default = {
# # mozilla modern
# minVersion = "VersionTLS13";
# curvePreferences = [
# "X25519"
# "CurveP256"
# "CurveP384"
# ];
# };
# tls.options.old = {
# # mozilla intermediate
# minVersion = "VersionTLS12";
# curvePreferences = [
# "X25519"
# "CurveP256"
# "CurveP384"
# ];
# cipherSuites = [
# "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
# "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
# "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
# "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
# "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305"
# "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305"
# ];
# };
};
};
networking.firewall.allowedTCPPorts = [
80
443
];
networking.firewall.allowedUDPPorts = [ 443 ];
xyno.impermanence.directories = [ config.services.traefik.dataDir ];
sops.secrets."desec_token" = {
};
sops.templates."traefik.env".content = ''
DESEC_TOKEN=${config.sops.placeholder.desec_token}
DESEC_PROPAGATION_TIMEOUT=1200
LEGO_DISABLE_CNAME_SUPPORT=true
'';
sops.templates."traefik.env".reloadUnits = [ "traefik.service" ];
# services.borgmatic.settings.traefikql_databases = [
# {
# name = "all"; # gets run as root anyways so can log in
# }
# ];
};
}

View file

@ -21,24 +21,25 @@ in
{
options.xyno.impermanence = {
enable = lib.mkEnableOption "erase all your darlings (they hate you anyways)";
files = lib.mkOption { type = lib.types.listOf lib.types.str; };
directories = lib.mkOption { type = lib.types.listOf lib.types.str; };
files = lib.mkOption { type = lib.types.listOf lib.types.str; default = []; };
directories = lib.mkOption { type = lib.types.listOf lib.types.anything; default = [];};
user = {
files = lib.mkOption { type = lib.types.listOf lib.types.str; };
directories = lib.mkOption { type = lib.types.listOf lib.types.str; };
files = lib.mkOption { type = lib.types.listOf lib.types.str; default = [];};
directories = lib.mkOption { type = lib.types.listOf lib.types.anything; default = [];};
};
# have a seperate impermanence tree for "cache" files that can just be deleted if wanted
cache = {
files = lib.mkOption { type = lib.types.listOf lib.types.str; };
directories = lib.mkOption { type = lib.types.listOf lib.types.str; };
files = lib.mkOption { type = lib.types.listOf lib.types.str; default = [];};
directories = lib.mkOption { type = lib.types.listOf lib.types.anything; default = [];};
user = {
files = lib.mkOption { type = lib.types.listOf lib.types.str; };
directories = lib.mkOption { type = lib.types.listOf lib.types.str; };
files = lib.mkOption { type = lib.types.listOf lib.types.str; default = [];};
directories = lib.mkOption { type = lib.types.listOf lib.types.anything; default = [];};
};
};
};
config = lib.mkIf cfg.enable {
users.mutableUsers = false;
xyno.impermanence.files = [
"/etc/machine-id" # systemd/zfs unhappy otherwise
];
@ -47,6 +48,7 @@ in
"/var/lib/systemd/coredump"
"/etc/ssh" # host keys
"/var/lib/sbctl" # lanzaboote
"/var/lib/nixos"
];
xyno.impermanence.user.directories = [

View file

@ -1,6 +1,6 @@
{lib,...}: with lib;{
options.xyno.meta = {
sopsKey = mkOption { type = types.text; };
sopsKey = mkOption { type = types.str; };
};
config = {
sops.defaultSopsFile = ../../secrets/common.yaml;

View file

@ -28,15 +28,5 @@ inputs: self: super: {
python-uhid = super.callPackage ../packages/uhid.nix {};
caddy-desec = super.callPackage ../packages/caddy-desec.nix {};
# todo: remove on next supersonic release
supersonic-wayland = super.supersonic-wayland.overrideAttrs (old: {
patches = (if old?patches then old.patches else []) ++ [
(self.fetchpatch2 {
url = "https://github.com/dweymouth/supersonic/commit/ee742cf34ef7225d345c16354d9c21d72a41bf4a.patch";
hash = "sha256-kSeEbzrfJ4Pe8JC4rIWlSmADOcjrCRBNWlcO8VfVnn4=";
})
];
vendorHash = "sha256-Sh3PxRwb6ElSeWzdvIQ+nD9VVGlpUDwxG7nAoGWPTRQ=";
});
}

View file

@ -1,17 +1,18 @@
victoriametrics:
basicAuthPassword: ENC[AES256_GCM,data:5QuhkQ344qDYzhGZBJimaX94C6oxgYBRZw4MSlycdgs6zRAudMIu/HF1gpjythQpait81jMpFhIn57w433s7QQ==,iv:gytJ63cBaJseCis7gEPmOX6LeddNloQsTjc1SnS56jo=,tag:Jn6TevGsBEeHxYmVHy896w==,type:str]
desec_token: ENC[AES256_GCM,data:3aqlfpAEMyOSNGdLXm4lc0VZajduPkTYkYd+WA==,iv:sktNkKWaD/hjsQpSJzAZeCvwYXfvkhQ2A44BKedCZRg=,tag:XbxIr09c60V0PMDitSOD/w==,type:str]
wg:
psk: ENC[AES256_GCM,data:Anpe6IxtzsqZyvas+ddV3yjJozdZgZOl2KG/Z4YtWUB5gAVLtxsQKc/WA/M=,iv:j/A5k2VXbdqUDXEd1WRfJYdb3DsUZ1B9gPHCpDpRjmw=,tag:KQGi1O5iP2+nQccgBzytSQ==,type:str]
msmtp:
host: ENC[AES256_GCM,data:YxiLT5t2H52IZvB02Pjntvg=,iv:nuMPI6fuvQ4U0+xj3SF27ZO/b2knKUsO6jCf9aJqQa4=,tag:9DucIq+LUozuPLL3s8UjDQ==,type:str]
port: ENC[AES256_GCM,data:zbe7,iv:cwoK0oCIzwmQ6xHFX94KDfd7Fu+pC96c9+AnK/KpQp4=,tag:IfsCHk0SpBeQ4bD0WXyQcw==,type:int]
port: ENC[AES256_GCM,data:W7L1,iv:q2TQTGTxOWCWqgjTBmVKarVbe+mNd/rwAupXJOl4WYQ=,tag:xW/GUGCIfn466icpIvyvCQ==,type:str]
from: ENC[AES256_GCM,data:QpUgsghc7e5OFJO8afzx6bt1,iv:ffrlbqFu2p5/uwv5MN9rf7iZSmfozYSwr3WkEvXNZhA=,tag:B3g+6WexBw6j6EgukX5LDg==,type:str]
user: ENC[AES256_GCM,data:H2OxJp6q1QCxBxIXThXrj+SU,iv:Cu7KFDaiqM0cuofnqkLnE6Zb6ufLw6wQRSk1pthDAAo=,tag:oM1VefUo9kK8k7lHKnxOjA==,type:str]
password: ENC[AES256_GCM,data:mAgsvDPzt8f/RB/2T8nrd+KUcuxUGIdCBDs5sFla5x0=,iv:qndiiKTuSpbf/gtNXPaZ6AnHHwzZ7IPJrDFriM7bKwE=,tag:5j+gjpaxIu03x1lBkRMLhQ==,type:str]
aliases: ENC[AES256_GCM,data:fOZRYZ8rVs3IXhiS+VaP54gF4bir66oIZvb7ZfKV,iv:bsmh1ZCwERZuHrvORP68hj5Gz7j3+K6ZW8BR3/IQVQg=,tag:jWozmXpjk3JHCINSgP4KGg==,type:str]
sops:
lastmodified: "2025-09-06T16:50:17Z"
mac: ENC[AES256_GCM,data:QdWLok9IBqTaO3StKRiAXcMIZSV5YJQoYY+3cZZ7xARbmvn5cDqnapv3HIJju7v5V48tNG3aXy1nJHG4kKVuDIMd7s7PPjLL1k0dEsnTs4YwE8XugZX86nXuSUZeUuQNfnR9sFOKho/o/I9W5hCp0IcEgo+Bs1dD3IvYxuv6Nzk=,iv:IHEDtI6lo76qPgBvBETg/SiT/tfFivN8r8J7tt93IbQ=,tag:ifW8UVaf5r8Y9HUUtCkAQQ==,type:str]
lastmodified: "2025-11-24T11:48:22Z"
mac: ENC[AES256_GCM,data:wA4AwEX67amH4UneZqV03PnaLUscUnj4VAmOqzjOTA9dKAV3KzFwD4NqRs2Dy8ap6kOOIS67gZ+3WV8QySyLT84zhEPSjB6M1FURV+LQjd4nc5EBP4Y67osy/QGB4U0d6shHt1sTFmHG2dJvTB7sPDSlRvgDhHE/ApcWuNFUfTY=,iv:Umacpqk+Zge9a9tlSsfjz1mcQvtequK8K4qLVJu8PCg=,tag:H09qfzM/xyn7TLkPCgtS6Q==,type:str]
pgp:
- created_at: "2025-09-06T16:37:33Z"
enc: |-
@ -63,4 +64,4 @@ sops:
-----END PGP MESSAGE-----
fp: b730b2bf54eb792a14bfd3e68c14c08894376c5f
unencrypted_suffix: _unencrypted
version: 3.10.2
version: 3.11.0

View file

@ -12,7 +12,7 @@ let
"0D98D5964AC8BB1CA034CE4EC456133700066642" # xyno main gpg key
];
keysPerHost = (
mapAttrs (n: v: (toList v.sopsKey)) (filterAttrs (n: v: v ? sopsKey) instanceConfigs)
mapAttrs (n: v: (toList v.config.xyno.meta.sopsKey)) (filterAttrs (n: v: v.config.xyno.meta.sopsKey != null) instanceConfigs)
);
desktopHostNames = [ "theseus" ];