nixfiles/hosts/hetzner-arm/hetzner-arm.nix

75 lines
1.4 KiB
Nix
Raw Normal View History

2023-09-20 18:44:24 +01:00
{
tree,
lib,
...
}: let
2024-07-24 14:32:44 +01:00
inherit (lib.lists) forEach flatten;
2023-09-20 18:44:24 +01:00
in {
2024-07-24 14:32:44 +01:00
imports = flatten (with tree; [
(with tree.presets.nixos; [
serverBase
serverHetzner
serverEncryptedDrive
])
2023-09-20 18:44:24 +01:00
2024-07-24 14:32:44 +01:00
profiles.nixos.nginx
2023-09-20 18:44:24 +01:00
2024-07-24 14:32:44 +01:00
(forEach [
"storage"
"mail"
"jellyfin"
2023-09-20 18:44:24 +01:00
] (name: ./containers + "/${name}"))
2024-07-24 14:32:44 +01:00
(with hosts.hetzner-arm.profiles; [
staticSites
gotosocial
2024-07-20 12:58:45 +01:00
forgejo
2024-07-20 13:11:15 +01:00
mpd
2024-07-20 13:23:50 +01:00
radicale
2024-07-21 20:51:30 +01:00
vault
restic
2024-07-24 14:32:44 +01:00
])
./hardware.nix
./secrets.nix
]);
2023-09-20 18:44:24 +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;
})
];
2023-09-20 18:44:24 +01:00
# For Containers
networking.nat = {
enable = true;
internalInterfaces = ["ve-+"];
externalInterface = "enp1s0";
};
2024-07-24 14:13:59 +01:00
networking.firewall = {
allowedTCPPorts = [80 443];
allowedUDPPorts = [80 443];
};
2023-09-20 18:44:24 +01:00
networking.hostName = "hetzner-arm";
home-manager.users.root.home.stateVersion = "24.05";
system.stateVersion = "24.05";
2023-09-20 18:44:24 +01:00
}