diff --git a/flake.nix b/flake.nix index bea3ecc..1c24d9b 100644 --- a/flake.nix +++ b/flake.nix @@ -41,12 +41,7 @@ }; nixosConfigurations = { - logos = mkSystem [ ./hosts/logos ./hardware/alrest ({...}: { - within.services.printerfacts = { - enable = true; - domain = "logos.shark-harmonic.ts.net"; - }; - }) ]; + logos = mkSystem [ ./hosts/logos ./hardware/alrest ]; # vms ## logos diff --git a/hardware/alrest/default.nix b/hardware/alrest/default.nix index 683cb93..b9dc84e 100644 --- a/hardware/alrest/default.nix +++ b/hardware/alrest/default.nix @@ -1,7 +1,7 @@ { config, pkgs, ... }: { - imports = [ ./hardware-configuration.nix ./zfs.nix ]; + imports = [ ./hardware-configuration.nix ./zfs.nix ./zrepl.nix ]; within.users.enableSystem = true; diff --git a/hardware/alrest/zrepl.nix b/hardware/alrest/zrepl.nix new file mode 100644 index 0000000..d722f1b --- /dev/null +++ b/hardware/alrest/zrepl.nix @@ -0,0 +1,51 @@ +{ config, pkgs, lib, ... }: + +{ + services.zrepl = { + enable = true; + settings = { + global = { + logging = [{ + type = "syslog"; + level = "info"; + format = "human"; + }]; + }; + + jobs = [{ + name = "backups"; + type = "push"; + connect = { + type = "tcp"; + address = "100.68.185.47:29491"; + }; + filesystems = { "rpool/safe<" = true; }; + send = { + #encrypted = true; + compressed = true; + raw = true; + }; + snapshotting = { + type = "periodic"; + prefix = "zrepl_"; + interval = "60m"; + }; + pruning = { + keep_sender = [ + { type = "not_replicated"; } + { + type = "last_n"; + count = 10; + } + ]; + keep_receiver = [{ + type = "grid"; + regex = "^zrepl_"; + grid = + lib.concatStringsSep " | " [ "1x1h(keep=all)" "24x1h" "30x1d" ]; + }]; + }; + }]; + }; + }; +} diff --git a/hosts/kos-mos/configuration.nix b/hosts/kos-mos/configuration.nix new file mode 100644 index 0000000..e59ba3a --- /dev/null +++ b/hosts/kos-mos/configuration.nix @@ -0,0 +1,41 @@ +{ config, pkgs, ... }: + +{ + imports = [ ./maisem.nix ]; + + services.corerad = { + enable = true; + settings = { + interfaces = [ + { + name = "virbr0"; + advertise = false; + prefix = [{ prefix = "fd69:420:e621:278a::/64"; }]; + } + { + name = "enp2s0"; + advertise = true; + prefix = [{ prefix = "fd69:420:e621::/64"; }]; + } + ]; + debug = { + address = "[::]:38177"; + prometheus = true; + }; + }; + }; + + users.motd = builtins.readFile ./motd; + environment.systemPackages = with pkgs; [ nodejs-14_x ]; + services.tailscale.port = 15428; + + # networking.interfaces."virbr0".ipv6.addresses = [{ + # address = "fda2:d982:1da2:278a::"; + # prefixLength = 64; + # }]; + + networking.interfaces."enp2s0".ipv6.addresses = [{ + address = "fd69:420:e621::fe34:97ff:fe0d:1ecd"; + prefixLength = 64; + }]; +} diff --git a/hosts/kos-mos/maisem.nix b/hosts/kos-mos/maisem.nix new file mode 100644 index 0000000..e5b04cd --- /dev/null +++ b/hosts/kos-mos/maisem.nix @@ -0,0 +1,11 @@ +{ config, pkgs, ... }: + +{ + users.users.maisem = { + isNormalUser = true; + shell = pkgs.zsh; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMm8WG2pzRbeTdNguEF9zmaj7bASf4YwXccAs5bVW14I" + ]; + }; +} diff --git a/hosts/kos-mos/motd b/hosts/kos-mos/motd new file mode 100644 index 0000000..9e6754e --- /dev/null +++ b/hosts/kos-mos/motd @@ -0,0 +1,9 @@ +█ █ +██ ██ +███ ███ +████████ + ██████ + ████ + ██ +KOS-MOS: Kosmos Obey Strategical Multiple Operation Systems +All systems operational