2023-09-20 18:44:24 +01:00
|
|
|
{
|
|
|
|
tree,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}: let
|
|
|
|
inherit (lib.lists) forEach;
|
|
|
|
in {
|
|
|
|
imports = with tree;
|
|
|
|
[
|
|
|
|
presets.nixos.serverBase
|
|
|
|
presets.nixos.serverHetzner
|
|
|
|
presets.nixos.serverEncryptedDrive
|
|
|
|
|
2023-09-21 05:06:27 +01:00
|
|
|
profiles.nginx
|
|
|
|
profiles.firewallAllow.httpCommon
|
2023-09-20 18:44:24 +01:00
|
|
|
|
2024-05-25 21:10:26 +01:00
|
|
|
# profiles.chaosInternalWireGuard
|
2023-09-20 18:44:24 +01:00
|
|
|
|
|
|
|
./hardware.nix
|
|
|
|
./secrets.nix
|
|
|
|
]
|
|
|
|
++ (forEach [
|
2023-09-21 05:06:27 +01:00
|
|
|
"social"
|
|
|
|
"storage"
|
2023-10-02 03:08:24 +01:00
|
|
|
"postgresql"
|
2023-09-21 05:06:27 +01:00
|
|
|
"mail"
|
2023-09-30 12:37:07 +01:00
|
|
|
"forgejo"
|
2023-10-10 22:22:54 +01:00
|
|
|
"caldav"
|
2023-10-31 19:40:51 +00:00
|
|
|
"jellyfin"
|
2024-02-08 20:21:35 +00:00
|
|
|
"grocy"
|
2024-05-24 20:07:25 +01:00
|
|
|
"vault-ca"
|
2024-05-25 21:10:26 +01:00
|
|
|
"music"
|
|
|
|
# "owncast"
|
|
|
|
# TODO: "rss"
|
2023-09-20 18:44:24 +01:00
|
|
|
] (name: ./containers + "/${name}"))
|
2023-09-21 05:06:27 +01:00
|
|
|
++ (with hosts.hetzner-arm.profiles; [
|
2023-09-30 15:34:06 +01:00
|
|
|
staticSites
|
2023-09-20 18:44:24 +01:00
|
|
|
]);
|
|
|
|
|
2024-05-25 21:10:26 +01:00
|
|
|
# TODO: environment.noXlibs = true;
|
|
|
|
|
|
|
|
nixpkgs.overlays = [
|
|
|
|
(_final: prev: {
|
|
|
|
# So we don't need to build all Vault
|
|
|
|
# when we already are using vault-bin on this server
|
|
|
|
vault = prev.vault-bin;
|
|
|
|
|
|
|
|
# Have no need for HW Accel, hoping it works with this
|
|
|
|
jellyfin-ffmpeg = prev.ffmpeg_6-headless;
|
|
|
|
|
|
|
|
ffmpeg = prev.ffmpeg-headless;
|
|
|
|
ffmpeg_4 = prev.ffmpeg_4-headless;
|
|
|
|
ffmpeg_5 = prev.ffmpeg_5-headless;
|
|
|
|
ffmpeg_6 = prev.ffmpeg_6-headless;
|
|
|
|
ffmpeg_7 = prev.ffmpeg_7-headless;
|
|
|
|
|
|
|
|
mpd = prev.mpd-headless;
|
|
|
|
})
|
|
|
|
];
|
|
|
|
|
|
|
|
# TODO: system.forbiddenDependenciesRegexes = ["libX11*"];
|
|
|
|
|
2023-09-20 18:44:24 +01:00
|
|
|
# For Containers
|
|
|
|
networking.nat = {
|
|
|
|
enable = true;
|
|
|
|
internalInterfaces = ["ve-+"];
|
|
|
|
externalInterface = "enp1s0";
|
|
|
|
};
|
|
|
|
|
|
|
|
networking.hostName = "hetzner-arm";
|
|
|
|
|
2024-05-25 21:10:26 +01:00
|
|
|
home-manager.users.root.home.stateVersion = "24.05";
|
|
|
|
system.stateVersion = "24.05";
|
2023-09-20 18:44:24 +01:00
|
|
|
}
|