added more servers waow :3
This commit is contained in:
parent
75152e3d89
commit
7bdf539d5a
9 changed files with 408 additions and 75 deletions
|
|
@ -1,8 +1,11 @@
|
|||
{...}: {
|
||||
{pkgs, ...}: {
|
||||
nix.settings = {
|
||||
trusted-users = ["root" "@wheel"];
|
||||
};
|
||||
|
||||
# default kernel to use
|
||||
boot.kernelPackages = pkgs.linuxPackages_6_12;
|
||||
|
||||
security = {
|
||||
sudo = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
};
|
||||
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_6_12;
|
||||
# kernel is defined in `groups/servers/default.nix`
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi.canTouchEfiVariables = true;
|
||||
|
|
@ -123,6 +123,14 @@
|
|||
];
|
||||
};
|
||||
|
||||
programs = {
|
||||
nh = {
|
||||
enable = true;
|
||||
clean.enable = true;
|
||||
clean.extraArgs = "--keep-since 14d --keep 8";
|
||||
};
|
||||
};
|
||||
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
neovim
|
||||
|
|
|
|||
|
|
@ -1,17 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
{pkgs, ...}: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
networking.hostName = "delphinus";
|
||||
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
# kernel is defined in `groups/servers/default.nix`
|
||||
kernelParams = ["console=ttyS0,19200n8"];
|
||||
|
||||
loader = {
|
||||
timeout = 10;
|
||||
grub = {
|
||||
|
|
@ -27,15 +22,28 @@
|
|||
};
|
||||
};
|
||||
|
||||
networking.hostName = "delphinus";
|
||||
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
useDHCP = false;
|
||||
usePredictableInterfaceNames = false;
|
||||
useDHCP = false;
|
||||
|
||||
interfaces.eth0 = {
|
||||
useDHCP = true;
|
||||
|
||||
# linode expects ipv6 privacy extensions to be disabled:
|
||||
# https://www.linode.com/docs/guides/manual-network-configuration/#static-vs-dynamic-addressing
|
||||
tempAddress = "disabled";
|
||||
};
|
||||
|
||||
nftables.enable = true;
|
||||
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [6767];
|
||||
allowedTCPPorts = [
|
||||
4070
|
||||
];
|
||||
allowedUDPPorts = [];
|
||||
};
|
||||
};
|
||||
|
|
@ -48,38 +56,51 @@
|
|||
keyMap = "us";
|
||||
};
|
||||
|
||||
users.users.fox = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel"];
|
||||
packages = with pkgs; [
|
||||
tree
|
||||
];
|
||||
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPGwai/gXJOJZQujpk0BSwdjSe2as3pT567bYhzjaQ4M aurora@nixarawrui"
|
||||
];
|
||||
};
|
||||
|
||||
services = {
|
||||
openssh = {
|
||||
enable = true;
|
||||
|
||||
ports = [6767];
|
||||
ports = [4070];
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
PermitRootLogin = "no";
|
||||
AllowUsers = ["fox"];
|
||||
UseDns = false; # disable rDNS lookup
|
||||
AllowUsers = ["foxora"];
|
||||
UseDns = false; # enables rDNS lookup
|
||||
X11Forwarding = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
neovim
|
||||
git
|
||||
wget
|
||||
];
|
||||
users.users.foxora = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel"];
|
||||
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPGwai/gXJOJZQujpk0BSwdjSe2as3pT567bYhzjaQ4M aurora@nixarawrui"
|
||||
];
|
||||
|
||||
packages = with pkgs; [];
|
||||
};
|
||||
|
||||
programs = {
|
||||
nh = {
|
||||
enable = true;
|
||||
clean.enable = true;
|
||||
clean.extraArgs = "--keep-since 7d --keep 3";
|
||||
};
|
||||
};
|
||||
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
neovim
|
||||
git
|
||||
wget
|
||||
];
|
||||
|
||||
variables = {
|
||||
EDITOR = "nvim";
|
||||
};
|
||||
};
|
||||
|
||||
system.stateVersion = "25.11";
|
||||
}
|
||||
|
|
@ -1,26 +1,31 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "virtio_pci" "virtio_scsi" "ahci" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.initrd.availableKernelModules = ["virtio_pci" "virtio_scsi" "ahci" "sd_mod"];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = ["virtio_net"];
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/sda";
|
||||
fsType = "ext4";
|
||||
};
|
||||
fileSystems."/" = {
|
||||
device = "/dev/sda";
|
||||
fsType = "ext4";
|
||||
autoResize = true;
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/sdb"; }
|
||||
];
|
||||
swapDevices = [
|
||||
{device = "/dev/sdb";}
|
||||
];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
}
|
||||
|
|
|
|||
106
hosts/lunata/default.nix
Normal file
106
hosts/lunata/default.nix
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
{pkgs, ...}: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
boot = {
|
||||
# kernel is defined in `groups/servers/default.nix`
|
||||
kernelParams = ["console=ttyS0,19200n8"];
|
||||
|
||||
loader = {
|
||||
timeout = 10;
|
||||
grub = {
|
||||
enable = true;
|
||||
forceInstall = true;
|
||||
device = "nodev";
|
||||
extraConfig = ''
|
||||
serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1;
|
||||
terminal_input serial;
|
||||
terminal_output serial
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
networking.hostName = "lunata";
|
||||
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
usePredictableInterfaceNames = false;
|
||||
useDHCP = false;
|
||||
|
||||
interfaces.eth0 = {
|
||||
useDHCP = true;
|
||||
|
||||
# linode expects ipv6 privacy extensions to be disabled:
|
||||
# https://www.linode.com/docs/guides/manual-network-configuration/#static-vs-dynamic-addressing
|
||||
tempAddress = "disabled";
|
||||
};
|
||||
|
||||
nftables.enable = true;
|
||||
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [
|
||||
4070
|
||||
];
|
||||
allowedUDPPorts = [];
|
||||
};
|
||||
};
|
||||
|
||||
time.timeZone = "Europe/London";
|
||||
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
console = {
|
||||
font = "Lat2-Terminus16";
|
||||
keyMap = "us";
|
||||
};
|
||||
|
||||
services = {
|
||||
openssh = {
|
||||
enable = true;
|
||||
|
||||
ports = [4070];
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
PermitRootLogin = "no";
|
||||
AllowUsers = ["foxora"];
|
||||
UseDns = false; # enables rDNS lookup
|
||||
X11Forwarding = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
users.users.foxora = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel"];
|
||||
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDyGwJ782W9Bk9u9kFqY6Ky8KxOvwna32dppOcAgT8n9 aurora@nixarawrui"
|
||||
];
|
||||
|
||||
packages = with pkgs; [];
|
||||
};
|
||||
|
||||
programs = {
|
||||
nh = {
|
||||
enable = true;
|
||||
clean.enable = true;
|
||||
clean.extraArgs = "--keep-since 7d --keep 3";
|
||||
};
|
||||
};
|
||||
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
neovim
|
||||
git
|
||||
wget
|
||||
];
|
||||
|
||||
variables = {
|
||||
EDITOR = "nvim";
|
||||
};
|
||||
};
|
||||
|
||||
system.stateVersion = "25.11";
|
||||
}
|
||||
31
hosts/lunata/hardware-configuration.nix
Normal file
31
hosts/lunata/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = ["virtio_pci" "virtio_scsi" "ahci" "sd_mod"];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = ["virtio_net"];
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/sda";
|
||||
fsType = "ext4";
|
||||
autoResize = true;
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{device = "/dev/sdb";}
|
||||
];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
}
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
};
|
||||
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_6_12;
|
||||
# kernel is defined in `groups/servers/default.nix`
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi.canTouchEfiVariables = true;
|
||||
|
|
@ -51,7 +51,6 @@
|
|||
virtualisation = {
|
||||
podman = {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
||||
defaultNetwork.settings.dns_enabled = true;
|
||||
};
|
||||
};
|
||||
|
|
@ -74,7 +73,6 @@
|
|||
enable = true;
|
||||
clean.enable = true;
|
||||
clean.extraArgs = "--keep-since 14d --keep 8";
|
||||
flake = "/etc/nixos";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
134
snow.nix
134
snow.nix
|
|
@ -42,6 +42,69 @@ cerulean.mkNexus ./. (self: {
|
|||
|
||||
{
|
||||
microvm.vms = {
|
||||
equinox = {
|
||||
autostart = true;
|
||||
|
||||
config = {config, ...}: {
|
||||
imports = [./vms/equinox/default.nix];
|
||||
|
||||
networking.hostName = "equinox";
|
||||
|
||||
microvm = {
|
||||
hypervisor = "qemu";
|
||||
mem = 48 * 1024; # 48GB
|
||||
vcpu = 16;
|
||||
|
||||
interfaces = [
|
||||
{
|
||||
type = "tap";
|
||||
id = "vm-equinox";
|
||||
mac = "0a:00:a0:70:01:02";
|
||||
}
|
||||
];
|
||||
|
||||
writableStoreOverlay = "/nix/.rw-store";
|
||||
|
||||
volumes = [
|
||||
{
|
||||
image = "data.img";
|
||||
mountPoint = "/home/foxora";
|
||||
autoCreate = true;
|
||||
size = 256 * 1024; # 256GB
|
||||
}
|
||||
{
|
||||
image = "nix-store-overlay.img";
|
||||
mountPoint = config.microvm.writableStoreOverlay;
|
||||
size = 8 * 1024; # 8GB
|
||||
}
|
||||
];
|
||||
|
||||
shares = [
|
||||
{
|
||||
# shares the host's nix store with the vm
|
||||
# to prevent huge images
|
||||
source = "/nix/store";
|
||||
mountPoint = "/nix/.ro-store";
|
||||
tag = "ro-store";
|
||||
proto = "virtiofs";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
systemd.network.enable = true;
|
||||
systemd.network.networks."20-lan" = {
|
||||
matchConfig.Type = "ether";
|
||||
networkConfig = {
|
||||
Address = ["10.16.1.42/24"];
|
||||
Gateway = "10.16.1.1";
|
||||
DNS = ["10.16.1.1"];
|
||||
IPv6AcceptRA = true;
|
||||
DHCP = "yes";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home-assistant = {
|
||||
autostart = true;
|
||||
|
||||
|
|
@ -50,30 +113,13 @@ cerulean.mkNexus ./. (self: {
|
|||
|
||||
networking.hostName = "home-assistant";
|
||||
|
||||
boot.kernelParams = [
|
||||
"console=ttyS0"
|
||||
"console=ttyS1"
|
||||
"8250.nr_uarts=2"
|
||||
];
|
||||
systemd.services."serial-getty@ttyS1".enable = true;
|
||||
|
||||
microvm = {
|
||||
hypervisor = "qemu";
|
||||
|
||||
# needed to get interface working
|
||||
qemu.extraArgs = [
|
||||
"-monitor"
|
||||
"unix:/var/lib/microvms/home-assistant/monitor.sock,server,nowait"
|
||||
"-chardev"
|
||||
"socket,id=serial1,path=/var/lib/microvms/home-assistant/serial.sock,server=on,wait=off"
|
||||
"-serial"
|
||||
"chardev:serial1"
|
||||
];
|
||||
|
||||
# memory cannot be 2GB so i doubled it and used 4GB:
|
||||
# https://github.com/microvm-nix/microvm.nix/issues/171
|
||||
# TODO: can be fixed by turning off acpi in qemu
|
||||
mem = 4096; # 4GB
|
||||
mem = 4 * 1024; # 4GB
|
||||
vcpu = 2;
|
||||
|
||||
interfaces = [
|
||||
|
|
@ -85,11 +131,23 @@ cerulean.mkNexus ./. (self: {
|
|||
];
|
||||
|
||||
volumes = [
|
||||
#{
|
||||
#image = "/var/lib/microvms/home-assistant/data.img";
|
||||
#mountPoint = "/var/lib/hass";
|
||||
#autoCreate = false;
|
||||
#}
|
||||
{
|
||||
image = "/var/lib/microvms/home-assistant/data.img";
|
||||
mountPoint = "/var/lib/hass";
|
||||
autoCreate = true;
|
||||
size = 32 * 1024; # 32GB
|
||||
}
|
||||
];
|
||||
|
||||
shares = [
|
||||
{
|
||||
# shares the host's nix store with the vm
|
||||
# to prevent huge images
|
||||
source = "/nix/store";
|
||||
mountPoint = "/nix/.ro-store";
|
||||
tag = "ro-store";
|
||||
proto = "virtiofs";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
|
|
@ -130,6 +188,36 @@ cerulean.mkNexus ./. (self: {
|
|||
user = "foxora";
|
||||
};
|
||||
};
|
||||
|
||||
lunata = {
|
||||
system = "x86_64-linux";
|
||||
|
||||
groups = [
|
||||
groups.servers
|
||||
];
|
||||
|
||||
deploy.ssh = {
|
||||
remoteBuild = false;
|
||||
host = "176.58.114.228";
|
||||
port = 4070;
|
||||
user = "foxora";
|
||||
};
|
||||
};
|
||||
|
||||
delphinus = {
|
||||
system = "x86_64-linux";
|
||||
|
||||
groups = [
|
||||
groups.servers
|
||||
];
|
||||
|
||||
deploy.ssh = {
|
||||
remoteBuild = false;
|
||||
host = "172.233.47.244";
|
||||
port = 4070;
|
||||
user = "foxora";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
})
|
||||
|
|
|
|||
73
vms/equinox/default.nix
Normal file
73
vms/equinox/default.nix
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
{pkgs, ...}: {
|
||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||
|
||||
networking = {
|
||||
useNetworkd = false;
|
||||
networkmanager.enable = false;
|
||||
useDHCP = false;
|
||||
|
||||
nftables.enable = true;
|
||||
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [
|
||||
2222
|
||||
];
|
||||
allowedUDPPorts = [];
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
openssh = {
|
||||
enable = true;
|
||||
|
||||
ports = [2222];
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
PermitRootLogin = "no";
|
||||
AllowUsers = ["foxora"];
|
||||
UseDns = false; # enables rDNS lookup
|
||||
X11Forwarding = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
virtualisation.containers.enable = true;
|
||||
virtualisation = {
|
||||
podman = {
|
||||
enable = true;
|
||||
defaultNetwork.settings.dns_enabled = true;
|
||||
};
|
||||
};
|
||||
|
||||
users.users.foxora = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel"];
|
||||
|
||||
packages = with pkgs; [
|
||||
tree
|
||||
];
|
||||
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBVzP3nOFprtX2Gpeq0myQXC0kifNCLmpVaxjELfRFlQ aurora@nixarawrui"
|
||||
];
|
||||
};
|
||||
|
||||
# ensures that the mount for "/home/foxora" has the correct permissions
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /home/foxora 0700 foxora users -"
|
||||
];
|
||||
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
neovim
|
||||
wget
|
||||
];
|
||||
|
||||
variables = {
|
||||
EDITOR = "nvim";
|
||||
};
|
||||
};
|
||||
|
||||
system.stateVersion = "25.11";
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue