summaryrefslogtreecommitdiff
path: root/machines/radon
diff options
context:
space:
mode:
authorKleidi Bujari <mail@4kb.net>2025-01-24 12:14:23 -0500
committerKleidi Bujari <mail@4kb.net>2025-01-24 12:14:23 -0500
commit32f4cb5cbba313b7af2fce46139c04d9469cb72a (patch)
tree3cc7da05d4320a8f89a726d67811110771dae1bf /machines/radon
parent8271e2b89180578ab4dd9ed9eb37142254e5a148 (diff)
downloaddepot-32f4cb5cbba313b7af2fce46139c04d9469cb72a.tar.gz
depot-32f4cb5cbba313b7af2fce46139c04d9469cb72a.tar.bz2
depot-32f4cb5cbba313b7af2fce46139c04d9469cb72a.zip
25-jan sprint
Diffstat (limited to 'machines/radon')
-rw-r--r--machines/radon/default.nix50
-rw-r--r--machines/radon/jellyfin.nix34
-rw-r--r--machines/radon/pxeboot.nix48
3 files changed, 132 insertions, 0 deletions
diff --git a/machines/radon/default.nix b/machines/radon/default.nix
new file mode 100644
index 0000000..839ee6d
--- /dev/null
+++ b/machines/radon/default.nix
@@ -0,0 +1,50 @@
+{ lib, inputs, ... }:
+let
+ gitKeys = builtins.fetchurl {
+ url = "https://github.com/kbujari.keys";
+ sha256 = "0fpa679zkrpx77vangzf3gnidwvmky8ifivn8411xx6albrikaqx";
+ };
+
+ inherit (inputs.nixos-hardware.nixosModules)
+ common-cpu-intel
+ common-gpu-intel
+ ;
+in
+{
+ imports = [
+ common-cpu-intel
+ common-gpu-intel
+ ./jellyfin.nix
+ ./pxeboot.nix
+ ];
+
+ system.stateVersion = "24.11";
+ networking.hostName = "radon";
+
+ users.users.root.initialPassword = "hello";
+
+ users.groups.media.gid = 2000;
+
+ boot.zfs.pools.radon.devNodes = "/dev/disk/by-id/";
+ boot.zfs.extraPools = [ "radon" ];
+
+ services.nfs.server.enable = true;
+
+ xnet = {
+ disk = {
+ enable = true;
+ device = "/dev/nvme0n1";
+ };
+ net = {
+ join = [ "plaza" ];
+ interface = "enp1s0";
+ sshd.enable = true;
+ };
+ nginx.enable = true;
+ gitServer = {
+ enable = true;
+ gitweb.enable = true;
+ keys = lib.splitString "\n" (builtins.readFile gitKeys);
+ };
+ };
+}
diff --git a/machines/radon/jellyfin.nix b/machines/radon/jellyfin.nix
new file mode 100644
index 0000000..7d3a96a
--- /dev/null
+++ b/machines/radon/jellyfin.nix
@@ -0,0 +1,34 @@
+{ config, ... }:
+let
+ inherit (config.services) jellyfin;
+in
+{
+ services.jellyfin.enable = true;
+
+ users.groups.media.members = [ jellyfin.user ];
+
+ xnet.persist = [
+ {
+ path = jellyfin.cacheDir;
+ user = jellyfin.user;
+ group = jellyfin.group;
+ mode = "0750";
+ }
+ {
+ path = jellyfin.dataDir;
+ user = jellyfin.user;
+ group = jellyfin.group;
+ mode = "0750";
+ }
+ {
+ path = jellyfin.configDir;
+ user = jellyfin.user;
+ group = jellyfin.group;
+ mode = "0750";
+ }
+ ];
+
+ services.nginx.virtualHosts."mov.4kb.net" = {
+ locations."/".proxyPass = "http://localhost:8096";
+ };
+}
diff --git a/machines/radon/pxeboot.nix b/machines/radon/pxeboot.nix
new file mode 100644
index 0000000..4d897c3
--- /dev/null
+++ b/machines/radon/pxeboot.nix
@@ -0,0 +1,48 @@
+{ pkgs, lib, ... }:
+let
+ installer = lib.nixosSystem {
+ system = "x86_64-linux";
+ modules = [
+ ({ config, pkgs, lib, modulesPath, ... }: {
+ imports = [
+ (modulesPath + "/installer/netboot/netboot-minimal.nix")
+ (modulesPath + "/installer/cd-dvd/channel.nix")
+ ];
+
+ services.openssh = {
+ enable = true;
+ openFirewall = true;
+ settings = {
+ PasswordAuthentication = false;
+ KbdInteractiveAuthentication = false;
+ };
+ };
+
+ nix.settings = {
+ experimental-features = [ "nix-command" "flakes" ];
+ };
+
+ users.users.root.openssh.authorizedKeys.keys = [
+ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP7T2uWJFUu8aFZZgQusGKyEMocb2pKbHLDad2eIJus9"
+ ];
+ })
+ ];
+ };
+
+ inherit (installer.config.system) build;
+in
+{
+ services.pixiecore = {
+ enable = true;
+ openFirewall = true;
+ kernel = "${build.kernel}/bzImage";
+ initrd = "${build.netbootRamdisk}/initrd";
+ cmdLine = "init=${build.toplevel}/init loglevel=4";
+ mode = "boot";
+ port = 8001;
+ statusPort = 8001;
+
+ # Piggyback on existing network DHCP
+ dhcpNoBind = true;
+ };
+}