1
0

665 Commits

Author SHA1 Message Date
Flake Update Bot
24623e1a75 Update from updated-inputs-2025-03-14-02-03 2025-03-14 03:04:24 +01:00
Flake Update Bot
0be63b0982 Update nixpkgs 2025-03-14-02-03 2025-03-14 03:04:22 +01:00
97d826ef89 hosts/gatekeeper,hosts/mail-2,hosts/web-2: Migrate Hetzner VMs to systemd-networkd 2025-03-13 19:07:31 +01:00
8eaf11fb57 profiles/hetzner-cloud: Migrate Hetzner VMs to Hetzner Cloud profile 2025-03-13 18:46:11 +01:00
ec6390be3f profiles/netcup: Add profile for Netcup VM 2025-03-13 18:04:19 +01:00
e4dc3bdc1f hosts/porter: Migrate to systemd-networkd 2025-03-13 17:42:16 +01:00
Flake Update Bot
06c34775b4 Update from updated-inputs-2025-03-13-02-03 2025-03-13 03:03:08 +01:00
Flake Update Bot
27e58ff4a1 Update nixpkgs 2025-03-13-02-03 2025-03-13 03:03:06 +01:00
87466f0ac9 hosts/palladium: Fresh system install 2025-03-12 22:18:10 +01:00
29da5a77c8 pkgs/overlay.nix: Generate overlay from attrset we can use to automatically get the package names for our own packets from 2025-03-12 20:50:49 +01:00
Flake Update Bot
e741cc4a2c Update from updated-inputs-2025-03-11-02-03 2025-03-11 03:04:16 +01:00
Flake Update Bot
fdf1d4206a Update nixpkgs 2025-03-11-02-03 2025-03-11 03:04:13 +01:00
9bb1d93db7 hosts/palladium: Remove services 2025-03-10 19:18:56 +01:00
Flake Update Bot
0f81261ddf Update from updated-inputs-2025-03-09-02-03 2025-03-09 03:04:32 +01:00
Flake Update Bot
3dc7cb33b9 Update nixpkgs 2025-03-09-02-03 2025-03-09 03:04:29 +01:00
Flake Update Bot
b9d6ce1aa7 Update from updated-inputs-2025-03-08-02-03 2025-03-08 03:04:20 +01:00
Flake Update Bot
05fd86d004 Update nixpkgs 2025-03-08-02-03 2025-03-08 03:04:18 +01:00
a8b084628f hosts/monitoring-3: Monitor uberspace hosts 2025-03-07 22:03:34 +01:00
Flake Update Bot
bba9712842 Update from updated-inputs-2025-03-07-02-03 2025-03-07 03:04:21 +01:00
Flake Update Bot
ccda80b746 Update nixpkgs 2025-03-07-02-03 2025-03-07 03:04:18 +01:00
7254525c8e pkgs/git-show-link: Match names with special chars too 2025-03-06 20:14:27 +01:00
dbd16ed438 pkgs/git-show-link: Add helper to display links to local git objects 2025-03-06 20:05:08 +01:00
26d1ddfaee hosts/monitoring-3: Enable websockets with Grafana 2025-03-06 18:40:43 +01:00
Flake Update Bot
05c4f429ec Update from updated-inputs-2025-03-04-02-03 2025-03-04 03:04:16 +01:00
Flake Update Bot
a1302a5cc4 Update nixpkgs 2025-03-04-02-03 2025-03-04 03:04:14 +01:00
Flake Update Bot
a89b7dba45 Update from updated-inputs-2025-03-03-02-03 2025-03-03 03:04:14 +01:00
Flake Update Bot
928dbffb1e Update nixpkgs 2025-03-03-02-03 2025-03-03 03:04:12 +01:00
3f07e7dbd7 hosts/dn42-il*: Migrate bird config to new module name 2025-03-02 17:36:49 +01:00
d257df7939 Merge remote-tracking branch 'origin/updated-inputs-2025-02-22-02-03' 2025-03-02 15:06:54 +01:00
Flake Update Bot
e4d893545f Update from updated-inputs-2025-03-01-02-03 2025-03-01 03:04:24 +01:00
Flake Update Bot
50c9176084 Update nixpkgs 2025-03-01-02-03 2025-03-01 03:04:22 +01:00
Flake Update Bot
87044e7267 Update from updated-inputs-2025-02-28-02-03 2025-02-28 03:04:18 +01:00
Flake Update Bot
215bd79bb6 Update nixpkgs 2025-02-28-02-03 2025-02-28 03:04:16 +01:00
Flake Update Bot
3a3504ec0f Update from updated-inputs-2025-02-26-02-03 2025-02-26 03:03:08 +01:00
Flake Update Bot
1f40cc9008 Update nixpkgs 2025-02-26-02-03 2025-02-26 03:03:06 +01:00
360dbe0a07 hosts/tungsten: Add to monitoring and to wg-clerie 2025-02-25 19:01:57 +01:00
c4f6bd926e hosts/tungsten: Add storage 2025-02-25 18:14:35 +01:00
Flake Update Bot
0f075be374 Update from updated-inputs-2025-02-25-02-03 2025-02-25 03:04:20 +01:00
Flake Update Bot
6ce6126b01 Update nixpkgs 2025-02-25-02-03 2025-02-25 03:04:17 +01:00
Flake Update Bot
8c37d5c17a Update from updated-inputs-2025-02-24-02-03 2025-02-24 03:04:14 +01:00
Flake Update Bot
00f446d5b6 Update nixpkgs 2025-02-24-02-03 2025-02-24 03:04:12 +01:00
Flake Update Bot
801e8de895 Update from updated-inputs-2025-02-22-02-03 2025-02-22 03:03:08 +01:00
Flake Update Bot
07b0f70747 Update nixpkgs 2025-02-22-02-03 2025-02-22 03:03:06 +01:00
99c82a2898 pkgs/clerie-system-remote-install: Install NixOS system remotely without evaluating anything on remote 2025-02-21 20:33:01 +01:00
427820aa37 hosts/tungsten: Init host 2025-02-21 20:26:02 +01:00
822763abe4 hosts/_iso: Allow clerie to log in to root directly with SSH keys 2025-02-21 20:25:39 +01:00
Flake Update Bot
142fd8aaa0 Update from updated-inputs-2025-02-21-02-03 2025-02-21 03:03:08 +01:00
Flake Update Bot
e42947e389 Update nixpkgs 2025-02-21-02-03 2025-02-21 03:03:06 +01:00
9ae31d6786 hosts/_iso: Make iso bootable again by disabling systemd in initrd 2025-02-20 20:20:12 +01:00
Flake Update Bot
2a49030f0f Update from updated-inputs-2025-02-20-02-03 2025-02-20 03:04:22 +01:00
Flake Update Bot
02c2492e46 Update nixpkgs 2025-02-20-02-03 2025-02-20 03:04:20 +01:00
Flake Update Bot
a8bd50b7ae Update from updated-inputs-2025-02-18-02-03 2025-02-18 03:04:17 +01:00
Flake Update Bot
c7ab6e80e4 Update nixpkgs 2025-02-18-02-03 2025-02-18 03:04:14 +01:00
Flake Update Bot
f91326122e Update from updated-inputs-2025-02-17-02-03 2025-02-17 03:04:17 +01:00
Flake Update Bot
6188cec90d Update nixpkgs 2025-02-17-02-03 2025-02-17 03:04:15 +01:00
12a5d4b816 hosts/clerie-backup,hosts/backup-4: Add backup repo for cleriewi.uber.space 2025-02-16 19:20:35 +01:00
638721cceb pkgs/nixfiles,pkgs/clerie-sops: Allow htpasswd edit the htpasswd file directly and therefor update existing entries 2025-02-16 18:59:47 +01:00
5345828a56 pkgs/nixfiles: Display generated backup secrets and make configureing hosts optional 2025-02-16 18:34:15 +01:00
5b03dd5ef9 hosts/backup-4,hosts/clerie-backup: Add backup targets for clerie.uber.space 2025-02-16 12:11:32 +01:00
Flake Update Bot
790cd52cd9 Update from updated-inputs-2025-02-15-02-03 2025-02-15 03:03:08 +01:00
Flake Update Bot
36fbfac843 Update nixpkgs 2025-02-15-02-03 2025-02-15 03:03:06 +01:00
141f956e9a pkgs/clerie-backup: Fix typos 2025-02-15 01:33:12 +01:00
61a7d64452 modules/backup: Migrate automatic backups to clerie-backup backend 2025-02-14 13:17:26 +01:00
d17c2855ac pkgs/clerie-backup: Add script to unify backup configs 2025-02-14 13:09:59 +01:00
Flake Update Bot
bb0ba232c7 Update from updated-inputs-2025-02-14-02-03 2025-02-14 03:04:20 +01:00
Flake Update Bot
b54aac0160 Update nixpkgs 2025-02-14-02-03 2025-02-14 03:04:18 +01:00
Flake Update Bot
dbabae3fc6 Update from updated-inputs-2025-02-12-02-03 2025-02-12 03:04:13 +01:00
Flake Update Bot
d47fd59762 Update nixpkgs 2025-02-12-02-03 2025-02-12 03:04:10 +01:00
Flake Update Bot
21930d74c2 Update from updated-inputs-2025-02-09-02-03 2025-02-09 03:04:24 +01:00
Flake Update Bot
79c9a9c485 Update nixpkgs 2025-02-09-02-03 2025-02-09 03:04:21 +01:00
Flake Update Bot
6027d0a3d3 Update from updated-inputs-2025-02-08-02-03 2025-02-08 03:04:17 +01:00
Flake Update Bot
5811137ca6 Update nixpkgs 2025-02-08-02-03 2025-02-08 03:04:15 +01:00
Flake Update Bot
0903fc233e Update from updated-inputs-2025-02-06-02-03 2025-02-06 03:03:08 +01:00
Flake Update Bot
7ca9ee8d4e Update nixpkgs 2025-02-06-02-03 2025-02-06 03:03:06 +01:00
f353d7b494 configuration/common: Content-Type utf-8 everywhere 2025-02-05 19:11:48 +01:00
Flake Update Bot
4be4197f90 Update from updated-inputs-2025-02-05-02-03 2025-02-05 03:04:09 +01:00
Flake Update Bot
738feee47c Update nixpkgs 2025-02-05-02-03 2025-02-05 03:04:07 +01:00
Flake Update Bot
36f71846f6 Update from updated-inputs-2025-02-02-02-03 2025-02-02 03:04:13 +01:00
Flake Update Bot
67e0549eeb Update nixpkgs 2025-02-02-02-03 2025-02-02 03:04:11 +01:00
Flake Update Bot
65fe780680 Update from updated-inputs-2025-02-01-02-03 2025-02-01 03:03:08 +01:00
Flake Update Bot
542adc2e78 Update nixpkgs 2025-02-01-02-03 2025-02-01 03:03:06 +01:00
420e9a65f2 configuration/common: Serve nix files with mime type text/plain over nginx 2025-01-31 21:54:31 +01:00
df96b9070d configuration/desktop: Update renamed options 2025-01-31 21:53:10 +01:00
Flake Update Bot
3481ea614b Update from updated-inputs-2025-01-30-02-03 2025-01-30 03:04:07 +01:00
Flake Update Bot
388eb69d34 Update nixpkgs 2025-01-30-02-03 2025-01-30 03:04:05 +01:00
Flake Update Bot
d6fb216188 Update from updated-inputs-2025-01-27-02-03 2025-01-27 03:04:06 +01:00
Flake Update Bot
300bea150b Update nixpkgs 2025-01-27-02-03 2025-01-27 03:04:03 +01:00
Flake Update Bot
224a87d879 Update from updated-inputs-2025-01-26-02-03 2025-01-26 03:04:07 +01:00
Flake Update Bot
e65d414063 Update nixpkgs 2025-01-26-02-03 2025-01-26 03:04:05 +01:00
Flake Update Bot
b8c278444f Update from updated-inputs-2025-01-25-02-03 2025-01-25 03:04:11 +01:00
Flake Update Bot
945efd84f6 Update nixpkgs 2025-01-25-02-03 2025-01-25 03:04:09 +01:00
Flake Update Bot
ac3eb3f6e2 Update from updated-inputs-2025-01-23-02-03 2025-01-23 03:04:07 +01:00
Flake Update Bot
6580b40825 Update nixpkgs 2025-01-23-02-03 2025-01-23 03:04:04 +01:00
Flake Update Bot
adde2b1cfa Update from updated-inputs-2025-01-22-02-03 2025-01-22 03:03:08 +01:00
Flake Update Bot
d4d594cc5e Update nixpkgs 2025-01-22-02-03 2025-01-22 03:03:06 +01:00
3b7f59a66e hosts/monitoring-3: Warn if storages are almost full 2025-01-21 17:18:41 +01:00
Flake Update Bot
4f4e49e277 Update from updated-inputs-2025-01-18-02-03 2025-01-18 03:04:54 +01:00
Flake Update Bot
30f2175fc6 Update nixpkgs 2025-01-18-02-03 2025-01-18 03:04:51 +01:00
Flake Update Bot
b1dcf04097 Update from updated-inputs-2025-01-17-02-03 2025-01-17 03:03:20 +01:00
Flake Update Bot
a9226977dd Update nixpkgs 2025-01-17-02-03 2025-01-17 03:03:17 +01:00
fd2987c9fe flake.lock: Update harmonia 2025-01-16 22:06:50 +01:00
9f7517c75c hosts/_iso: Overwrite nixos defaults 2025-01-16 19:15:06 +01:00
Flake Update Bot
dfdf0c3da2 Update from updated-inputs-2025-01-16-02-03 2025-01-16 03:04:18 +01:00
Flake Update Bot
f4e31212ab Update nixpkgs 2025-01-16-02-03 2025-01-16 03:04:16 +01:00
Flake Update Bot
6d8e91b1e1 Update from updated-inputs-2025-01-15-02-03 2025-01-15 03:04:13 +01:00
Flake Update Bot
4456b98039 Update nixpkgs 2025-01-15-02-03 2025-01-15 03:04:11 +01:00
Flake Update Bot
5493f5bff0 Update from updated-inputs-2025-01-14-02-03 2025-01-14 03:04:12 +01:00
Flake Update Bot
a2d4f6a803 Update nixpkgs 2025-01-14-02-03 2025-01-14 03:04:10 +01:00
Flake Update Bot
d8679cda9c Update from updated-inputs-2025-01-13-02-03 2025-01-13 03:04:06 +01:00
Flake Update Bot
4c0d658a1c Update nixpkgs 2025-01-13-02-03 2025-01-13 03:04:04 +01:00
Flake Update Bot
a07489533d Update from updated-inputs-2025-01-12-02-03 2025-01-12 03:03:06 +01:00
Flake Update Bot
baa0ce6174 Update nixpkgs 2025-01-12-02-03 2025-01-12 03:03:04 +01:00
b0e19708c0 flake.lock: Update scan-to-gpg 2025-01-11 15:39:50 +01:00
Flake Update Bot
3314c2d291 Update from updated-inputs-2025-01-10-02-03 2025-01-10 03:04:05 +01:00
Flake Update Bot
72d93ffe55 Update nixpkgs 2025-01-10-02-03 2025-01-10 03:04:03 +01:00
Flake Update Bot
ad4e357a31 Update from updated-inputs-2025-01-07-02-03 2025-01-07 03:04:05 +01:00
Flake Update Bot
92209fd597 Update nixpkgs 2025-01-07-02-03 2025-01-07 03:04:03 +01:00
13dd689240 hosts/web-2: Read feeds from different directory 2025-01-06 18:38:16 +01:00
Flake Update Bot
8bfe46aedc Update from updated-inputs-2025-01-06-02-03 2025-01-06 03:04:03 +01:00
Flake Update Bot
40c5ab439c Update nixpkgs 2025-01-06-02-03 2025-01-06 03:04:01 +01:00
e70ff56b28 hosts/web-2: Add feeds.clerie.de 2025-01-05 16:26:46 +01:00
Flake Update Bot
20ceed8dae Update from updated-inputs-2025-01-04-02-03 2025-01-04 03:04:58 +01:00
Flake Update Bot
48f950b152 Update nixpkgs 2025-01-04-02-03 2025-01-04 03:04:56 +01:00
1b86f094c8 hosts/web-2: Redirect to admin interface of etebase 2025-01-03 22:50:42 +01:00
aad53d5072 hosts/krypton: Add etesync-dav 2025-01-03 16:15:57 +01:00
df7fba921f hosts/web-2: Add etebase.clerie.de 2025-01-03 15:49:22 +01:00
c091d4a952 pkgs/clerie-update-nixfiles: Fix changed nix command 2025-01-03 15:01:09 +01:00
Flake Update Bot
522a18f1da Update from updated-inputs-2025-01-02-17-23 2025-01-02 18:23:37 +01:00
Flake Update Bot
60a82f327d Update nixpkgs 2025-01-02-17-23 2025-01-02 18:23:34 +01:00
091abaea4a Merge branch 'migrate-to-lix' 2025-01-01 11:54:16 +01:00
Flake Update Bot
6d91cf5b86 Update from updated-inputs-2025-01-01-02-03 2025-01-01 03:03:06 +01:00
Flake Update Bot
6aa3688de2 Update nixpkgs 2025-01-01-02-03 2025-01-01 03:03:04 +01:00
bea417fe8e flake.nix: Use lix hydra 2024-12-31 20:38:22 +01:00
1f373851d1 flake.nix: Add lix 2024-12-31 19:24:16 +01:00
Flake Update Bot
fae43288b5 Update from updated-inputs-2024-12-31-02-03 2024-12-31 03:04:08 +01:00
Flake Update Bot
3528b4f463 Update nixpkgs 2024-12-31-02-03 2024-12-31 03:04:06 +01:00
Flake Update Bot
f03808cd54 Update from updated-inputs-2024-12-28-02-03 2024-12-28 03:04:10 +01:00
Flake Update Bot
5acb2e4dfd Update nixpkgs 2024-12-28-02-03 2024-12-28 03:04:08 +01:00
Flake Update Bot
d34334f5da Update from updated-inputs-2024-12-23-02-03 2024-12-23 03:04:01 +01:00
Flake Update Bot
7be9c7b1eb Update nixpkgs 2024-12-23-02-03 2024-12-23 03:03:59 +01:00
Flake Update Bot
1f2f75c194 Update from updated-inputs-2024-12-19-02-03 2024-12-19 03:04:07 +01:00
Flake Update Bot
2ed461c335 Update nixpkgs 2024-12-19-02-03 2024-12-19 03:04:05 +01:00
Flake Update Bot
e4df775b1f Update from updated-inputs-2024-12-18-02-03 2024-12-18 03:03:05 +01:00
Flake Update Bot
1572e65b53 Update nixpkgs 2024-12-18-02-03 2024-12-18 03:03:03 +01:00
a6e2d7a78d flake.lock: Update solid-xmpp-alarm 2024-12-17 18:38:39 +01:00
Flake Update Bot
f0a948a034 Update from updated-inputs-2024-12-17-02-03 2024-12-17 03:03:05 +01:00
Flake Update Bot
69358ecbe0 Update nixpkgs 2024-12-17-02-03 2024-12-17 03:03:03 +01:00
cc89b20a2c pkgs/overrides/xmppc: patch to read password from file 2024-12-16 17:31:57 +01:00
Flake Update Bot
d7c9a50d90 Update from updated-inputs-2024-12-16-02-03 2024-12-16 03:04:00 +01:00
Flake Update Bot
f3dd12cedf Update nixpkgs 2024-12-16-02-03 2024-12-16 03:03:57 +01:00
Flake Update Bot
eb8bc89e41 Update from updated-inputs-2024-12-14-02-03 2024-12-14 03:04:09 +01:00
Flake Update Bot
6c6305948c Update nixpkgs 2024-12-14-02-03 2024-12-14 03:04:06 +01:00
Flake Update Bot
576c3f91c2 Update from updated-inputs-2024-12-11-02-03 2024-12-11 03:04:06 +01:00
Flake Update Bot
1225b14178 Update nixpkgs 2024-12-11-02-03 2024-12-11 03:04:04 +01:00
Flake Update Bot
1354d60199 Update from updated-inputs-2024-12-10-02-03 2024-12-10 03:03:05 +01:00
Flake Update Bot
d307c72f3c Update nixpkgs 2024-12-10-02-03 2024-12-10 03:03:03 +01:00
75af9b7383 pkgs/factorio-launcher: Add wrapper to launch factorio 2024-12-09 20:34:07 +01:00
36c6ada07c flake.lock: Update scan-to-gpg 2024-12-09 18:53:17 +01:00
962acece38 hosts/carbon: Fix broken per start script generation 2024-12-09 18:34:32 +01:00
Flake Update Bot
9a69d50076 Update from updated-inputs-2024-12-09-02-03 2024-12-09 03:04:04 +01:00
Flake Update Bot
7140403dfe Update nixpkgs 2024-12-09-02-03 2024-12-09 03:04:02 +01:00
Flake Update Bot
8bdb9b8f17 Update from updated-inputs-2024-12-07-02-03 2024-12-07 03:04:03 +01:00
Flake Update Bot
b875145185 Update nixpkgs 2024-12-07-02-03 2024-12-07 03:04:01 +01:00
Flake Update Bot
359d09df8c Update from updated-inputs-2024-12-04-02-03 2024-12-04 03:04:02 +01:00
Flake Update Bot
60e468c385 Update nixpkgs 2024-12-04-02-03 2024-12-04 03:04:00 +01:00
Flake Update Bot
baf3e26c07 Update from updated-inputs-2024-12-03-02-03 2024-12-03 03:04:00 +01:00
Flake Update Bot
a3d9f374af Update nixpkgs 2024-12-03-02-03 2024-12-03 03:03:58 +01:00
Flake Update Bot
c4d768aae4 Update from updated-inputs-2024-12-02-02-03 2024-12-02 03:04:01 +01:00
Flake Update Bot
18df56c1a8 Update nixpkgs 2024-12-02-02-03 2024-12-02 03:03:59 +01:00
be1fc59843 configuration/desktop: Tune upower tresholds 2024-12-01 20:11:42 +01:00
Flake Update Bot
e2fb4684e2 Update from updated-inputs-2024-12-01-02-03 2024-12-01 03:04:06 +01:00
Flake Update Bot
a216a299ab Update nixpkgs 2024-12-01-02-03 2024-12-01 03:04:04 +01:00
Flake Update Bot
f2d49e763a Update from updated-inputs-2024-11-30-02-03 2024-11-30 03:03:05 +01:00
3cff496e74 Merge remote-tracking branch 'origin/updated-inputs-2024-11-27-02-03' 2024-11-29 19:15:51 +01:00
45e14d65ec hosts/web-2: Upgrade to postgresql 16 2024-11-29 19:14:14 +01:00
Flake Update Bot
af57dc2787 Update from updated-inputs-2024-11-27-02-03 2024-11-27 03:04:07 +01:00
Flake Update Bot
c54004b102 Update nixpkgs 2024-11-27-02-03 2024-11-27 03:04:05 +01:00
Flake Update Bot
fd7c98216c Update from updated-inputs-2024-11-25-02-03 2024-11-25 03:04:01 +01:00
Flake Update Bot
7bcb078848 Update nixpkgs 2024-11-25-02-03 2024-11-25 03:03:59 +01:00
a76e8cf3c0 hosts/carbon: Add scan-to-gpg 2024-11-24 20:43:27 +01:00
Flake Update Bot
f2bd8ef2a5 Update from updated-inputs-2024-11-24-02-03 2024-11-24 03:03:05 +01:00
Flake Update Bot
ec964956f3 Update nixpkgs 2024-11-24-02-03 2024-11-24 03:03:03 +01:00
6dc38cf21e hosts/carbon: Add net-printer 2024-11-23 23:00:19 +01:00
Flake Update Bot
00cf922de1 Update from updated-inputs-2024-11-23-02-03 2024-11-23 03:03:05 +01:00
Flake Update Bot
ed16fe723d Update nixpkgs 2024-11-23-02-03 2024-11-23 03:03:03 +01:00
dff6bb1a4e configuration/desktop: Add global mic mute shortcut 2024-11-22 09:46:02 +01:00
Flake Update Bot
b933d7b7b7 Update from updated-inputs-2024-11-22-02-03 2024-11-22 03:03:05 +01:00
Flake Update Bot
f8e3e03987 Update nixpkgs 2024-11-22-02-03 2024-11-22 03:03:03 +01:00
c63a781dc6 pkgs/clerie-sops: regenerate clerie-sops-config on every call to clerie-sops 2024-11-21 22:31:42 +01:00
0e00c74ba7 configuration/desktop: Handle renamed font in future releases 2024-11-21 13:45:26 +01:00
923229dc00 configuration/common: Allow overriding nix version per host 2024-11-21 13:25:27 +01:00
Flake Update Bot
a168a18199 Update from updated-inputs-2024-11-21-02-03 2024-11-21 03:04:04 +01:00
Flake Update Bot
1ec5017c2b Update nixpkgs 2024-11-21-02-03 2024-11-21 03:04:02 +01:00
cfe722a3cb hosts/monitoring-3: Remove some ping targets 2024-11-20 22:31:52 +01:00
9dc9c7aebe hosts/monitoring-3: Remove XMPP Alerter Prometheus scrape target 2024-11-20 22:30:43 +01:00
8e43e4db39 hosts/web-2: Remove nogo2024.clerie.de 2024-11-20 22:23:22 +01:00
113a14cb9b hosts/web-2: Remove iot-data.clerie.de 2024-11-20 22:21:30 +01:00
75f691061b hosts/web-2: Remove tap.clerie.de 2024-11-20 22:18:24 +01:00
11e6ed35cc hosts/web-2: Remove bubblesort.clerie.de 2024-11-20 22:17:39 +01:00
5265e6234e hosts/web-2: Update clerie.de 2024-11-20 22:13:50 +01:00
d946d31c81 configuration/common: Pin nix version to 2.18 2024-11-20 20:40:27 +01:00
5f6c3b9258 configuration/common: Remove nix experimental feature repl-flake 2024-11-20 20:32:41 +01:00
Flake Update Bot
1e23635ccd Update from updated-inputs-2024-11-17-02-03 2024-11-17 03:04:08 +01:00
Flake Update Bot
822fdcb42e Update nixpkgs 2024-11-17-02-03 2024-11-17 03:04:06 +01:00
Flake Update Bot
fbdf478170 Update from updated-inputs-2024-11-15-02-03 2024-11-15 03:04:01 +01:00
Flake Update Bot
6857e12778 Update nixpkgs 2024-11-15-02-03 2024-11-15 03:03:59 +01:00
Flake Update Bot
d2ae13ec56 Update from updated-inputs-2024-11-13-02-03 2024-11-13 03:03:05 +01:00
Flake Update Bot
1644650c17 Update nixpkgs 2024-11-13-02-03 2024-11-13 03:03:03 +01:00
54dc097b44 hosts/carbon: Enable mDNS reflection between net-heimnetz and net-iot 2024-11-12 21:09:45 +01:00
Flake Update Bot
e31044b74d Update from updated-inputs-2024-11-11-02-03 2024-11-11 03:03:59 +01:00
Flake Update Bot
ff3228414b Update nixpkgs 2024-11-11-02-03 2024-11-11 03:03:57 +01:00
684c5e9ac5 hosts/zinc: Add mumble 2024-11-10 20:05:18 +01:00
6840548833 hosts/carbon: Readvertise prefixes often enough
Advertise current prefixes more often than claimed addresses expire.
Also increased lifetimes for claimed addresses.
2024-11-10 19:52:47 +01:00
Flake Update Bot
2feeb28f60 Update from updated-inputs-2024-11-07-02-03 2024-11-07 03:04:03 +01:00
Flake Update Bot
a0730b4606 Update nixpkgs 2024-11-07-02-03 2024-11-07 03:04:01 +01:00
Flake Update Bot
da8e3c64a4 Update from updated-inputs-2024-11-04-02-03 2024-11-04 03:03:59 +01:00
Flake Update Bot
c3ad0e1276 Update nixpkgs 2024-11-04-02-03 2024-11-04 03:03:57 +01:00
Flake Update Bot
65970c187f Update from updated-inputs-2024-11-01-02-03 2024-11-01 03:04:05 +01:00
Flake Update Bot
4ccc9acde1 Update nixpkgs 2024-11-01-02-03 2024-11-01 03:03:58 +01:00
Flake Update Bot
d93054696d Update from updated-inputs-2024-10-28-02-03 2024-10-28 03:03:55 +01:00
Flake Update Bot
f96220ef89 Update nixpkgs 2024-10-28-02-03 2024-10-28 03:03:53 +01:00
Flake Update Bot
e1ae756928 Update from updated-inputs-2024-10-26-01-03 2024-10-26 03:03:05 +02:00
Flake Update Bot
092a4cc277 Update nixpkgs 2024-10-26-01-03 2024-10-26 03:03:03 +02:00
bf294bee3a flake.nix: Update harmonia 2024-10-25 15:02:40 +02:00
b779a75969 hosts/zinc: Remove cura 2024-10-25 14:40:34 +02:00
edc2461e5a pkgs/git-pp: Git pull and push in one go 2024-10-25 13:31:16 +02:00
Flake Update Bot
2a9486fcfc Update from updated-inputs-2024-10-25-01-03 2024-10-25 03:04:00 +02:00
Flake Update Bot
74a67811d7 Update nixpkgs 2024-10-25-01-03 2024-10-25 03:03:58 +02:00
f9ab9b4136 hosts/hydra-1: Migrate to modules harmonia signKeyPaths implementation 2024-10-24 21:01:48 +02:00
Flake Update Bot
181394b8c9 Update from updated-inputs-2024-10-23-01-03 2024-10-23 03:04:10 +02:00
Flake Update Bot
6dab743d79 Update nixpkgs 2024-10-23-01-03 2024-10-23 03:04:07 +02:00
5d45d3aac1 configuration/gpg-ssh: Custom gnupg without builtin ccid driver in scdaemon 2024-10-22 18:01:37 +02:00
09f54a05ee hosts/carbon: Do not fall back IPv6 traffic via VPN, if no native IPv6 is available 2024-10-20 17:06:36 +02:00
24472aec49 hosts/monitoring-3: Enable Synapse Monitoring for matrix.fachschaften.org 2024-10-20 16:42:27 +02:00
Flake Update Bot
c3e1bf4a95 Update from updated-inputs-2024-10-20-01-03 2024-10-20 03:04:11 +02:00
Flake Update Bot
889e6dc10c Update nixpkgs 2024-10-20-01-03 2024-10-20 03:04:09 +02:00
Flake Update Bot
3a00159650 Update from updated-inputs-2024-10-19-01-03 2024-10-19 03:04:13 +02:00
Flake Update Bot
6a707c6db6 Update nixpkgs 2024-10-19-01-03 2024-10-19 03:04:10 +02:00
Flake Update Bot
d2fb61bae0 Update from updated-inputs-2024-10-16-01-03 2024-10-16 03:04:07 +02:00
Flake Update Bot
37c6c9bed4 Update nixpkgs 2024-10-16-01-03 2024-10-16 03:04:05 +02:00
Flake Update Bot
abac22a420 Update from updated-inputs-2024-10-11-01-03 2024-10-11 03:04:09 +02:00
Flake Update Bot
c1fca4ef50 Update nixpkgs 2024-10-11-01-03 2024-10-11 03:04:07 +02:00
Flake Update Bot
f7887c6266 Update from updated-inputs-2024-10-09-01-03 2024-10-09 03:04:07 +02:00
Flake Update Bot
4f6af63ce6 Update nixpkgs 2024-10-09-01-03 2024-10-09 03:04:05 +02:00
Flake Update Bot
b436b170b1 Update from updated-inputs-2024-10-06-01-03 2024-10-06 03:04:16 +02:00
Flake Update Bot
0c9d6812d9 Update nixpkgs 2024-10-06-01-03 2024-10-06 03:04:14 +02:00
Flake Update Bot
c9fa4477fa Update from updated-inputs-2024-10-03-01-03 2024-10-03 03:04:10 +02:00
Flake Update Bot
bb8bca6a6a Update nixpkgs 2024-10-03-01-03 2024-10-03 03:04:08 +02:00
Flake Update Bot
ac36104e91 Update from updated-inputs-2024-10-01-01-03 2024-10-01 03:04:14 +02:00
Flake Update Bot
062a21cdd3 Update nixpkgs 2024-10-01-01-03 2024-10-01 03:04:12 +02:00
Flake Update Bot
c4d0e86c50 Update from updated-inputs-2024-09-28-01-03 2024-09-28 03:04:12 +02:00
Flake Update Bot
3793ae083e Update nixpkgs 2024-09-28-01-03 2024-09-28 03:04:10 +02:00
Flake Update Bot
5e76c539e3 Update from updated-inputs-2024-09-27-01-03 2024-09-27 03:04:19 +02:00
Flake Update Bot
b92508049b Update nixpkgs 2024-09-27-01-03 2024-09-27 03:04:16 +02:00
Flake Update Bot
67ae5b60b4 Update from updated-inputs-2024-09-24-01-03 2024-09-24 03:04:08 +02:00
Flake Update Bot
711c8238ae Update nixpkgs 2024-09-24-01-03 2024-09-24 03:04:06 +02:00
db3824b5b8 hosts/carbon: Clamp MSS to path MTU 2024-09-23 17:00:33 +02:00
fee4892479 hosts/carbon: Remove broken dhcpv6 profixdelegation 2024-09-23 16:21:07 +02:00
Flake Update Bot
ee9cee0210 Update from updated-inputs-2024-09-21-01-03 2024-09-21 03:04:14 +02:00
Flake Update Bot
3a9c6c9586 Update nixpkgs 2024-09-21-01-03 2024-09-21 03:04:12 +02:00
Flake Update Bot
4482772797 Update from updated-inputs-2024-09-18-01-03 2024-09-18 03:04:04 +02:00
Flake Update Bot
d1f52b3882 Update nixpkgs 2024-09-18-01-03 2024-09-18 03:04:02 +02:00
Flake Update Bot
cb3f7ea152 Update from updated-inputs-2024-09-17-01-03 2024-09-17 03:03:05 +02:00
Flake Update Bot
37ce9ac44a Update nixpkgs 2024-09-17-01-03 2024-09-17 03:03:03 +02:00
f3cdba6ee4 hosts/carbon: Remove regular reboot 2024-09-16 20:37:05 +02:00
Flake Update Bot
a362ea66da Update from updated-inputs-2024-09-16-01-03 2024-09-16 03:04:04 +02:00
Flake Update Bot
8a0fcf0386 Update nixpkgs 2024-09-16-01-03 2024-09-16 03:04:02 +02:00
Flake Update Bot
1ba8e57b36 Update from updated-inputs-2024-09-14-01-03 2024-09-14 03:04:11 +02:00
Flake Update Bot
3acc745a2d Update nixpkgs 2024-09-14-01-03 2024-09-14 03:04:09 +02:00
Flake Update Bot
fe6464c7b1 Update from updated-inputs-2024-09-13-01-03 2024-09-13 03:03:05 +02:00
04eb86fe14 pkgs/run-with-docker-group: Add common env vars 2024-09-12 09:44:38 +02:00
Flake Update Bot
c8c8c14422 Update from updated-inputs-2024-09-12-01-03 2024-09-12 03:04:07 +02:00
Flake Update Bot
de0ce4d58f Update nixpkgs 2024-09-12-01-03 2024-09-12 03:04:05 +02:00
Flake Update Bot
6cccf29a75 Update from updated-inputs-2024-09-08-01-03 2024-09-08 03:04:14 +02:00
Flake Update Bot
cd4a18f2df Update nixpkgs 2024-09-08-01-03 2024-09-08 03:04:12 +02:00
Flake Update Bot
0a95d368e9 Update from updated-inputs-2024-09-06-01-03 2024-09-06 03:04:04 +02:00
Flake Update Bot
78a76b116e Update nixpkgs 2024-09-06-01-03 2024-09-06 03:04:02 +02:00
Flake Update Bot
a9d0694439 Update from updated-inputs-2024-09-02-01-03 2024-09-02 03:03:59 +02:00
Flake Update Bot
882eae2225 Update from updated-inputs-2024-08-30-01-03 2024-08-30 03:04:07 +02:00
Flake Update Bot
99e0209396 Update nixpkgs 2024-08-30-01-03 2024-08-30 03:04:05 +02:00
Flake Update Bot
bd9b6474b7 Update from updated-inputs-2024-08-29-01-03 2024-08-29 03:03:05 +02:00
Flake Update Bot
236a495f83 Update nixpkgs 2024-08-29-01-03 2024-08-29 03:03:03 +02:00
Flake Update Bot
b3ff10b0ba Update from updated-inputs-2024-08-27-01-03 2024-08-27 03:04:13 +02:00
Flake Update Bot
140c0eda49 Update nixpkgs 2024-08-27-01-03 2024-08-27 03:04:11 +02:00
Flake Update Bot
cca8e2cc57 Update from updated-inputs-2024-08-25-01-03 2024-08-25 03:03:05 +02:00
Flake Update Bot
8cc8600c0a Update nixpkgs 2024-08-25-01-03 2024-08-25 03:03:03 +02:00
Flake Update Bot
cbed65a601 Update from updated-inputs-2024-08-24-01-03 2024-08-24 03:03:05 +02:00
Flake Update Bot
1dce42c252 Update nixpkgs 2024-08-24-01-03 2024-08-24 03:03:03 +02:00
Flake Update Bot
1a410dfaa1 Update from updated-inputs-2024-08-23-01-03 2024-08-23 03:04:10 +02:00
Flake Update Bot
4e25034765 Update nixpkgs 2024-08-23-01-03 2024-08-23 03:04:08 +02:00
Flake Update Bot
9af692c19a Update from updated-inputs-2024-08-20-01-03 2024-08-20 03:04:12 +02:00
Flake Update Bot
2f08617058 Update nixpkgs 2024-08-20-01-03 2024-08-20 03:04:09 +02:00
Flake Update Bot
58b8f27cbd Update from updated-inputs-2024-08-16-01-03 2024-08-16 03:04:06 +02:00
Flake Update Bot
f67be8aa8a Update nixpkgs 2024-08-16-01-03 2024-08-16 03:04:04 +02:00
Flake Update Bot
c3ed11df9f Update from updated-inputs-2024-08-14-01-03 2024-08-14 03:04:08 +02:00
Flake Update Bot
02bfbab29b Update nixpkgs 2024-08-14-01-03 2024-08-14 03:04:05 +02:00
Flake Update Bot
91dad776a4 Update from updated-inputs-2024-08-11-01-03 2024-08-11 03:04:14 +02:00
Flake Update Bot
799d654427 Update nixpkgs 2024-08-11-01-03 2024-08-11 03:04:11 +02:00
Flake Update Bot
c7a6eb10de Update from updated-inputs-2024-08-10-01-03 2024-08-10 03:03:05 +02:00
Flake Update Bot
1cd8f11597 Update nixpkgs 2024-08-10-01-03 2024-08-10 03:03:03 +02:00
Flake Update Bot
d1fffe1c99 Update from updated-inputs-2024-08-07-01-03 2024-08-07 03:04:09 +02:00
Flake Update Bot
aae7b95894 Update nixpkgs 2024-08-07-01-03 2024-08-07 03:04:07 +02:00
Flake Update Bot
2b3abf677a Update from updated-inputs-2024-08-06-01-03 2024-08-06 03:03:05 +02:00
Flake Update Bot
a34a1ca997 Update nixpkgs 2024-08-06-01-03 2024-08-06 03:03:03 +02:00
Flake Update Bot
711c2e4ccf Update from updated-inputs-2024-08-05-01-03 2024-08-05 03:03:59 +02:00
Flake Update Bot
93f557a5ec Update nixpkgs 2024-08-05-01-03 2024-08-05 03:03:57 +02:00
Flake Update Bot
d9d501d34c Update from updated-inputs-2024-08-02-01-03 2024-08-02 03:04:09 +02:00
Flake Update Bot
034edf43ed Update from updated-inputs-2024-08-01-01-03 2024-08-01 03:03:05 +02:00
Flake Update Bot
9c17854d0a Update nixpkgs 2024-08-01-01-03 2024-08-01 03:03:03 +02:00
Flake Update Bot
820fa65986 Update from updated-inputs-2024-07-31-01-03 2024-07-31 03:04:05 +02:00
Flake Update Bot
a41ae92b09 Update nixpkgs 2024-07-31-01-03 2024-07-31 03:04:03 +02:00
Flake Update Bot
9f29c59e0b Update from updated-inputs-2024-07-30-01-03 2024-07-30 03:03:05 +02:00
Flake Update Bot
693b92f68f Update nixpkgs 2024-07-30-01-03 2024-07-30 03:03:03 +02:00
Flake Update Bot
aba854931a Update from updated-inputs-2024-07-28-01-03 2024-07-28 03:04:11 +02:00
Flake Update Bot
061be6052f Update nixpkgs 2024-07-28-01-03 2024-07-28 03:04:09 +02:00
Flake Update Bot
1208738a8e Update from updated-inputs-2024-07-27-01-03 2024-07-27 03:04:06 +02:00
Flake Update Bot
9e2d1239a7 Update nixpkgs 2024-07-27-01-03 2024-07-27 03:04:04 +02:00
Flake Update Bot
04f66d4d2c Update from updated-inputs-2024-07-26-01-03 2024-07-26 03:04:09 +02:00
Flake Update Bot
2c813d7475 Update nixpkgs 2024-07-26-01-03 2024-07-26 03:04:07 +02:00
Flake Update Bot
f2bb03bde6 Update from updated-inputs-2024-07-24-01-03 2024-07-24 03:03:05 +02:00
Flake Update Bot
0bf1a7df74 Update nixpkgs 2024-07-24-01-03 2024-07-24 03:03:03 +02:00
Flake Update Bot
7c6842f93c Update from updated-inputs-2024-07-23-01-03 2024-07-23 03:04:03 +02:00
Flake Update Bot
37b403910a Update nixpkgs 2024-07-23-01-03 2024-07-23 03:04:00 +02:00
Flake Update Bot
40b2b4ee36 Update from updated-inputs-2024-07-22-01-03 2024-07-22 03:04:07 +02:00
Flake Update Bot
f1ecf4873e Update nixpkgs 2024-07-22-01-03 2024-07-22 03:04:05 +02:00
Flake Update Bot
4c1c87c828 Update from updated-inputs-2024-07-21-01-03 2024-07-21 03:03:05 +02:00
Flake Update Bot
0f6610ef3c Update nixpkgs 2024-07-21-01-03 2024-07-21 03:03:03 +02:00
Flake Update Bot
b68dae5301 Update from updated-inputs-2024-07-20-01-03 2024-07-20 03:04:59 +02:00
Flake Update Bot
75075a6118 Update nixpkgs 2024-07-20-01-03 2024-07-20 03:04:56 +02:00
Flake Update Bot
73e3e8afff Update from updated-inputs-2024-07-19-01-03 2024-07-19 03:04:08 +02:00
Flake Update Bot
55c5930769 Update nixpkgs 2024-07-19-01-03 2024-07-19 03:04:06 +02:00
Flake Update Bot
98ac891e24 Update from updated-inputs-2024-07-16-01-03 2024-07-16 03:04:00 +02:00
Flake Update Bot
df0ed63fa9 Update from updated-inputs-2024-07-14-01-03 2024-07-14 03:03:05 +02:00
Flake Update Bot
9d63422c8c Update nixpkgs 2024-07-14-01-03 2024-07-14 03:03:03 +02:00
Flake Update Bot
d2824f259e Update from updated-inputs-2024-07-13-23-05 2024-07-14 01:07:12 +02:00
Flake Update Bot
3a3105a58e Update nixpkgs 2024-07-13-23-05 2024-07-14 01:07:09 +02:00
6dabb715dc Update from updated-inputs-2024-07-12-01-03 2024-07-12 03:04:42 +02:00
Flake Update Bot
5d799f9330 Update nixpkgs 2024-07-12-01-03 2024-07-12 03:04:39 +02:00
ff389e7643 Update from updated-inputs-2024-07-09-01-03 2024-07-09 03:03:59 +02:00
Flake Update Bot
cb6c3ff8f4 Update nixpkgs 2024-07-09-01-03 2024-07-09 03:03:57 +02:00
4d439487e0 Update from updated-inputs-2024-07-05-01-03 2024-07-05 03:04:01 +02:00
Flake Update Bot
0077f078aa Update nixpkgs 2024-07-05-01-03 2024-07-05 03:03:59 +02:00
0f800b1751 Update from updated-inputs-2024-07-03-01-03 2024-07-03 03:04:04 +02:00
bf1fa709cf Update from updated-inputs-2024-07-02-01-03 2024-07-02 03:03:59 +02:00
Flake Update Bot
812aeeb0b4 Update nixpkgs 2024-07-02-01-03 2024-07-02 03:03:57 +02:00
4fd2403afc Update from updated-inputs-2024-06-30-01-03 2024-06-30 03:03:57 +02:00
Flake Update Bot
48ce404d41 Update nixpkgs 2024-06-30-01-03 2024-06-30 03:03:55 +02:00
dd6d23f0c8 Update from updated-inputs-2024-06-26-01-03 2024-06-26 03:03:56 +02:00
a70ff1b7e6 Update from updated-inputs-2024-06-24-01-03 2024-06-24 03:03:56 +02:00
Flake Update Bot
44bc74bc94 Update nixpkgs 2024-06-24-01-03 2024-06-24 03:03:54 +02:00
99e40e41c5 Update from updated-inputs-2024-06-23-01-03 2024-06-23 03:03:05 +02:00
Flake Update Bot
d35296e37c Update nixpkgs 2024-06-23-01-03 2024-06-23 03:03:03 +02:00
309a8d2fe7 Update from updated-inputs-2024-06-22-01-03 2024-06-22 03:04:04 +02:00
Flake Update Bot
c2f605d975 Update nixpkgs 2024-06-22-01-03 2024-06-22 03:04:02 +02:00
d256930c54 Update from updated-inputs-2024-06-21-01-03 2024-06-21 03:03:57 +02:00
Flake Update Bot
9a6b2d029c Update nixpkgs 2024-06-21-01-03 2024-06-21 03:03:55 +02:00
70121ea935 Update from updated-inputs-2024-06-18-01-03 2024-06-18 03:04:04 +02:00
Flake Update Bot
9752a0367d Update nixpkgs 2024-06-18-01-03 2024-06-18 03:04:01 +02:00
91c4036a21 Update from updated-inputs-2024-06-15-01-03 2024-06-15 03:03:57 +02:00
Flake Update Bot
1219c9a25e Update nixpkgs 2024-06-15-01-03 2024-06-15 03:03:55 +02:00
b874978ed2 Update from updated-inputs-2024-06-13-01-03 2024-06-13 03:04:02 +02:00
Flake Update Bot
26c29880bf Update nixpkgs 2024-06-13-01-03 2024-06-13 03:04:00 +02:00
98ac65c9be Update from updated-inputs-2024-06-12-01-03 2024-06-12 03:04:35 +02:00
Flake Update Bot
78f9280352 Update nixpkgs 2024-06-12-01-03 2024-06-12 03:04:32 +02:00
324f57fe36 Update from updated-inputs-2024-06-11-01-03 2024-06-11 03:03:04 +02:00
8e47b6466d Update from updated-inputs-2024-06-09-01-03 2024-06-09 03:04:05 +02:00
f703f527b9 Update from updated-inputs-2024-06-07-01-03 2024-06-07 03:04:04 +02:00
Flake Update Bot
4d9e7ca491 Update nixpkgs 2024-06-07-01-03 2024-06-07 03:04:02 +02:00
a84d74d2e8 Update from updated-inputs-2024-06-04-01-03 2024-06-04 03:04:12 +02:00
d94c5d69b2 Update from updated-inputs-2024-05-31-01-03 2024-05-31 03:04:11 +02:00
Flake Update Bot
e07e7c9e31 Update nixpkgs 2024-05-31-01-03 2024-05-31 03:04:08 +02:00
94259096a9 Update from updated-inputs-2024-05-30-01-03 2024-05-30 03:04:09 +02:00
Flake Update Bot
03a0fb87fd Update nixpkgs 2024-05-30-01-03 2024-05-30 03:04:06 +02:00
c86125095a Update from updated-inputs-2024-05-27-01-03 2024-05-27 03:04:09 +02:00
Flake Update Bot
6709c726f1 Update nixpkgs 2024-05-27-01-03 2024-05-27 03:04:07 +02:00
18894e237f Update from updated-inputs-2024-05-26-01-03 2024-05-26 03:04:13 +02:00
Flake Update Bot
69666ec8e4 Update nixpkgs 2024-05-26-01-03 2024-05-26 03:04:10 +02:00
f56762bad1 Update from updated-inputs-2024-05-24-01-03 2024-05-24 03:03:05 +02:00
Flake Update Bot
141e79e0b1 Update nixpkgs 2024-05-24-01-03 2024-05-24 03:03:03 +02:00
386ff0ff18 Update from updated-inputs-2024-05-23-01-03 2024-05-23 03:04:09 +02:00
Flake Update Bot
d6a4efd9e0 Update nixpkgs 2024-05-23-01-03 2024-05-23 03:04:07 +02:00
0c654091bb Update from updated-inputs-2024-05-22-01-03 2024-05-22 03:04:19 +02:00
def2051a98 Update from updated-inputs-2024-05-21-01-03 2024-05-21 03:04:17 +02:00
Flake Update Bot
cca7e36399 Update nixpkgs 2024-05-21-01-03 2024-05-21 03:04:15 +02:00
babca2f046 Update from updated-inputs-2024-05-19-01-03 2024-05-19 03:04:09 +02:00
Flake Update Bot
e687b5d4ef Update nixpkgs 2024-05-19-01-03 2024-05-19 03:04:07 +02:00
f48178a8ce Update from updated-inputs-2024-05-17-01-03 2024-05-17 03:04:12 +02:00
Flake Update Bot
ebc9d51817 Update nixpkgs 2024-05-17-01-03 2024-05-17 03:04:10 +02:00
643d9ff028 Update from updated-inputs-2024-05-14-01-03 2024-05-14 03:04:12 +02:00
Flake Update Bot
d219d97389 Update nixpkgs 2024-05-14-01-03 2024-05-14 03:04:09 +02:00
f16829ad74 Update from updated-inputs-2024-05-13-01-03 2024-05-13 03:04:19 +02:00
Flake Update Bot
dd26377783 Update nixpkgs 2024-05-13-01-03 2024-05-13 03:04:16 +02:00
79f78cbec7 Update from updated-inputs-2024-05-11-01-03 2024-05-11 03:05:07 +02:00
Flake Update Bot
cc0e575c58 Update nixpkgs 2024-05-11-01-03 2024-05-11 03:05:05 +02:00
6a5c340016 Update from updated-inputs-2024-05-09-01-03 2024-05-09 03:04:15 +02:00
Flake Update Bot
934b8d7e49 Update nixpkgs 2024-05-09-01-03 2024-05-09 03:04:13 +02:00
5e2600b8de Update from updated-inputs-2024-05-06-01-03 2024-05-06 03:04:13 +02:00
Flake Update Bot
60ad2f0e7d Update nixpkgs 2024-05-06-01-03 2024-05-06 03:04:11 +02:00
9ccec046d9 Update from updated-inputs-2024-05-05-01-03 2024-05-05 03:03:05 +02:00
Flake Update Bot
793122bdbf Update nixpkgs 2024-05-05-01-03 2024-05-05 03:03:03 +02:00
6a2954b7d8 Update from updated-inputs-2024-05-03-01-03 2024-05-03 03:04:11 +02:00
Flake Update Bot
4639d23f10 Update nixpkgs 2024-05-03-01-03 2024-05-03 03:04:09 +02:00
e7d912ea78 Update from updated-inputs-2024-05-02-01-03 2024-05-02 03:03:05 +02:00
Flake Update Bot
b1fe15f4c9 Update nixpkgs 2024-05-02-01-03 2024-05-02 03:03:03 +02:00
98433cca60 Update from updated-inputs-2024-04-29-01-03 2024-04-29 03:04:11 +02:00
Flake Update Bot
2ac4cfb134 Update nixpkgs 2024-04-29-01-03 2024-04-29 03:04:08 +02:00
7b802253d4 Update from updated-inputs-2024-04-28-08-46 2024-04-28 10:46:39 +02:00
Flake Update Bot
e91b60194c Update nixpkgs 2024-04-28-08-46 2024-04-28 10:46:37 +02:00
4ad23f2410 Update from updated-inputs-2024-04-28-01-03 2024-04-28 03:03:05 +02:00
Flake Update Bot
f47c1ae001 Update nixpkgs 2024-04-28-01-03 2024-04-28 03:03:03 +02:00
4d7dd1c3a6 Update from updated-inputs-2024-04-27-01-03 2024-04-27 03:04:15 +02:00
Flake Update Bot
03de7bdb88 Update nixpkgs 2024-04-27-01-03 2024-04-27 03:04:13 +02:00
4705d84e9c Update from updated-inputs-2024-04-25-01-03 2024-04-25 03:04:12 +02:00
Flake Update Bot
5bb5b7d351 Update nixpkgs 2024-04-25-01-03 2024-04-25 03:04:10 +02:00
c3b8b09919 Update from updated-inputs-2024-04-23-01-03 2024-04-23 03:04:05 +02:00
Flake Update Bot
2faef93c91 Update nixpkgs 2024-04-23-01-03 2024-04-23 03:04:03 +02:00
57548d56c1 Update from updated-inputs-2024-04-22-01-03 2024-04-22 03:04:09 +02:00
Flake Update Bot
da371f50be Update nixpkgs 2024-04-22-01-03 2024-04-22 03:04:07 +02:00
96cd7dc989 Update from updated-inputs-2024-04-21-01-03 2024-04-21 03:04:13 +02:00
Flake Update Bot
04cf2bb039 Update nixpkgs 2024-04-21-01-03 2024-04-21 03:04:10 +02:00
1fa4ddead1 Update from updated-inputs-2024-04-19-01-03 2024-04-19 03:04:12 +02:00
Flake Update Bot
90f29fa1d1 Update nixpkgs 2024-04-19-01-03 2024-04-19 03:04:10 +02:00
2979f07a00 Update from updated-inputs-2024-04-18-01-03 2024-04-18 03:03:05 +02:00
Flake Update Bot
02b2c8f75a Update nixpkgs 2024-04-18-01-03 2024-04-18 03:03:03 +02:00
51e569cf5a Update from updated-inputs-2024-04-17-01-03 2024-04-17 03:04:12 +02:00
Flake Update Bot
d942fd12c7 Update nixpkgs 2024-04-17-01-03 2024-04-17 03:04:10 +02:00
f84b363547 Update from updated-inputs-2024-04-16-01-03 2024-04-16 03:03:05 +02:00
94ef76d3f6 Update from updated-inputs-2024-04-15-01-03 2024-04-15 03:04:07 +02:00
Flake Update Bot
2974b4f18e Update nixpkgs 2024-04-15-01-03 2024-04-15 03:04:05 +02:00
e9f75f73a2 Update from updated-inputs-2024-04-13-01-03 2024-04-13 03:04:05 +02:00
Flake Update Bot
d03525d6a4 Update nixpkgs 2024-04-13-01-03 2024-04-13 03:04:03 +02:00
b6f07ccb3e Update from updated-inputs-2024-04-10-01-03 2024-04-10 03:04:11 +02:00
Flake Update Bot
1549e57971 Update nixpkgs 2024-04-10-01-03 2024-04-10 03:04:09 +02:00
07526cec2c Update from updated-inputs-2024-04-09-01-03 2024-04-09 03:03:05 +02:00
Flake Update Bot
816aa0b86d Update nixpkgs 2024-04-09-01-03 2024-04-09 03:03:03 +02:00
4a20ffc5f1 Update from updated-inputs-2024-04-08-01-03 2024-04-08 03:03:59 +02:00
Flake Update Bot
9f26dc2121 Update nixpkgs 2024-04-08-01-03 2024-04-08 03:03:57 +02:00
3c0e1052f7 Update from updated-inputs-2024-04-05-01-03 2024-04-05 03:04:03 +02:00
Flake Update Bot
243a1f3217 Update nixpkgs 2024-04-05-01-03 2024-04-05 03:04:01 +02:00
2279574ed4 Update from updated-inputs-2024-04-04-01-03 2024-04-04 03:04:03 +02:00
Flake Update Bot
f14ca9ec4d Update nixpkgs 2024-04-04-01-03 2024-04-04 03:04:01 +02:00
6658fe1f59 Update from updated-inputs-2024-04-03-01-03 2024-04-03 03:03:05 +02:00
Flake Update Bot
db4c58f0f9 Update nixpkgs 2024-04-03-01-03 2024-04-03 03:03:03 +02:00
22b95fec3e Update from updated-inputs-2024-03-30-02-03 2024-03-30 03:04:09 +01:00
Flake Update Bot
7d39df3a42 Update nixpkgs 2024-03-30-02-03 2024-03-30 03:04:07 +01:00
f3398f8a4d Update from updated-inputs-2024-03-29-02-03 2024-03-29 03:04:06 +01:00
Flake Update Bot
4d5540b00a Update nixpkgs 2024-03-29-02-03 2024-03-29 03:04:04 +01:00
9cc7389298 Update from updated-inputs-2024-03-28-02-03 2024-03-28 03:03:05 +01:00
Flake Update Bot
b61f1d52cf Update nixpkgs 2024-03-28-02-03 2024-03-28 03:03:03 +01:00
287789bbee Update from updated-inputs-2024-03-27-02-03 2024-03-27 03:04:01 +01:00
Flake Update Bot
4617a4da4c Update nixpkgs 2024-03-27-02-03 2024-03-27 03:03:58 +01:00
78350d0dd8 Update from updated-inputs-2024-03-25-02-03 2024-03-25 03:04:00 +01:00
Flake Update Bot
4506600be0 Update nixpkgs 2024-03-25-02-03 2024-03-25 03:03:58 +01:00
5e788373b1 Update from updated-inputs-2024-03-24-02-03 2024-03-24 03:04:13 +01:00
Flake Update Bot
3e9346f2d3 Update nixpkgs 2024-03-24-02-03 2024-03-24 03:04:11 +01:00
ba874deec5 Update from updated-inputs-2024-03-23-02-03 2024-03-23 03:04:07 +01:00
Flake Update Bot
35fe2f1286 Update nixpkgs 2024-03-23-02-03 2024-03-23 03:04:04 +01:00
dcf94ffb39 Update from updated-inputs-2024-03-20-02-03 2024-03-20 03:04:08 +01:00
Flake Update Bot
3d0de79926 Update nixpkgs 2024-03-20-02-03 2024-03-20 03:04:05 +01:00
5e69eba537 Update from updated-inputs-2024-03-18-02-03 2024-03-18 03:04:10 +01:00
Flake Update Bot
c31b5ca88f Update nixpkgs 2024-03-18-02-03 2024-03-18 03:04:08 +01:00
168dbfe770 Update from updated-inputs-2024-03-17-15-59 2024-03-17 17:00:02 +01:00
Flake Update Bot
b945893d50 Update nixpkgs 2024-03-17-15-59 2024-03-17 17:00:00 +01:00
b045babff4 Update from updated-inputs-2024-03-17-15-55 2024-03-17 16:56:02 +01:00
Flake Update Bot
a9e4cc9760 Update nixpkgs 2024-03-17-15-55 2024-03-17 16:56:01 +01:00
Flake Update Bot
d835f49a60 Update from updated-inputs-2024-03-17-14-40 2024-03-17 15:40:11 +01:00
Flake Update Bot
0a69c32a57 Update nixpkgs 2024-03-17-14-40 2024-03-17 15:40:09 +01:00
Flake Update Bot
2bac86be95 Update from updated-inputs-2024-03-17-14-34 2024-03-17 15:36:45 +01:00
Flake Update Bot
987a65fe2b Update nixpkgs 2024-03-17-14-34 2024-03-17 15:34:55 +01:00
Flake Update Bot
9aff1c7e6d Update from updated-inputs-2024-03-01-22-00 2024-03-01 23:00:51 +01:00
Flake Update Bot
1c7653b2b8 Update nixpkgs 2024-03-01-22-00 2024-03-01 23:00:49 +01:00
Flake Update Bot
5492d89c74 Update from updated-inputs-2024-03-01-21-59 2024-03-01 22:59:31 +01:00
Flake Update Bot
c61ff2bb95 Update nixpkgs 2024-03-01-21-59 2024-03-01 22:59:29 +01:00
Flake Update Bot
b8751b0c54 Update from updated-inputs-2024-03-01-21-56 2024-03-01 22:56:59 +01:00
Flake Update Bot
973d041bbb Update nixpkgs 2024-03-01-21-56 2024-03-01 22:56:57 +01:00
09bba3ab5b Merge branch 'bbb' into updated-inputs 2024-03-01 22:49:50 +01:00
018c05a584 bbb 2024-03-01 22:46:02 +01:00
4f34198671 Merge branch 'aaa' into updated-inputs 2024-03-01 22:44:58 +01:00
50d54f66a2 aaa 2024-03-01 22:44:36 +01:00
Flake Update Bot
60fcff8529 Update from updated-inputs-2024-02-26-19-41 2024-02-26 20:41:25 +01:00
Flake Update Bot
62e3f589aa Update nixpkgs 2024-02-26-19-41 2024-02-26 20:41:23 +01:00
Flake Update Bot
6930d2ab09 Update from updated-inputs-2024-02-26-19-40 2024-02-26 20:40:54 +01:00
Flake Update Bot
e0b7db13e7 Update nixpkgs 2024-02-26-19-40 2024-02-26 20:40:51 +01:00
Flake Update Bot
b95f21d3d8 Update from updated-inputs-2024-02-26-02-03 2024-02-26 03:03:59 +01:00
Flake Update Bot
aaa400c738 Update nixpkgs 2024-02-26-02-03 2024-02-26 03:03:57 +01:00
Flake Update Bot
5673cfc679 Update from updated-inputs-2024-02-25-02-03 2024-02-25 03:03:04 +01:00
Flake Update Bot
5d282b41bc Update nixpkgs 2024-02-25-02-03 2024-02-25 03:03:02 +01:00
Flake Update Bot
329dc12c9e Update from updated-inputs-2024-02-24-02-03 2024-02-24 03:04:41 +01:00
Flake Update Bot
f74aa6f1d8 Update nixpkgs 2024-02-24-02-03 2024-02-24 03:04:39 +01:00
Flake Update Bot
73d669c3fb Update from updated-inputs-2024-02-23-02-03 2024-02-23 03:03:04 +01:00
Flake Update Bot
539e555429 Update nixpkgs 2024-02-23-02-03 2024-02-23 03:03:02 +01:00
Flake Update Bot
90dee7fd3f Update from updated-inputs-2024-02-22-02-03 2024-02-22 03:04:02 +01:00
Flake Update Bot
3a0af4103e Update nixpkgs 2024-02-22-02-03 2024-02-22 03:04:00 +01:00
Flake Update Bot
510545f837 Update from updated-inputs-2024-02-21-02-03 2024-02-21 03:03:04 +01:00
Flake Update Bot
22e3577baf Update nixpkgs 2024-02-21-02-03 2024-02-21 03:03:02 +01:00
Flake Update Bot
b52b2f129d Update from updated-inputs-2024-02-20-02-03 2024-02-20 03:04:10 +01:00
Flake Update Bot
80524f83c3 Update nixpkgs 2024-02-20-02-03 2024-02-20 03:04:08 +01:00
Flake Update Bot
675e0bbfcd Update from updated-inputs-2024-02-19-02-03 2024-02-19 03:03:04 +01:00
Flake Update Bot
a6554dc498 Update from update-inputs-2024-02-18-19-03 2024-02-18 20:04:46 +01:00
Flake Update Bot
e9d4f37d16 Update from update-inputs-2024-02-18-16-57 2024-02-18 17:57:19 +01:00
Flake Update Bot
eaccce56eb Flake update 2024-02-18T02:03+00:00 2024-02-18 03:04:11 +01:00
Flake Update Bot
cfc9b79c33 Update from master 2024-02-18T02:03+00:00 2024-02-18 03:03:02 +01:00
Flake Update Bot
a886581a43 Flake update 2024-02-17T02:03+00:00 2024-02-17 03:03:07 +01:00
Flake Update Bot
35be56e015 Flake update 2024-02-16T02:03+00:00 2024-02-16 03:04:05 +01:00
Flake Update Bot
78477659f4 Flake update 2024-02-15T02:03+00:00 2024-02-15 03:04:07 +01:00
Flake Update Bot
c9c9277cbb Flake update 2024-02-14T02:03+00:00 2024-02-14 03:03:08 +01:00
Flake Update Bot
d715eced4c Update from master 2024-02-14T02:03+00:00 2024-02-14 03:03:02 +01:00
Flake Update Bot
77a844592e Flake update 2024-02-13T02:03+00:00 2024-02-13 03:04:19 +01:00
Flake Update Bot
338d934672 Update from master 2024-02-13T02:03+00:00 2024-02-13 03:03:02 +01:00
Flake Update Bot
13c94f1b66 Flake update 2024-02-12T02:03+00:00 2024-02-12 03:04:03 +01:00
Flake Update Bot
c0a4234c92 Update from master 2024-02-10T02:03+00:00 2024-02-10 03:03:02 +01:00
Flake Update Bot
8ea06d03a3 Flake update 2024-02-09T02:03+00:00 2024-02-09 03:04:01 +01:00
Flake Update Bot
f0271b86c0 Flake update 2024-02-08T02:03+00:00 2024-02-08 03:03:08 +01:00
Flake Update Bot
acaddbfec4 Update from master 2024-02-08T02:03+00:00 2024-02-08 03:03:02 +01:00
Flake Update Bot
a2b942e440 Flake update 2024-02-07T02:03+00:00 2024-02-07 03:04:06 +01:00
Flake Update Bot
0dcf1680f0 Flake update 2024-02-06T02:03+00:00 2024-02-06 03:03:07 +01:00
Flake Update Bot
7ece34bb63 Flake update 2024-02-05T02:03+00:00 2024-02-05 03:04:08 +01:00
Flake Update Bot
3a9b7adc57 Flake update 2024-02-03T02:03+00:00 2024-02-03 03:04:04 +01:00
Flake Update Bot
7b8996e5fb Flake update 2024-02-02T02:03+00:00 2024-02-02 03:03:07 +01:00
Flake Update Bot
3b0be0fc49 Flake update 2024-02-01T02:03+00:00 2024-02-01 03:04:00 +01:00
Flake Update Bot
f868c157c5 Update from master 2024-01-31T02:03+00:00 2024-01-31 03:03:02 +01:00
Flake Update Bot
eb3af3b1f9 Flake update 2024-01-30T02:03+00:00 2024-01-30 03:04:03 +01:00
Flake Update Bot
9881a4f6bd Flake update 2024-01-27T02:03+00:00 2024-01-27 03:03:59 +01:00
Flake Update Bot
b9a6b9a00e Flake update 2024-01-26T02:03+00:00 2024-01-26 03:03:07 +01:00
Flake Update Bot
2c830d1366 Flake update 2024-01-25T02:03+00:00 2024-01-25 03:03:07 +01:00
Flake Update Bot
67ff27ff74 Flake update 2024-01-23T02:03+00:00 2024-01-23 03:04:01 +01:00
Flake Update Bot
a4459b2916 Flake update 2024-01-21T02:03+00:00 2024-01-21 03:04:16 +01:00
Flake Update Bot
88591acdcd Update from master 2024-01-21T02:03+00:00 2024-01-21 03:03:06 +01:00
Flake Update Bot
f53958080a Flake update 2024-01-19T02:03+00:00 2024-01-19 03:04:02 +01:00
Flake Update Bot
d1aee59628 Flake update 2024-01-17T02:03+00:00 2024-01-17 03:04:08 +01:00
Flake Update Bot
f2f7276ab7 Flake update 2024-01-16T02:03+00:00 2024-01-16 03:03:08 +01:00
Flake Update Bot
fa0d5e1c5c Flake update 2024-01-15T02:03+00:00 2024-01-15 03:04:03 +01:00
Flake Update Bot
902ef24b36 Flake update 2024-01-14T02:03+00:00 2024-01-14 03:03:08 +01:00
Flake Update Bot
756a3ae3d8 Update from master 2024-01-14T02:03+00:00 2024-01-14 03:03:02 +01:00
Flake Update Bot
8b4bc5ac54 Flake update 2024-01-11T02:03+00:00 2024-01-11 03:04:04 +01:00
Flake Update Bot
a9023e95b9 Flake update 2024-01-10T02:03+00:00 2024-01-10 03:03:07 +01:00
Flake Update Bot
a5912941e4 Flake update 2024-01-09T02:03+00:00 2024-01-09 03:04:01 +01:00
Flake Update Bot
1d3d2bf7c4 Update from master 2024-01-09T02:03+00:00 2024-01-09 03:03:02 +01:00
Flake Update Bot
8e96b86fcd Flake update 2024-01-08T02:03+00:00 2024-01-08 03:03:59 +01:00
Flake Update Bot
44a7b5b464 Flake update 2024-01-06T02:03+00:00 2024-01-06 03:03:08 +01:00
Flake Update Bot
bc50f2c32c Update from master 2024-01-06T02:03+00:00 2024-01-06 03:03:02 +01:00
Flake Update Bot
baf2cfde5c Flake update 2024-01-04T02:03+00:00 2024-01-04 03:04:00 +01:00
Flake Update Bot
4713220190 Flake update 2024-01-03T02:03+00:00 2024-01-03 03:03:07 +01:00
Flake Update Bot
5dc276e086 Flake update 2024-01-02T02:03+00:00 2024-01-02 03:04:02 +01:00
Flake Update Bot
a26d077e71 Flake update 2024-01-01T02:03+00:00 2024-01-01 03:04:02 +01:00
Flake Update Bot
d491be8423 Flake update 2023-12-31T02:03+00:00 2023-12-31 03:04:06 +01:00
Flake Update Bot
dcf0ad5189 Flake update 2023-12-30T02:03+00:00 2023-12-30 03:03:08 +01:00
Flake Update Bot
857db3d80c Flake update 2023-12-28T02:03+00:00 2023-12-28 03:04:02 +01:00
Flake Update Bot
4cebb488cd Flake update 2023-12-26T02:03+00:00 2023-12-26 03:03:08 +01:00
Flake Update Bot
a78de16242 Flake update 2023-12-25T02:03+00:00 2023-12-25 03:04:09 +01:00
Flake Update Bot
7c6d8e3808 Flake update 2023-12-24T02:03+00:00 2023-12-24 03:03:08 +01:00
Flake Update Bot
1d8683133b Flake update 2023-12-23T02:03+00:00 2023-12-23 03:03:07 +01:00
Flake Update Bot
08a6620631 Flake update 2023-12-21T02:03+00:00 2023-12-21 03:04:10 +01:00
Flake Update Bot
f84cac37ca Update from master 2023-12-21T02:03+00:00 2023-12-21 03:03:02 +01:00
Flake Update Bot
a201969a96 Flake update 2023-12-19T02:03+00:00 2023-12-19 03:04:02 +01:00
Flake Update Bot
dbed794e8c Update from master 2023-12-16T02:03+00:00 2023-12-16 03:03:02 +01:00
Flake Update Bot
2bace31053 Flake update 2023-12-14T02:03+00:00 2023-12-14 03:03:07 +01:00
Flake Update Bot
093d99d72a Flake update 2023-12-13T02:03+00:00 2023-12-13 03:04:14 +01:00
Flake Update Bot
cd9b135d44 Flake update 2023-12-12T02:03+00:00 2023-12-12 03:03:07 +01:00
Flake Update Bot
ba4f6b50cc Flake update 2023-12-11T02:03+00:00 2023-12-11 03:04:12 +01:00
Flake Update Bot
460f31591b Update from master 2023-12-11T02:03+00:00 2023-12-11 03:03:02 +01:00
Flake Update Bot
84ca3f739a Update from master 2023-12-09T02:03+00:00 2023-12-09 03:03:03 +01:00
Flake Update Bot
7550ff62c2 Update from master 2023-12-08T02:03+00:00 2023-12-08 03:03:02 +01:00
Flake Update Bot
49f554a6fd Flake update 2023-12-07T02:03+00:00 2023-12-07 03:04:07 +01:00
Flake Update Bot
c678ac2ca9 Flake update 2023-12-05T02:03+00:00 2023-12-05 03:04:04 +01:00
Flake Update Bot
9fbf607541 Flake update 2023-12-04T02:03+00:00 2023-12-04 03:03:16 +01:00
Flake Update Bot
a24b4930df Update from master 2023-12-04T02:03+00:00 2023-12-04 03:03:06 +01:00
Flake Update Bot
e3ee6f0e75 Flake update 2023-12-02T02:03+00:00 2023-12-02 03:04:16 +01:00
Flake Update Bot
e1c6ffd9a7 Update from master 2023-12-02T02:03+00:00 2023-12-02 03:03:02 +01:00
Flake Update Bot
e73197465f Flake update 2023-11-30T02:03+00:00 2023-11-30 03:03:08 +01:00
Flake Update Bot
442cfc7547 Flake update 2023-11-29T02:03+00:00 2023-11-29 03:04:06 +01:00
Flake Update Bot
e17aa47e60 Flake update 2023-11-27T02:03+00:00 2023-11-27 03:04:04 +01:00
Flake Update Bot
7c219eae2c Flake update 2023-11-26T02:03+00:00 2023-11-26 03:04:05 +01:00
Flake Update Bot
71bc1242ed Flake update 2023-11-24T02:03+00:00 2023-11-24 03:04:04 +01:00
Flake Update Bot
ef0c609128 Update from master 2023-11-24T02:03+00:00 2023-11-24 03:03:02 +01:00
Flake Update Bot
5ca5e7ed81 Flake update 2023-11-23T02:03+00:00 2023-11-23 03:03:08 +01:00
Flake Update Bot
3f268a82f7 Update from master 2023-11-23T02:03+00:00 2023-11-23 03:03:02 +01:00
Flake Update Bot
1b93811df8 Flake update 2023-11-22T02:03+00:00 2023-11-22 03:03:09 +01:00
Flake Update Bot
88d973ac68 Update from master 2023-11-22T02:03+00:00 2023-11-22 03:03:02 +01:00
Flake Update Bot
4f4413f899 Flake update 2023-11-21T02:03+00:00 2023-11-21 03:04:05 +01:00
Flake Update Bot
f7c0f7acd6 Flake update 2023-11-20T02:03+00:00 2023-11-20 03:04:03 +01:00
Flake Update Bot
c4968b9505 Update from master 2023-11-20T02:03+00:00 2023-11-20 03:03:02 +01:00
Flake Update Bot
ff41111279 Flake update 2023-11-19T02:03+00:00 2023-11-19 03:04:07 +01:00
Flake Update Bot
93757fedd0 Flake update 2023-11-17T02:03+00:00 2023-11-17 03:04:06 +01:00
Flake Update Bot
c234beabb2 Flake update 2023-11-16T02:03+00:00 2023-11-16 03:03:08 +01:00
Flake Update Bot
8ce1d547be Flake update 2023-11-15T02:03+00:00 2023-11-15 03:04:04 +01:00
Flake Update Bot
54f8092b74 Flake update 2023-11-14T02:03+00:00 2023-11-14 03:03:07 +01:00
Flake Update Bot
6a90144ed6 Flake update 2023-11-12T02:03+00:00 2023-11-12 03:03:08 +01:00
Flake Update Bot
cc5c0e94e9 Update from master 2023-11-08T02:03+00:00 2023-11-08 03:03:02 +01:00
Flake Update Bot
eaa5c734c8 Flake update 2023-11-06T02:03+00:00 2023-11-06 03:04:07 +01:00
Flake Update Bot
6e391a8c28 Update from master 2023-11-06T02:03+00:00 2023-11-06 03:03:02 +01:00
Flake Update Bot
65b0a20208 Flake update 2023-11-04T02:03+00:00 2023-11-04 03:04:00 +01:00
Flake Update Bot
9ffb4fa661 Flake update 2023-11-02T02:03+00:00 2023-11-02 03:03:08 +01:00
Flake Update Bot
22dd1be6ca Update from master 2023-11-02T02:03+00:00 2023-11-02 03:03:02 +01:00
Flake Update Bot
603a0443ea Flake update 2023-11-01T02:03+00:00 2023-11-01 03:04:02 +01:00
Flake Update Bot
12ea980d63 Flake update 2023-10-28T01:03+00:00 2023-10-28 03:04:00 +02:00
Flake Update Bot
d212eb2163 Flake update 2023-10-26T01:03+00:00 2023-10-26 03:04:00 +02:00
Flake Update Bot
c043eb0617 Update from master 2023-10-26T01:03+00:00 2023-10-26 03:03:01 +02:00
Flake Update Bot
81de5f91ee Flake update 2023-10-24T01:03+00:00 2023-10-24 03:03:07 +02:00
Flake Update Bot
7bdb65e9b5 Update from master 2023-10-23T01:03+00:00 2023-10-23 03:03:02 +02:00
Flake Update Bot
46df9afb0c Update from master 2023-10-22T01:03+00:00 2023-10-22 03:03:02 +02:00
Flake Update Bot
31b1622eb1 Flake update 2023-10-21T01:03+00:00 2023-10-21 03:04:01 +02:00
Flake Update Bot
da10fd9bd3 Update from master 2023-10-21T01:03+00:00 2023-10-21 03:03:02 +02:00
Flake Update Bot
65999c4dfd Flake update 2023-10-20T01:03+00:00 2023-10-20 03:03:08 +02:00
Flake Update Bot
5a006772f6 Flake update 2023-10-18T01:03+00:00 2023-10-18 03:04:01 +02:00
Flake Update Bot
35a205c107 Update from master 2023-10-18T01:03+00:00 2023-10-18 03:03:02 +02:00
Flake Update Bot
e298fac142 Flake update 2023-10-15T01:03+00:00 2023-10-15 03:03:07 +02:00
Flake Update Bot
51de619e5b Flake update 2023-10-14T01:03+00:00 2023-10-14 03:04:01 +02:00
Flake Update Bot
f7385e88de Flake update 2023-10-13T01:03+00:00 2023-10-13 03:03:08 +02:00
Flake Update Bot
e0efe371cd Update from master 2023-10-13T01:03+00:00 2023-10-13 03:03:02 +02:00
Flake Update Bot
b56878bbf2 Flake update 2023-10-12T01:03+00:00 2023-10-12 03:03:08 +02:00
Flake Update Bot
8d47b9cb81 Flake update 2023-10-11T01:03+00:00 2023-10-11 03:03:59 +02:00
Flake Update Bot
cb6837b311 Flake update 2023-10-09T01:03+00:00 2023-10-09 03:04:01 +02:00
Flake Update Bot
1e26304c1f Flake update 2023-10-08T01:03+00:00 2023-10-08 03:04:00 +02:00
Flake Update Bot
62097e7131 Flake update 2023-10-07T01:03+00:00 2023-10-07 03:04:00 +02:00
Flake Update Bot
9db1882b01 Flake update 2023-10-06T01:03+00:00 2023-10-06 03:03:08 +02:00
Flake Update Bot
a9bd07da49 Flake update 2023-10-04T01:03+00:00 2023-10-04 03:03:55 +02:00
Flake Update Bot
26f2c64428 Flake update 2023-10-02T01:03+00:00 2023-10-02 03:04:06 +02:00
Flake Update Bot
08f82b23ba Flake update 2023-09-29T01:03+00:00 2023-09-29 03:04:02 +02:00
Flake Update Bot
761e8ae0aa Flake update 2023-09-27T01:03+00:00 2023-09-27 03:03:58 +02:00
Flake Update Bot
d3a1307cce Flake update 2023-09-25T01:03+00:00 2023-09-25 03:03:57 +02:00
Flake Update Bot
d6878a4061 Flake update 2023-09-24T01:03+00:00 2023-09-24 03:05:06 +02:00
Flake Update Bot
ea054a0b2d Update from master 2023-09-24T01:03+00:00 2023-09-24 03:03:02 +02:00
Flake Update Bot
3c84234c64 Flake update 2023-09-23T01:03+00:00 2023-09-23 03:03:14 +02:00
Flake Update Bot
88c5954877 Update from master 2023-09-23T01:03+00:00 2023-09-23 03:03:03 +02:00
Flake Update Bot
5fbf19ec48 Flake update 2023-09-22T01:03+00:00 2023-09-22 03:04:05 +02:00
Flake Update Bot
22c2b28168 Update from master 2023-09-21T01:03+00:00 2023-09-21 03:03:02 +02:00
Flake Update Bot
b2b4793676 Flake update 2023-09-20T01:03+00:00 2023-09-20 03:04:04 +02:00
Flake Update Bot
8d976f45aa Flake update 2023-09-19T01:03+00:00 2023-09-19 03:03:07 +02:00
Flake Update Bot
7f728f26ec Flake update 2023-09-17T01:03+00:00 2023-09-17 03:03:06 +02:00
Flake Update Bot
3b229aff13 Flake update 2023-09-16T01:03+00:00 2023-09-16 03:04:02 +02:00
Flake Update Bot
c01cff70b9 Update from master 2023-09-16T01:03+00:00 2023-09-16 03:03:01 +02:00
Flake Update Bot
131a553a84 Flake update 2023-09-15T01:03+00:00 2023-09-15 03:03:09 +02:00
Flake Update Bot
98bb0f55e5 Flake update 2023-09-14T01:03+00:00 2023-09-14 03:03:08 +02:00
Flake Update Bot
fa8f218f03 Flake update 2023-09-13T01:03+00:00 2023-09-13 03:04:05 +02:00
Flake Update Bot
3924873442 Flake update 2023-09-12T01:03+00:00 2023-09-12 03:03:07 +02:00
Flake Update Bot
aa3d5c74cb Flake update 2023-09-11T01:03+00:00 2023-09-11 03:04:06 +02:00
Flake Update Bot
57ef206512 Update from master 2023-09-11T01:03+00:00 2023-09-11 03:03:01 +02:00
Flake Update Bot
7f6985e5c9 Flake update 2023-09-10T01:03+00:00 2023-09-10 03:04:08 +02:00
Flake Update Bot
dd674ebcd9 Update from master 2023-09-10T01:03+00:00 2023-09-10 03:03:02 +02:00
Flake Update Bot
ec00e3a8b5 Flake update 2023-09-08T01:03+00:00 2023-09-08 03:04:00 +02:00
Flake Update Bot
0504681e2c Flake update 2023-09-07T01:03+00:00 2023-09-07 03:04:02 +02:00
Flake Update Bot
6a792f48d4 Flake update 2023-09-04T01:03+00:00 2023-09-04 03:04:01 +02:00
Flake Update Bot
8cbed24e1e Flake update 2023-09-03T01:03+00:00 2023-09-03 03:04:11 +02:00
Flake Update Bot
6860ae0f1e Update from master 2023-09-03T01:03+00:00 2023-09-03 03:03:02 +02:00
Flake Update Bot
d937ce3c5c Flake update 2023-09-02T01:03+00:00 2023-09-02 03:04:05 +02:00
Flake Update Bot
3256b0efc7 Update from master 2023-09-02T01:03+00:00 2023-09-02 03:03:02 +02:00
Flake Update Bot
f99589aa85 Flake update 2023-08-31T01:03+00:00 2023-08-31 03:04:00 +02:00
Flake Update Bot
d0182cb4e1 Flake update 2023-08-30T01:03+00:00 2023-08-30 03:04:03 +02:00
Flake Update Bot
a10c89ef71 Flake update 2023-08-29T01:03+00:00 2023-08-29 03:03:58 +02:00
Flake Update Bot
bced1fa96f Flake update 2023-08-28T01:03+00:00 2023-08-28 03:04:00 +02:00
Flake Update Bot
06f20a797e Flake update 2023-08-27T01:03+00:00 2023-08-27 03:04:00 +02:00
Flake Update Bot
ee5286d41d Flake update 2023-08-26T01:03+00:00 2023-08-26 03:04:03 +02:00
Flake Update Bot
3dc1ac6278 Flake update 2023-08-24T01:03+00:00 2023-08-24 03:04:00 +02:00
Flake Update Bot
309be63ffd Flake update 2023-08-23T01:03+00:00 2023-08-23 03:03:59 +02:00
Flake Update Bot
de46297303 Flake update 2023-08-20T01:03+00:00 2023-08-20 03:04:04 +02:00
Flake Update Bot
5e3a06019c Flake update 2023-08-19T01:03+00:00 2023-08-19 03:04:03 +02:00
Flake Update Bot
b8d773e550 Flake update 2023-08-17T01:03+00:00 2023-08-17 03:04:05 +02:00
Flake Update Bot
7ca6c566f1 Flake update 2023-08-16T01:03+00:00 2023-08-16 03:04:03 +02:00
Flake Update Bot
6d67512218 Flake update 2023-08-15T01:03+00:00 2023-08-15 03:03:59 +02:00
Flake Update Bot
a9bc5f46ee Flake update 2023-08-14T01:03+00:00 2023-08-14 03:04:00 +02:00
7424f402e3 Flake update 2023-08-13T13:23+00:00 2023-08-13 15:24:21 +02:00
bae0b90d10 Update from master 2023-08-13T13:00+00:00 2023-08-13 15:00:10 +02:00
781c240ba9 Flake update 2023-07-29T10:00+00:00 2023-07-29 12:00:24 +02:00
Flake Update Bot
c4dd3477ea Flake update 2023-07-28T19:05+00:00 2023-07-28 21:09:46 +02:00
89 changed files with 1563 additions and 522 deletions

View File

@@ -26,7 +26,6 @@
experimental-features = [
"flakes"
"nix-command"
"repl-flake"
];
substituters = [
"https://nix-cache.clerie.de"

View File

@@ -10,6 +10,10 @@
commonHttpConfig = ''
server_names_hash_bucket_size 64;
charset utf-8;
types {
text/plain nix;
}
map $remote_addr $remote_addr_anon {
~(?P<ip>\d+\.\d+\.\d+)\. $ip.0;
~(?P<ip>[^:]*:[^:]*(:[^:]*)?): $ip::;

View File

@@ -2,7 +2,7 @@
{
hardware.pulseaudio.enable = false;
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {

View File

@@ -7,8 +7,7 @@
roboto
roboto-mono
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
comfortaa
];
] ++ (if pkgs ? "noto-fonts-cjk-sans" then [ pkgs.noto-fonts-cjk-sans ] else [ pkgs.noto-fonts-cjk ]);
}

View File

@@ -2,8 +2,8 @@
{
services.gnome = {
tracker-miners.enable = false;
tracker.enable = false;
localsearch.enable = false;
tinysparql.enable = false;
};
environment.gnome.excludePackages = with pkgs; [

View File

@@ -16,6 +16,7 @@
custom-keybindings = [
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal/"
];
mic-mute = [ "<Control>Print" ];
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal" = {
name = "Terminal";

View File

@@ -9,6 +9,12 @@
HibernateDelaySec=30m
'';
services.upower = {
percentageLow = 20;
percentageCritical = 10;
percentageAction = 8;
};
programs.dconf.profiles = {
user.databases = [
{

View File

@@ -1,7 +1,17 @@
{ pkgs, lib, ... }:
{
let
custom_gnupg = pkgs.gnupg.overrideAttrs (final: prev: {
configureFlags = prev.configureFlags ++ [
# Make sure scdaemon never ever again tries to use its own ccid driver
"--disable-ccid-driver"
];
});
in {
programs.gnupg.package = custom_gnupg;
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
@@ -9,7 +19,7 @@
};
environment.systemPackages = with pkgs; [
gnupg
custom_gnupg
yubikey-personalization
openpgp-card-tools

View File

@@ -1,8 +0,0 @@
{ ... }:
{
networking.useDHCP = false;
networking.defaultGateway6 = { address = "fe80::1"; interface = "ens3"; };
networking.defaultGateway = { address = "172.31.1.1"; interface = "ens3"; };
networking.nameservers = [ "2a01:4ff:ff00::add:2" "2a01:4ff:ff00::add:1" "185.12.64.2" "185.12.64.1" ];
}

392
flake.lock generated
View File

@@ -98,6 +98,22 @@
"url": "https://git.clerie.de/clerie/fieldpoc.git"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
@@ -106,11 +122,11 @@
]
},
"locked": {
"lastModified": 1712014858,
"narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
"lastModified": 1733312601,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"type": "github"
},
"original": {
@@ -120,6 +136,28 @@
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"hydra",
"nix-eval-jobs",
"nixpkgs"
]
},
"locked": {
"lastModified": 1730504689,
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
"ssh-to-age",
@@ -158,6 +196,39 @@
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flakey-profile": {
"locked": {
"lastModified": 1712898590,
"narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=",
"owner": "lf-",
"repo": "flakey-profile",
"rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d",
"type": "github"
},
"original": {
"owner": "lf-",
"repo": "flakey-profile",
"type": "github"
}
},
"harmonia": {
"inputs": {
"flake-parts": "flake-parts",
@@ -167,20 +238,105 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1716301230,
"narHash": "sha256-olEXRstmP0lf0H11ht6j3co7mNwcDEXTm+eGfwdEJzM=",
"owner": "clerie",
"lastModified": 1733771848,
"narHash": "sha256-tqkTzUdwnTfVuCrcFag7YKgGkiR9srR45e4v0XMXVCY=",
"owner": "nix-community",
"repo": "harmonia",
"rev": "e99509779ce6d6ed46062ac556b71f6ca1eb59ad",
"rev": "c26731351ca38f4953a23ef5490358ffba955ab6",
"type": "github"
},
"original": {
"owner": "clerie",
"ref": "clerie/multiple-signing-keys",
"owner": "nix-community",
"ref": "harmonia-v2.0.1",
"repo": "harmonia",
"type": "github"
}
},
"hydra": {
"inputs": {
"lix": "lix",
"nix-eval-jobs": "nix-eval-jobs",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1733503045,
"narHash": "sha256-VoMam8Zzbk+X6dIYwH2f9NqItL6g9YDhQvGybzSl8xQ=",
"ref": "refs/heads/main",
"rev": "eccf01d4fef67f87b6383f96c73781bd08b686ac",
"revCount": 4230,
"type": "git",
"url": "https://git.lix.systems/lix-project/hydra.git"
},
"original": {
"type": "git",
"url": "https://git.lix.systems/lix-project/hydra.git"
}
},
"lix": {
"inputs": {
"flake-compat": "flake-compat",
"nix2container": "nix2container",
"nixpkgs": [
"hydra",
"nixpkgs"
],
"nixpkgs-regression": "nixpkgs-regression",
"pre-commit-hooks": "pre-commit-hooks"
},
"locked": {
"lastModified": 1732112222,
"narHash": "sha256-H7GN4++a4vE49SUNojZx+FSk4mmpb2ifJUtJMJHProI=",
"ref": "refs/heads/main",
"rev": "66f6dbda32959dd5cf3a9aaba15af72d037ab7ff",
"revCount": 16513,
"type": "git",
"url": "https://git.lix.systems/lix-project/lix"
},
"original": {
"type": "git",
"url": "https://git.lix.systems/lix-project/lix"
}
},
"lix-module": {
"inputs": {
"flake-utils": "flake-utils_2",
"flakey-profile": "flakey-profile",
"lix": "lix_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1732605668,
"narHash": "sha256-DN5/166jhiiAW0Uw6nueXaGTueVxhfZISAkoxasmz/g=",
"ref": "stable",
"rev": "96824d606a6656650bbe436366bc89d5ee3a6573",
"revCount": 113,
"type": "git",
"url": "https://git.lix.systems/lix-project/nixos-module.git"
},
"original": {
"ref": "stable",
"type": "git",
"url": "https://git.lix.systems/lix-project/nixos-module.git"
}
},
"lix_2": {
"flake": false,
"locked": {
"lastModified": 1729298361,
"narHash": "sha256-hiGtfzxFkDc9TSYsb96Whg0vnqBVV7CUxyscZNhed0U=",
"rev": "ad9d06f7838a25beec425ff406fe68721fef73be",
"type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/ad9d06f7838a25beec425ff406fe68721fef73be.tar.gz?rev=ad9d06f7838a25beec425ff406fe68721fef73be"
},
"original": {
"type": "tarball",
"url": "https://git.lix.systems/lix-project/lix/archive/2.91.1.tar.gz"
}
},
"mitel-ommclient2": {
"inputs": {
"nixpkgs": [
@@ -202,6 +358,72 @@
"url": "https://git.clerie.de/clerie/mitel_ommclient2.git"
}
},
"nix-eval-jobs": {
"inputs": {
"flake-parts": "flake-parts_2",
"lix": [
"hydra",
"lix"
],
"nix-github-actions": "nix-github-actions",
"nixpkgs": [
"hydra",
"nixpkgs"
],
"treefmt-nix": "treefmt-nix_2"
},
"locked": {
"lastModified": 1732351635,
"narHash": "sha256-H94CcQ3yamG5+RMxtxXllR02YIlxQ5WD/8PcolO9yEA=",
"ref": "refs/heads/main",
"rev": "dfc286ca3dc49118c30d8d6205d6d6af76c62b7a",
"revCount": 617,
"type": "git",
"url": "https://git.lix.systems/lix-project/nix-eval-jobs"
},
"original": {
"type": "git",
"url": "https://git.lix.systems/lix-project/nix-eval-jobs"
}
},
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"hydra",
"nix-eval-jobs",
"nixpkgs"
]
},
"locked": {
"lastModified": 1731952509,
"narHash": "sha256-p4gB3Rhw8R6Ak4eMl8pqjCPOLCZRqaehZxdZ/mbFClM=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "7b5f051df789b6b20d259924d349a9ba3319b226",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nix2container": {
"flake": false,
"locked": {
"lastModified": 1724996935,
"narHash": "sha256-njRK9vvZ1JJsP8oV2OgkBrpJhgQezI03S7gzskCcHos=",
"owner": "nlewo",
"repo": "nix2container",
"rev": "fa6bb0a1159f55d071ba99331355955ae30b3401",
"type": "github"
},
"original": {
"owner": "nlewo",
"repo": "nix2container",
"type": "github"
}
},
"nixos-exporter": {
"inputs": {
"nixpkgs": [
@@ -254,6 +476,38 @@
"type": "github"
}
},
"nixpkgs-0dc1c7": {
"locked": {
"lastModified": 1725718979,
"narHash": "sha256-TNj62uDY5ilnYu0Jne8/IIunfh1kf6kDPY9KdS+Eotw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0dc1c7294c13f5d1dd6eccab4f75d268d7296efe",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0dc1c7294c13f5d1dd6eccab4f75d268d7296efe",
"type": "github"
}
},
"nixpkgs-regression": {
"locked": {
"lastModified": 1643052045,
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1713434076,
@@ -288,11 +542,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1725983898,
"narHash": "sha256-4b3A9zPpxAxLnkF9MawJNHDtOOl6ruL0r6Og1TEDGCE=",
"lastModified": 1741851582,
"narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1355a0cbfeac61d785b7183c0caaec1f97361b43",
"rev": "6607cf789e541e7873d40d3a8f7815ea92204f32",
"type": "github"
},
"original": {
@@ -322,6 +576,42 @@
"url": "https://git.clerie.de/clerie/nurausstieg.git"
}
},
"pre-commit-hooks": {
"flake": false,
"locked": {
"lastModified": 1726745158,
"narHash": "sha256-D5AegvGoEjt4rkKedmxlSEmC+nNLMBPWFxvmYnVLhjk=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "4e743a6920eab45e8ba0fbe49dc459f1423a4b74",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"rainbowrss": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1736087671,
"narHash": "sha256-zWeiCs+8SAS1wN5M3w3vSNNpILoKXqX9aj/ZZcgfMms=",
"ref": "refs/heads/main",
"rev": "ceab6a148233ffb23de19411a3e5579e3394a35b",
"revCount": 9,
"type": "git",
"url": "https://git.clerie.de/clerie/rainbowrss.git"
},
"original": {
"type": "git",
"url": "https://git.clerie.de/clerie/rainbowrss.git"
}
},
"root": {
"inputs": {
"berlinerbaeder-exporter": "berlinerbaeder-exporter",
@@ -330,15 +620,40 @@
"fernglas": "fernglas",
"fieldpoc": "fieldpoc",
"harmonia": "harmonia",
"hydra": "hydra",
"lix-module": "lix-module",
"nixos-exporter": "nixos-exporter",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_3",
"nixpkgs-0dc1c7": "nixpkgs-0dc1c7",
"nurausstieg": "nurausstieg",
"rainbowrss": "rainbowrss",
"scan-to-gpg": "scan-to-gpg",
"solid-xmpp-alarm": "solid-xmpp-alarm",
"sops-nix": "sops-nix",
"ssh-to-age": "ssh-to-age"
}
},
"scan-to-gpg": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1736606141,
"narHash": "sha256-cIGSrY3tNwOamqt41IPRRw5SPlBtljWZvcXDfCkreUc=",
"ref": "refs/heads/main",
"rev": "9f1aa15509c9b0284774be95ef020f612c385353",
"revCount": 18,
"type": "git",
"url": "https://git.clerie.de/clerie/scan-to-gpg.git"
},
"original": {
"type": "git",
"url": "https://git.clerie.de/clerie/scan-to-gpg.git"
}
},
"solid-xmpp-alarm": {
"inputs": {
"nixpkgs": [
@@ -346,11 +661,11 @@
]
},
"locked": {
"lastModified": 1675686574,
"narHash": "sha256-+Xww9mfKbUP4VRPtAJKZ6+YdBYL/0vgGoBXVC9AvmQw=",
"lastModified": 1734450899,
"narHash": "sha256-SyUOl5YUl/nlZNNM2/vSuFWFdxOCKmTO4BxjIxwVcjQ=",
"ref": "refs/heads/main",
"rev": "79730bd7df798d80c526c42bbd526506f0235ea3",
"revCount": 4,
"rev": "4bfa8ec27b99e774906c82e6d51d13b32a3ff161",
"revCount": 6,
"type": "git",
"url": "https://git.clerie.de/clerie/solid-xmpp-alarm.git"
},
@@ -382,7 +697,7 @@
},
"ssh-to-age": {
"inputs": {
"flake-parts": "flake-parts_2",
"flake-parts": "flake-parts_3",
"nixpkgs": [
"nixpkgs"
]
@@ -416,6 +731,21 @@
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
@@ -424,11 +754,33 @@
]
},
"locked": {
"lastModified": 1711963903,
"narHash": "sha256-N3QDhoaX+paWXHbEXZapqd1r95mdshxToGowtjtYkGI=",
"lastModified": 1733662930,
"narHash": "sha256-9qOp6jNdezzLMxwwXaXZWPXosHbNqno+f7Ii/xftqZ8=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "49dc4a92b02b8e68798abd99184f228243b6e3ac",
"rev": "357cda84af1d74626afb7fb3bc12d6957167cda9",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"treefmt-nix_2": {
"inputs": {
"nixpkgs": [
"hydra",
"nix-eval-jobs",
"nixpkgs"
]
},
"locked": {
"lastModified": 1732292307,
"narHash": "sha256-5WSng844vXt8uytT5djmqBCkopyle6ciFgteuA9bJpw=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "705df92694af7093dfbb27109ce16d828a79155f",
"type": "github"
},
"original": {

View File

@@ -1,6 +1,8 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
# for etesync-dav
nixpkgs-0dc1c7.url = "github:NixOS/nixpkgs/0dc1c7294c13f5d1dd6eccab4f75d268d7296efe";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
berlinerbaeder-exporter = {
url = "git+https://git.clerie.de/clerie/berlinerbaeder-exporter.git";
@@ -19,7 +21,15 @@
inputs.nixpkgs.follows = "nixpkgs";
};
harmonia = {
url = "github:clerie/harmonia/clerie/multiple-signing-keys";
url = "github:nix-community/harmonia/harmonia-v2.0.1";
inputs.nixpkgs.follows = "nixpkgs";
};
hydra = {
url = "git+https://git.lix.systems/lix-project/hydra.git";
inputs.nixpkgs.follows = "nixpkgs";
};
lix-module = {
url = "git+https://git.lix.systems/lix-project/nixos-module.git?ref=stable";
inputs.nixpkgs.follows = "nixpkgs";
};
fieldpoc.url = "git+https://git.clerie.de/clerie/fieldpoc.git";
@@ -31,6 +41,14 @@
url = "git+https://git.clerie.de/clerie/nurausstieg.git";
inputs.nixpkgs.follows = "nixpkgs";
};
rainbowrss = {
url = "git+https://git.clerie.de/clerie/rainbowrss.git";
inputs.nixpkgs.follows = "nixpkgs";
};
scan-to-gpg = {
url = "git+https://git.clerie.de/clerie/scan-to-gpg.git";
inputs.nixpkgs.follows = "nixpkgs";
};
solid-xmpp-alarm = {
url = "git+https://git.clerie.de/clerie/solid-xmpp-alarm.git";
inputs.nixpkgs.follows = "nixpkgs";
@@ -86,6 +104,7 @@
palladium = {};
porter = {};
storage-2 = {};
tungsten = {};
web-2 = {};
zinc = {
modules = [
@@ -101,6 +120,7 @@
nixosModules = {
nixfilesInputs = import ./flake/modules.nix inputs;
clerie = import ./modules;
profiles = import ./profiles;
default = self.nixosModules.clerie;
};
@@ -112,30 +132,7 @@
packages = nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-linux" ] (system: let
pkgs = localNixpkgs.${system};
in {
inherit (pkgs)
clerie-keys
clerie-system-upgrade
clerie-merge-nixfiles-update
clerie-update-nixfiles
clerie-sops
clerie-sops-config
clerie-sops-edit
chromium-incognito
git-checkout-github-pr
git-diff-word
iot-data
nix-remove-result-links
nixfiles-auto-install
nixfiles-generate-config
nixfiles-generate-backup-secrets
nixfiles-update-ssh-host-keys
print-afra
run-with-docker-group
ssh-gpg
update-from-hydra
uptimestatus;
});
in builtins.mapAttrs (name: value: pkgs."${name}") (import ./pkgs/pkgs.nix));
inherit lib self;

View File

@@ -1,7 +1,9 @@
{ self
, fernglas
, fieldpoc
, lix-module
, nixos-exporter
, scan-to-gpg
, solid-xmpp-alarm
, sops-nix
, ...
@@ -12,7 +14,9 @@
imports = [
fernglas.nixosModules.default
fieldpoc.nixosModules.default
lix-module.nixosModules.default
nixos-exporter.nixosModules.default
scan-to-gpg.nixosModules.scan-to-gpg
solid-xmpp-alarm.nixosModules.solid-xmpp-alarm
sops-nix.nixosModules.sops
];

View File

@@ -16,6 +16,7 @@ let
modules = modules ++ [
self.nixosModules.nixfilesInputs
self.nixosModules.clerie
self.nixosModules.profiles
({ config, lib, ... }: {
# Set hostname

View File

@@ -1,24 +1,35 @@
{ self
, nixpkgs-0dc1c7
, berlinerbaeder-exporter
, bij
, chaosevents
, harmonia
, hydra
, nurausstieg
, rainbowrss
, scan-to-gpg
, ssh-to-age
, ...
}@inputs:
final: prev: {
inherit (nixpkgs-0dc1c7.legacyPackages.${final.system})
etesync-dav;
inherit (berlinerbaeder-exporter.packages.${final.system})
berlinerbaeder-exporter;
inherit (bij.packages.${final.system})
bij;
inherit (chaosevents.packages.${final.system})
chaosevents;
harmonia = harmonia.packages.${final.system}.harmonia.override {
nixForHarmonia = final.nixVersions.nix_2_21;
};
inherit (harmonia.packages.${final.system})
harmonia;
inherit (hydra.packages.${final.system})
hydra;
inherit (nurausstieg.packages.${final.system})
nurausstieg;
inherit (rainbowrss.packages.${final.system})
rainbowrss;
inherit (scan-to-gpg.packages.${final.system})
scan-to-gpg;
inherit (ssh-to-age.packages.${final.system})
ssh-to-age;
}

View File

@@ -1,4 +1,4 @@
{ pkgs, lib, modulesPath, ... }:
{ pkgs, lib, modulesPath, config, ... }:
{
imports = [
@@ -6,10 +6,23 @@
../../configuration/gpg-ssh
];
# systemd in initrd is broken with ISOs
# Failed to mount /sysroot/iso
# https://github.com/NixOS/nixpkgs/issues/327187
boot.initrd.systemd.enable = false;
networking.hostName = "isowo";
isoImage.isoBaseName = "nixos-isowo";
isoImage.isoBaseName = lib.mkForce "nixos-isowo";
environment.systemPackages = with pkgs; [
nixfiles-auto-install
];
# Allow user clerie to log in as root directly with ssh keys
users.users.root.openssh.authorizedKeys.keys = config.users.users.clerie.openssh.authorizedKeys.keys;
services.openssh.settings = {
PermitRootLogin = lib.mkForce "yes";
};
}

View File

@@ -1,5 +1,5 @@
{
"restic-server-magenta-htpasswd": "ENC[AES256_GCM,data:QxdmemBB/iuU+fvc2QRRkbOHO5Ef8ZJqfTdFCnlOqKog5krZ2oIpURuttH9YeggJXV2Cr+kJDGI0b9Ca6BtCkOhahfWicTeFhuODJsSyZJqzw36Ba8pX3nIpqoa7StTydK1Dx5chOi2g8oB4895SvWqDa/qP10yDtBQAYURHYfodb9/tiKzfjJAGDlqsR2h+qmdbAkvR3/oAquBO8Nb493G2sixs20XIG85moYv6l0MPnZtWEXhDT8lM5tw0PCgpSfYaUeMWnmFuzFBj3MQSo3zAjGPeOSYVFlbwbLqFWL507z0dlRgzsxMYB1F4OL38nOpO2CP2/VvbidgbQZjKCfiHMJtWLQfzZIfNEhcF8kq2uhhOwRSKN3G7u1/ezzu+9UlUVMV6PY2jjbZHJ79Knu5SJ3KqphygjjIhdHufqI03BP/aJa0QkE/mGg9is3H0myW5rG9ElA1C4stF,iv:1Ue/H48af3ECUZ5GC0hrMMBfOuCZSuX9wOSAd5XG7Fk=,tag:HchM/ZJEDG4pWQdDanC9cA==,type:str]",
"restic-server-magenta-htpasswd": "ENC[AES256_GCM,data:gfvmAd7z+jQwoYDJf/Hv2sR9ISJT+Hw4jrHmvW64PXjoETy+LjdsmqEPuRyq/YhrGA2rqW+YodPlkh/eE4crdTL2eNim+ij/OUubliUwBMyJuxsdGKuDUMc+txqN2x6Q24MnnU88P08SKpsm3jciMhz7JEg62W77jhesWlkzsuJDmg9oTlA9SeYOEac3pIKpekfRyE77GSFVUflwwCA+xvcEg5xyuRosFzBWGGEC3kDNB0licF0X6epz3HtlqhCLd/mkuEkftjpkNOFm9oJYzdwYv5PwVNg7G7JOgsUx9e5I29mwWPfhinX1yEFNwxKeB1FbUhYOKhRhdqWD6THVLkDzU0zP8vrm5FXTaxLHZr5+EpKit8/MJS5UBVvpSTDQ0cLExJyonWP2T+zr6rxKwU/q1jQRvsU6DJ7Bt8+9chrXBNOeyPM9xzWN1Zyyrntm9j5Ufj1YFwyrDT5ve2rOgNHA4KoS28+vsP1fcVO8XlLR24zFx5+/1BPG25qSECTPn6KkcL+yV+WS4oOnu4Oo0GVPEz+4SfyYIEVmaV61KC61pKa/6ACeUd6nABcDbReMqPXU7/bksM4sTDoFSmmiAycnxT4xavbaFdfbYIOXVQwYAIjaR1tAqQ6gYVCQ/LtKhIHCGCg10xRXNV3qkPqOUvJ7JnRcre+pQVDVLg==,iv:tvhvTPzhHoG4yG3C+o9s8yh4DafMpPb67nNxbUZcFxQ=,tag:8P5lYeP2EB5AfKgeeBISLg==,type:str]",
"wg-monitoring": "ENC[AES256_GCM,data:lCuE2EgUo3ER9NNg1rD24Z4cZS+VZ4KmDojnfCsb/LyBsfyu6uOJ4IVtxOE=,iv:KHRP1pXYXk8Fi23cjUZVUUadu9yWoJ2ddxj2fMJJYE0=,tag:TiFlekXM7WLLHAPlmYbP8w==,type:str]",
"sops": {
"kms": null,
@@ -12,8 +12,8 @@
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpdFREUEVzb2JFd3hSaG9y\neVA2a2Fodko0OTI4ZGM0NlZxRmNtYmFDY1hVCm9ncXdWYTJlSU1FSG1WdlNBZ3VW\nM2VtRmZiWldzalRsRWJ0UkV1L1hSMkEKLS0tIGVLQU9kQXhZbC9SUW9CS2JnWGlJ\nQ3RoeXVkRXNkUWNaZ0VQOW1hcEJnNjAKHgZ48PERJlfkkh2TyCLl52zUZY674BXW\n4zPtmhZrb4xlExetINrOd4hZtL7S7qn5GnTxhoxvCddeU+JPPsfWoQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-06-03T18:16:25Z",
"mac": "ENC[AES256_GCM,data:hWCI1hWTbbasov9Si0JDI39rUuBOEqrz+qxTKrNN4S/r9Ktofrk46b3rxSQF3+bC03HrbCMLk9/7XkvIFJXQj5pa9I1aG8MuMbgF0Z8Ft/uNdHPUUyLJwo/4aav4zXVpdg7zNtPdwjk66pw7iRO5XBmYgnQlnXotHM6S9s7RzuA=,iv:VJmLD1SImGtreceQP+DofnzOGp3sm12iCzbPsqzw6SI=,tag:aUryi0xUG7sd/EOmqrMQCg==,type:str]",
"lastmodified": "2025-02-16T18:13:41Z",
"mac": "ENC[AES256_GCM,data:O+E3UbWbmlbpUPeSS/BFcJpWr2WEXbu0aaj9u3XUwstp4ba6e0xuVdzfbntQwbN378sDNpDMkAuxp1+R/0THBSs+nqXC9q9IgK+hfSBd7q2v4lvdhxRdM1x4wysTDJGtjFNdfz8EzqMz42Y2IWjxSozgPNpjZSIGhwMBA2TS/gU=,iv:1waH/yUGt5jGJbQlYmp5b97NGVyRykgzI2g1xX+Jo/U=,tag:4bxFxkClt3LbqCH552XePw==,type:str]",
"pgp": [
{
"created_at": "2024-05-04T12:30:52Z",

View File

@@ -7,15 +7,18 @@
../../configuration/router
./dns.nix
./mdns.nix
./net-dsl.nix
./net-gastnetz.nix
./net-heimnetz.nix
./net-iot.nix
./net-lte.nix
./net-mgmt.nix
./net-printer.nix
./net-voip.nix
./ntp.nix
./ppp.nix
./scan-to-gpg.nix
./wg-clerie.nix
];
@@ -65,13 +68,6 @@
];
};
systemd.services."system-reboot" = {
script = ''
${pkgs.systemd}/bin/reboot
'';
startAt = "*-*-* 1/3:13:14";
};
clerie.firewall.enable = true;
clerie.monitoring = {

17
hosts/carbon/mdns.nix Normal file
View File

@@ -0,0 +1,17 @@
{ pkgs, ... }:
{
services.avahi = {
enable = true;
nssmdns4 = true;
allowInterfaces = [
"net-heimnetz"
"net-iot"
];
reflector = true;
};
}

View File

@@ -20,9 +20,10 @@
services.radvd.config = ''
interface net-gastnetz {
AdvSendAdvert on;
MaxRtrAdvInterval 30;
prefix ::/64 {
AdvValidLifetime 60;
AdvPreferredLifetime 30;
AdvValidLifetime 300;
AdvPreferredLifetime 120;
};
RDNSS 2620:fe::fe 2620:fe::9 {}; # Quad 9
};

View File

@@ -22,9 +22,10 @@
services.radvd.config = ''
interface net-heimnetz {
AdvSendAdvert on;
MaxRtrAdvInterval 30;
prefix ::/64 {
AdvValidLifetime 60;
AdvPreferredLifetime 30;
AdvValidLifetime 300;
AdvPreferredLifetime 120;
};
RDNSS fd00:152:152::1 {};
DNSSL net.clerie.de {};

View File

@@ -23,9 +23,10 @@
services.radvd.config = ''
interface net-iot {
AdvSendAdvert on;
MaxRtrAdvInterval 30;
prefix ::/64 {
AdvValidLifetime 60;
AdvPreferredLifetime 30;
AdvValidLifetime 300;
AdvPreferredLifetime 120;
};
RDNSS fd00:152:152::1 {};
DNSSL iot.clerie.de {};

View File

@@ -20,9 +20,10 @@
services.radvd.config = ''
interface net-mgmt {
AdvSendAdvert on;
MaxRtrAdvInterval 30;
prefix ::/64 {
AdvValidLifetime 60;
AdvPreferredLifetime 30;
AdvValidLifetime 300;
AdvPreferredLifetime 120;
};
};
'';

View File

@@ -0,0 +1,51 @@
{ ... }:
{
networking.vlans."enp1s0.206" = {
id = 206;
interface = "enp1s0";
};
networking.bridges."net-printer".interfaces = [
"enp1s0.206"
];
networking.interfaces."net-printer".ipv4.addresses = [
{ address = "10.152.206.1"; prefixLength = 24; }
];
services.kea.dhcp4 = {
settings = {
interfaces-config = {
interfaces = [ "net-printer" ];
};
subnet4 = [
{
id = 206;
subnet = "10.152.206.0/24";
pools = [
{
pool = "10.152.206.100 - 10.152.206.240";
}
];
option-data = [
{
name = "routers";
data = "10.152.206.1";
}
];
}
];
};
};
# Enable scan-to-gpg
networking.firewall.interfaces."net-printer".allowedTCPPorts = [ 2121 ];
networking.firewall.interfaces."net-printer".allowedTCPPortRanges = [ { from = 2130; to = 2134; } ];
clerie.firewall.extraForwardFilterCommands = ''
# Allow access from Heimnetz to printer
ip46tables -A forward-filter -i net-heimnetz -o net-printer -j ACCEPT
ip46tables -A forward-filter -i net-printer -j DROP
ip46tables -A forward-filter -o net-printer -j DROP
'';
}

View File

@@ -1,4 +1,4 @@
{ config, pkgs, utils, ... }:
{ config, pkgs, lib, ... }:
{
@@ -44,41 +44,20 @@
cat ${config.sops.secrets.pppd-dtagdsl-secrets.path} > /etc/ppp/chap-secrets
'';
preStartFile = utils.systemdUtils.lib.makeJobScript "pppd-dtagdsl-pre-start" preStart;
preStartFile = pkgs.writeShellApplication {
name = "pppd-dtagdsl-pre-start";
text = preStart;
};
in {
EnvironmentFile = config.sops.secrets.pppd-dtagdsl-username.path;
ExecStartPre = [
# "+" marks script to be executed without priviledge restrictions
"+${preStartFile}"
"+${lib.getExe preStartFile}"
];
};
clerie.firewall.extraForwardMangleCommands = ''
ip46tables -t mangle -A forward-mangle -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1416
ip46tables -t mangle -A forward-mangle -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
'';
networking.dhcpcd-prefixdelegation = {
enable = true;
interfaces = {
"ppp-dtagdsl" = {
iaid = 1;
interfaces = {
"net-heimnetz" = {
sla_id = 201;
prefix_len = 64;
};
};
};
};
};
environment.etc."ppp/ipv6-up" = {
text = ''
#!${pkgs.runtimeShell}
set -euo pipefail
${pkgs.dhcpcd}/bin/dhcpcd --renew $1
'';
};
}

View File

@@ -0,0 +1,11 @@
{ pkgs, ... }:
{
services.scan-to-gpg = {
enable = true;
gpgkey = "${pkgs.clerie-keys}/gpg/clerie@clerie.de.asc";
};
users.users."clerie".extraGroups = [ "scan-to-gpg" ];
}

View File

@@ -5,5 +5,6 @@
enable = true;
ipv6s = [ "2a01:4f8:c0c:15f1::8111/128" ];
ipv4s = [ "10.20.30.111/32" ];
defaultViaVPN = false;
};
}

View File

@@ -1,5 +1,5 @@
{
"restic-server-cyan-htpasswd": "ENC[AES256_GCM,data:ZKrEv/bU1X+iO7GLlxsM8HhUy6B2+EXRA8JO2X8E8X5nt8Ydwa+wAqTea3hGyW/QNFrNg/nnAFaVg+VNa6UEqOuF0eg4Nf0LOYTtTpNt4uqDHomfFpvFxDfVCbk4a3fnjnJzk51XnZqeVlvuH2JKg9uD6QzTghTuZfysdGePZdD4WRfY+qHsZg2jREgA26WKsRnD1zU4ZnbRAA1s0Lzf5gG4kFciIzovt0x5MYEiVERFeM+HG1a117EvSlsijPNJVLTaFRLTVOlTOYLKXt4KcRJq9KwoZR/LgEz++rUE4DN5f7iQs+Sb9epH9sV/V06R6AKE5ZFcyi5Y+ipt8B4sWX8PQUeFxNlpljXHro8szGNnLnSxxieg10SEwfIEw+nTGVMHToUpvybzdoI4VPUHZGF+kpqv8ejEzhrKZXyPrd7ZCWGDsTdl8gGSefimpEUR8IwuPqImgu2UU8gT,iv:Y/G/odtZ4enBtNc2Wj7bZjsJ3nur5huYAqlu1PgnWlo=,tag:tg3ut7R2jJd+TVvYHIiTdA==,type:str]",
"restic-server-cyan-htpasswd": "ENC[AES256_GCM,data:Fe6lcXXy0Hu27Y2LtwQRbk+78+unSGkII144jtstOgK0pyjlJqG2mo8ZG7L+3mmthuu+leZ6XXadEcRGpby3eCwyVEYd3lDr930pPC8hChWYMC5mGkkRUAobYED63iVxcsc36PVFQYMCDbYvtcPk8uQTXfQmhs9kSzCrONrL1Id0L9D+sGoU0snpE+eCNXyiLwuyc1qocchhuHIwkGi4dyVJWgMsKGummF5Pf9zK4KzHmT6RuPouEUAfwHkdPwtOSJ8OqZof/C/CuPYmJQyfOFAqtw8xD9OXUpvyxjC1Kta89sL5cRAE0R15oPvNUmYGaXputm9iMycPjMacpouycx1TXMTEDB0caryX9uEFAyTfPm7keHT86qA1UfImWqEE9QqJ3uCeiwW698SbTZVeKLDBqDCPP+nP/L+N412d+HHyGugPOnTj1gXY50xeOay8Wryw87iDZ9rnJxcn0u5D4+JjOIbjWvydqBXacMD/o0NG2CcQu6LVRAHRiDKoSQWEwx25tzVwn2dsgFV8c3oQ0xQI7050R11Z3M9QWOvPmOZCvYV5VSoxu7r1jMu5asrcPbbhXKatbrabEHCAbDGsBpDkqts3BVUfUaHwboXVR0DxqOC6CHVE34J99SVTGI0kIHXyNqpeUJ36tCXFg7eNPNsu8cra9whjyUUHtw==,iv:Gfg3t3YPw2hz0LJ5hovPftMYOADN2Xjc93VmT2fFVQI=,tag:k6KH4qDPrFYIU2PGgW3F9Q==,type:str]",
"wg-monitoring": "ENC[AES256_GCM,data:rOpBlDt9K//zlgWo1Bw9IX5jmpLbnit5zi60Ulz8f6tHwqVsKJv5NkxYc9A=,iv:Jlo0QZP6R1CEE20iLa7M/LV/ZX2/33oMv/FzBBo6nvY=,tag:Ttqo7BKd6RuUiMksW6rZnw==,type:str]",
"sops": {
"kms": null,
@@ -12,8 +12,8 @@
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0UCtUZ3NZQWxOK1FUNDhL\nbWhaanN2OEJIVmpMOURzWU1vcGhuODdtcDJnCm9Nb01NaVVpWDJ6Q3JCbXRkRUJP\nUVdFaGVScUdxRnlpSnRNOG1RalNRaFUKLS0tICs0cW1WR0JMUmdaVWVzdTh2bjFm\nenBzaERpb1hCS1E3TUo3cmxpZFUxWmcKcLL5/YTGyZEVLwHSpbEI5XfWGklkI7h+\n0uhCww8Wh23EpUYFslZ0Nnbf5HX5/Z34qBwf20cvN8eLToTAQvTdeg==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-06-03T18:16:18Z",
"mac": "ENC[AES256_GCM,data:kWeyNv82yc6H+FJjhTh8vkuxjZ4YFEqmZbqzZr+pEXxXeMUEGi9hr7cauGDNxnRMgWJz9KG1M4tzUyEK8rfVQWLc+Wcf/5Pjsxn1Zg0yJiJAxVFV7AcvGdKUeQuBKgOT5L+Z5+cFdvq9+CU/0M+6/e8jB6OdQWcuy0emBaCut4U=,iv:3w5arXHKapwwo7kgLtHcKfO+dhH22opVP+fjagize0c=,tag:+cCaX2FUG+5UYqutE9IsAA==,type:str]",
"lastmodified": "2025-02-16T18:13:34Z",
"mac": "ENC[AES256_GCM,data:io2WVxTxHSlxrk7JaN6/fUI7YotvPfgbXTD1lEf1tN7QhuGRH/iZrji/VQlhJ8tk2dAS1Pe0rsTuxCMXcXcxRIh4EYbQky5IZj5jpfPcslQOquTcXzmPYdijPUWSqu6leGc0GG/7KccjSFD8TfwAgeuVrc2Br57yfqKoPf+M0fY=,iv:iYp73PrFnLZoI9014mbqQQERhFtfhb5YmzV6HiUi+YM=,tag:2AZEzhVVdEos5FLkg8cr5w==,type:str]",
"pgp": [
{
"created_at": "2024-05-05T12:12:27Z",

View File

@@ -179,8 +179,9 @@
];
};
services.bird2.enable = true;
services.bird2.config = ''
services.bird.enable = true;
services.bird.package = pkgs.bird2;
services.bird.config = ''
router id ${ (lib.head config.networking.interfaces.ens18.ipv4.addresses).address };
ipv6 table ospf6;

View File

@@ -37,8 +37,9 @@
];
};
services.bird2.enable = true;
services.bird2.config = ''
services.bird.enable = true;
services.bird.package = pkgs.bird2;
services.bird.config = ''
router id ${ (lib.head config.networking.interfaces.ens18.ipv4.addresses).address };
ipv6 table ospf6;

View File

@@ -37,8 +37,9 @@
];
};
services.bird2.enable = true;
services.bird2.config = ''
services.bird.enable = true;
services.bird.package = pkgs.bird2;
services.bird.config = ''
router id ${ (lib.head config.networking.interfaces.ens20.ipv4.addresses).address };
ipv6 table ospf6;

View File

@@ -33,8 +33,9 @@
iptables -A INPUT -p ospfigp -j ACCEPT
'';
services.bird2.enable = true;
services.bird2.config = ''
services.bird.enable = true;
services.bird.package = pkgs.bird2;
services.bird.config = ''
router id ${ (lib.head config.networking.interfaces.ens18.ipv4.addresses).address };
protocol direct {

View File

@@ -1,11 +1,12 @@
{ config, lib, ... }:
{ config, lib, pkgs, ... }:
{
networking.firewall.allowedTCPPorts = [ 179 ];
# something doesn't work right
services.bird2.enable = false;
services.bird2.config = ''
services.bird.enable = false;
services.bird.package = pkgs.bird2;
services.bird.config = ''
router id ${(lib.head config.networking.interfaces.ens18.ipv4.addresses).address};
ipv6 table bgp6;

View File

@@ -7,16 +7,20 @@
../../configuration/router
];
profiles.clerie.hetzner-cloud.enable = true;
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/sda";
networking.useDHCP = false;
# Network
networking.interfaces.ens3.ipv4.addresses = [ { address = "78.47.183.82"; prefixLength = 32; } ];
networking.interfaces.ens3.ipv6.addresses = [ { address = "2a01:4f8:c0c:15f1::1"; prefixLength = 64; } ];
networking.defaultGateway = { address = "172.31.1.1"; interface = "ens3"; };
networking.defaultGateway6 = { address = "fe80::1"; interface = "ens3"; };
networking.nameservers = [ "213.133.98.98" "213.133.99.99" "213.133.100.100" ];
systemd.network.enable = true;
systemd.network.networks."10-wan" = {
address = [
"2a01:4f8:c0c:15f1::1/64"
"78.47.183.82/32"
];
};
networking.nat = {
enable = true;
@@ -114,6 +118,11 @@
allowedIPs = [ "2a01:4f8:c0c:15f1::8111/128" "10.20.30.111/32" ];
publicKey = "o6qxGKIoW2ZSFhXeNRXd4G9BRFeYyjZsrUPulB3KhTI=";
}
{
# tungsten
allowedIPs = [ "2a01:4f8:c0c:15f1::8112/128" "10.20.30.112/32" ];
publicKey = "OI5/psr3ShrwRqKTTr3Kv92OVRietTcMFNVXtsYybRo=";
}
];
listenPort = 51820;
allowedIPsAsRoutes = false;

View File

@@ -5,18 +5,10 @@
services.harmonia = {
enable = true;
settings.bind = "[::1]:5005";
};
systemd.services.harmonia = {
environment = {
SIGN_KEY_PATHS = "%d/key1 %d/key2";
};
serviceConfig = {
LoadCredential = [
"key1:${config.sops.secrets."sign-key-nix-cache.clerie.de".path}"
"key2:${config.sops.secrets."sign-key-cache.nix.clerie.de".path}"
];
};
signKeyPaths = [
config.sops.secrets."sign-key-nix-cache.clerie.de".path
config.sops.secrets."sign-key-cache.nix.clerie.de".path
];
};
services.nginx.virtualHosts = {

View File

@@ -9,6 +9,7 @@
./android.nix
./backup.nix
./etesync-dav.nix
#./initrd.nix
./network.nix
./programs.nix

View File

@@ -0,0 +1,10 @@
{ ... }:
{
services.etesync-dav = {
enable = true;
apiUrl = "https://etebase.clerie.de";
};
}

View File

@@ -29,6 +29,9 @@
chromium-incognito
print-afra
git-show-link
factorio-launcher
];
# Wireshark

View File

@@ -4,16 +4,24 @@
imports =
[
./hardware-configuration.nix
../../configuration/hetzner-cloud
./mailcow.nix
];
profiles.clerie.hetzner-cloud.enable = true;
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/sda";
networking.interfaces.ens3.ipv6.addresses = [ { address = "2a01:4f8:1c1c:9577::1"; prefixLength = 64; } ];
networking.interfaces.ens3.ipv4.addresses = [ { address = "5.75.187.112"; prefixLength = 32; } ];
networking.useDHCP = false;
systemd.network.enable = true;
systemd.network.networks."10-wan" = {
address = [
"2a01:4f8:1c1c:9577::1/64"
"5.75.187.112/32"
];
};
clerie.backup = {
enable = true;

View File

@@ -63,6 +63,18 @@
"instance"
];
}
{
target_matchers = [
''alertname = "StorageAlmostFull"''
];
source_matchers = [
''alertname = "StorageFull"''
];
equal = [
"instance"
"mountpoint"
];
}
];
};
};

View File

@@ -38,6 +38,10 @@
enableACME = true;
forceSSL = true;
locations."/".proxyPass = "http://[::1]:3001/";
locations."= /api/live/ws" = {
proxyPass = "http://[::1]:3001";
proxyWebsockets = true;
};
};
};
};

View File

@@ -55,6 +55,11 @@ let
eachWithEachOther = (f: x: y: lib.lists.flatten (lib.lists.forEach x (a: lib.lists.forEach y (b: f a b))));
in {
sops.secrets.uberspace-monitor-password = {
owner = "prometheus";
group = "prometheus";
};
networking.hosts = {
"::1" = [ "monitoring-3.mon.clerie.de" ]; # fd00:327:327:327::1
}
@@ -126,6 +131,45 @@ in {
relabelAddressToInstance
];
}
{
job_name = "node-exporter-uberspace";
scrape_interval = "20s";
metrics_path = "/.node-exporter/metrics";
basic_auth = {
username = "monitor";
password_file = config.sops.secrets.uberspace-monitor-password.path;
};
static_configs = [
{
targets = [
"clerie.uber.space;infra"
"cleriewi.uber.space;infra"
];
}
];
relabel_configs = [
{
source_labels = [ "__address__" ];
regex = "(.+);(.+)";
target_label = "service_level";
replacement = "\${2}";
}
{
source_labels = [ "__address__" ];
regex = "(.+);(.+)";
target_label = "__address__";
replacement = "\${1}";
}
{
source_labels = [ "__address__" ];
target_label = "instance";
}
{
target_label = "job";
replacement = "node-exporter";
}
];
}
{
job_name = "nixos-exporter";
scrape_interval = "1m";
@@ -190,6 +234,7 @@ in {
"www.fem.tu-ilmenau.de"
"www.heise.de"
"dyon.net.entr0py.de"
"matrix.fachschaften.org"
];
}
];
@@ -229,18 +274,10 @@ in {
"achtbaan.nikhef.nl"
"www.fem.tu-ilmenau.de"
"www.heise.de"
"pe10-fd2.nodes.nethinks.com"
"pe20-fd2.nodes.nethinks.com"
"pe10-pet1.nodes.nethinks.com"
"pe20-pet1.nodes.nethinks.com"
"pe10-ffm1.nodes.nethinks.com"
"ie10-ffm2.nodes.nethinks.com"
"pe10-ffm2.nodes.nethinks.com"
"ie10-due1.nodes.nethinks.com"
"pe10-due1.nodes.nethinks.com"
"matrix.bau-ha.us"
"dyon.net.entr0py.de"
"matrix.entr0py.de"
"matrix.fachschaften.org"
];
}
];
@@ -275,6 +312,7 @@ in {
{
targets = [
"matrix.entr0py.de"
"matrix.fachschaften.org"
];
}
];
@@ -355,46 +393,6 @@ in {
relabelAddressToInstance
];
}
{
job_name = "zimmer-temp";
scrape_interval = "20s";
scheme = "https";
metrics_path = "/data/zimmer-temp/";
static_configs = [
{
targets = [
"iot-data.clerie.de"
];
}
];
}
{
job_name = "outdoor-temp";
scrape_interval = "20s";
scheme = "https";
metrics_path = "/data/outdoor-temp/";
static_configs = [
{
targets = [
"iot-data.clerie.de"
];
}
];
}
{
job_name = "xmpp-alerts";
scrape_interval = "20s";
static_configs = [
{
targets = [
"monitoring-3.mon.clerie.de:9199"
];
}
];
relabel_configs = [
relabelAddressToInstance
];
}
{
job_name = "hydra";
scrape_interval = "20s";

View File

@@ -17,7 +17,7 @@ groups:
annotations:
summary: "Current system of {{ $labels.instance }} not in sync with config"
description: "The current system hash of {{ $labels.instance }} does not match the one generated by hydra based on the current config"
- alert: BackupStorageFull
- alert: StorageFull
expr: ((last_over_time(node_filesystem_avail_bytes{job="node-exporter"}[5m]) / last_over_time(node_filesystem_size_bytes{job="node-exporter"}[5m])) * 100) < 5
for: 30m
labels:
@@ -25,6 +25,14 @@ groups:
annotations:
summary: "Storage of {{ $labels.instance }} is full"
description: "Storage of {{ $labels.instance }} for {{ $labels.mountpoint }} on {{ $labels.device }} is full"
- alert: StorageAlmostFull
expr: ((last_over_time(node_filesystem_avail_bytes{job="node-exporter"}[5m]) / last_over_time(node_filesystem_size_bytes{job="node-exporter"}[5m])) * 100) < 10
for: 30m
labels:
severity: warning
annotations:
summary: "Storage of {{ $labels.instance }} is almost full"
description: "Storage of {{ $labels.instance }} for {{ $labels.mountpoint }} on {{ $labels.device }} is almost full"
- alert: ClerieBackupJobLastSuccessfulRunBehind
expr: time() - last_over_time(clerie_backup_last_successful_run_time{}[5m]) >= 9000
for: 5m

View File

@@ -1,4 +1,5 @@
{
"uberspace-monitor-password": "ENC[AES256_GCM,data:NfM9jxZAMkSGFlPYxreP7LJkr9gA2llyVw96okIKNUQ=,iv:z/LW643T36HpKo/xhHcVnF0EqhEXdoiEkDMH6NQzN9A=,tag:KXR2+kizv3To0EvZ66ak9w==,type:str]",
"wg-monitoring": "ENC[AES256_GCM,data:kYFhMbqL7b0rwE2XIaR4QVT8ahoODmpXKzK5gvkODFJVklubwCmq2bLJk94=,iv:eR+VjxdtS4et9I4okzHyA+if1Rxj2/MuiC0CrWXd0Bg=,tag:rMaYMTvO6gWw6WegehDBFQ==,type:str]",
"xmpp-password": "ENC[AES256_GCM,data:eBZsBYqo+juLrYZjBqTcKFirHViRsul+wt6kkOmMhCp4xU7Ou8eJAPCOuhvHcUGxRE44L0yIyUObhRgAj0T5QA==,iv:DsLJ3qCZyrdolJBZFT9FJUNQ75pc8Vz32K2a8RJHuLc=,tag:wOxs2Ulw1aSMadWfjGSKsw==,type:str]",
"sops": {
@@ -12,8 +13,8 @@
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxOGNMcm9vRWxMZjBwcmVS\nVGVoS2kwSmZjOHdGMXQwUmlzV3hhbGhhOVhzCkljQi94aUtORldKOFdqeVNXYnJQ\ndS9Vc0hRRisyL1dESk1NOTQ1dVJyMDgKLS0tIE54VlU1cVRXWXRlVGU5RzR5dXkv\nSEZJeElpWDdJYW9WNWxGLzdjdGR1YUUKGZwFPOc4MD97FBRtj1Py4A9Tz/HlzHcK\nX6nYgkYSUycM4g4d3+N+1NKutfWJ7KheuTlhNRDftyLYmmo5wyEtrw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-04-21T17:08:58Z",
"mac": "ENC[AES256_GCM,data:UucT7OiO9S3FcO9b1UKPQYXi7v3Ak7/J/VkDN4P9fssS4nky6PyX4oV5UvGcuR3p0pxLAHGJ4rOXj5QbnOqwDqmHfCnoqdItAlXRT1YPdSrelQ/gHyOfexsuV1XLOUS/OXJoYEi3ymKtza4rMIZow+du0YkRxrJQjwM0y8XSa3I=,iv:mDBaVhbHCLdxx5DC7urPPDdVPsCPYqKgLRwfqjLFdnU=,tag:Wpq6ihxIr/eceG12gpOJwQ==,type:str]",
"lastmodified": "2025-03-07T20:23:25Z",
"mac": "ENC[AES256_GCM,data:6GY06rVSKtQqaV5kLgTU4Wlu+e+dkNhxaPkJqKE8hrfJzO85WU6/iLvuv4ai0u+cUeWcOZatskzUeaVL/NjrRZnsNnxUqWbljLs8//0uUln71D/DWE4Vpb6Uz9I2iHG2Gftv3iyYF3nucrHiSTvyLzb9fDL+eGv0CHa/KmYk97g=,iv:f6xqDtHoBy7h7KRr2J0kYcaf6indqnRrJsYdcv9EHJs=,tag:uliCg2x92qY9SN9hg08Iuw==,type:str]",
"pgp": [
{
"created_at": "2024-04-21T17:08:30Z",
@@ -22,6 +23,6 @@
}
],
"unencrypted_suffix": "_unencrypted",
"version": "3.8.1"
"version": "3.9.4"
}
}

View File

@@ -1,44 +0,0 @@
{ pkgs, ... }:
let
cb-mount = pkgs.writeScriptBin "cb-mount" ''
#!${pkgs.bash}/bin/bash
DEVICE=/dev/disk/by-path/pci-0000:00:12.0-ata-2-part1
${pkgs.cryptsetup}/bin/cryptsetup luksOpen ''${DEVICE} external-drive
mkdir -p /mnt/external-drive
mount /dev/mapper/external-drive /mnt/external-drive
mkdir -p /mnt/external-drive/clerie-backup
chown borg:borg -R /mnt/external-drive/clerie-backup
'';
cb-unmount = pkgs.writeScriptBin "cb-unmount" ''
#!${pkgs.bash}/bin/bash
umount /mnt/external-drive
${pkgs.cryptsetup}/bin/cryptsetup luksClose external-drive
'';
cb-prepare = pkgs.writeScriptBin "cb-prepare" ''
echo "Formatting disk"
sgdisk -Z /dev/disk/by-path/pci-0000:00:12.0-ata-2
sgdisk -N 1 /dev/disk/by-path/pci-0000:00:12.0-ata-2
partprobe /dev/disk/by-path/pci-0000:00:12.0-ata-2
echo "Creating encrypted partition"
${pkgs.cryptsetup}/bin/cryptsetup luksFormat -c aes-xts-plain64 --hash=sha256 -s 256 /dev/disk/by-path/pci-0000:00:12.0-ata-2-part1
echo "Opening encrypted partition"
${pkgs.cryptsetup}/bin/cryptsetup luksOpen /dev/disk/by-path/pci-0000:00:12.0-ata-2-part1 external-drive
echo "Creating file system"
mkfs.ext4 /dev/mapper/external-drive
echo "Closing encrypted partition"
${pkgs.cryptsetup}/bin/cryptsetup luksClose external-drive
'';
in {
environment.systemPackages = [ cb-mount cb-unmount cb-prepare ];
}

View File

@@ -4,12 +4,31 @@
imports =
[
./hardware-configuration.nix
./backup-scripts.nix
];
boot.loader.systemd-boot.enable = true;
boot.kernelParams = [ "console=ttyS0,115200n8" ];
boot.loader.grub.enable = true;
boot.loader.grub.device = "nodev";
boot.loader.grub.efiSupport = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.grub.extraConfig = "
serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
terminal_input console serial
terminal_output gfxterm serial
";
boot.initrd.luks = {
devices.lvm = {
device = "/dev/disk/by-uuid/f5597381-b59b-4f19-94b7-fd69aac43d6f";
bypassWorkqueues = true;
};
devices.crypt-storage-palladium = {
device = "/dev/disk/by-uuid/c54396c0-b5d3-4e61-9ef7-483fa2b4a56d";
};
};
boot.swraid.enable = true;
networking.useDHCP = false;
networking.interfaces.enp3s0.ipv6.addresses = [
@@ -24,33 +43,6 @@
KERNEL=="sd?[0-9]", ENV{ID_MODEL}=="ST1000DM003-1SB102", ACTION=="add", RUN+="${pkgs.hdparm}/sbin/hdparm -S 24 /dev/%k"
'';
services.borgbackup.repos = {
clerie-backup = {
path = "/mnt/palladium/clerie-backup";
authorizedKeysAppendOnly = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFyk716RnbenPMkhLolyIkU8ywUSg8x7hjsXFFQoJx4I root@clerie-backup"
];
};
external-drive = {
path = "/mnt/external-drive/clerie-backup";
authorizedKeysAppendOnly = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPuh74Esdp8JPgIZzM372DaCwtAl2QNtRratnIFG0NRB root@clerie-backup"
];
};
};
# Disable automatic directory creation for external-drive repo
# The directory gets created by the disk formatting script
# Correct permissons will be set right after mounting
# This prevents borg from filling up the root drive when no drive is mounted
systemd.services.borgbackup-repo-external-drive.enable = false;
clerie.monitoring = {
enable = true;
id = "206";
pubkey = "fHOYNZ5I3E2JPrd9dUrNBmu75weX4KbDih5q+GCk8Xk=";
};
system.stateVersion = "21.03";
system.stateVersion = "25.05";
}

View File

@@ -9,26 +9,37 @@
];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.initrd.kernelModules = [ "dm-snapshot" ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/b217f1e1-1337-4ef0-bad5-15829ba32c7a";
{ device = "/dev/disk/by-uuid/fbd14cd4-e402-4ad6-b801-8826d6cfc0fb";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/7A6B-3444";
{ device = "/dev/disk/by-uuid/8B45-EBB4";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
fileSystems."/mnt/palladium" =
{ device = "/dev/disk/by-uuid/f20d20ca-6be5-4b16-81fe-e66f31ffd108";
fileSystems."/data" =
{ device = "/dev/disk/by-uuid/e7c41c4d-89d8-4083-ac6e-abbccbebf551";
fsType = "ext4";
};
swapDevices = [ ];
swapDevices =
[ { device = "/dev/disk/by-uuid/6ca5e48f-9b99-4722-b21b-c6f298610157"; }
];
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp3s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -1,26 +0,0 @@
{
"wg-monitoring": "ENC[AES256_GCM,data:ip6L61RXAVxaPqizhNTr6zVvKgd40CAsgeNFoAXMARM1nl146ayHK2q7mhc=,iv:G4WLmcPpJOxTcW0bHuEwWmth6u8fYoH7GmpkMo8Z3TQ=,tag:xJ+wCVEUMdqfXPcwgr9WSw==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age1tl2cd730ctn6jcgg0vf8c5gg9722umk30zwvcwxhejh26p3gt3ds92msyx",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsNHllOHpoYkNyQXMwL002\nRDR4eFVRemc4bW8vYS9GWHFkcmpRbWFFc2tzCmFjV1ZNTzhOYjM4VWltRGhaQ0RP\naC9vN2hrM3NSTDlSd1ZJTldXamJ4NUUKLS0tIDFuUzRKWWQrUFU1SXNqdEV2R1lM\nWXU1by9rYTBINTVralo0TTJmSEZHMm8KYEggCHnOyMcQSdJ9+Ujf61OANuja0ZIf\n+wa9ugc2OZrOYepkjN5X/bETdKfU33pIAL208N9HcOttfhcZq70yUQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-05-10T13:25:28Z",
"mac": "ENC[AES256_GCM,data:fLw0q9h+rlAAiXjtCJeGPi0COEt/UvApRiOpE+ydSrD/jXy+vh2OVW57UZPRBCP1mWtqfUJLiT1BZyOWor7dsPfTvaxCQmYhGcKBLucFEaiUovGgVjxJloD8hDJvSG9SJnlIiDobMsG87MsEWpi70oAbQu3/d4JT1BPSaRpvsjI=,iv:iS7tFqZMa0OzA5ASKPS6CSNTJYYJ0zhjLmBcipjLapg=,tag:Lspazw8Pi5Dxqcrk35A6tA==,type:str]",
"pgp": [
{
"created_at": "2024-05-10T13:25:16Z",
"enc": "-----BEGIN PGP MESSAGE-----\n\nhQIMA5OzEzXewpmPAQ/+KsEUiNCgfajBMEEFsqHqNG3utLNQSLOd6VX/Rk56CjT9\nUtfiCdZCSzrtyT3Anu72auTJ+PHNAVhhHPcDiUcwY9JYXEXNETzEn0U/byS+kvOD\nNTpcpR1gSxJCj1aDqDDpfQQ02hSpKO4iw0B71gKcekUXcD2AQeeW0Djq60CusWVk\nRgC3odnyTr1CN1+JRtKVZKIa78rfOkyhmFP2G2gvsSHhUBd5RtMhJdfYVUTMIKXO\nQFB2IGCoIzE0zDitCcAZ8q6Dc8lBuAvNSiVkFanJn7e7etU3JwDhYsZKRO7jvNX3\nmjHnQ9vf0idCWAi0oabZQ1OGdwPbtjssxmQkzzR8R/paw+iRB50i1UG3/5ehXTV4\nTp/2rEwrsF8jO1bahTcrJirR7RPLEy2BvJ4ALzmEYrIoEwWuCIexrY+e2C2rXpy5\nK2+9Ch0YCaz8sc700bgO5ZkyvnmnbVJxGCaMGQtT9LXiEWvc36sUXhbEGJ0K782Z\n7uVFRs4xWsrUQHo8lFTfW/vLZDq7FvkGnDf5xnoEJp4BNYvYmMmsFiaygkbbqEdH\n2aHRCam9q5zcuBq+aA40KI1P4adIFgij+fijwQ+019JrfaMEXcmwgtOfkb2OZNOF\nXQ3tRgYLaxSae7BYJA4uTaFq60kpp1c8qgxw3WKPEiHywtl/SaPcx1XD9VJoVTGF\nAgwDvZ9WSAhwutIBD/9O0inQ/HmpwtD1AnE89SuZNuGQty71LVhX2PQQWsUdQOuz\ndKZN1wy6UxIImFGisBodUH+48k1DjbkDjL5cLSAUOt9OhAxW2Ubp6HA6wDJPqWj1\nYQMHKmHlf2zh5G1qTUXV3NNw6hSaWejVDS73WNODv1WfUFXrPN9DVLaPsS/RJo2Q\nAoDG/iedeQhIIBwrLIcQ8ttjv9MTI1GzsNRC/CjxQpDnHabqQzFzenjnVRLDXcmr\nwfw0HeTPeNh+pLYb+sBqzGUP0j1GWui99/6NUeo/TloBWJbIung4wq23gYZbHn+K\nbWJSxSy980mvjCXiRukzXlNJMwLZDVoBlPQSbe/pOApHM9HTScZ+3VcLlYOPjgZk\nhnCvFNm+4/00ZgF+tcvLOugIfqwxvOuqW4gGGhNAycHinJZuSfDHYe6zCfEiqc7t\nnHlbhNvlhC8zDu+fOurC2ju5eGv8LqFiobfsBFVdKpl9Gj7yg00S+QmjBcz0lkE9\n1BftwEQaj+r4EDa4cJHSgP+K76utv4Xzt9hHZZJo7hvii+lGxFI7rBm0xbV5bSuY\ntOhN6d98HH2++AoXufIW5vmnydGk2NXu7O8vi6sQWzoqed84ZHbJDWLQawQ8YQlR\nkbht2PzH4+rq1oOVHbLslxWkYF9WMsQRUef6ALNpys/Dj8N54gEN4RTV+SxIVoUC\nDAM1GWv08EiACgEP/1eiG0aASQogSByxl8ZbRjRg768YVR1fwTa8GG5tE7wfcGiI\njZF2TI+yQWt7gRS4AKNm1gfWEEjCH1tBOj53/Wfwn9ZuGoNqboA2jgsh2rnVVSXR\nOdXK3is/FMh9JREr669be83nnQ8fNP8nIz3snEvKVYVGcdsdkDXBz4GKmJx52NNb\nauL+4w14/0PydCVH/njsFY8FyWqP9lUFgpJU8jHjX28oTB3khwWrDs0THwqilTFn\nhFjgeCy555zeh5rDpBDPdPbLUNd094RB15zaKzn2dC15F8DMCLoA9ASNET7S/+u3\n1SjvI4XnOpxK9hyETcwjzbWJc2gV7U38VqxhQW9Vch3AvXOufMMTm6cobLjiwxjF\nl3XTMJ5GvHDZXCwrGEapy9GbHQjbd9yi0iFgfSGV4nkNmCj1jtAMUngdCqELDVU2\nZe3a8IeJswlTteGlXAM5mwnDaegMsiD/vwsq5Rtl0gs3iI3uIN4RFXuvxP+UeJ/c\ndJWqpF8vcQI4qGN3kxgB30I7mUiz1aggv5uw6nDWRJHTQKLeOkV8ssTq4FLs4XYL\n4z4qmMT5i+8bGu575py/LRDjvXBldeitnQj1jAN2y/uPNVWsZqU3S+OkEosYIgSQ\njAe3N0EyH5k3j7j43x91toYOCAkulAuPkox6GyUKKq4dCPWxg9fqQ8u4PaSN1GYB\nCQIQ3+GP0DNWupTIkTS4Bk1LwbT99lyr2DyExqb2pgXmzn05Qs6CE4+jcIxXnmUQ\nzCl6PLiw+DJ1nq5gKtTrkO96HtHGyfPiUunDZXty1/zNltYjedk7ebkWF3LNXBhE\nK38c6yE=\n=w0Nn\n-----END PGP MESSAGE-----",
"fp": "0C982F87B7AFBA0F504F90A2629E741947C87928"
}
],
"unencrypted_suffix": "_unencrypted",
"version": "3.8.1"
}
}

View File

@@ -1 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBc/YTf80MjyVeApOecOlxORIlwCaWtJNWtfggc0B374
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF0ZrGvZqxqsGEl2+YNnL5JNpeRc3y0DgqZAkuayfeso

View File

@@ -7,16 +7,25 @@
../../configuration/router
];
profiles.clerie.netcup.enable = true;
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/sda";
networking.useDHCP = false;
# Network
networking.interfaces.ens3.ipv4.addresses = [ { address = "5.45.100.191"; prefixLength = 22; } ];
networking.interfaces.ens3.ipv6.addresses = [ { address = "2a03:4000:6:48d::1"; prefixLength = 64; } ];
networking.defaultGateway = { address = "5.45.100.1"; interface = "ens3"; };
networking.defaultGateway6 = { address = "fe80::1"; interface = "ens3"; };
networking.nameservers = [ "46.38.255.230" "46.38.252.230" ];
systemd.network.enable = true;
systemd.network.networks."10-wan" = {
matchConfig.Name = "ens3";
address = [
"2a03:4000:6:48d::1/64"
"5.45.100.191/22"
];
routes = [
{ Gateway = "fe80::1"; }
{ Gateway = "5.45.100.1"; }
];
linkConfig.RequiredForOnline = "routable";
};
clerie.nginx-port-forward = {
enable = true;

View File

@@ -0,0 +1,37 @@
{ config, pkgs, lib, ... }:
{
imports =
[
./hardware-configuration.nix
];
boot.kernelParams = [ "console=ttyS0,115200n8" ];
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/disk/by-id/ata-InnoDisk_Corp._DRPS-08GJ30AC1QS-A88_20120705AAB200000505";
boot.loader.grub.extraConfig = "
serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
terminal_input serial
terminal_output serial
";
networking.hostName = "tungsten";
services.wg-clerie = {
enable = true;
ipv6s = [ "2a01:4f8:c0c:15f1::8112/128" ];
ipv4s = [ "10.20.30.112/32" ];
};
clerie.monitoring = {
enable = true;
id = "216";
pubkey = "bDmf4xndBNwzcvIGCMq6dhyzjdEZOV2ckhv/37V/PWg=";
serviceLevel = "event";
};
system.stateVersion = "25.05";
}

View File

@@ -0,0 +1,46 @@
# 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.initrd.availableKernelModules = [ "ahci" "ohci_pci" "ehci_pci" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/7ed9e29c-d771-49a1-ae8a-8894f347c648";
fsType = "ext4";
};
boot.initrd.luks.devices."root".device = "/dev/disk/by-uuid/95122f15-5621-457c-972c-c057ca416212";
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/02a2afe4-ee00-4d3d-884a-e195b9814bfd";
fsType = "ext4";
};
fileSystems."/mnt/storage-tungsten" =
{ device = "/dev/disk/by-uuid/3d386e15-9d64-42a6-8d6d-571272d5e78e";
fsType = "ext4";
};
boot.initrd.luks.devices."crypt-storage-tungsten".device = "/dev/disk/by-uuid/e4142245-4c69-42e6-9b1f-fa4dc7fef7d8";
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -0,0 +1,27 @@
{
"wg-clerie": "ENC[AES256_GCM,data:OtSzmacWH9leDuykr7Tp5lR2FDoNGQ61V/9z6xBD1eCDSLOvt8UdILMETJU=,iv:NNGqR7UG3bZWETpZRwEdS4O1nRO4cBT72fljpqSbtyc=,tag:mea+5E8B655ljRzk63IDOw==,type:str]",
"wg-monitoring": "ENC[AES256_GCM,data:+k7ATUbPnEfb4O4lUs8d4ZlvMPlsxC5mrCi1bXOje47XDcpioDwzRTQNPrU=,iv:p4JdSMbBcb/8Uh/9RuUSs64VBRQJHu6k5FB50UsxXVU=,tag:NRyBs1CO77AV4CbD6a6gig==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age1dvl2pylf9vs4vt27g8z8nzpuwt88zl5fj7a68papsmenze7gd3mstyalks",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkOGRQMDhycnViTVR5M1Aw\nbjFGbXBINTJsTEdKU1ZoMDVIMUQrU1R2M2hFCk9XY0NxMlZoZXJhMVIvZ1hLUXJt\nSVdzWEpraGc3aUFBUWU2Uk9WK2J1cncKLS0tIEZPUVY1V2Z0RDhJR2VweVFsZnY5\nREp1cERaVzcrTTRhL0tpVWpMc1pCdWcKB3ZbqB8tGdXgXra3fRL/gw4IEpNHBqp+\nKnw9XYYV2MDiL02+HF+bABVHbjngG85EGDRTDZMWnJtlxV4l+vzTVw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2025-02-25T17:46:27Z",
"mac": "ENC[AES256_GCM,data:EvbkM81pIqbYkvcBSWtyov5GN8D0PauWAiMmRYgWl2fijlH7zEpsCh0XU544prqpb7vh8ShAuCecVpWsdWUIAIT62ToB28NdefDhX2HDl4B1XeIy2X9i+jhnaXLjbwc+r8IhTHOJ/uWeVrNQyb4g9nOaijzDGVJbwKnJ6M+O7fU=,iv:WAIwdemTsTHLnGtFtg/KgyjId3+RpivNDc1LFZjG3jY=,tag:YmaYFT9smKChwd5vVisfLQ==,type:str]",
"pgp": [
{
"created_at": "2025-02-25T17:27:17Z",
"enc": "-----BEGIN PGP MESSAGE-----\n\nhQIMA5OzEzXewpmPAQ/+In2YZByknfnhl2zYmOUTQCrjpiyXbf8/ai0Ko8TZZCRy\nhrpxyvKP+/u7CMS+giouoxKJ4XLDbHacoz06qF1I9i9iSVelXxQ5epSHk4BLLocw\nP5S6ZnE3jQO4G5goC/LU7nARN2IMwYq2rRZe8o8SLDMTZqGnlk9vBihcE4rN4lpd\nLbSb+cT6wDba32xKNZuP9IRPU2gqjOAg99gbh7Se2zB4Q7AxpgUl6EZZ7OMqVl/C\nbgSQFgwJxFPoH8KBS4wICbHTyWGvg2iEQyh1zNElUwbW112kyfBxGHKFukfEapIj\n2Cv0+Jme3VA750rZmJ4xcOZeoz0n7THBHdFjE122dkXhUdkQmohKzjngIZySUqDI\nuaDf43ebi6tPgCdC6gKLbYUUml+WEOmIRcgmIEswG9iRF/vjOYLK9OxclAKLDDar\nN9zgRFW1qR0HZhAbC61L1CqhKZzjQpNpjYn2pwmR+NnU/DDrlSdJLnHnrMdPeG6l\nBVp7oLhct2DwrypEYOvccrEwRakJSjCyC6cPWbUv7upjovTvcSAh21XNLnHJaMsY\n+sbJf5vshnALIkEXRyMBa5to7RZQvWx9qdklykjbXUEheM9RQATjGdnFQHuM05LI\npWKX038xlEaPe4nJa4PBGub23GZ1zuP3zE+N0W4XTR3r3ZGsMncqntiPJaaBgzWF\nAgwDvZ9WSAhwutIBEADMfdHvINLP6Gu7/DeLUboRnTHpP8x+rfTy9lcIW2RmQHbz\nLeAwBbeqyvLUi9ObjwclVWvPHqbPyGwibt96mTgGnkAEwXCgcXfWz/vCRZ0UHcvT\nimFM4H+ecOKws7t+sf31PAMPE0eSSJIYXVU9pej0qaKzR3zMBvQi6CsB0F1e2Fkz\n0HbilJMELaKFbJJsTXtDyl9Afi8OtVcBoG8P/1ImM/gcJLU548WTwPtzYUufHt5q\nkb45PjEId3m/g6CF6nh4GCQtRwOWjah49Zsk5cuI1aO/Q0gPyndgzFL5fYOfPlGN\nPTQ2KFMUh1dkvVVzyNFFC1vqXx2KH5l2gdTRkzaFQ3Qjjx1kluM5AlEl2Ynx4sbQ\nVaFZHFjQnoFtDn08BzNS7Cu/5SOdXejihen4sg0bGjEz6aVGwHXQJcp0BigH2y3f\n/OtnCK5KjFSQsdgTV5trstQgFQMqbMiVEqd3u+3lTxGJ/dQ7NXerFroITUC4J3Uu\n3VRdWTlgPED8hiA1NQaOiy2bbMzAgaR86qHK6JhxnP/6ETaByPPb27Oisblhhq9p\nCDw4eNGws1WsAyjZkyatzLZwUs2zOt4ZKjDlim8EikdGJpDcHnameRtI97QgPDO/\nzA5zHMrDuMN1iMw92WIAQyEQtJgyy4m3YvUsnlpHqKOgSNpwG/8j1zXHLH2p1IUC\nDAM1GWv08EiACgEQALEoa50qGjadZkaHI2tXFVv8RF1d8nR+L946DyMImjuMObei\n6Sx/Nc3bHzHSMsf27T120EUU0yUERdncoOQTRWBemMoB6tWYGTIAG0uDhrHl6rzW\nOUC5G7023H3cHStXbFFBp+JargnE1XgcapHM0p29GgUCE21UDBXzm7MB6x+9AKdd\nsc6qXD1xNPWc7RSqLL6anvcT/eLZW5Y1Ep2T7r5gQ81Fbxh4RicCphmApDC91Dii\nfZ/Va3JUeFm/82edeE4FqJUO9Akk2sPmVnXBYWPRq55/Uyk61J8u2b8tY7OcLSmr\nw/eaJq2bgDda3MBVzF3G9nr3BGhl8g7lCSCPS3gCFfs7C3Djp/YP0L8rMsH2ym1Q\nEj7rWC3K1xwtqowDx+EcYDMwmUtJqkia6o3WVM1qJM25QuCg2mnv9anMTgWuLpQo\nk1Av4FR+zV6aK3A7mxxjG0BsSUGjrrzoJC5DV1DSZ335lqlZxmthJoF0mda02nbh\nUlzpHEpG3/eWXjfDSbEYU8iVK2HWX9/i2gnXbpREuEnt5xpuSQ/sBT6tmit1FwK2\ntYZ+wtCMjWKkeZtvbP9Fx0nLYhVyMXvLhR1VLosCymKqWCIBj8VINagmPLiToEMd\nfpVs8m35neD4258CZOvBgqFvmxlGb9e27p8PHmlg9UNb/v7sYmSgm4IH0zi11GgB\nCQIQbpoXf1EJlriSHiqcUZCIvY/H37TWSJ6+tCcUSUipA+dLgt4pnKBjeM6RFSPG\n81eTm0AZIpmRDx/i31knPNh5JL6RYm5t66ncM46VkO1FIatkdKDfJbYe9J6ezWCs\nMDYTejoBhQ==\n=EuYe\n-----END PGP MESSAGE-----",
"fp": "0C982F87B7AFBA0F504F90A2629E741947C87928"
}
],
"unencrypted_suffix": "_unencrypted",
"version": "3.9.2"
}
}

1
hosts/tungsten/ssh.pub Normal file
View File

@@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJq5WWALjFHvmUdcWdKN5BBRS1F/EWaBet6oftrbxt1F

View File

@@ -1,14 +0,0 @@
{ pkgs, ... }:
{
services.nginx.virtualHosts = {
"bubblesort.clerie.de" = {
enableACME = true;
forceSSL = true;
root = pkgs.fetchgit {
url = "https://git.clerie.de/clerie/bubblesort_js.git";
rev = "39d54701a11f4fb48d7e023e384a848e6bde5640";
sha256 = "sha256-au/sbTVLDER0BbXD6cKJIpq0GcS/saiRQw46mZQWsO0=";
};
};
};
}

View File

@@ -15,8 +15,8 @@
forceSSL = true;
root = pkgs.fetchgit {
url = "https://git.clerie.de/clerie/clerie.de.git";
rev = "785693e6826c6377c3f3200274c281d2ef3317b3";
hash = "sha256-cyTHOOm7hpPUD8paKB7Wci3RYAo6Jr/MI/Xqx4iwXwY=";
rev = "ec744cbeaf99ae4fd4832d7e594bc72bfabc8706";
hash = "sha256-EG8UO/9ycyWjtqLUX7ydctLdIbq/j8zylEK7YYvEwmI=";
};
locations."/ssh" = {
extraConfig = ''

View File

@@ -5,41 +5,43 @@
[
./hardware-configuration.nix
./blog.nix
./bubblesort.nix
./bula22.nix
./chaosevents.nix
./clerie.nix
./drop.nix
./etebase.nix
./feeds.nix
./fieldpoc.nix
./gitea.nix
./iot-data.nix
./ip.nix
./legal.nix
./meow.nix
./milchinsel.nix
./mitel-ommclient2.nix
./nix-install.nix
./nogo2024.nix
./nurausstieg.nix
./ping.nix
./public.nix
./radicale.nix
./reichartstrasse.nix
./tap.nix
./uptimestatus.nix
./wetter.nix
];
profiles.clerie.hetzner-cloud.enable = true;
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/sda";
networking.useDHCP = false;
# Network
networking.interfaces.ens3.ipv4.addresses = [ { address = "88.99.187.135"; prefixLength = 32; } ];
networking.interfaces.ens3.ipv6.addresses = [ { address = "2a01:4f8:c0c:c580::1"; prefixLength = 64; } ];
networking.defaultGateway = { address = "172.31.1.1"; interface = "ens3"; };
networking.defaultGateway6 = { address = "fe80::1"; interface = "ens3"; };
networking.nameservers = [ "213.133.98.98" "213.133.99.99" "213.133.100.100" ];
systemd.network.enable = true;
systemd.network.networks."10-wan" = {
address = [
"2a01:4f8:c0c:c580::1/64"
"88.99.187.135/32"
];
};
services.nginx = {
enable = true;
@@ -54,7 +56,7 @@
services.postgresql = {
enable = true;
package = pkgs.postgresql_12;
package = pkgs.postgresql_16;
};
clerie.backup = {

26
hosts/web-2/etebase.nix Normal file
View File

@@ -0,0 +1,26 @@
{ ... }:
{
services.etebase-server = {
enable = true;
port = 8001;
settings.allowed_hosts.allowed_host1 = "etebase.clerie.de";
};
services.nginx.virtualHosts = {
"etebase.clerie.de" = {
enableACME = true;
forceSSL = true;
locations = {
"= /" = {
return = ''302 "/admin/"'';
};
};
locations = {
"/" = {
proxyPass = "http://127.0.0.1:8001";
};
};
};
};
}

49
hosts/web-2/feeds.nix Normal file
View File

@@ -0,0 +1,49 @@
{ pkgs, ... }:
{
users.users."feeds" = {
isSystemUser = true;
group = "feeds";
};
users.groups."feeds" = {};
systemd.tmpfiles.rules = [
"d /data/feeds 0775 root users - -"
"d /var/lib/feeds - feeds feeds - -"
];
services.nginx = {
virtualHosts."feeds.clerie.de" = {
enableACME = true;
forceSSL = true;
root = "/var/lib/feeds";
};
};
systemd.services."feeds" = {
wantedBy = [ "multi-user.target" ];
requires = [ "network.target" ];
after = [ "network.target" ];
serviceConfig = {
Type = "oneshot";
WorkingDirectory = "/var/lib/feeds";
RuntimeDirectory = "feeds";
User = "feeds";
Group = "feeds";
ExecStart = ''
${pkgs.feeds-dir}/bin/feeds-dir /data/feeds
'';
};
};
systemd.timers."feeds" = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnCalendar = "hourly";
RandomizedDelaySec = "1h";
};
requires = [ "network-online.target" ];
after = [ "network-online.target" ];
};
}

View File

@@ -1,40 +0,0 @@
{pkgs, ...}:
{
users.users.iot-data = {
description = "IOT Data Service";
group = "iot-data";
home = "/var/lib/iot-data/";
useDefaultShell = true;
isSystemUser = true;
};
users.groups.iot-data = {};
systemd.services.iot-data = {
wantedBy = [ "multi-user.target" ];
serviceConfig = {
RuntimeDirectory = "iot-data";
StateDirectory = "iot-data";
User = "iot-data";
Group = "iot-data";
};
environment = {
IOT_DATA_CONFIG = "/var/src/iot-data-config.json";
};
script = "gunicorn -w 1 -b [::1]:8235 iot_data:app";
path = with pkgs; [ (python3.withPackages (ps: [ ps.gunicorn iot-data ])) ];
};
services.nginx.virtualHosts = {
"iot-data.clerie.de" = {
enableACME = true;
addSSL = true;
locations."/" = {
proxyPass = "http://[::1]:8235";
};
extraConfig = ''
access_log off;
'';
};
};
}

View File

@@ -1,20 +0,0 @@
{ pkgs, ... }:
{
services.nginx.virtualHosts = {
"nogo2024.clerie.de" = {
enableACME = true;
forceSSL = true;
locations."/" = {
return = "404";
};
locations."= /nogo2024.ics" = {
root = pkgs.fetchgit {
url = "https://git.clerie.de/clerie/nogo2024.git";
rev = "fdc07667e6cfa09e91eaaee488528fb842a6115d";
sha256 = "sha256-qRviw0sQnMmrkwBO0+AWnmeqZK8wXeFxZJgmLMUtzn4=";
};
};
};
};
}

View File

@@ -1,15 +0,0 @@
{ pkgs, ... }:
{
services.nginx.virtualHosts = {
"tap.clerie.de" = {
enableACME = true;
forceSSL = true;
root = pkgs.fetchgit {
url = "https://git.clerie.de/clerie/tap.clerie.de.git";
rev = "a90df6f6cb6dc58ab807b230527aae76c48cdcc8";
sha256 = "sha256-GTUy98NHXvR7pG8lUWZm6wa0XjULnDTSu17C/DQuXBI=";
};
};
};
}

View File

@@ -6,7 +6,11 @@
firefox
blender
cura
#cura # libarcus library is currently broken, required for curaengine
mumble
factorio-launcher
];
}

View File

@@ -21,18 +21,11 @@ let
) cfg.jobs
);
backupServiceUnits = listToAttrs (map ({jobName, jobOptions, targetName, targetOptions}: let
jobPasswordFile = if jobOptions.passwordFile != null then jobOptions.passwordFile else
config.sops.secrets."clerie-backup-job-${jobName}".path;
repoPath = if jobOptions.repoPath == null then "/${config.networking.hostName}/${jobName}" else jobOptions.repoPath;
targetPasswordFile = if targetOptions.passwordFile != null then targetOptions.passwordFile else
config.sops.secrets."clerie-backup-target-${targetName}".path;
targetUsername = if targetOptions.username == null then config.networking.hostName else targetOptions.username;
in
backupServiceUnits = listToAttrs (map ({jobName, jobOptions, targetName, targetOptions}:
nameValuePair "clerie-backup-${jobName}-${targetName}" {
requires = [ "network.target" "local-fs.target" ];
after = [ "network.target" "local-fs.target" ];
path = [ pkgs.restic ];
path = [ pkgs.clerie-backup ];
serviceConfig = {
Type = "oneshot";
@@ -41,14 +34,7 @@ let
script = ''
set -euo pipefail
export RESTIC_PASSWORD_FILE=${jobPasswordFile}
export RESTIC_REPOSITORY="rest:https://${targetUsername}:$(cat ${targetPasswordFile})@${targetOptions.serverName}${repoPath}"
export RESTIC_PROGRESS_FPS=0.1
export RESTIC_CACHE_DIR=/var/cache/restic
restic snapshots --latest 1 || restic init
restic backup ${optionalString (jobOptions.exclude != []) "--exclude-file ${pkgs.writeText "clerie-backup-${jobName}-${targetName}-excludes" (concatStringsSep "\n" jobOptions.exclude)}"} ${escapeShellArgs jobOptions.paths}
clerie-backup "${jobName}-${targetName}" backup
${optionalString (config.clerie.monitoring.enable) ''
echo "clerie_backup_last_successful_run_time{backup_job=\"${jobName}\", backup_target=\"${targetName}\"} $(date +%s)" > /var/lib/prometheus-node-exporter/textfiles/clerie-backup-${jobName}-${targetName}.prom
@@ -69,32 +55,22 @@ let
}
) jobTargetPairs);
backupCommands = map ({jobName, jobOptions, targetName, targetOptions}: let
backupConfigs = mergeAttrsList (map ({jobName, jobOptions, targetName, targetOptions}: let
jobPasswordFile = if jobOptions.passwordFile != null then jobOptions.passwordFile else
config.sops.secrets."clerie-backup-job-${jobName}".path;
repoPath = if jobOptions.repoPath == null then "/${config.networking.hostName}/${jobName}" else jobOptions.repoPath;
targetPasswordFile = if targetOptions.passwordFile != null then targetOptions.passwordFile else
config.sops.secrets."clerie-backup-target-${targetName}".path;
targetUsername = if targetOptions.username == null then config.networking.hostName else targetOptions.username;
in pkgs.writeShellApplication {
name = "clerie-backup-${jobName}-${targetName}";
runtimeInputs = [ pkgs.restic ];
text = ''
set -euo pipefail
export RESTIC_PASSWORD_FILE=${jobPasswordFile}
export RESTIC_REPOSITORY="rest:https://${targetUsername}:$(cat ${targetPasswordFile})@${targetOptions.serverName}${repoPath}"
export RESTIC_PROGRESS_FPS=0.1
export RESTIC_CACHE_DIR=/var/cache/restic
restic "$@"
'';
checkPhase = "";
in {
"clerie-backup/${jobName}-${targetName}/repo_password".source = jobPasswordFile;
"clerie-backup/${jobName}-${targetName}/repo_url".text = "https://${targetOptions.serverName}${repoPath}";
"clerie-backup/${jobName}-${targetName}/auth_username".text = targetUsername;
"clerie-backup/${jobName}-${targetName}/auth_password".source = targetPasswordFile;
"clerie-backup/${jobName}-${targetName}/files".text = concatStringsSep "\n" jobOptions.paths;
"clerie-backup/${jobName}-${targetName}/excludes".text = concatStringsSep "\n" jobOptions.exclude;
}
) jobTargetPairs;
) jobTargetPairs);
targetOptions = { ... }: {
options = {
@@ -158,6 +134,7 @@ in
systemd.tmpfiles.rules = [
"d /var/cache/restic - - - - -"
];
environment.systemPackages = backupCommands;
environment.systemPackages = [ pkgs.clerie-backup ];
environment.etc = backupConfigs;
};
}

View File

@@ -25,6 +25,11 @@ in
default = [];
description = "IPv4 interface addresses";
};
defaultViaVPN = mkOption {
type = types.bool;
default = true;
description = "Use VPN default route for a protocol, if that protocol is unavailable in the underlay";
};
};
};
@@ -45,7 +50,9 @@ in
{ rule = "to 2a01:4f8:c0c:15f1::1/128 ipproto udp dport 51820 unreachable"; prio = 20001; }
# Try direct routing first, fallback to VPN
{ rule = "lookup main"; prio = 21000; }
] ++ (if cfg.defaultViaVPN then [
{ rule = "lookup wg-clerie"; prio = 21001; }
] else []) ++ [
{ rule = "unreachable"; prio = 22000; }
];
rules4 = (concatMap (ip: [
@@ -57,7 +64,9 @@ in
{ rule = "to 78.47.183.82/32 ipproto udp dport 51820 unreachable"; prio = 20001; }
# Try direct routing first, fallback to VPN
{ rule = "lookup main"; prio = 21000; }
] ++ (if cfg.defaultViaVPN then [
{ rule = "lookup wg-clerie"; prio = 21001; }
] else []) ++ [
{ rule = "unreachable"; prio = 22000; }
];
};

View File

@@ -0,0 +1,95 @@
#!/usr/bin/env bash
set -euo pipefail
REPO=
ACTION=
if [[ $# -lt 2 ]]; then
echo "Command not specified"
echo
echo "clerie-backup REPO ACTION"
echo
echo "ACTION: restic,backup"
echo
echo "Available REPOs (/etc/clerie-backup/):"
echo
if [[ -d "/etc/clerie-backup" ]]; then
find "/etc/clerie-backup/" -mindepth 1 -maxdepth 1 -type d -printf "%f\n" | sort -d
fi
exit 1
fi
REPO="$1"
shift
ACTION="$1"
shift
CONFIG_DIR="/etc/clerie-backup/${REPO}"
if [[ ! -d "${CONFIG_DIR}" ]]; then
echo "Config dir ${CONFIG_DIR} for ${REPO} does not exist"
exit 1
fi
ISSUE_EXIST=
if [[ ! -f "${CONFIG_DIR}/repo_password" ]]; then
echo "File ${CONFIG_DIR}/repo_password not found"
ISSUE_EXIST=1
fi
if [[ ! -f "${CONFIG_DIR}/repo_url" ]]; then
echo "File ${CONFIG_DIR}/repo_url not found"
ISSUE_EXIST=1
fi
if [[ ! -f "${CONFIG_DIR}/auth_username" ]]; then
echo "File ${CONFIG_DIR}/auth_username not found"
ISSUE_EXIST=1
fi
if [[ ! -f "${CONFIG_DIR}/auth_password" ]]; then
echo "File ${CONFIG_DIR}/auth_password not found"
ISSUE_EXIST=1
fi
if [[ -n "${ISSUE_EXIST}" ]]; then
exit 1
fi
RESTIC_PASSWORD_FILE="${CONFIG_DIR}/repo_password"
export RESTIC_PASSWORD_FILE
RESTIC_REPOSITORY="rest:$(cat "${CONFIG_DIR}/repo_url")"
export RESTIC_REPOSITORY
RESTIC_REST_USERNAME="$(cat "${CONFIG_DIR}/auth_username")"
export RESTIC_REST_USERNAME
RESTIC_REST_PASSWORD="$(cat "${CONFIG_DIR}/auth_password")"
export RESTIC_REST_PASSWORD
RESTIC_PROGRESS_FPS="0.1"
export RESTIC_PROGRESS_FPS
RESTIC_CACHE_DIR="/var/cache/restic"
export RESTIC_CACHE_DIR
case "${ACTION}" in
restic)
restic "$@"
;;
backup)
ISSUE_EXIST=
if [[ ! -f "${CONFIG_DIR}/excludes" ]]; then
echo "File ${CONFIG_DIR}/excludes not found"
ISSUE_EXIST=1
fi
if [[ ! -f "${CONFIG_DIR}/files" ]]; then
echo "File ${CONFIG_DIR}/files not found"
ISSUE_EXIST=1
fi
if [[ -n "${ISSUE_EXIST}" ]]; then
exit 1
fi
restic snapshots --latest 1 || restic init
restic backup --exclude-file "${CONFIG_DIR}/excludes" --files-from "${CONFIG_DIR}/files"
;;
*)
echo "Unsupported ACTION: ${ACTION}"
exit 1
;;
esac

View File

@@ -0,0 +1,9 @@
{ pkgs, ... }:
pkgs.writeShellApplication {
name = "clerie-backup";
text = builtins.readFile ./clerie-backup.sh;
runtimeInputs = with pkgs; [
restic
];
}

View File

@@ -1,37 +1,19 @@
{ pkgs, lib, ... }:
with lib;
pkgs.python313Packages.buildPythonPackage rec {
pname = "clerie-sops-config";
version = "0.0.1";
let
hosts = builtins.attrNames (builtins.readDir ../../hosts);
src = ./.;
mkAgeKey = hostname: ssh_pub_file:
pkgs.runCommand "${hostname}.age" {
buildInputs = [ pkgs.ssh-to-age ];
} ''
ssh-to-age -i ${ssh_pub_file} -o $out
'';
format = "other";
ageKeysForHost = hostname: let
ssh_pub_file = ../../hosts + "/${hostname}/ssh.pub";
in
if builtins.pathExists ssh_pub_file then [
(fileContents (mkAgeKey hostname ssh_pub_file))
] else [];
propagatedBuildInputs = with pkgs; [
ssh-to-age
];
mkCreationRules = hosts:
map (hostname: {
path_regex = escapeRegex "hosts/${hostname}/secrets.json";
key_groups = [{
pgp = [
(fileContents (pkgs.clerie-keys + "/gpg/clerie@clerie.de.fingerprint.txt"))
];
age = ageKeysForHost hostname;
}];
}) hosts;
sops_config = {
creation_rules = mkCreationRules hosts;
};
in
pkgs.writeText "sops.json" (builtins.toJSON sops_config)
installPhase = ''
mkdir -p $out/bin
cp clerie-sops-config.py $out/bin/clerie-sops-config
'';
}

View File

@@ -0,0 +1,55 @@
#!/usr/bin/env python3
import sys
import json
from pathlib import Path
import re
import subprocess
def generate_sops_config(repo_root):
admin_keys = []
# hardcode fingerprints because we can't really generate them automatically currently
admin_keys.append("0C982F87B7AFBA0F504F90A2629E741947C87928") # clerie@clerie.de
list_of_host_directories = sorted(list(filter(lambda path_object: path_object.is_dir(), (repo_root / "hosts").iterdir())))
creation_rules = []
for host_directory in list_of_host_directories:
host_secrets_file = host_directory / "secrets.json"
host_keys = []
ssh_host_key_file = host_directory / "ssh.pub"
if ssh_host_key_file.is_file():
ssh_to_age_command = subprocess.run(["ssh-to-age", "-i", str(ssh_host_key_file)], capture_output=True, text=True)
if ssh_to_age_command.returncode == 0:
host_keys.append(ssh_to_age_command.stdout.strip())
creation_rules.append({
"key_groups": [{
"age": host_keys,
"pgp": admin_keys,
}],
"path_regex": re.escape(str(host_secrets_file)),
})
return {
"creation_rules": creation_rules,
}
if __name__ == "__main__":
if len(sys.argv) != 2:
print("No repo root specified")
exit(1)
repo_root = Path(sys.argv[1])
sops_config = generate_sops_config(repo_root)
print(json.dumps(sops_config))

View File

@@ -7,17 +7,19 @@ set -euo pipefail
print_help() {
cat << EOF
clerie-sops-edit <secrets_file> <action> <key>
clerie-sops-edit <secrets_file> <action> <key> [cmd...]
This script allows editing single secrets in a secrets file by key.
<secrets_file> is a sops secrets file
<action> is one of "edit", "read", "set" and "append"
<action> is one of "edit", "cmd", "read", "set" and "append"
<key> is the key of the secret in the secrets file to modify
ACTION "cmd" a command that get passed the decrypted secret in the argument being "{}"
EOF
}
if [[ $# != 3 ]]; then
if [[ $# -lt 3 ]]; then
print_help
exit 1
fi
@@ -33,7 +35,7 @@ fi
ACTION="$2"
if ! echo "edit read set append" | grep -wq "${ACTION}"; then
if ! echo "edit cmd read set append" | grep -wq "${ACTION}"; then
echo "Action \"${ACTION}\" not supported"
echo
print_help
@@ -43,6 +45,15 @@ fi
KEY="$3"
KEY_SELECTOR="$(jq -Rsc '[.]' <(echo -n "${KEY}"))"
if [[ $# -gt 3 && "${ACTION}" != "cmd" ]]; then
print_help
exit 1
fi
shift
shift
shift
if [[ -n $EDITOR ]]; then
EDITOR=vim
fi
@@ -64,6 +75,18 @@ case "${ACTION}" in
edit)
"${EDITOR}" "${TMP_FILE}"
;;
cmd)
CMD=()
while [[ $# -gt 0 ]]; do
if [[ "$1" == "{}" ]]; then
CMD+=("${TMP_FILE}")
else
CMD+=("$1")
fi
shift
done
"${CMD[@]}"
;;
read)
cat "${TMP_FILE}"
;;

View File

@@ -4,8 +4,13 @@ pkgs.writeShellApplication {
name = "clerie-sops";
runtimeInputs = with pkgs; [
sops
clerie-sops-config
];
text = ''
exec sops --config ${pkgs.clerie-sops-config} "$@"
REPO_ROOT="."
if GIT_ROOT=$(git rev-parse --show-toplevel); then
REPO_ROOT="$GIT_ROOT"
fi
exec sops --config <(clerie-sops-config "$REPO_ROOT") "$@"
'';
}

View File

@@ -0,0 +1,31 @@
#!/usr/bin/env bash
set -xeuo pipefail
SYSTEM="$1"
REMOTE_HOST="$2"
REMOTE_ROOT="$3"
nix copy "${SYSTEM}" --to "ssh://${REMOTE_HOST}?remote-store=${REMOTE_ROOT}"
ssh "${REMOTE_HOST}" -- nix-env --store "${REMOTE_ROOT}" -p "${REMOTE_ROOT}/nix/var/nix/profiles/system" --set "${SYSTEM}"
ssh "${REMOTE_HOST}" -- mkdir -p "${REMOTE_ROOT}/tmp"
TMPSH="$(ssh "${REMOTE_HOST}" -- mktemp -p "${REMOTE_ROOT}/tmp")"
# shellcheck disable=SC2087
ssh "${REMOTE_HOST}" -- tee "${TMPSH}" <<EOF
#!/usr/bin/env bash
set -euo pipefail
nix-env --store "${REMOTE_ROOT}" -p "${REMOTE_ROOT}/nix/var/nix/profiles/system" --set "${SYSTEM}"
mkdir -m 0775 -p "${REMOTE_ROOT}/etc"
touch "${REMOTE_ROOT}/etc/NIXOS"
ln -sfn /proc/mounts "${REMOTE_ROOT}/etc/mtab"
NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root "${REMOTE_ROOT}" -c "/run/current-system/bin/switch-to-configuration boot"
EOF
ssh "${REMOTE_HOST}" -- bash "${TMPSH}"

View File

@@ -0,0 +1,6 @@
{ pkgs, ... }:
pkgs.writeShellApplication {
name = "clerie-system-remote-install";
text = builtins.readFile ./clerie-system-remote-install.sh;
}

View File

@@ -56,7 +56,7 @@ echo "[!] Create branch ${UPDATE_BRANCH}"
xgit checkout -b "${UPDATE_BRANCH}"
echo "[!] Update nixpkgs"
nix flake lock --update-input nixpkgs
nix flake update nixpkgs
echo "[!] Commit changes"
xgit add flake.lock

View File

@@ -0,0 +1,25 @@
{ pkgs, lib, ... }:
pkgs.buildFHSEnv {
name = "factorio-launcher";
targetPkgs = pkgs: (with pkgs; [
alsa-lib
libGL
libpulseaudio
libxkbcommon
wayland
]) ++ (with pkgs.xorg; [
libICE
libSM
libX11
libXcursor
libXext
libXi
libXinerama
libXrandr
]);
runScript = lib.getExe (pkgs.writeShellApplication {
name = "launch-factorio";
text = builtins.readFile ./launch-factorio.sh;
});
}

View File

@@ -0,0 +1,28 @@
#!/usr/bin/env bash
set -euo pipefail
if [[ $# -eq 0 ]]; then
echo "Pass path to factorio install directory as first argument"
exit 1
fi
FACTORIO_BINARY_PATH=""
for suffix in "" "/factorio" "/x64/factorio" "/bin/x64/factorio" "/factorio/bin/x64/factorio"; do
if [[ -f "$1${suffix}" && -x "$1${suffix}" ]]; then
FACTORIO_BINARY_PATH="$1${suffix}"
break
fi
done
if [[ -z $FACTORIO_BINARY_PATH ]]; then
echo "No factorio executable found below $1"
exit 1
fi
shift
set -- "${FACTORIO_BINARY_PATH}" "$@"
exec "$@"

View File

@@ -0,0 +1,9 @@
{ pkgs, ... }:
pkgs.writeShellApplication {
name = "feeds-dir";
text = builtins.readFile ./feeds-dir.sh;
runtimeInputs = with pkgs; [
rainbowrss
];
}

9
pkgs/feeds-dir/feeds-dir.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -euo pipefail
IN_DIR="${1:-.}"
for file in "${IN_DIR}"/*.txt; do
rainbowrss --feeds "${file}" --out "$(basename "${file}" ".txt").html" || true
done

9
pkgs/git-pp/default.nix Normal file
View File

@@ -0,0 +1,9 @@
{ pkgs, ... }:
pkgs.writeShellApplication {
name = "git-pp";
text = builtins.readFile ./git-pp.sh;
runtimeInputs = with pkgs; [
git
];
}

5
pkgs/git-pp/git-pp.sh Executable file
View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
set -euo pipefail
git pull --rebase && git push

View File

@@ -0,0 +1,13 @@
{ pkgs, ... }:
pkgs.writeTextFile {
name = "git-show-link";
executable = true;
destination = "/bin/git-show-link";
allowSubstitutes = true;
preferLocalBuild = false;
text = ''
#!${pkgs.python3.withPackages (ps: with ps; [])}/bin/python3
${builtins.readFile ./git-show-link.py}
'';
}

View File

@@ -0,0 +1,85 @@
#!/usr/bin/env python3
import argparse
import re
import subprocess
REMOTE_TYPES = [
{
# github
"match": re.compile(r'git@github.com:(?P<username>[\w\.-]+)/(?P<project>[\w\.-]+).git'),
"format-branch": lambda g, b: f"https://github.com/{g['username']}/{g['project']}/tree/{b}/",
"format-commit": lambda g, c: f"https://github.com/{g['username']}/{g['project']}/commit/{c}/",
},
{
# gitea
"match": re.compile(r'(?P<gituser>[\w\.-]+)@(?P<host>[\w\.-]+):(?P<username>[\w\.-]+)/(?P<project>[\w\.-]+).git'),
"format-branch": lambda g, b: f"https://{g['host']}/{g['username']}/{g['project']}/src/branch/{b}/",
"format-commit": lambda g, c: f"https://{g['host']}/{g['username']}/{g['project']}/commit/{c}/",
},
]
def get_remote_branch():
s = subprocess.run(["git", "status", "--porcelain", "-uno", "-b", "--no-ahead-behind"], capture_output=True, text=True)
git_status_branch_info = s.stdout.splitlines()[0][3:].split()[0]
branches = git_status_branch_info.split("...")
if len(branches) != 2:
raise Exception("no branch name found")
local_branch, remote_branch = branches
remote, branch = remote_branch.split("/")
return {
"remote": remote,
"branch": branch,
}
def get_remote_url(remote):
s = subprocess.run(["git", "remote", "get-url", remote], capture_output=True, text=True)
remote_url = s.stdout.strip()
return remote_url
def get_last_commit():
s = subprocess.run(["git", "rev-parse", "HEAD"], capture_output=True, text=True)
commit = s.stdout.strip()
return commit
def main():
parser = argparse.ArgumentParser(
prog='git-show-link',
)
parser.add_argument("--branch", dest="display_branch", action='store_true', help="Display link to branch, instead to commit")
args = parser.parse_args()
r = get_remote_branch()
remote_url = get_remote_url(r["remote"])
for remote_type in REMOTE_TYPES:
m = remote_type["match"].match(remote_url)
if m is None:
continue
g = m.groupdict()
if args.display_branch:
print(remote_type["format-branch"](g, r["branch"]))
else:
commit = get_last_commit()
print(remote_type["format-commit"](g, commit))
break
if __name__ == "__main__":
main()

View File

@@ -4,17 +4,50 @@ set -euo pipefail
cd "$(git rev-parse --show-toplevel)"
if [[ $# -eq 0 || $# -gt 2 ]]; then
echo "Usage: nixfiles-generate-backup-secrets HOST [--configure-host]"
echo
echo " --configure-host"
echo " Directly sets the secrets in the hosts secret store"
exit 1
fi
host="$1"
CONFIGURE_HOST=
if [[ $# -eq 2 ]]; then
if [[ "$2" == "--configure-host" ]]; then
if [[ ! -f "hosts/${host}/secrets.json" ]]; then
echo "Host ${host} does not have a secrets file, can't configure"
exit 1
fi
CONFIGURE_HOST=1
else
echo "Unknown option $2"
exit 1
fi
fi
job_main="$(pwgen -1 64 1)"
target_cyan="$(pwgen -1 64 1)"
target_cyan_htpasswd="$(htpasswd -nbB "${host}" "${target_cyan}")"
target_magenta="$(pwgen -1 64 1)"
target_magenta_htpasswd="$(htpasswd -nbB "${host}" "${target_magenta}")"
echo "$job_main" | clerie-sops-edit "hosts/${host}/secrets.json" set "clerie-backup-job-main"
echo "$target_cyan" | clerie-sops-edit "hosts/${host}/secrets.json" set "clerie-backup-target-cyan"
echo "$target_magenta" | clerie-sops-edit "hosts/${host}/secrets.json" set "clerie-backup-target-magenta"
echo "${target_cyan}" | clerie-sops-edit "hosts/clerie-backup/secrets.json" cmd "restic-server-cyan-htpasswd" htpasswd -iB "{}" "${host}"
echo "${target_magenta}" | clerie-sops-edit "hosts/backup-4/secrets.json" cmd "restic-server-magenta-htpasswd" htpasswd -iB "{}" "${host}"
echo "${target_cyan_htpasswd}" | clerie-sops-edit "hosts/clerie-backup/secrets.json" append "restic-server-cyan-htpasswd"
echo "$target_magenta_htpasswd" | clerie-sops-edit "hosts/backup-4/secrets.json" append "restic-server-magenta-htpasswd"
echo "Repo password main: ${job_main}"
echo
echo "URL cyan: https://cyan.backup.clerie.de/${host}/main"
echo "Auth username cyan: ${host}"
echo "Auth password cyan: ${target_cyan}"
echo
echo "URL magenta: https://magenta.backup.clerie.de/${host}/main"
echo "Auth username magenta: ${host}"
echo "Auth password magenta: ${target_magenta}"
if [[ -n "${CONFIGURE_HOST}" ]]; then
echo "$job_main" | clerie-sops-edit "hosts/${host}/secrets.json" set "clerie-backup-job-main"
echo "$target_cyan" | clerie-sops-edit "hosts/${host}/secrets.json" set "clerie-backup-target-cyan"
echo "$target_magenta" | clerie-sops-edit "hosts/${host}/secrets.json" set "clerie-backup-target-magenta"
fi

View File

@@ -1,23 +1 @@
final: prev: {
clerie-keys = final.callPackage ./clerie-keys {};
clerie-system-upgrade = final.callPackage ./clerie-system-upgrade/clerie-system-upgrade.nix {};
clerie-merge-nixfiles-update = final.callPackage ./clerie-update-nixfiles/clerie-merge-nixfiles-update.nix {};
clerie-sops = final.callPackage ./clerie-sops/clerie-sops.nix {};
clerie-sops-config = final.callPackage ./clerie-sops/clerie-sops-config.nix {};
clerie-sops-edit = final.callPackage ./clerie-sops/clerie-sops-edit.nix {};
clerie-update-nixfiles = final.callPackage ./clerie-update-nixfiles/clerie-update-nixfiles.nix {};
chromium-incognito = final.callPackage ./chromium-incognito {};
git-checkout-github-pr = final.callPackage ./git-checkout-github-pr {};
git-diff-word = final.callPackage ./git-diff-word {};
iot-data = final.python3.pkgs.callPackage ./iot-data {};
nix-remove-result-links = final.callPackage ./nix-remove-result-links {};
nixfiles-auto-install = final.callPackage ./nixfiles/nixfiles-auto-install.nix {};
nixfiles-generate-config = final.callPackage ./nixfiles/nixfiles-generate-config.nix {};
nixfiles-generate-backup-secrets = final.callPackage ./nixfiles/nixfiles-generate-backup-secrets.nix {};
nixfiles-update-ssh-host-keys = final.callPackage ./nixfiles/nixfiles-update-ssh-host-keys.nix {};
print-afra = final.callPackage ./print-afra {};
run-with-docker-group = final.callPackage ./run-with-docker-group {};
ssh-gpg = final.callPackage ./ssh-gpg {};
update-from-hydra = final.callPackage ./update-from-hydra {};
uptimestatus = final.python3.pkgs.callPackage ./uptimestatus {};
}
final: prev: builtins.mapAttrs (name: value: value final prev) (import ./pkgs.nix)

11
pkgs/overrides/xmppc.nix Normal file
View File

@@ -0,0 +1,11 @@
final: prev:
prev.xmppc.overrideAttrs (finalAttrs: prevAttrs: {
version = "0.1.2-clerie-custom";
patches = [
(final.fetchpatch {
# read password from file
url = "https://codeberg.org/Anoxinon_e.V./xmppc/pulls/38.patch";
hash = "sha256-gAD0mfuvqqC7AFtMdtbW+tJiD1F9tOP6/E0eJayDXqc=";
})
];
})

31
pkgs/pkgs.nix Normal file
View File

@@ -0,0 +1,31 @@
{
clerie-backup = final: prev: final.callPackage ./clerie-backup {};
clerie-keys = final: prev: final.callPackage ./clerie-keys {};
clerie-system-remote-install = final: prev: final.callPackage ./clerie-system-remote-install {};
clerie-system-upgrade = final: prev: final.callPackage ./clerie-system-upgrade/clerie-system-upgrade.nix {};
clerie-merge-nixfiles-update = final: prev: final.callPackage ./clerie-update-nixfiles/clerie-merge-nixfiles-update.nix {};
clerie-sops = final: prev: final.callPackage ./clerie-sops/clerie-sops.nix {};
clerie-sops-config = final: prev: final.callPackage ./clerie-sops/clerie-sops-config.nix {};
clerie-sops-edit = final: prev: final.callPackage ./clerie-sops/clerie-sops-edit.nix {};
clerie-update-nixfiles = final: prev: final.callPackage ./clerie-update-nixfiles/clerie-update-nixfiles.nix {};
chromium-incognito = final: prev: final.callPackage ./chromium-incognito {};
factorio-launcher = final: prev: final.callPackage ./factorio-launcher {};
feeds-dir = final: prev: final.callPackage ./feeds-dir {};
git-checkout-github-pr = final: prev: final.callPackage ./git-checkout-github-pr {};
git-diff-word = final: prev: final.callPackage ./git-diff-word {};
git-pp = final: prev: final.callPackage ./git-pp {};
git-show-link = final: prev: final.callPackage ./git-show-link {};
iot-data = final: prev: final.python3.pkgs.callPackage ./iot-data {};
nix-remove-result-links = final: prev: final.callPackage ./nix-remove-result-links {};
nixfiles-auto-install = final: prev: final.callPackage ./nixfiles/nixfiles-auto-install.nix {};
nixfiles-generate-config = final: prev: final.callPackage ./nixfiles/nixfiles-generate-config.nix {};
nixfiles-generate-backup-secrets = final: prev: final.callPackage ./nixfiles/nixfiles-generate-backup-secrets.nix {};
nixfiles-update-ssh-host-keys = final: prev: final.callPackage ./nixfiles/nixfiles-update-ssh-host-keys.nix {};
print-afra = final: prev: final.callPackage ./print-afra {};
run-with-docker-group = final: prev: final.callPackage ./run-with-docker-group {};
ssh-gpg = final: prev: final.callPackage ./ssh-gpg {};
update-from-hydra = final: prev: final.callPackage ./update-from-hydra {};
uptimestatus = final: prev: final.python3.pkgs.callPackage ./uptimestatus {};
xmppc = final: prev: import ./overrides/xmppc.nix final prev;
}

View File

@@ -11,4 +11,7 @@ exec systemd-run \
"--property=SupplementaryGroups=docker" \
"--pty" "--same-dir" "--wait" "--collect" "--service-type=exec" \
"--quiet" \
"--setenv=PATH" \
"--setenv=EDITOR" \
"--setenv=PAGER" \
"$@"

10
profiles/default.nix Normal file
View File

@@ -0,0 +1,10 @@
{ ... }:
{
imports = [
./hetzner-cloud
./netcup
];
}

View File

@@ -0,0 +1,36 @@
{ config, lib, ... }:
with lib;
{
options.profiles.clerie.hetzner-cloud = {
enable = mkEnableOption "Profile for Hetzner Cloud VMs";
};
config = mkIf config.profiles.clerie.hetzner-cloud.enable {
services.qemuGuest.enable = true;
systemd.network.networks."10-wan" = {
matchConfig.Name = "ens3";
routes = [
{ Gateway = "fe80::1"; }
{ Gateway = "172.31.1.1"; GatewayOnLink = true; }
];
linkConfig.RequiredForOnline = "routable";
};
networking.nameservers = [
# There are two different batches of DNS servers
# This one
"2a01:4ff:ff00::add:2" "2a01:4ff:ff00::add:1"
"185.12.64.2" "185.12.64.1"
# And that one
"213.133.98.98" "213.133.99.99" "213.133.100.100"
# Couldn't find out which to use
];
};
}

View File

@@ -0,0 +1,20 @@
{ config, lib, ... }:
with lib;
{
options.profiles.clerie.netcup = {
enable = mkEnableOption "Profile for Netcup VM";
};
config = mkIf config.profiles.clerie.netcup.enable {
services.qemuGuest.enable = true;
# https://helpcenter.netcup.com/de/wiki/server/nameserver/
networking.nameservers = [ "2a03:4000:0:1::e1e6" "2a03:4000:8000::fce6" "46.38.255.230" "46.38.252.230" ];
};
}