Compare commits
21 commits
Author | SHA1 | Date | |
---|---|---|---|
Simon Bruder | 16cf73afb9 | ||
Simon Bruder | 853e817901 | ||
Simon Bruder | 7daad927e8 | ||
Simon Bruder | ae35e82369 | ||
Simon Bruder | 670ff94dda | ||
Simon Bruder | 62c26e06a5 | ||
Simon Bruder | 5f81e9db4b | ||
Simon Bruder | 10f2e5638f | ||
Simon Bruder | 1f75062bc2 | ||
Simon Bruder | 526db3d97b | ||
Simon Bruder | ad209fa0f7 | ||
Simon Bruder | 00bada7b12 | ||
Simon Bruder | f30318869b | ||
Simon Bruder | 709f8d5676 | ||
Simon Bruder | 51e8dd4169 | ||
Simon Bruder | fc7f0f8648 | ||
Simon Bruder | 11d0870f5c | ||
Simon Bruder | a1645314f4 | ||
Simon Bruder | 47cb7b4b32 | ||
Simon Bruder | 07cac97bef | ||
Simon Bruder | 4c119f0b80 |
|
@ -15,7 +15,7 @@ keys:
|
||||||
- &mayushii 23EEDF49AAF1B41DCD1CD10F44A37FA8C15053B3
|
- &mayushii 23EEDF49AAF1B41DCD1CD10F44A37FA8C15053B3
|
||||||
- &renge 06a917fc4a2a1b6b0f69a830285075cac85b7035
|
- &renge 06a917fc4a2a1b6b0f69a830285075cac85b7035
|
||||||
- &nunotaba 3176be14f468c6d43ab2206b4f273abccd49806b
|
- &nunotaba 3176be14f468c6d43ab2206b4f273abccd49806b
|
||||||
- &okarin 868497ac4266a4d137e0718ae5fc3caa3b8107aa
|
- &okarin e7370b48016c961ef8ad792fda66b19d845b3156
|
||||||
- &shinobu 28677f2e3584b39f528a779caf445ebb39c882b7
|
- &shinobu 28677f2e3584b39f528a779caf445ebb39c882b7
|
||||||
- &nazuna 0b8be5d87a10a0e68dda97212c4befad1f9e915c
|
- &nazuna 0b8be5d87a10a0e68dda97212c4befad1f9e915c
|
||||||
- &yuzuru a1ee5bc0249163a047440ef2649e770ec6ea16e4
|
- &yuzuru a1ee5bc0249163a047440ef2649e770ec6ea16e4
|
||||||
|
|
74
flake.lock
74
flake.lock
|
@ -44,11 +44,11 @@
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1705309234,
|
"lastModified": 1710146030,
|
||||||
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -65,11 +65,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1703887061,
|
"lastModified": 1709087332,
|
||||||
"narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=",
|
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "gitignore.nix",
|
"repo": "gitignore.nix",
|
||||||
"rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5",
|
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -85,11 +85,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1706981411,
|
"lastModified": 1712386041,
|
||||||
"narHash": "sha256-cLbLPTL1CDmETVh4p0nQtvoF+FSEjsnJTFpTxhXywhQ=",
|
"narHash": "sha256-dA82pOMQNnCJMAsPG7AXG35VmCSMZsJHTFlTHizpKWQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "652fda4ca6dafeb090943422c34ae9145787af37",
|
"rev": "d6bb9f934f2870e5cbc5b94c79e9db22246141ff",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -106,11 +106,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1707919853,
|
"lastModified": 1712989663,
|
||||||
"narHash": "sha256-qxmBGDzutuJ/tsX4gp+Mr7fjxOZBbeT9ixhS5o4iFOw=",
|
"narHash": "sha256-r2X/DIAyKOLiHoncjcxUk1TENWDTTaigRBaY53Cts/w=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "043ba285c6dc20f36441d48525402bcb9743c498",
|
"rev": "40ab43ae98cb3e6f07eaeaa3f3ed56d589da21b0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -215,11 +215,11 @@
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1707297608,
|
"lastModified": 1712897695,
|
||||||
"narHash": "sha256-ADjo/5VySGlvtCW3qR+vdFF4xM9kJFlRDqcC9ZGI8EA=",
|
"narHash": "sha256-nMirxrGteNAl9sWiOhoN5tIHyjBbVi5e2tgZUgZlK3Y=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "pre-commit-hooks.nix",
|
"repo": "pre-commit-hooks.nix",
|
||||||
"rev": "0db2e67ee49910adfa13010e7f012149660af7f0",
|
"rev": "40e6053ecb65fcbf12863338a6dcefb3f55f1bf8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -231,11 +231,11 @@
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1707842204,
|
"lastModified": 1712909959,
|
||||||
"narHash": "sha256-M+HAq1qWQBi/gywaMZwX0odU+Qb/XeqVeANGKRBDOwU=",
|
"narHash": "sha256-7/5ubuwdEbQ7Z+Vqd4u0mM5L2VMNDsBh54visp27CtQ=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "f1b2f71c86a5b1941d20608db0b1e88a07d31303",
|
"rev": "f58b25254be441cd2a9b4b444ed83f1e51244f1f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -247,11 +247,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1707786466,
|
"lastModified": 1712741485,
|
||||||
"narHash": "sha256-yLPfrmW87M2qt+8bAmwopJawa+MJLh3M9rUbXtpUc1o=",
|
"narHash": "sha256-bCs0+MSTra80oXAsnM6Oq62WsirOIaijQ/BbUY59tR4=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "01885a071465e223f8f68971f864b15829988504",
|
"rev": "b2cf36f43f9ef2ded5711b30b1f393ac423d8f72",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -275,11 +275,11 @@
|
||||||
"poetry2nix": "poetry2nix"
|
"poetry2nix": "poetry2nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1704120598,
|
"lastModified": 1712934106,
|
||||||
"narHash": "sha256-9g7bZbVHAjMPNUWD2okeOdTmTrC9pkCeVe1zFyvtvqo=",
|
"narHash": "sha256-JubHgaV6HUZarwwq4y2rxJaaj2a6euErJfCqpmhrhWk=",
|
||||||
"ref": "refs/heads/master",
|
"ref": "refs/heads/master",
|
||||||
"rev": "32ef4fd545a29cdcb2613934525b97470818b42e",
|
"rev": "2bcb2b6c7b0e04f4ef8e51e00fd93a5e5cb00bf8",
|
||||||
"revCount": 65,
|
"revCount": 66,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.sbruder.de/simon/nixpkgs-overlay"
|
"url": "https://git.sbruder.de/simon/nixpkgs-overlay"
|
||||||
},
|
},
|
||||||
|
@ -290,11 +290,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1704874635,
|
"lastModified": 1710695816,
|
||||||
"narHash": "sha256-YWuCrtsty5vVZvu+7BchAxmcYzTMfolSPP5io8+WYCg=",
|
"narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "3dc440faeee9e889fe2d1b4d25ad0f430d449356",
|
"rev": "614b4613980a522ba49f0d194531beddbb7220d3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -306,11 +306,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable_2": {
|
"nixpkgs-stable_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1707603439,
|
"lastModified": 1712437997,
|
||||||
"narHash": "sha256-LodBVZ3+ehJP2azM5oj+JrhfNAAzmTJ/OwAIOn0RfZ0=",
|
"narHash": "sha256-g0whLLwRvgO2FsyhY8fNk+TWenS3jg5UdlWL4uqgFeo=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d8cd80616c8800feec0cab64331d7c3d5a1a6d98",
|
"rev": "e38d7cb66ea4f7a0eb6681920615dfcc30fc2920",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -322,11 +322,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1707863367,
|
"lastModified": 1712791164,
|
||||||
"narHash": "sha256-LdBbCSSP7VHaHA4KXcPGKqkvsowT2+7W4jlEHJj6rPg=",
|
"narHash": "sha256-3sbWO1mbpWsLepZGbWaMovSO7ndZeFqDSdX0hZ9nVyw=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "35ff7e87ee05199a8003f438ec11a174bcbd98ea",
|
"rev": "1042fd8b148a9105f3c0aca3a6177fd1d9360ba5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -453,11 +453,11 @@
|
||||||
"nixpkgs-stable": "nixpkgs-stable_2"
|
"nixpkgs-stable": "nixpkgs-stable_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1707842202,
|
"lastModified": 1712617241,
|
||||||
"narHash": "sha256-3dTBbCzHJBinwhsisGJHW1HLBsLbj91+a5ZDXt7ttW0=",
|
"narHash": "sha256-a4hbls4vlLRMciv62YrYT/Xs/3Cubce8WFHPUDWwzf8=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "48afd3264ec52bee85231a7122612e2c5202fa74",
|
"rev": "538c114cfdf1f0458f507087b1dcf018ce1c0c4c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -1,28 +1,28 @@
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
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
|
||||||
MsxjN+we2woCXG5SJGYOyA==
|
NxR1Jvm5bnGfUcnNlzoB4Q==
|
||||||
=UTw1
|
=6o0h
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2023 Simon Bruder <simon@sbruder.de>
|
SPDX-FileCopyrightText: 2023-2024 Simon Bruder <simon@sbruder.de>
|
||||||
|
|
||||||
SPDX-License-Identifier: CC-BY-SA-4.0
|
SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
-->
|
-->
|
||||||
|
@ -8,7 +8,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0
|
||||||
|
|
||||||
## Hardware
|
## Hardware
|
||||||
|
|
||||||
[Ionos Cloud VPS](https://cloud.ionos.de/server/vps) S (1 Xeon Gold Gold 5120 vCPU, “512 MB” = 443 MiB RAM, 10 GB SSD).
|
[Ionos VPS Linux XS](https://www.ionos.de/server/vps) S (1 Xeon Skylake vCPU, 1 GiB RAM, 10 GB SSD).
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
|
|
||||||
|
@ -22,32 +22,50 @@ Okabe Rintaro is a mad scientist from *Steins;Gate*
|
||||||
|
|
||||||
Much like the namesake,
|
Much like the namesake,
|
||||||
this server requires a “mad scientist” approach to set up.
|
this server requires a “mad scientist” approach to set up.
|
||||||
|
However, it is much easier than setting up its predecessor,
|
||||||
|
which had just above 400 MiB usable memory.
|
||||||
|
|
||||||
Ionos does not offer any NixOS installation media.
|
Ionos does not offer any NixOS installation media.
|
||||||
I could only choose between a Debian installation media, Knoppix and GParted.
|
I could only choose between various installation media and rescue systems.
|
||||||
Also, installing with a very low amount of memory is quite hard.
|
Also, installing NixOS with a low amount of memory is problematic.
|
||||||
|
|
||||||
I therefore created a VM locally with a disk image exactly 10737418240 Bytes in size.
|
I therefore created a VM locally with a disk image exactly 10737418240 Bytes in size.
|
||||||
On there, I installed NixOS.
|
On there, I installed NixOS.
|
||||||
Because encryption with `argon2id` as PBKDF is quite memory intensive, I had to tune the parameters some.
|
Because encryption with `argon2id` as PBKDF is quite memory intensive,
|
||||||
What I settled on was
|
I had to tune the parameters to ensure decryption was still possible on the target.
|
||||||
`cryptsetup luksFormat --pbkdf argon2id --iter-time 10000 --pbkdf-memory 250000 /dev/sda3`.
|
This can be done quite easily by interactively running the following command on the build VM:
|
||||||
|
|
||||||
To make btrfs use its SSD optimizations,
|
cryptsetup luksChangeKey --pbkdf-memory 100747 --pbkdf-parallel 1 --pbkdf-force-iterations 29 /dev/vda3
|
||||||
I had to force the kernel to see the device as non-rotational:
|
|
||||||
`echo 0 > /sys/block/dm-0/queue/rotational`
|
|
||||||
|
|
||||||
Another problem was the usage of VMware by Ionos.
|
The memory size was obtained by a successful run of `cryptsetup benchmark` inside the initrd on the target.
|
||||||
The VM I set this up with was obviously using KVM/QEMU,
|
|
||||||
so it needed different kernel modules at boot.
|
However, since those parameters are not ideal,
|
||||||
What worked was setting it up in the local VM with both libvirt and vmware modules,
|
the following should later be run on the target host itself:
|
||||||
and then removing the libvirt modules once it was installed on the target.
|
|
||||||
|
cryptsetup luksChangeKey --pbkdf-parallel 1 -i 10000 /dev/vda3
|
||||||
|
|
||||||
|
This will determine the memory usage automatically,
|
||||||
|
use one thread
|
||||||
|
and set the parameters so that decryption takes 10 seconds (10000 ms).
|
||||||
|
The memory usage will not be as high as it could,
|
||||||
|
but it will be better.
|
||||||
|
|
||||||
Getting the disk image onto the server was done
|
Getting the disk image onto the server was done
|
||||||
by first `rsync`ing the image to another server (to allow for incremental iterations),
|
by first `rsync`ing the image to another server (to allow for incremental iterations),
|
||||||
which then provided it via HTTP.
|
which then provided it via HTTP.
|
||||||
Using the Knoppix live image (booted with `knoppix 2` to avoid starting the gui),
|
Using the Debian installation media in rescue mode
|
||||||
it was possible to just `curl http://server/okarin.img > /dev/sda`.
|
(as for some reason most other options tried to cache the file in memory and became very slow)
|
||||||
|
it was possible to write the image to disk with `wget -O /dev/sda http://server/okarin.img`.
|
||||||
|
|
||||||
Because of all the pitfalls of this,
|
Because of all the pitfalls of this,
|
||||||
you probably need more than one try.
|
you probably need more than one try.
|
||||||
|
To make debugging easier on the target, the following option can be set:
|
||||||
|
```nix
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
boot.initrd.preLVMCommands = ''
|
||||||
|
${pkgs.bashInteractive}/bin/bash
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../modules
|
../../modules
|
||||||
|
|
||||||
./services/static-sites.nix
|
|
||||||
./services/proxy.nix
|
./services/proxy.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -22,7 +21,7 @@
|
||||||
|
|
||||||
networking.hostName = "okarin";
|
networking.hostName = "okarin";
|
||||||
|
|
||||||
system.stateVersion = "22.11";
|
system.stateVersion = "23.11";
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [
|
networking.firewall.allowedTCPPorts = [
|
||||||
80
|
80
|
||||||
|
|
|
@ -5,6 +5,10 @@
|
||||||
{ lib, modulesPath, ... }:
|
{ lib, modulesPath, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/profiles/qemu-guest.nix")
|
||||||
|
];
|
||||||
|
|
||||||
sbruder.machine.isVm = true;
|
sbruder.machine.isVm = true;
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
|
@ -12,41 +16,34 @@
|
||||||
extraModulePackages = [ ];
|
extraModulePackages = [ ];
|
||||||
kernelParams = [ "ip=dhcp" ];
|
kernelParams = [ "ip=dhcp" ];
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = [ "aesni_intel" "ahci" "sd_mod" "vmxnet3" "vmw_pvscsi" "vmw_vmci" ];
|
availableKernelModules = [ "aesni_intel" "ahci" "sd_mod" "sr_mod" "virtio_net" "virtio_pci" "xhci_pci" ];
|
||||||
kernelModules = [ "dm-snapshot" "vmw_balloon" ];
|
kernelModules = [ ];
|
||||||
network = {
|
network = {
|
||||||
enable = true; # remote unlocking
|
enable = true; # remote unlocking
|
||||||
# for some reason, the DHCP server does not transmit the static route to the gateway in a form udhcpc understands
|
# for some reason, the DHCP server does not transmit the static route to the gateway in a form udhcpc understands
|
||||||
# this works around this, but is arguably quite hacky
|
# this works around this, but is arguably quite hacky
|
||||||
postCommands = ''
|
postCommands = ''
|
||||||
ip route add 10.255.255.1 dev eth0
|
ip route add 85.215.165.1 dev eth0
|
||||||
ip route add default via 10.255.255.1 dev eth0
|
ip route add default via 85.215.165.1 dev eth0
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
luks.devices."root".device = "/dev/disk/by-uuid/67f2990c-636a-4d80-9f6d-7096fec9e267";
|
luks.devices."root".device = "/dev/disk/by-uuid/1dcb9ee1-5594-4174-98a7-a362da09f131";
|
||||||
};
|
};
|
||||||
loader.grub.device = "/dev/sda";
|
loader.grub.device = "/dev/vda";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
"/" = {
|
"/" = {
|
||||||
device = "/dev/disk/by-uuid/8e3082d1-4af3-4d5d-9fde-d30dc7552d41";
|
device = "/dev/disk/by-uuid/3ab8f4a7-952c-4b6c-93c6-7b307d5bb88b";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "compress=zstd" "discard" "noatime" ];
|
options = [ "compress=zstd" "discard" "noatime" "ssd" ]; # for some reason, the kernel assumes rotational
|
||||||
};
|
};
|
||||||
"/boot" = {
|
"/boot" = {
|
||||||
device = "/dev/disk/by-uuid/883c77e8-53bf-4330-bd9e-89ef71ad9518";
|
device = "/dev/disk/by-uuid/97aec56b-5fea-4445-83dc-4a20dcf482ce";
|
||||||
fsType = "ext2";
|
fsType = "ext2";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [
|
|
||||||
{
|
|
||||||
device = "/dev/disk/by-partuuid/d9cf5716-25c8-4f72-80e3-696e0dfe1079";
|
|
||||||
randomEncryption.enable = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
zramSwap = {
|
zramSwap = {
|
||||||
enable = true;
|
enable = true;
|
||||||
memoryPercent = 150;
|
memoryPercent = 150;
|
||||||
|
@ -63,11 +60,6 @@
|
||||||
name = "eth0";
|
name = "eth0";
|
||||||
DHCP = "yes";
|
DHCP = "yes";
|
||||||
domains = [ "sbruder.de" ];
|
domains = [ "sbruder.de" ];
|
||||||
address = [ "2001:8d8:1800:8627::1/64" ];
|
|
||||||
gateway = [ "fe80::1" ];
|
|
||||||
networkConfig = {
|
|
||||||
IPv6AcceptRA = "no";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,80 +1,80 @@
|
||||||
wg-home-private-key: ENC[AES256_GCM,data:4L8aIvgFi+mBjnyVy5IkPaeJRadJ5NCKZprSkBPwMNiVaIscjAdp2yinBSk=,iv:6pBo+6M4EkEjz184XvisWXEoomqJXa4M8Qa4nJHI65U=,tag:3DEsmA2xxAlx/PSbD3HOIA==,type:str]
|
wg-home-private-key: ENC[AES256_GCM,data:RkdgneGhH7prr/tkvHJeChQku2eXve9pV/SvtwsOjeinYO9veHw0rimdonY=,iv:vK6zNpu8F+TSLDTaif686Awjhs8WS2XJHzMtlvqlsIM=,tag:aKhV+kspVu+0CgPmYersxw==,type:str]
|
||||||
sops:
|
sops:
|
||||||
kms: []
|
kms: []
|
||||||
gcp_kms: []
|
gcp_kms: []
|
||||||
azure_kv: []
|
azure_kv: []
|
||||||
hc_vault: []
|
hc_vault: []
|
||||||
age: []
|
age: []
|
||||||
lastmodified: "2023-05-06T08:49:32Z"
|
lastmodified: "2023-12-25T22:06:33Z"
|
||||||
mac: ENC[AES256_GCM,data:B7e3sh96p2DlqM2SgHWoJ7RZ2q5tnZ6lohNc7UKmwG1HTkrPKW/6jobW2InQnbZn1bPmCERoJIF9QyUz+OxotTiKIXxSL7BJkkfpIkWy9IgjIeADjevHkplm2rXONiXaM2sD46bPKbuRzuhbCZtNwUH74gTVfKPVLVrzpnPRC74=,iv:TTXlBGhO7xLCC3Ad+xiQKmy4b0n0vuQRaCdoe7vpzSE=,tag:dZCharRGK//w48ePu7d2eQ==,type:str]
|
mac: ENC[AES256_GCM,data:VbjyqrqDLCBDD9vGOHxSzsr9a5ZFFBJUkBRxJYBLereMDvInPFZnTwplHHkS5TdDFFAsjrcCgpCuPsUIbDdxFUNNtjdIe5JJwFMwT8XEFrgcswMGSKD6mIH2VBWop5pqoAV0eQ3YfKtDyhNHwixR8a+Z+hbGAY01Z19yteo51ZM=,iv:69EeBag+iUEoa18I0w1HeJKRwSQVCMRqUdV2CzUzMnY=,tag:WViKXJExL33jQAIWHUS8xw==,type:str]
|
||||||
pgp:
|
pgp:
|
||||||
- created_at: "2024-01-22T00:20:17Z"
|
- created_at: "2024-01-24T12:19:03Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
hF4DLHeEFiC484ASAQdALOHWjRYEy+oURe+ERyiQYDjFPDniV0awCBMahhaLzCMw
|
hF4DLHeEFiC484ASAQdA4PdmtZTlpcdfuYKSuKN6X4EGjh/l2D8Jxt7dg1y/Z0kw
|
||||||
faMYpJTpirKixpFnPQ1W0aIiQ2/grcEJ4qYyXYG7GrqLcFMQfZOV8humZOLnZNB6
|
ScG/nWs9hVMFTBeqSM0eHgFfcZhBB/L85eNf9thktTUbcWq0GEUcz5mwUqILtkfA
|
||||||
hF4Dub78fMESoMASAQdAhpmpD8cyJSauuTHM/RTjLybR1VUGcIY7kLqrB33QLG8w
|
hF4Dub78fMESoMASAQdAMcVZokes0YKtbUZp7b9zq303WXPga5yn8LbhnaRrHycw
|
||||||
aLu7q0wjY0Rs+7PtJiSKd6O4VOBRrsBmLc7QuBZ4cgBwUfE38g8LuXayuOLZQNb1
|
+ECn4t8y8SXFICpAZ5n+xj5U8MdmdKOzhNQLleFKIHtWdyeUlwFi0qYYP8MRCLTB
|
||||||
hF4DM6AcvgVUx2MSAQdARr9S5DSGRJOcv2IgYMzko8fkMHlIR9uIJdJLMdcJER4w
|
hF4DM6AcvgVUx2MSAQdAIzXqgZ8WiIxIV05BumWLsyZUChwvDQc47NMd5ehhBEQw
|
||||||
RjcC/s5+P0b7wy9bIaAv3vk3FX4hw56QzhqAXcA1zU1kyjEHPnv3qsiiQbcKDjb0
|
I1LY11LTNENypr5q0mhy615kIbsdhpzAVLf4Bkf921zABsfFzuY5zJHqi8SKVm7/
|
||||||
1GYBCQIQG5VczwWUidoTYkHgZveZhkVyYIiZc/YQrY6n71OrVnUKaH5kZn1XrMKE
|
1GYBCQIQHPC99/GrpHG703gozt2I0P2XMhlRpzj359qStWaQZ8NBL5Ugo5BLvphf
|
||||||
zRzcc4XCiu8CaSkQp68eqKeHwI8U5N/LAtjHbACxAq6GHatf/+LvJx4CbUrPZxw2
|
1/WYAlvnH4Uov2TxKdQs65IJSadQgs7lBWB5gqHklZ76E4Q+00oMQxwGjzMdddA/
|
||||||
PWZwSFBCZEg=
|
hRlLbnUDE1Q=
|
||||||
=r7sK
|
=ol1Y
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: 6CD375BD0741F67E5A289BC333A01CBE0554C763
|
fp: 6CD375BD0741F67E5A289BC333A01CBE0554C763
|
||||||
- created_at: "2024-01-22T00:20:17Z"
|
- created_at: "2024-01-24T12:19:03Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
hF4DLHeEFiC484ASAQdAGdRYvRfki1zKA2YHnPprf1ld5kJkai4fzxuuH1D3DRQw
|
hF4DLHeEFiC484ASAQdAaXq+nn0DDx+RAkEC+x+yeP5xbCIdXkR9tQCgWx1s0jkw
|
||||||
zt5XhSFMx5ii7C3LIVjGgKnn6A6KTe1Tj314OYtrLeCGV8Eli+eOiSgi4c0nL709
|
VRgFkiBa6IsS0vmYknobXkizETtNjEhJ8vNw9nP0zPdjuUZBId2/bJZa7aFdIFRU
|
||||||
hF4Dub78fMESoMASAQdAb38j/KxQlLRJLrtE5mS1XVCmaEIvyJU1uVcSVU3Bdhgw
|
hF4Dub78fMESoMASAQdAMLbBcLnc+5UVDsx50SgCVjQoHO4JGE53DE6Q+frDEiow
|
||||||
f3iepOZgggHOCiHOCs+UWRmiudwoYqMzXF8G9pb6ESsy01cc1y6mXPh6sftKc6Iz
|
rVFbLxWlJ/aw9baRdKUMkIUJftnImUQgolXvEfUjdS/oOdY69r4psLlHLQX11Ow1
|
||||||
hF4DM6AcvgVUx2MSAQdAhq0ynXfS/eYrDAYdxj/qyEg8c2lHFYSaUVtr6v3B/Rcw
|
hF4DM6AcvgVUx2MSAQdAUZV3q/IXwUbRv9EokTe+4o83XzeS1h4GK3/3wjnKDHkw
|
||||||
Su08ppwK9wSbVaEL6p4NPJ0q9mt/36OsvZNaEWL2i7kkrD6q+2yvaGwh/fPcokWI
|
xHFJR2clEMDlaq7Rx3FTr2a7MlzSnzBLtIwdw5b9ytuRvHjD5q7zCf5bihYnvdjV
|
||||||
1GYBCQIQRzg0YDKpmBGZY0sC37nIkUC4blEpFTgl+lma0ZQ9PUfbRP3ijRrxyPv/
|
1GYBCQIQFt+CYziUXtEHjJFC1t+S3qkyPRAsVgZL8WlxbKzteW0NOdIZofHx6skG
|
||||||
aNkUpVAVxjh3VnV/NEm2s03x62iO4uiGoU0BUeI8Jjy4Tvuuodvmfpd4wZw7Mq+V
|
Ebn8aadKcGg534DkwEt5DpIosXKUx4LN5xsCNoU9dHFYMSFE2nzJE4KNFJ8tzRQk
|
||||||
B8h2L/JR7Yo=
|
G+tyNMgCYhM=
|
||||||
=/wMt
|
=2QnY
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: 0C8AF4B4320A511384DF6B5BB9BEFC7CC112A0C0
|
fp: 0C8AF4B4320A511384DF6B5BB9BEFC7CC112A0C0
|
||||||
- created_at: "2024-01-22T00:20:17Z"
|
- created_at: "2024-01-24T12:19:03Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
hF4DLHeEFiC484ASAQdAoM3SQYYUQq6OGImJaecw42BZOwOec75IWS00ZorR31ww
|
hF4DLHeEFiC484ASAQdA6ojEbZ8HccTtorNbyw9aVKO73AJy6jTGV/qLt+FWoRgw
|
||||||
uaRdi54liGiKpjaebhPcLkX+0TKcW0h11kw6X1wrru1JWi3YLbjohv0qCtfa4wpc
|
SsOLiL0UmF1OV7zmXE0ihkWivPqLHtp1U89aYucpAA69DIh4+6M7GUk1xDMxFfRo
|
||||||
hF4Dub78fMESoMASAQdASH4+jxa7Qr9AkJpHHPmMx9cj3XyPXLpfzXJ7Yb40pHMw
|
hF4Dub78fMESoMASAQdAV2z2DgUz2xWopnDzXywdpHb9eMe9ZxdABxpOJ0ECeBww
|
||||||
zBiVmQApa4K+ZOVw/vpcSNaN6FufFoDb5IguwHIq+9vILvjvku6YFgAJ4gC76LOP
|
wOC1x+IKIbIRZBDL7jbVUOk1G+GzCL4M7/G7XFSTFYMKvMKkc0Rh69pywFuGaqG8
|
||||||
hF4DM6AcvgVUx2MSAQdAZGNp/j1sF0rmHhImhnuhgpn9NgRuFtL+BH5dorvrPwIw
|
hF4DM6AcvgVUx2MSAQdA7bKGjcW81bzf58FlGGVDy/HjNyuEPNSVZXy0M+/WZAcw
|
||||||
mK5LsWHvyBFyC+SDNe4mrRkdia/xPECmcWrbvptGVjqlZnjmUbtrYhG+j5O6/817
|
3iXR9MecA97bKKKhLyNSdYmYlAjZJVIdwd6vjNWjxaB7BIWTYhudTjHesLMxB0vc
|
||||||
1GYBCQIQ/du7No+ULrBrjWc3q826ju8AqekySHtteKZclRmcHSNP4UEXcmTEMRNL
|
1GYBCQIQlp1TDaBVxalDkeCEjDMRFatgJ3CwulzzW9B8qywOooS0BNtNbtTKGwEh
|
||||||
8lMJYK0G3uA9FXO9+2E39k/nIatBGuoaukW7zCouB3bLARZE00Oqh6qHCWVyFJ/S
|
AxDL+wdeqkPABQ0wQ8hYGOw5z665jEOC2JbqbQ7N6LPQZRx/MowO2dGT/kKh2U9H
|
||||||
Gzwk8dC0wdc=
|
VOK1Bc67BzU=
|
||||||
=BWUr
|
=3z3V
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: 403215E0F99D2582C7055C512C77841620B8F380
|
fp: 403215E0F99D2582C7055C512C77841620B8F380
|
||||||
- created_at: "2024-01-22T00:20:17Z"
|
- created_at: "2024-01-24T12:19:03Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
hQIMA+X8PKo7gQeqARAAhtUvR20r2NV8SNWVuVSopTfCGwaJV99+PEp/l0UjHX6B
|
hQIMA9pmsZ2EWzFWAQ/9Gl4dO83SmvGHyhEfile6G9ZUmhxwU2RFpPwEmjh4CV/v
|
||||||
lpHgQNHegP6YEsAj5HNFEcV3vM+nbC0hbTtcERBZoxTkyDPOaRAyJpNfGniZVxxp
|
z1k2zgdF200a6tj96977VhjhIG/LZioEi41M1QdIqgkGsKy89DluCY9RDTqMmqzo
|
||||||
jxSr/unCN6aJCbdqJZZZlitq84brMQWUE373Rb9B4cNdTYONabZbzZmwTDyzkVR0
|
w65JhI+PQqdQuKlsbUh2VLql7LijoIUxuBPowWG1lULZtEvRuCchM5rLFiBSC2YO
|
||||||
ctjmkdBG0upqNn7vukSIg7DM7D9pFolS9142reF7e5jTlxBFWR1Jt+O9A1zypfvq
|
DA0T73kC2P89CNZlOllZNnVRCRrxm7IsEO6Mo1yOeJL16mYqC9qGGKnvYEbsSm4n
|
||||||
tK2z9C1pM9LDRmUrKJ/HOKwu6P6USeTKFrp7Gfjr1UkmbgNunxgsdI6gwKY38SpJ
|
7ZZJvxXGnNzaXisyyjcJNgtsJAUX4TTlPH+Y2jpkhdHUvOkiwVQEokmnqTIKUp0e
|
||||||
T+tELs68oC5pGFpZufnYkrGL313HC7Vp/+2+m+W5qXbyNqhDS6uVQHjqz/ROqByb
|
7Dc6ZXApFQ1DlMMsjLwy+5AQJQZbY4p4jo9rvmON5i5DLPy4rN5yf8W7zwkuy2gN
|
||||||
YwJw+x7810nL8+SleXst8oZpxDNDm+TnvWQAH6WiRBSpgVwy945SMvGG+1FLYps2
|
Id53gxDZxHw0+mRsfYRrdOvmfUqqz79TyWVV8bvHR2Mo3shdL1fsWOzTlm66Y9Vt
|
||||||
qOsRMjr+titLZAaUpmIh/oDHG/XOpKPQflcc4/V7t2HK6vLX+xvPIQU8Y5TJkr1T
|
4coJxgUsJEFdnsnXAFep2V18Ypg36b9wQXtZDXWtTg36UliZZ95sUAG2vHQDS50b
|
||||||
nIIh7sMZBUldnUGUfFE3ksP5Gje5OHqK8xoFwYHFGK4QQzXFjPFN2QNvni2z9Y4R
|
5XG07m1w8YgQSeiCObteAt4PqxEs1GYWmtRUmr4jvRQQzmVXCQP6+o0QJ5WK9bKl
|
||||||
LLMvyEavqgIa6AeseqMnLuB2hz6wy/JNU/EPUalNca6RleoVA0DjKgjgDTlhQ5Al
|
auwT+H7POBJ3l+h9ykvmOidkAzeN7EWIirzvhDHsxvCklGCyo+Y3W5ZaLaFGfc/3
|
||||||
a6sRTy+KmXFfzdO97MJJEkNgA1Hbi1/IpREeA50lYtrDqUvhxw+l1V8N7jw+ZWTS
|
pdj1G/REVT6aQMtSuYUsD7QoZeiNNBNJXAtUuUS6mWxch8RnkW718wxYZLvi03jS
|
||||||
VgHYyLUxdmOUsqEgQPVA7jiqWePwFEuEDEDVE+d6CcuvFuHFNV1jJEjit3R0wJOd
|
VgHaVWepbw/q0COmjyofCt1qZH+WMKSAguiQ6PHWAdP3hnzGgd7Qo84W54Fb3m1R
|
||||||
QpqnfxW4QTD+JFNJgrD7bj4y1Gu9Z6Lg1IBnHnOwDIoCJoAHp0y6
|
da72FFnILc3IYImbJI6QgJxAeS2K95nIWKdSix07c+m0zzFkemnB
|
||||||
=sy/X
|
=F0pC
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: 868497ac4266a4d137e0718ae5fc3caa3b8107aa
|
fp: e7370b48016c961ef8ad792fda66b19d845b3156
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.7.3
|
version: 3.8.1
|
||||||
|
|
|
@ -6,9 +6,7 @@
|
||||||
let
|
let
|
||||||
proxyMap = {
|
proxyMap = {
|
||||||
"sbruder.xyz" = "renge";
|
"sbruder.xyz" = "renge";
|
||||||
"nitter.sbruder.xyz" = "renge";
|
|
||||||
"iv.sbruder.xyz" = "renge";
|
"iv.sbruder.xyz" = "renge";
|
||||||
"libreddit.sbruder.xyz" = "renge";
|
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
# SPDX-FileCopyrightText: 2023-2024 Simon Bruder <simon@sbruder.de>
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
{ config, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
sbruder.static-webserver.vhosts = {
|
|
||||||
"maggus.bayern".user = {
|
|
||||||
name = "maggus";
|
|
||||||
keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAWGXaMijpnm3RSH/PIVxkBRDIi1f5nMW/aS26g3b71M nils"
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJEF8o2ezSEXwWoAcdoeJs+wsZM/u8x+vtRNU3FXOMIT nils"
|
|
||||||
] ++ config.sbruder.pubkeys.trustedKeys;
|
|
||||||
};
|
|
||||||
"arbeitskampf.work".user = {
|
|
||||||
name = "arbeitskampf";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -3,11 +3,7 @@
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
let
|
|
||||||
goneVhost = {
|
|
||||||
locations."~ .*".return = "303 'https://sbruder.xyz/#history'";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./blocks.nix
|
./blocks.nix
|
||||||
|
@ -58,7 +54,4 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.nginx.virtualHosts."nitter.sbruder.xyz" = goneVhost;
|
|
||||||
services.nginx.virtualHosts."libreddit.sbruder.xyz" = goneVhost;
|
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
|
@ -1,7 +1,9 @@
|
||||||
# SPDX-FileCopyrightText: 2024 Simon Bruder <simon@sbruder.de>
|
# SPDX-FileCopyrightText: 2023-2024 Simon Bruder <simon@sbruder.de>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
{ config, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
services.nginx.virtualHosts = {
|
services.nginx.virtualHosts = {
|
||||||
"brennende.autos" = {
|
"brennende.autos" = {
|
||||||
|
@ -19,6 +21,18 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
sbruder.static-webserver.vhosts = {
|
sbruder.static-webserver.vhosts = {
|
||||||
|
"arbeitskampf.work".user = {
|
||||||
|
name = "arbeitskampf";
|
||||||
|
};
|
||||||
|
|
||||||
|
"maggus.bayern".user = {
|
||||||
|
name = "maggus";
|
||||||
|
keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAWGXaMijpnm3RSH/PIVxkBRDIi1f5nMW/aS26g3b71M nils"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJEF8o2ezSEXwWoAcdoeJs+wsZM/u8x+vtRNU3FXOMIT nils"
|
||||||
|
] ++ config.sbruder.pubkeys.trustedKeys;
|
||||||
|
};
|
||||||
|
|
||||||
"psycho-power-papagei.de" = {
|
"psycho-power-papagei.de" = {
|
||||||
user.name = "papagei";
|
user.name = "papagei";
|
||||||
imprint.enable = true;
|
imprint.enable = true;
|
||||||
|
|
|
@ -15,7 +15,7 @@ let
|
||||||
addresses = {
|
addresses = {
|
||||||
vueko = [ "168.119.176.53" "2a01:4f8:c012:2f4::1" ];
|
vueko = [ "168.119.176.53" "2a01:4f8:c012:2f4::1" ];
|
||||||
renge = [ "152.53.13.113" "2a03:4000:6b:d2::1" ];
|
renge = [ "152.53.13.113" "2a03:4000:6b:d2::1" ];
|
||||||
okarin = [ "82.165.242.252" "2001:8d8:1800:8627::1" ];
|
okarin = [ "85.215.165.213" "2a01:239:24b:1c00::1" ];
|
||||||
yuzuru = [ "85.215.73.203" "2a02:247a:272:1600::1" ];
|
yuzuru = [ "85.215.73.203" "2a02:247a:272:1600::1" ];
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
@ -67,12 +67,7 @@ in
|
||||||
id = host;
|
id = host;
|
||||||
address = hostAddresses;
|
address = hostAddresses;
|
||||||
})
|
})
|
||||||
addresses) ++ lib.optional isPrimaryHost {
|
addresses);
|
||||||
id = "inwx";
|
|
||||||
# INWX only allows the specification of one primary DNS,
|
|
||||||
# which limits the IP protocol usable for zone transfers to one.
|
|
||||||
address = lib.singleton "185.181.104.96";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
(lib.mkIf isPrimaryHost {
|
(lib.mkIf isPrimaryHost {
|
||||||
policy = lib.singleton {
|
policy = lib.singleton {
|
||||||
|
@ -90,7 +85,7 @@ in
|
||||||
zonefile-load = "difference-no-serial";
|
zonefile-load = "difference-no-serial";
|
||||||
journal-content = "all";
|
journal-content = "all";
|
||||||
# secondary
|
# secondary
|
||||||
notify = [ "inwx" ] ++ secondaryHosts;
|
notify = secondaryHosts;
|
||||||
# dnssec
|
# dnssec
|
||||||
dnssec-signing = true;
|
dnssec-signing = true;
|
||||||
dnssec-policy = "default";
|
dnssec-policy = "default";
|
||||||
|
|
|
@ -60,12 +60,12 @@
|
||||||
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHUEVBJcEibRdQzp0bDXpPqLGQ8vtQTKTcpGZU07W4eo";
|
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHUEVBJcEibRdQzp0bDXpPqLGQ8vtQTKTcpGZU07W4eo";
|
||||||
};
|
};
|
||||||
okarin = {
|
okarin = {
|
||||||
hostNames = [ "okarin" "okarin.sbruder.xyz" "okarin.vpn.sbruder.de" ];
|
hostNames = [ "okarin" "okarin.sbruder.de" "okarin.vpn.sbruder.de" ];
|
||||||
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOaev8K5KhRovW75IdZ0HYlzvxxo0haeCM0xCVEOuDSa";
|
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJvRAiEAV0Oulii0w3xcHCb0/oHqpA0hz3bn//BQnR8T";
|
||||||
};
|
};
|
||||||
okarin-initrd = {
|
okarin-initrd = {
|
||||||
hostNames = [ "[okarin.sbruder.de]:2222" ];
|
hostNames = [ "[okarin.sbruder.de]:2222" ];
|
||||||
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINJbp0kZJEXf1gSVcBsef1Bihd5iCzhzSbjgyrC1SXXT";
|
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKOV+azRrT1zICmDe9D7bm3pOaFzaT+cVXCvxgY1bAbP";
|
||||||
};
|
};
|
||||||
shinobu = {
|
shinobu = {
|
||||||
hostNames = [ "shinobu" "shinobu.lan.shinonome-lab.de" "shinobu.vpn.sbruder.de" ];
|
hostNames = [ "shinobu" "shinobu.lan.shinonome-lab.de" "shinobu.vpn.sbruder.de" ];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: 2020-2023 Simon Bruder <simon@sbruder.de>
|
# SPDX-FileCopyrightText: 2020-2024 Simon Bruder <simon@sbruder.de>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
lm_sensors # temperature sensors
|
lm_sensors # temperature sensors
|
||||||
parted # partition manager
|
parted # partition manager
|
||||||
pciutils # lspci
|
pciutils # lspci
|
||||||
reptyr # move process to current terminal
|
(reptyr.overrideAttrs (o: o // { doCheck = false; })) # move process to current terminal # tests fail on qemu-user-aarch64 (TODO 24.05: remove)
|
||||||
smartmontools # hard drive monitoring
|
smartmontools # hard drive monitoring
|
||||||
tcpdump # package inspector
|
tcpdump # package inspector
|
||||||
tio # serial console
|
tio # serial console
|
||||||
|
|
|
@ -33,8 +33,8 @@ let
|
||||||
publicKey = "LscDAJR0IjOzNuwX3geYgcvxyvaNhAOc/ojgvGyunT8=";
|
publicKey = "LscDAJR0IjOzNuwX3geYgcvxyvaNhAOc/ojgvGyunT8=";
|
||||||
};
|
};
|
||||||
okarin = {
|
okarin = {
|
||||||
address = "10.80.0.10";
|
address = "10.80.0.14";
|
||||||
publicKey = "KjDdTOVZ9RadDrNjJ11BWsY8SNBmDbuNoKm72wh9uCk=";
|
publicKey = "QOxkngtrkuXVMZyqWeGKh2ozn3x7GJsxwrlKje7jDmA=";
|
||||||
};
|
};
|
||||||
shinobu = {
|
shinobu = {
|
||||||
address = "10.80.0.12";
|
address = "10.80.0.12";
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: 2022-2023 Simon Bruder <simon@sbruder.de>
|
# SPDX-FileCopyrightText: 2022-2024 Simon Bruder <simon@sbruder.de>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ buildGoModule rec {
|
||||||
|
|
||||||
vendorHash = "sha256-CMo6FBzw0/OMKEX12oNqhbF/0dRRFR6W3VRp+EU6Q68=";
|
vendorHash = "sha256-CMo6FBzw0/OMKEX12oNqhbF/0dRRFR6W3VRp+EU6Q68=";
|
||||||
|
|
||||||
oCheck = false; # no tests
|
doCheck = false; # no tests
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
|
|
|
@ -48,7 +48,6 @@ lib.mkIf cfg.enable {
|
||||||
pcsx2
|
pcsx2
|
||||||
] ++ lib.optionals (cfg.performanceIndex >= 8) [
|
] ++ lib.optionals (cfg.performanceIndex >= 8) [
|
||||||
unstable.ryujinx
|
unstable.ryujinx
|
||||||
unstable.yuzu-mainline
|
|
||||||
] ++ lib.optionals unfree.allowSoftware [
|
] ++ lib.optionals unfree.allowSoftware [
|
||||||
unstable.osu-lazer-sandbox
|
unstable.osu-lazer-sandbox
|
||||||
];
|
];
|
||||||
|
|
|
@ -73,6 +73,7 @@ lib.mkIf nixosConfig.sbruder.gui.enable {
|
||||||
|
|
||||||
# Lyrics
|
# Lyrics
|
||||||
lyrics_directory = "${config.services.mpd.musicDirectory}/lyrics";
|
lyrics_directory = "${config.services.mpd.musicDirectory}/lyrics";
|
||||||
|
follow_now_playing_lyrics = true;
|
||||||
|
|
||||||
# Misc
|
# Misc
|
||||||
external_editor = "nvim";
|
external_editor = "nvim";
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# SPDX-FileCopyrightText: 2020-2023 Simon Bruder <simon@sbruder.de>
|
# SPDX-FileCopyrightText: 2020-2024 Simon Bruder <simon@sbruder.de>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ in
|
||||||
haskell-language-server
|
haskell-language-server
|
||||||
jdt-language-server
|
jdt-language-server
|
||||||
unstable.ltex-ls
|
unstable.ltex-ls
|
||||||
rnix-lsp
|
nixd
|
||||||
rust-analyzer
|
rust-analyzer
|
||||||
(python3.withPackages (ps: with ps; [
|
(python3.withPackages (ps: with ps; [
|
||||||
pyls-isort
|
pyls-isort
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
-- SPDX-FileCopyrightText: 2018-2023 Simon Bruder <simon@sbruder.de>
|
-- SPDX-FileCopyrightText: 2018-2024 Simon Bruder <simon@sbruder.de>
|
||||||
--
|
--
|
||||||
-- SPDX-License-Identifier: AGPL-3.0-or-later
|
-- SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
@ -348,7 +348,7 @@ lsp.ltex.setup {
|
||||||
lsp.pylsp.setup {
|
lsp.pylsp.setup {
|
||||||
on_attach = on_attach,
|
on_attach = on_attach,
|
||||||
}
|
}
|
||||||
lsp.rnix.setup {
|
lsp.nixd.setup {
|
||||||
on_attach = on_attach,
|
on_attach = on_attach,
|
||||||
}
|
}
|
||||||
lsp.rust_analyzer.setup {
|
lsp.rust_analyzer.setup {
|
||||||
|
|
Loading…
Reference in a new issue