From 7e7c8947fc2ff5598124c4a4c18bd28432fa017e Mon Sep 17 00:00:00 2001 From: Collin Williams <96917990+bluedragon1221@users.noreply.github.com> Date: Mon, 8 Sep 2025 14:01:35 -0500 Subject: rework most of config; probably broke jupiter again; working to add ganymede (non-nixos) to this repo --- modules/services/nixos/audio.nix | 20 +++++++++++++++++ modules/services/nixos/bluetooth.nix | 19 ++++++++++++++++ modules/services/nixos/default.nix | 8 +++++++ modules/services/nixos/networking/default.nix | 18 +++++++++++++++ modules/services/nixos/networking/iwd.nix | 26 ++++++++++++++++++++++ .../services/nixos/networking/networkmanager.nix | 15 +++++++++++++ modules/services/nixos/tailscale.nix | 15 +++++++++++++ 7 files changed, 121 insertions(+) create mode 100644 modules/services/nixos/audio.nix create mode 100644 modules/services/nixos/bluetooth.nix create mode 100644 modules/services/nixos/default.nix create mode 100644 modules/services/nixos/networking/default.nix create mode 100644 modules/services/nixos/networking/iwd.nix create mode 100644 modules/services/nixos/networking/networkmanager.nix create mode 100644 modules/services/nixos/tailscale.nix (limited to 'modules/services/nixos') diff --git a/modules/services/nixos/audio.nix b/modules/services/nixos/audio.nix new file mode 100644 index 0000000..93f8289 --- /dev/null +++ b/modules/services/nixos/audio.nix @@ -0,0 +1,20 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.collinux.services.audio; +in + lib.mkIf cfg.enable { + security.rtkit.enable = true; + services.pipewire = { + enable = true; + wireplumber.enable = true; + alsa.enable = true; + + pulse.enable = cfg.pulse.enable; + }; + + environment.systemPackages = [pkgs.pwvucontrol]; + } diff --git a/modules/services/nixos/bluetooth.nix b/modules/services/nixos/bluetooth.nix new file mode 100644 index 0000000..a86b5b3 --- /dev/null +++ b/modules/services/nixos/bluetooth.nix @@ -0,0 +1,19 @@ +{ + pkgs, + lib, + config, + ... +}: let + cfg = config.collinux.services.bluetooth; +in + lib.mkIf cfg.enable { + hardware.bluetooth = { + enable = true; + powerOnBoot = true; + }; + + environment.systemPackages = [ + (lib.mkIf cfg.blueman.enable pkgs.blueman) + (lib.mkIf cfg.bluetuith.enable pkgs.bluetuith) + ]; + } diff --git a/modules/services/nixos/default.nix b/modules/services/nixos/default.nix new file mode 100644 index 0000000..b9ae4c7 --- /dev/null +++ b/modules/services/nixos/default.nix @@ -0,0 +1,8 @@ +{ + imports = [ + ./networking + ./audio.nix + ./bluetooth.nix + ./tailscale.nix + ]; +} diff --git a/modules/services/nixos/networking/default.nix b/modules/services/nixos/networking/default.nix new file mode 100644 index 0000000..68c794c --- /dev/null +++ b/modules/services/nixos/networking/default.nix @@ -0,0 +1,18 @@ +{ + imports = [ + ./iwd.nix + ./networkmanager.nix + ]; + + config = { + services.resolved = { + enable = true; + domains = [ + "10.0.0.1" + "10.0.0.10" + ]; + }; + + networking.resolvconf.enable = false; + }; +} diff --git a/modules/services/nixos/networking/iwd.nix b/modules/services/nixos/networking/iwd.nix new file mode 100644 index 0000000..d081792 --- /dev/null +++ b/modules/services/nixos/networking/iwd.nix @@ -0,0 +1,26 @@ +{ + lib, + config, + ... +}: let + cfg = config.collinux.services.networking; +in + lib.mkIf (cfg.enable && cfg.iwd.enable) { + networking = { + wireless.iwd = { + enable = true; + settings = { + General = { + EnableNetworkConfiguration = true; # use builtin dhcp client + AddressRandomization = "once"; + }; + Network.NameResolvingService = "systemd"; # either systemd or resolvconf + }; + }; + + # Disable default networking stuff + dhcpcd.enable = false; + useDHCP = false; + networkmanager.enable = false; + }; + } diff --git a/modules/services/nixos/networking/networkmanager.nix b/modules/services/nixos/networking/networkmanager.nix new file mode 100644 index 0000000..f22f922 --- /dev/null +++ b/modules/services/nixos/networking/networkmanager.nix @@ -0,0 +1,15 @@ +{ + lib, + config, + ... +}: let + cfg = config.collinux.services.networking; +in + lib.mkIf (cfg.enable && cfg.networkmanager.enable) { + networking = { + nameservers = ["1.1.1.1" "1.0.0.1"]; + enableIPv6 = false; + + networkmanager.enable = true; + }; + } diff --git a/modules/services/nixos/tailscale.nix b/modules/services/nixos/tailscale.nix new file mode 100644 index 0000000..3fbd691 --- /dev/null +++ b/modules/services/nixos/tailscale.nix @@ -0,0 +1,15 @@ +{ + config, + pkgs, + lib, + ... +}: let + cfg = config.collinux.services.networking.tailscale; +in + lib.mkIf cfg.enable { + services.tailscale = { + enable = true; + useRoutingFeatures = "both"; + }; + environment.systemPackages = [pkgs.tailscale]; + } -- cgit v1.3.1 From 27a46e998c503fe70c4f3011b1b77e5a86d21ce7 Mon Sep 17 00:00:00 2001 From: Collin Williams <96917990+bluedragon1221@users.noreply.github.com> Date: Tue, 9 Sep 2025 20:40:13 -0500 Subject: various "debloating" --- hosts/mercury/config.nix | 2 +- hosts/mercury/nixos.nix | 6 +++++- modules/boot/nixos/default.nix | 2 ++ modules/services/nixos/audio.nix | 2 +- modules/services/nixos/networking/iwd.nix | 1 + 5 files changed, 10 insertions(+), 3 deletions(-) (limited to 'modules/services/nixos') diff --git a/hosts/mercury/config.nix b/hosts/mercury/config.nix index 4b5ac0d..a80a871 100644 --- a/hosts/mercury/config.nix +++ b/hosts/mercury/config.nix @@ -67,7 +67,7 @@ boot = { systemd-boot.enable = true; - plymouth.enable = true; + # plymouth.enable = true; secureBoot.enable = true; }; }; diff --git a/hosts/mercury/nixos.nix b/hosts/mercury/nixos.nix index 5b1b113..9e59671 100644 --- a/hosts/mercury/nixos.nix +++ b/hosts/mercury/nixos.nix @@ -1,4 +1,5 @@ { + lib, pkgs, inputs, ... @@ -16,16 +17,19 @@ fonts = { enableDefaultPackages = false; + fontDir.enable = true; packages = with pkgs; [ ibm-plex nerd-fonts.iosevka ]; }; + services.speechd.enable = lib.mkForce false; # idk, im not disabled + environment.defaultPackages = lib.mkForce []; # im not a noob + networking.firewall.allowedUDPPorts = [445]; networking.firewall.allowedTCPPorts = [8000]; users.users.collin.packages = [pkgs.cifs-utils]; - fonts.fontDir.enable = true; system.stateVersion = "25.05"; } diff --git a/modules/boot/nixos/default.nix b/modules/boot/nixos/default.nix index 53f18be..66f31fc 100644 --- a/modules/boot/nixos/default.nix +++ b/modules/boot/nixos/default.nix @@ -12,9 +12,11 @@ in { boot = { + bcache.enable = false; # why is this default on? I DON'T CARE ABOUT bcache initrd = { verbose = false; systemd.enable = true; + checkJournalingFS = false; }; loader = { systemd-boot = lib.optionalAttrs (cfg.systemd-boot.enable && !cfg.secureBoot.enable) { diff --git a/modules/services/nixos/audio.nix b/modules/services/nixos/audio.nix index 93f8289..273f1a4 100644 --- a/modules/services/nixos/audio.nix +++ b/modules/services/nixos/audio.nix @@ -7,7 +7,7 @@ cfg = config.collinux.services.audio; in lib.mkIf cfg.enable { - security.rtkit.enable = true; + security.rtkit.enable = false; services.pipewire = { enable = true; wireplumber.enable = true; diff --git a/modules/services/nixos/networking/iwd.nix b/modules/services/nixos/networking/iwd.nix index d081792..441498d 100644 --- a/modules/services/nixos/networking/iwd.nix +++ b/modules/services/nixos/networking/iwd.nix @@ -23,4 +23,5 @@ in useDHCP = false; networkmanager.enable = false; }; + systemd.network.enable = lib.mkForce false; } -- cgit v1.3.1 From 8244bb48b9dbd3358aa6d47209dfbfd3c19b906f Mon Sep 17 00:00:00 2001 From: Collin Williams <96917990+bluedragon1221@users.noreply.github.com> Date: Sun, 14 Sep 2025 13:57:10 -0500 Subject: fantasy config if ganymede did run nixos (I wish) --- hosts/ganymede/config.nix | 36 ++++++++++++++++++++++++ hosts/ganymede/disks.nix | 40 +++++++++++++++++++++++++++ hosts/ganymede/nixos.nix | 8 ++++++ hosts/ganymede/system.nix | 8 ------ modules/services/nixos/default.nix | 1 + modules/services/nixos/selfhost/default.nix | 5 ++++ modules/services/nixos/selfhost/navidrome.nix | 19 +++++++++++++ modules/services/options.nix | 17 ++++++++---- 8 files changed, 120 insertions(+), 14 deletions(-) create mode 100644 hosts/ganymede/config.nix create mode 100644 hosts/ganymede/disks.nix create mode 100644 hosts/ganymede/nixos.nix delete mode 100644 hosts/ganymede/system.nix create mode 100644 modules/services/nixos/selfhost/default.nix create mode 100644 modules/services/nixos/selfhost/navidrome.nix (limited to 'modules/services/nixos') diff --git a/hosts/ganymede/config.nix b/hosts/ganymede/config.nix new file mode 100644 index 0000000..62abd56 --- /dev/null +++ b/hosts/ganymede/config.nix @@ -0,0 +1,36 @@ +{ + collinux = { + user = { + name = "collin"; + password = "$y$j9T$08yFysn8jr9K4Wk.hYXbG0$NzY9vIbNknJViA..Jw.vF8wmQtBgEZZU.cdLQOmDvU2"; + }; + + terminal = { + programs = { + git = { + enable = true; + userName = "Collin Williams"; + userEmail = "96917990+bluedragon1221@users.noreply.github.com"; + }; + }; + }; + + boot.systemd-boot.enable = true; + + services = { + networking = { + enable = true; + networkmanager.enable = true; + }; + + audio = { + enable = true; + pulse.enable = true; + }; + + selfhost = { + navidrome.enable = true; + }; + }; + }; +} diff --git a/hosts/ganymede/disks.nix b/hosts/ganymede/disks.nix new file mode 100644 index 0000000..b701fda --- /dev/null +++ b/hosts/ganymede/disks.nix @@ -0,0 +1,40 @@ +{ + disko.enableConfig = true; + disko.devices = { + disk.main = { + device = "/dev/nvme0n1"; + type = "disk"; + content = { + type = "gpt"; + partitions = { + ESP = { + type = "EF00"; + size = "1G"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + mountOptions = ["umask=0077"]; + }; + }; + media = { + size = "100G"; + content = { + type = "filesystem"; + format = "xfs"; + mountpoint = "/media"; + }; + }; + root = { + size = "100%"; + content = { + type = "filesystem"; + format = "ext4"; + mountpoint = "/"; + }; + }; + }; + }; + }; + }; +} diff --git a/hosts/ganymede/nixos.nix b/hosts/ganymede/nixos.nix new file mode 100644 index 0000000..bdede45 --- /dev/null +++ b/hosts/ganymede/nixos.nix @@ -0,0 +1,8 @@ +{inputs, ...}: { + # imports = [ + # inputs.disko.nixosModules.disko + # ./disks.nix + # ]; + + nixpkgs.hostPlatform = "x86_64-linux"; +} diff --git a/hosts/ganymede/system.nix b/hosts/ganymede/system.nix deleted file mode 100644 index 7eb2e74..0000000 --- a/hosts/ganymede/system.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: { - nixpkgs.hostPlatform = "x86_64-linux"; -} diff --git a/modules/services/nixos/default.nix b/modules/services/nixos/default.nix index b9ae4c7..d177b88 100644 --- a/modules/services/nixos/default.nix +++ b/modules/services/nixos/default.nix @@ -4,5 +4,6 @@ ./audio.nix ./bluetooth.nix ./tailscale.nix + ./selfhost ]; } diff --git a/modules/services/nixos/selfhost/default.nix b/modules/services/nixos/selfhost/default.nix new file mode 100644 index 0000000..03dbe4f --- /dev/null +++ b/modules/services/nixos/selfhost/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./navidrome.nix + ]; +} diff --git a/modules/services/nixos/selfhost/navidrome.nix b/modules/services/nixos/selfhost/navidrome.nix new file mode 100644 index 0000000..5250b85 --- /dev/null +++ b/modules/services/nixos/selfhost/navidrome.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + ... +}: let + cfg = config.collinux.services.selfhost.navidrome; +in + lib.mkIf cfg.enable { + services.navidrome = { + enable = true; + inherit (cfg) user; + settings = { + Port = 4533; + Address = "0.0.0.0"; + EnableInsightsCollector = false; + MusicFolder = "/home/${cfg.user}/Music"; + }; + }; + } diff --git a/modules/services/options.nix b/modules/services/options.nix index ddf6f58..b887395 100644 --- a/modules/services/options.nix +++ b/modules/services/options.nix @@ -11,12 +11,7 @@ in { enable = mkEnableOption "wifi"; iwd.enable = mkEnableOption "lightweight wifi daemon"; networkmanager.enable = mkEnableOption "heavier wifi daemon"; - tailscale = { - enable = mkEnableOption "tailscale"; - authKeyFile = mkOption { - type = "path"; - }; - }; + tailscale.enable = mkEnableOption "tailscale"; }; audio = { enable = mkEnableOption "pipewire + wireplumber"; @@ -28,6 +23,16 @@ in { blueman.enable = mkEnableOption "graphical bluetooth manager"; bluetuith.enable = mkEnableOption "terminal bluetooth manager"; }; + + selfhost = { + navidrome = { + enable = mkEnableOption "navidrome music server"; + user = mkOption { + description = "user to run the service as"; + default = config.collinux.user.name; + }; + }; + }; }; }; -- cgit v1.3.1