nixos/hosts/architect/default.nix

139 lines
4.5 KiB
Nix
Raw Normal View History

2021-07-13 09:53:22 +01:00
{ config, pkgs, ... }:
2021-07-01 01:02:55 +01:00
2021-07-01 14:15:16 +01:00
with import ./network.nix;
2021-07-03 23:43:52 +01:00
let
2021-07-01 11:28:28 +01:00
pubkeys = ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC1we38/N+t8Ah5yrLof8QUwhrob7/VXFKIddaJeOVBLuDVnW7ljiAtdtEiL69D/DV4Ohmt5wMvkAAjfuHmim6FD9A6lzPbSU4KH9W2dcckszKbbI636kuDwem/xui6BW3wJa6P+0xW5ksygEAkzcK2PXuC2b4B9uwhuUdKahiGMKDxISG/WianqAe72cGMfNkYvion3Y1VsMLUdm48d2ABnxNpr7NI9B5iJ8dziOft9gpgfz13CCQRlReo75gk/4xI+vSNrQp7eR+wzJy2/dZg/T8jtyA9Q6jVxrxBpqQ1LNXkAKaJkGo9OabF6Wgpzp+YTAurL4nwR2NaJxwFuyoKvACQy0ai4jrS3206gC6JXZv8ktZMZrwUN+jPqCwfgh5qObFkAqKCxbp52ioDek2MQLdOvzQBX//DBhGEp5rzHGLZ3vhRIiiQiaof5sF5zWiYDW5mqezSPNxJPX/BrTP/Wbs/jpwTLBh3wytiia0S1WXQmya89bqzTPFiDWvTRA62EVKB/JaQtPQQOFAxWwg799DMycPeZ81xttZOyMtI/MZSddyqx2S8fWGwvToZQvuZ38mSIpFseLM1IkgabRIrAmat5SBNGGy9Dqa0eMEa7bwIY/4CMB1y6HMTnaoMXA6cnQfHMoB/zyTZ6oTXIeqeOyiZsK+RN0Mvahj8mXi7dw== giulio@giulio-X230"];
2021-07-07 10:45:37 +01:00
hostname = "architect";
2021-07-03 23:43:52 +01:00
in
{
imports =
[ # Include the results of the hardware scan.
2021-08-07 12:38:18 +01:00
./backup.nix
2021-07-03 23:43:52 +01:00
./hardware.nix
./firewall.nix
2021-07-07 10:45:37 +01:00
./nginx.nix
2021-07-07 13:13:19 +01:00
./gitea.nix
./sonarr.nix
./radarr.nix
./bazarr.nix
./nzbget.nix
2021-07-13 09:53:22 +01:00
./nextcloud.nix
./wireguard.nix
./minio.nix
2021-08-07 12:38:18 +01:00
./matrix.nix
./fail2ban.nix
2021-08-23 19:01:35 +01:00
./dns.nix
./minecraft.nix
./prowlarr.nix
./plex.nix
./transmission.nix
2021-11-19 10:39:04 +00:00
./githubrunner.nix
2021-07-03 23:43:52 +01:00
];
time.timeZone = "Europe/Rome";
system.stateVersion = "21.05"; # Did you read the comment?
users.users.giulio.openssh.authorizedKeys.keys = pubkeys;
2021-07-13 09:53:22 +01:00
fileSystems."/tmp" = {
device = "tmpfs";
fsType = "tmpfs";
options = ["size=20G"];
};
2021-07-03 23:43:52 +01:00
boot = {
2021-07-07 13:13:19 +01:00
kernelParams = ["ip=${architect-lan}::10.0.0.1:255.255.255.0::${wan-if}:off"];
2021-07-13 09:53:22 +01:00
kernel.sysctl."net.ipv4.ip_forward" = 1;
2021-07-03 23:43:52 +01:00
initrd = {
availableKernelModules = ["igc" "r8169"];
network = {
enable = true;
ssh = {
enable = true;
port = 22;
hostKeys = [/boot/ssh_host_rsa_key];
authorizedKeys = pubkeys;
};
postCommands = ''
zpool import backedpool
zpool import zpool
mkdir /mnt-root
echo "zfs load-key -ar; mount -t zfs zpool/nixos/root /mnt-root; zfs load-key -a; umount /mnt-root; rmdir /mnt-root; killall zfs" >> /root/.profile
'';
2021-07-01 01:05:43 +01:00
};
2021-07-03 23:43:52 +01:00
};
2021-07-01 01:05:43 +01:00
2021-07-03 23:43:52 +01:00
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
2021-07-01 01:02:55 +01:00
};
2021-07-03 23:43:52 +01:00
supportedFilesystems = ["zfs"];
2021-08-07 12:38:18 +01:00
zfs.enableUnstable = true;
2021-07-03 23:43:52 +01:00
zfs.requestEncryptionCredentials = true;
2021-07-01 01:05:43 +01:00
};
2021-07-03 23:43:52 +01:00
networking = {
hostName = hostname;
hostId = "49350853";
useDHCP = false;
defaultGateway = "10.0.0.1";
interfaces = {
2021-07-07 13:13:19 +01:00
enp5s0.ipv4.addresses = [{ address = architect-lan; prefixLength = 24; }];
2021-07-03 23:43:52 +01:00
enp6s0.useDHCP = false;
wlp4s0.useDHCP = false;
};
extraHosts = ''
127.0.0.1 ${hostname}.devs.giugl.io localhost
2021-07-03 23:43:52 +01:00
2021-07-07 10:45:37 +01:00
# LAN
${architect-lan} ${hostname}.devs.giugl.io
2021-07-03 23:43:52 +01:00
2021-07-07 13:13:19 +01:00
${dvr-lan} dvr.devs.giugl.io
${nas-lan} nas.devs.giugl.io
2021-08-07 12:38:18 +01:00
${giupi-lan} giupi.devs.giugl.io
2021-07-07 13:13:19 +01:00
2021-07-07 10:45:37 +01:00
# Blacklist
2021-07-03 23:43:52 +01:00
0.0.0.0 metrics.plex.tv
0.0.0.0 analytics.plex.tv
0.0.0.0 cdn.luckyorange.com
0.0.0.0 w1.luckyorange.com
0.0.0.0 browser.sentry-cdn.com
0.0.0.0 analytics.facebook.com
0.0.0.0 ads.facebook.com
0.0.0.0 extmaps-api.yandex.net
0.0.0.0 logservice.hicloud.com
0.0.0.0 logbak.hicloud.com
0.0.0.0 logservice1.hicloud.com
0.0.0.0 samsung-com.112.2o7.net
0.0.0.0 supportmetrics.apple.com
0.0.0.0 analytics.oneplus.cn
0.0.0.0 click.oneplus.cn
0.0.0.0 analytics-api.samsunghealthcn.com
'';
2021-07-01 01:05:43 +01:00
};
environment.systemPackages = with pkgs; [ cudatoolkit ];
2021-07-03 23:43:52 +01:00
hardware = {
cpu.amd.updateMicrocode = true;
opengl.enable = true;
opengl.extraPackages= with pkgs; [vaapiVdpau];
opengl.driSupport = true;
};
2021-07-01 01:05:43 +01:00
2021-07-03 23:43:52 +01:00
services = {
zfs.autoScrub.enable = true;
xserver.videoDrivers = [ "nvidia" ];
2021-07-07 13:13:19 +01:00
openssh.enable = true;
smartd.enable = true;
2021-07-03 23:43:52 +01:00
};
2021-07-07 10:45:37 +01:00
environment.variables = {
LIBVA_DRIVER_NAME="vdpau";
2021-07-01 01:05:43 +01:00
};
2021-07-03 23:43:52 +01:00
}