nixos-config/hosts/chunk/default.nix

201 lines
4.3 KiB
Nix
Raw Normal View History

2024-12-15 01:58:51 -05:00
{
2024-12-15 01:59:29 -05:00
config,
lib,
pkgs,
...
2024-12-19 02:32:58 -05:00
}:
{
2024-12-15 01:59:29 -05:00
imports = [
../common.nix
2024-12-30 23:44:48 -05:00
../zsh.nix
2024-12-30 18:06:16 -05:00
./hardware-configuration.nix
2024-12-30 22:13:45 -05:00
./backup.nix
./rclone.nix
2024-12-15 02:44:50 -05:00
./postgres.nix
./wireguard.nix
./adguard.nix
./hedgedoc.nix
./miniflux.nix
./redlib.nix
./vaultwarden.nix
./wireguard.nix
./grafana.nix
2025-01-05 00:42:57 -05:00
./conduwuit.nix
./immich.nix
2024-12-23 21:11:08 -05:00
./element.nix
./attic.nix
2025-01-10 01:27:05 -05:00
./forgejo.nix
./garage.nix
2024-12-15 01:59:29 -05:00
];
sops.age.keyFile = "/root/.config/sops/age/keys.txt";
sops.secrets = {
"borg/rsyncnet" = {
sopsFile = ../../secrets/borg/chunk.yaml;
};
"services/ntfy" = {
sopsFile = ../../secrets/services/ntfy.yaml;
};
2024-12-26 19:30:22 -05:00
"rclone/config" = {
sopsFile = ../../secrets/rclone.yaml;
};
"vaultwarden/env" = {
sopsFile = ../../secrets/services/vaultwarden.yaml;
};
"caddy/env" = {
sopsFile = ../../secrets/services/caddy.yaml;
};
"hedgedoc/env" = {
sopsFile = ../../secrets/services/hedgedoc.yaml;
};
"wireguard/private" = {
sopsFile = ../../secrets/wireguard/chunk.yaml;
};
"wireguard/psk-yt" = {
sopsFile = ../../secrets/wireguard/chunk.yaml;
};
"wireguard/psk-phone" = {
sopsFile = ../../secrets/wireguard/chunk.yaml;
};
"miniflux/env" = {
sopsFile = ../../secrets/services/miniflux.yaml;
};
2024-12-20 18:43:11 -05:00
"rsyncnet/id_ed25519" = {
2025-01-06 19:10:07 -05:00
sopsFile = ../../secrets/zh5061/chunk.yaml;
2024-12-20 18:43:11 -05:00
};
2025-01-05 05:42:52 -05:00
"attic/env" = {
sopsFile = ../../secrets/services/attic.yaml;
};
"garage/env" = {
sopsFile = ../../secrets/services/garage.yaml;
};
};
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/vda";
system.stateVersion = "24.05";
2024-12-15 02:44:50 -05:00
# network stuff
networking.hostName = "chunk";
networking.networkmanager.enable = true;
networking.firewall = {
enable = true;
2024-12-19 02:32:58 -05:00
allowedTCPPorts = [
22
80
443
53
853
];
allowedUDPPorts = [
443
51820
53
853
]; # 51820 is wireguard
trustedInterfaces = [ "wg0" ];
};
networking.interfaces.ens18 = {
2024-12-15 01:59:29 -05:00
ipv6.addresses = [
{
address = "2a0f:85c1:840:2bfb::1";
prefixLength = 64;
}
];
2024-12-15 18:42:50 -05:00
ipv4.addresses = [
{
address = "31.59.129.225";
prefixLength = 24;
}
];
};
networking.defaultGateway6 = {
address = "2a0f:85c1:840::1";
interface = "ens18";
};
2024-12-15 18:42:50 -05:00
networking.defaultGateway = {
address = "31.59.129.1";
interface = "ens18";
};
i18n.defaultLocale = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
useXkbConfig = true;
};
users.users.yt = {
2024-12-19 02:32:58 -05:00
extraGroups = [
"wheel"
"networkmanager"
"podman"
];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPdhAQYy0+vS+QmyCd0MAbqbgzyMGcsuuFyf6kg2yKge yt@ytlinux"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINyn2+OoRN4nExti+vFQ1NHEZip0slAoCH9C5/FzvgZD yt@ytnix"
2024-12-19 02:32:58 -05:00
];
};
2024-12-19 02:32:58 -05:00
users.users.root.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPdhAQYy0+vS+QmyCd0MAbqbgzyMGcsuuFyf6kg2yKge yt@ytlinux"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINyn2+OoRN4nExti+vFQ1NHEZip0slAoCH9C5/FzvgZD yt@ytnix"
2024-12-19 02:32:58 -05:00
];
2025-01-10 01:27:05 -05:00
# for forgejo
users.users.git = {
2025-01-10 01:37:57 -05:00
isNormalUser = true;
home = "/var/lib/forgejo";
2025-01-10 01:27:05 -05:00
group = "git";
};
2025-01-10 23:17:27 -05:00
users.groups.git = { };
environment.systemPackages = with pkgs; [
vim
wget
curl
tree
tmux
file
sops
2025-01-05 20:19:16 -05:00
attic-server
];
environment.variables = {
EDITOR = "nvim";
VISUAL = "nvim";
};
services.openssh = {
enable = true;
settings.PasswordAuthentication = false;
};
security.sudo.enable = true;
security.sudo.wheelNeedsPassword = false;
programs.gnupg.agent.enable = true;
programs.git.enable = true;
services.caddy = {
enable = true;
2024-12-13 22:01:01 -05:00
configFile = ./Caddyfile;
environmentFile = config.sops.secrets."caddy/env".path;
logFormat = lib.mkForce "level INFO";
};
2024-12-17 00:55:28 -05:00
# container stuff
2024-12-17 02:09:57 -05:00
virtualisation.containers.enable = true;
virtualisation.podman = {
2024-12-17 00:55:28 -05:00
enable = true;
# create 'docker' alias for podman, to use as
# drop-in replacement
dockerCompat = true;
2024-12-17 02:09:57 -05:00
defaultNetwork.settings = {
dns_enabled = true;
ipv6_enabled = true;
};
2024-12-17 00:55:28 -05:00
};
virtualisation.oci-containers.backend = "podman";
}