From c74025b92b9b6fd4172f3e1ebb501392cd3e1a1d Mon Sep 17 00:00:00 2001 From: intergrav Date: Mon, 17 Aug 2026 02:33:43 -0400 Subject: [PATCH] reorganize --- hosts/darwin/bluellama/default.nix | 15 +-- hosts/darwin/bluellama/programs/default.nix | 14 +++ hosts/darwin/bluellama2/default.nix | 6 +- hosts/darwin/bluellama2/programs/default.nix | 3 + hosts/darwin/d-macbook/default.nix | 62 +---------- .../darwin/d-macbook/home-manager/default.nix | 6 + .../d-macbook/home-manager/devin/default.nix | 3 + .../{users => home-manager}/devin/restray.nix | 4 +- hosts/darwin/d-macbook/programs/default.nix | 60 ++++++++++ hosts/darwin/d-macbook/users/default.nix | 6 - hosts/darwin/default.nix | 12 +- hosts/default.nix | 8 +- hosts/nixos/bluepill-proxy/default.nix | 3 +- hosts/nixos/bluepill-proxy/services/caddy.nix | 103 ++++++------------ .../nixos/bluepill-proxy/services/default.nix | 6 + .../nixos/bluepill-proxy/services/tinysub.nix | 1 + hosts/nixos/bluepill/default.nix | 2 +- hosts/nixos/bluepill/home-manager/default.nix | 3 + .../{users => home-manager}/devin/beets.nix | 7 +- .../bluepill/home-manager/devin/default.nix | 3 + hosts/nixos/bluepill/programs/msmtp.nix | 8 +- .../bluepill/services/betterthanadventure.nix | 27 ----- .../bluepill/services/docker-mikusmp69.nix | 60 ---------- .../services/docker-newbeginnings7.nix | 64 ----------- .../bluepill/services/docker-ourcity.nix | 30 +++-- .../bluepill/services/docker-server2.nix | 32 ++++-- hosts/nixos/bluepill/services/gonic.nix | 6 +- hosts/nixos/bluepill/services/ipod-sync.nix | 5 +- hosts/nixos/bluepill/services/matrix.nix | 17 ++- hosts/nixos/bluepill/services/navidrome.nix | 10 +- hosts/nixos/bluepill/services/nix-serve.nix | 3 +- hosts/nixos/bluepill/services/restray.nix | 16 ++- hosts/nixos/bluepill/services/samba.nix | 6 +- hosts/nixos/bluepill/services/slskd.nix | 14 ++- hosts/nixos/bluepill/services/tangled.nix | 13 ++- .../nixos/bluepill/services/tranquil-pds.nix | 10 +- .../nixos/bluepill/services/transmission.nix | 5 +- hosts/nixos/bluepill/users/default.nix | 3 - hosts/nixos/d-latitude/default.nix | 58 +--------- .../nixos/d-latitude/home-manager/default.nix | 5 + hosts/nixos/d-latitude/programs/default.nix | 43 ++++++++ hosts/nixos/d-latitude/services/default.nix | 10 ++ hosts/nixos/d-latitude/users/default.nix | 5 - hosts/nixos/default.nix | 15 ++- hosts/topology.nix | 27 +++++ modules/darwin/services/default.nix | 3 + modules/home-manager/users/devin/default.nix | 28 +++++ .../users/devin/desktop/default.nix | 0 .../users/devin/desktop/mail.nix | 5 +- .../users/devin/programs/default.nix | 0 .../users/devin/programs/direnv.nix | 0 .../users/devin/programs/fastfetch.nix | 0 .../users/devin/programs/fish.nix | 0 .../users/devin/programs/git.nix | 0 .../users/devin/programs/jujutsu.nix | 0 .../users/devin/programs/neovim.nix | 0 .../users/devin/programs/tmux.nix | 0 modules/nixos/default.nix | 1 - .../cachyos-kernel.nix} | 0 modules/nixos/{ => profiles}/server.nix | 0 modules/nixos/programs/default.nix | 4 +- modules/users/devin/default.nix | 28 ----- 62 files changed, 413 insertions(+), 475 deletions(-) create mode 100644 hosts/darwin/bluellama/programs/default.nix create mode 100644 hosts/darwin/bluellama2/programs/default.nix create mode 100644 hosts/darwin/d-macbook/home-manager/default.nix create mode 100644 hosts/darwin/d-macbook/home-manager/devin/default.nix rename hosts/darwin/d-macbook/{users => home-manager}/devin/restray.nix (95%) create mode 100644 hosts/darwin/d-macbook/programs/default.nix delete mode 100644 hosts/darwin/d-macbook/users/default.nix create mode 100644 hosts/nixos/bluepill-proxy/services/default.nix create mode 100644 hosts/nixos/bluepill/home-manager/default.nix rename hosts/nixos/bluepill/{users => home-manager}/devin/beets.nix (90%) create mode 100644 hosts/nixos/bluepill/home-manager/devin/default.nix delete mode 100644 hosts/nixos/bluepill/services/betterthanadventure.nix delete mode 100644 hosts/nixos/bluepill/services/docker-mikusmp69.nix delete mode 100644 hosts/nixos/bluepill/services/docker-newbeginnings7.nix delete mode 100644 hosts/nixos/bluepill/users/default.nix create mode 100644 hosts/nixos/d-latitude/home-manager/default.nix create mode 100644 hosts/nixos/d-latitude/programs/default.nix create mode 100644 hosts/nixos/d-latitude/services/default.nix delete mode 100644 hosts/nixos/d-latitude/users/default.nix create mode 100644 hosts/topology.nix create mode 100644 modules/darwin/services/default.nix create mode 100644 modules/home-manager/users/devin/default.nix rename modules/{ => home-manager}/users/devin/desktop/default.nix (100%) rename modules/{ => home-manager}/users/devin/desktop/mail.nix (97%) rename modules/{ => home-manager}/users/devin/programs/default.nix (100%) rename modules/{ => home-manager}/users/devin/programs/direnv.nix (100%) rename modules/{ => home-manager}/users/devin/programs/fastfetch.nix (100%) rename modules/{ => home-manager}/users/devin/programs/fish.nix (100%) rename modules/{ => home-manager}/users/devin/programs/git.nix (100%) rename modules/{ => home-manager}/users/devin/programs/jujutsu.nix (100%) rename modules/{ => home-manager}/users/devin/programs/neovim.nix (100%) rename modules/{ => home-manager}/users/devin/programs/tmux.nix (100%) rename modules/nixos/{cachyos.nix => profiles/cachyos-kernel.nix} (100%) rename modules/nixos/{ => profiles}/server.nix (100%) diff --git a/hosts/darwin/bluellama/default.nix b/hosts/darwin/bluellama/default.nix index a56a30e..d9a0786 100644 --- a/hosts/darwin/bluellama/default.nix +++ b/hosts/darwin/bluellama/default.nix @@ -1,18 +1,5 @@ { - homebrew = { - brews = [ - { - name = "colima"; - restart_service = "always"; - } - "docker" - "docker-credential-helper" - "docker-compose" - ]; - casks = [ - "exo" - ]; - }; + imports = [./programs]; networking = { hostName = "bluellama"; diff --git a/hosts/darwin/bluellama/programs/default.nix b/hosts/darwin/bluellama/programs/default.nix new file mode 100644 index 0000000..b4aa7ae --- /dev/null +++ b/hosts/darwin/bluellama/programs/default.nix @@ -0,0 +1,14 @@ +{ + homebrew = { + brews = [ + { + name = "colima"; + restart_service = "always"; + } + "docker" + "docker-credential-helper" + "docker-compose" + ]; + casks = ["exo"]; + }; +} diff --git a/hosts/darwin/bluellama2/default.nix b/hosts/darwin/bluellama2/default.nix index 6476d3c..9c76e09 100644 --- a/hosts/darwin/bluellama2/default.nix +++ b/hosts/darwin/bluellama2/default.nix @@ -1,9 +1,5 @@ { - homebrew = { - casks = [ - "exo" - ]; - }; + imports = [./programs]; networking = { hostName = "bluellama2"; diff --git a/hosts/darwin/bluellama2/programs/default.nix b/hosts/darwin/bluellama2/programs/default.nix new file mode 100644 index 0000000..f9cfe2b --- /dev/null +++ b/hosts/darwin/bluellama2/programs/default.nix @@ -0,0 +1,3 @@ +{ + homebrew.casks = ["exo"]; +} diff --git a/hosts/darwin/d-macbook/default.nix b/hosts/darwin/d-macbook/default.nix index 94608eb..07b7ce3 100644 --- a/hosts/darwin/d-macbook/default.nix +++ b/hosts/darwin/d-macbook/default.nix @@ -1,65 +1,9 @@ { - pkgs, - inputs, - ... -}: { - imports = [./users]; - - environment.systemPackages = with pkgs; [ - cinny-desktop - dorion - ghostty-bin - godot - grandperspective - iina - inkscape - keka - meshlab - motrix-next - net-news-wire - obsidian - prismlauncher - signal-desktop - tailscale-gui - transmission_4 - utm - - inputs.restray.packages.${pkgs.stdenv.hostPlatform.system}.default + imports = [ + ./programs + ./home-manager ]; - fonts.packages = with pkgs; [ - maple-mono.NF-unhinted - ]; - - homebrew = { - # cask is used for things that aren't in nixpkgs - casks = [ - "affinity" - "bambu-studio" - "font-sf-compact" - "font-sf-mono" - "font-sf-pro" - "fuse-t" - "hammerspoon" - "helium-browser" - "hytale" - "linearmouse" - "moonlight" - "mpluginmanager" - "musescore" - "rnnoise" - "roblox" - "robloxstudio" - "rockboxutility" - "sf-symbols" - "steam" - "valhalla-freq-echo" - "valhalla-space-modulator" - "valhalla-supermassive" - "zed" - ]; - }; - networking.hostName = "d-macbook"; system.stateVersion = 6; } diff --git a/hosts/darwin/d-macbook/home-manager/default.nix b/hosts/darwin/d-macbook/home-manager/default.nix new file mode 100644 index 0000000..ccb3e34 --- /dev/null +++ b/hosts/darwin/d-macbook/home-manager/default.nix @@ -0,0 +1,6 @@ +{inputs, ...}: { + home-manager.users.devin.imports = [ + (inputs.self + "/modules/home-manager/users/devin/desktop") + ./devin + ]; +} diff --git a/hosts/darwin/d-macbook/home-manager/devin/default.nix b/hosts/darwin/d-macbook/home-manager/devin/default.nix new file mode 100644 index 0000000..4d8aa76 --- /dev/null +++ b/hosts/darwin/d-macbook/home-manager/devin/default.nix @@ -0,0 +1,3 @@ +{ + imports = [./restray.nix]; +} diff --git a/hosts/darwin/d-macbook/users/devin/restray.nix b/hosts/darwin/d-macbook/home-manager/devin/restray.nix similarity index 95% rename from hosts/darwin/d-macbook/users/devin/restray.nix rename to hosts/darwin/d-macbook/home-manager/devin/restray.nix index e3a02b0..c729bf7 100644 --- a/hosts/darwin/d-macbook/users/devin/restray.nix +++ b/hosts/darwin/d-macbook/home-manager/devin/restray.nix @@ -5,11 +5,11 @@ ... }: { age.secrets.restray-bluepill-rest = { - file = ../../../../../secrets/restray-bluepill-rest.age; + file = inputs.self + "/secrets/restray-bluepill-rest.age"; path = "${config.home.homeDirectory}/.local/state/agenix/restray-bluepill-rest"; }; age.secrets.restray-onedrive = { - file = ../../../../../secrets/restray-onedrive.age; + file = inputs.self + "/secrets/restray-onedrive.age"; path = "${config.home.homeDirectory}/.local/state/agenix/restray-onedrive"; }; diff --git a/hosts/darwin/d-macbook/programs/default.nix b/hosts/darwin/d-macbook/programs/default.nix new file mode 100644 index 0000000..5647429 --- /dev/null +++ b/hosts/darwin/d-macbook/programs/default.nix @@ -0,0 +1,60 @@ +{ + inputs, + pkgs, + ... +}: { + environment.systemPackages = with pkgs; [ + cinny-desktop + dorion + ghostty-bin + godot + grandperspective + iina + inkscape + keka + meshlab + motrix-next + net-news-wire + obsidian + prismlauncher + signal-desktop + tailscale-gui + transmission_4 + utm + + inputs.restray.packages.${pkgs.stdenv.hostPlatform.system}.default + ]; + + fonts.packages = with pkgs; [ + maple-mono.NF-unhinted + ]; + + homebrew = { + # cask is used for things that aren't in nixpkgs + casks = [ + "affinity" + "bambu-studio" + "font-sf-compact" + "font-sf-mono" + "font-sf-pro" + "fuse-t" + "hammerspoon" + "helium-browser" + "hytale" + "linearmouse" + "moonlight" + "mpluginmanager" + "musescore" + "rnnoise" + "roblox" + "robloxstudio" + "rockboxutility" + "sf-symbols" + "steam" + "valhalla-freq-echo" + "valhalla-space-modulator" + "valhalla-supermassive" + "zed" + ]; + }; +} diff --git a/hosts/darwin/d-macbook/users/default.nix b/hosts/darwin/d-macbook/users/default.nix deleted file mode 100644 index 666f07f..0000000 --- a/hosts/darwin/d-macbook/users/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - home-manager.users.devin.imports = [ - ../../../../modules/users/devin/desktop - ./devin/restray.nix - ]; -} diff --git a/hosts/darwin/default.nix b/hosts/darwin/default.nix index b281143..2e64542 100644 --- a/hosts/darwin/default.nix +++ b/hosts/darwin/default.nix @@ -1,15 +1,19 @@ -{inputs}: +{ + inputs, + topology, +}: inputs.nixpkgs.lib.mapAttrs ( host: extraModules: inputs.nix-darwin.lib.darwinSystem { system = "aarch64-darwin"; - specialArgs = {inherit inputs;}; + specialArgs = {inherit inputs topology;}; modules = [./${host}] ++ [ ../../modules/common ../../modules/darwin ../../modules/users/devin + ../../modules/home-manager/users/devin ] ++ extraModules; } @@ -17,10 +21,10 @@ inputs.nixpkgs.lib.mapAttrs ( d-macbook = []; bluellama = [ - ../../modules/darwin/services/tailscaled.nix + ../../modules/darwin/services ]; bluellama2 = [ - ../../modules/darwin/services/tailscaled.nix + ../../modules/darwin/services ]; } diff --git a/hosts/default.nix b/hosts/default.nix index 558476f..6037fab 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -1,4 +1,6 @@ -{inputs}: { - darwinConfigurations = import ./darwin {inherit inputs;}; - nixosConfigurations = import ./nixos {inherit inputs;}; +{inputs}: let + topology = import ./topology.nix; +in { + darwinConfigurations = import ./darwin {inherit inputs topology;}; + nixosConfigurations = import ./nixos {inherit inputs topology;}; } diff --git a/hosts/nixos/bluepill-proxy/default.nix b/hosts/nixos/bluepill-proxy/default.nix index d853aee..0bf31ec 100644 --- a/hosts/nixos/bluepill-proxy/default.nix +++ b/hosts/nixos/bluepill-proxy/default.nix @@ -1,8 +1,7 @@ { imports = [ ./hardware.nix - ./services/caddy.nix - ./services/tinysub.nix + ./services ]; networking = { diff --git a/hosts/nixos/bluepill-proxy/services/caddy.nix b/hosts/nixos/bluepill-proxy/services/caddy.nix index 6c144fe..7392b07 100644 --- a/hosts/nixos/bluepill-proxy/services/caddy.nix +++ b/hosts/nixos/bluepill-proxy/services/caddy.nix @@ -1,22 +1,23 @@ -{pkgs, ...}: { +{ + pkgs, + topology, + ... +}: let + bluepill = topology.bluepill; +in { networking.firewall = { allowedTCPPorts = [ 80 443 - 6167 - 22 - 25565 - 23343 - 21121 + bluepill.services.server2.tcp + bluepill.services.ourcity.tcp ]; allowedUDPPorts = [ - 25565 - 24454 - 23343 - 22232 - 21121 + bluepill.services.server2.tcp + bluepill.services.server2.voice + bluepill.services.ourcity.udp ]; }; @@ -32,37 +33,37 @@ virtualHosts = { "binarycache.devins.page" = { extraConfig = '' - reverse_proxy http://100.108.47.83:5000 + reverse_proxy http://${bluepill.tailnetAddress}:${toString bluepill.services.binaryCache} ''; }; "tranquil-pds.devins.page" = { extraConfig = '' - reverse_proxy http://100.108.47.83:3000 + reverse_proxy http://${bluepill.tailnetAddress}:${toString bluepill.services.tranquilPds} ''; }; "knot.devins.page" = { extraConfig = '' - reverse_proxy http://100.108.47.83:5555 + reverse_proxy http://${bluepill.tailnetAddress}:${toString bluepill.services.knot} ''; }; "spindle.devins.page" = { extraConfig = '' - reverse_proxy http://100.108.47.83:6555 + reverse_proxy http://${bluepill.tailnetAddress}:${toString bluepill.services.spindle} ''; }; "navidrome.devins.page" = { extraConfig = '' - reverse_proxy http://100.108.47.83:4533 + reverse_proxy http://${bluepill.tailnetAddress}:${toString bluepill.services.navidrome} ''; }; "feishin.devins.page" = { extraConfig = '' - reverse_proxy http://100.108.47.83:9180 + reverse_proxy http://${bluepill.tailnetAddress}:${toString bluepill.services.feishin} ''; }; "jellyfin.devins.page" = { extraConfig = '' - reverse_proxy http://100.108.47.83:8096 + reverse_proxy http://${bluepill.tailnetAddress}:${toString bluepill.services.jellyfin} ''; }; "packwiz.devins.page" = { @@ -72,15 +73,14 @@ file_server ''; }; - "matrix.skywardmc.org" = { extraConfig = '' - reverse_proxy http://100.108.47.83:6167 + reverse_proxy http://${bluepill.tailnetAddress}:${toString bluepill.services.matrix} ''; }; "mautrix-discord.skywardmc.org" = { extraConfig = '' - reverse_proxy http://100.108.47.83:29334 + reverse_proxy http://${bluepill.tailnetAddress}:${toString bluepill.services.mautrixDiscord} ''; }; @@ -107,85 +107,46 @@ @ssh ssh route @ssh { proxy { - upstream 100.108.47.83:2222 - } - } - } - - # mc server 1 - :25565 { - route { - proxy { - upstream 100.108.47.83:25565 - } - } - } - udp/:25565 { - route { - proxy { - upstream udp/100.108.47.83:25565 - } - } - } - udp/:24454 { - route { - proxy { - upstream udp/100.108.47.83:24454 + upstream ${bluepill.tailnetAddress}:${toString bluepill.services.ssh} } } } # mc server 2 - :23343 { + :${toString bluepill.services.server2.tcp} { route { proxy { - upstream 100.108.47.83:23343 + upstream ${bluepill.tailnetAddress}:${toString bluepill.services.server2.tcp} } } } - udp/:23343 { + udp/:${toString bluepill.services.server2.tcp} { route { proxy { - upstream udp/100.108.47.83:23343 + upstream udp/${bluepill.tailnetAddress}:${toString bluepill.services.server2.tcp} } } } - udp/:22232 { + udp/:${toString bluepill.services.server2.voice} { route { proxy { - upstream udp/100.108.47.83:22232 + upstream udp/${bluepill.tailnetAddress}:${toString bluepill.services.server2.voice} } } } # mc server 3 - :21121 { - route { - proxy { - upstream 100.108.47.83:21121 - } - } - } - udp/:21121 { - route { - proxy { - upstream udp/100.108.47.83:21121 - } - } - } - - # barotrauma - :27015 { + :${toString bluepill.services.ourcity.tcp} { route { proxy { - upstream 100.95.64.19:27015 + upstream ${bluepill.tailnetAddress}:${toString bluepill.services.ourcity.tcp} } } } - udp/:27015 { + udp/:${toString bluepill.services.ourcity.udp} { route { proxy { - upstream udp/100.95.64.19:27015 + upstream udp/${bluepill.tailnetAddress}:${toString bluepill.services.ourcity.udp} } } } diff --git a/hosts/nixos/bluepill-proxy/services/default.nix b/hosts/nixos/bluepill-proxy/services/default.nix new file mode 100644 index 0000000..111f905 --- /dev/null +++ b/hosts/nixos/bluepill-proxy/services/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./caddy.nix + ./tinysub.nix + ]; +} diff --git a/hosts/nixos/bluepill-proxy/services/tinysub.nix b/hosts/nixos/bluepill-proxy/services/tinysub.nix index 59f6327..ca01661 100644 --- a/hosts/nixos/bluepill-proxy/services/tinysub.nix +++ b/hosts/nixos/bluepill-proxy/services/tinysub.nix @@ -1,3 +1,4 @@ +# kept separate for deployment documentation in tinysub repo { inputs, pkgs, diff --git a/hosts/nixos/bluepill/default.nix b/hosts/nixos/bluepill/default.nix index 85e66d3..5c38dc1 100644 --- a/hosts/nixos/bluepill/default.nix +++ b/hosts/nixos/bluepill/default.nix @@ -3,7 +3,7 @@ ./hardware.nix ./programs ./services - ./users + ./home-manager ]; nixpkgs.config.permittedInsecurePackages = [ diff --git a/hosts/nixos/bluepill/home-manager/default.nix b/hosts/nixos/bluepill/home-manager/default.nix new file mode 100644 index 0000000..f48a9cf --- /dev/null +++ b/hosts/nixos/bluepill/home-manager/default.nix @@ -0,0 +1,3 @@ +{ + home-manager.users.devin.imports = [./devin]; +} diff --git a/hosts/nixos/bluepill/users/devin/beets.nix b/hosts/nixos/bluepill/home-manager/devin/beets.nix similarity index 90% rename from hosts/nixos/bluepill/users/devin/beets.nix rename to hosts/nixos/bluepill/home-manager/devin/beets.nix index 1673de3..8bf1442 100644 --- a/hosts/nixos/bluepill/users/devin/beets.nix +++ b/hosts/nixos/bluepill/home-manager/devin/beets.nix @@ -3,6 +3,7 @@ withFdkAac = true; withUnfree = true; }; + musicDir = "/srv/media/music"; in { home.packages = with pkgs; [ ffmpeg-fdkaac @@ -12,8 +13,8 @@ in { programs.beets = { enable = true; settings = { - directory = "/srv/media/music"; - library = "/srv/media/music/musiclibrary.db"; + directory = musicDir; + library = "${musicDir}/musiclibrary.db"; plugins = "chroma musicbrainz lastgenre duplicates scrub fetchart embedart lyrics convert replaygain info mbsync autobpm"; lastgenre.count = 10; @@ -23,7 +24,7 @@ in { }; convert = { auto = true; - dest = "/srv/media/music"; + dest = musicDir; never_convert_lossy_files = true; format = "aac"; formats = { diff --git a/hosts/nixos/bluepill/home-manager/devin/default.nix b/hosts/nixos/bluepill/home-manager/devin/default.nix new file mode 100644 index 0000000..398a8c3 --- /dev/null +++ b/hosts/nixos/bluepill/home-manager/devin/default.nix @@ -0,0 +1,3 @@ +{ + imports = [./beets.nix]; +} diff --git a/hosts/nixos/bluepill/programs/msmtp.nix b/hosts/nixos/bluepill/programs/msmtp.nix index 0af605c..59ae281 100644 --- a/hosts/nixos/bluepill/programs/msmtp.nix +++ b/hosts/nixos/bluepill/programs/msmtp.nix @@ -1,8 +1,12 @@ -{config, ...}: { +{ + config, + inputs, + ... +}: { users.groups.msmtp.members = ["tranquil-pds"]; age.secrets.msmtp = { - file = ../../../../secrets/msmtp.age; + file = inputs.self + "/secrets/msmtp.age"; group = "msmtp"; mode = "640"; }; diff --git a/hosts/nixos/bluepill/services/betterthanadventure.nix b/hosts/nixos/bluepill/services/betterthanadventure.nix deleted file mode 100644 index 484f8ec..0000000 --- a/hosts/nixos/bluepill/services/betterthanadventure.nix +++ /dev/null @@ -1,27 +0,0 @@ -{pkgs, ...}: { - networking.firewall.allowedTCPPorts = [21121 21131]; - - users.users.betterthanadventure = { - isSystemUser = true; - group = "betterthanadventure"; - }; - users.groups.betterthanadventure = {}; - users.groups.betterthanadventure.members = ["devin"]; - - systemd.tmpfiles.rules = ["d /srv/betterthanadventure 2775 betterthanadventure betterthanadventure -"]; - systemd.services.betterthanadventure = { - description = "Better than Adventure! server"; - wantedBy = ["multi-user.target"]; - wants = ["network-online.target"]; - after = ["network-online.target"]; - serviceConfig = { - Type = "simple"; - User = "betterthanadventure"; - Group = "betterthanadventure"; - WorkingDirectory = "/srv/betterthanadventure"; - ExecStartPre = "${pkgs.curl}/bin/curl -L -o server.jar https://github.com/Better-than-Adventure/bta-download-repo/releases/download/v7.3_04/bta.v7.3_04.server.jar"; - ExecStart = "${pkgs.jdk25_headless}/bin/java -Xmx4g -XX:+UseZGC -XX:+UseCompactObjectHeaders -jar server.jar --nogui"; - Restart = "always"; - }; - }; -} diff --git a/hosts/nixos/bluepill/services/docker-mikusmp69.nix b/hosts/nixos/bluepill/services/docker-mikusmp69.nix deleted file mode 100644 index dd62f01..0000000 --- a/hosts/nixos/bluepill/services/docker-mikusmp69.nix +++ /dev/null @@ -1,60 +0,0 @@ -{lib, ...}: { - networking.firewall = { - allowedTCPPorts = [23343]; - allowedUDPPorts = [22232]; # for vc - }; - - users.users.mikusmp = { - isSystemUser = true; - uid = 2001; - group = "mikusmp"; - }; - users.groups.mikusmp.gid = 2001; - users.groups.mikusmp.members = ["devin"]; - - systemd.tmpfiles.rules = ["d /srv/mikusmp69 2775 mikusmp mikusmp -"]; - - virtualisation = { - docker.enable = true; - oci-containers = { - backend = "docker"; - containers = { - mikusmp69 = { - image = "itzg/minecraft-server:latest"; - user = "2001:2001"; - ports = [ - "23343:25565" - "22232:22232/udp" # for vc - ]; - volumes = [ - "/srv/mikusmp69:/data" - ]; - environment = { - UID = "2001"; - GID = "2001"; - EULA = "TRUE"; - TYPE = "FABRIC"; - VERSION = "1.20.1"; - MAX_MEMORY = "12G"; - DIFFICULTY = "hard"; - MOTD = "hello mikusmp69 twins"; - ENABLE_COMMAND_BLOCK = "true"; - VIEW_DISTANCE = "10"; - SIMULATION_DISTANCE = "5"; - SEED = "92163"; - SYNC_CHUNK_WRITES = "false"; - USE_MEOWICE_FLAGS = "true"; - ALLOW_FLIGHT = "true"; - SPAWN_PROTECTION = "0"; - PACKWIZ_URL = "https://intergrav.github.io/private-modpacks/mikusmp69/pack.toml"; - }; - }; - }; - }; - }; - - systemd.services."docker-mikusmp69".serviceConfig = { - Restart = lib.mkForce "always"; - RestartSec = "1min"; - }; -} diff --git a/hosts/nixos/bluepill/services/docker-newbeginnings7.nix b/hosts/nixos/bluepill/services/docker-newbeginnings7.nix deleted file mode 100644 index 5a13835..0000000 --- a/hosts/nixos/bluepill/services/docker-newbeginnings7.nix +++ /dev/null @@ -1,64 +0,0 @@ -{lib, ...}: { - networking.firewall = { - allowedTCPPorts = [25565]; - allowedUDPPorts = [ - 24454 # for vc - 19132 # for geyser - ]; - }; - - users.users.newbeginnings = { - isSystemUser = true; - uid = 2002; - group = "newbeginnings"; - }; - users.groups.newbeginnings.gid = 2002; - users.groups.newbeginnings.members = ["devin"]; - - systemd.tmpfiles.rules = ["d /srv/newbeginnings7 2775 newbeginnings newbeginnings -"]; - - virtualisation = { - docker.enable = true; - oci-containers = { - backend = "docker"; - containers = { - newbeginnings7 = { - image = "itzg/minecraft-server:latest"; - user = "2002:2002"; - ports = [ - "25565:25565" - "24454:24454/udp" # for vc - "19132:19132/udp" # for geyser - ]; - volumes = [ - "/srv/newbeginnings7:/data" - ]; - environment = { - UID = "2002"; - GID = "2002"; - EULA = "TRUE"; - TYPE = "FABRIC"; - VERSION = "1.21.10"; - MAX_MEMORY = "12G"; - DIFFICULTY = "hard"; - MOTD = ""; - ENABLE_COMMAND_BLOCK = "true"; - VIEW_DISTANCE = "10"; - SIMULATION_DISTANCE = "5"; - SEED = "-8024242352340898148"; - SYNC_CHUNK_WRITES = "false"; - USE_MEOWICE_FLAGS = "true"; - ALLOW_FLIGHT = "true"; - SPAWN_PROTECTION = "0"; - PACKWIZ_URL = "https://intergrav.github.io/private-modpacks/newbeginnings7/pack.toml"; - }; - }; - }; - }; - }; - - systemd.services."docker-newbeginnings7".serviceConfig = { - Restart = lib.mkForce "always"; - RestartSec = "1min"; - }; -} diff --git a/hosts/nixos/bluepill/services/docker-ourcity.nix b/hosts/nixos/bluepill/services/docker-ourcity.nix index 86ed2ae..8fa4315 100644 --- a/hosts/nixos/bluepill/services/docker-ourcity.nix +++ b/hosts/nixos/bluepill/services/docker-ourcity.nix @@ -1,16 +1,26 @@ -{lib, ...}: { +{ + lib, + topology, + ... +}: let + port = topology.bluepill.services.ourcity; + uid = 2005; + gid = uid; +in { networking.firewall = { - allowedTCPPorts = [21121]; - allowedUDPPorts = [21121]; + allowedTCPPorts = [port.tcp]; + allowedUDPPorts = [port.udp]; }; users.users.ourcity = { isSystemUser = true; - uid = 2005; + inherit uid; group = "ourcity"; }; - users.groups.ourcity.gid = 2005; - users.groups.ourcity.members = ["devin"]; + users.groups.ourcity = { + inherit gid; + members = ["devin"]; + }; systemd.tmpfiles.rules = ["d /srv/ourcity 2775 ourcity ourcity -"]; @@ -21,16 +31,16 @@ containers = { ourcity = { image = "itzg/minecraft-server:java21"; - user = "2005:2005"; + user = "${toString uid}:${toString gid}"; ports = [ - "21121:25565" + "${toString port.tcp}:25565" ]; volumes = [ "/srv/ourcity:/data" ]; environment = { - UID = "2005"; - GID = "2005"; + UID = toString uid; + GID = toString gid; EULA = "TRUE"; TYPE = "NEOFORGE"; NEOFORGE_VERSION = "21.1.242"; diff --git a/hosts/nixos/bluepill/services/docker-server2.nix b/hosts/nixos/bluepill/services/docker-server2.nix index 5967ae7..675a6c8 100644 --- a/hosts/nixos/bluepill/services/docker-server2.nix +++ b/hosts/nixos/bluepill/services/docker-server2.nix @@ -1,16 +1,26 @@ -{lib, ...}: { +{ + lib, + topology, + ... +}: let + port = topology.bluepill.services.server2; + uid = 2001; + gid = uid; +in { networking.firewall = { - allowedTCPPorts = [23343]; - allowedUDPPorts = [22232]; # for vc + allowedTCPPorts = [port.tcp]; + allowedUDPPorts = [port.voice]; # for vc }; users.users.server2 = { isSystemUser = true; - uid = 2001; + inherit uid; group = "server2"; }; - users.groups.server2.gid = 2001; - users.groups.server2.members = ["devin"]; + users.groups.server2 = { + inherit gid; + members = ["devin"]; + }; systemd.tmpfiles.rules = ["d /srv/server2 2775 server2 server2 -"]; @@ -21,17 +31,17 @@ containers = { server2 = { image = "itzg/minecraft-server:latest"; - user = "2001:2001"; + user = "${toString uid}:${toString gid}"; ports = [ - "23343:25565" - "22232:22232/udp" # for vc + "${toString port.tcp}:25565" + "${toString port.voice}:${toString port.voice}/udp" # for vc ]; volumes = [ "/srv/server2:/data" ]; environment = { - UID = "2001"; - GID = "2001"; + UID = toString uid; + GID = toString gid; EULA = "TRUE"; TYPE = "NEOFORGE"; VERSION = "1.21.1"; diff --git a/hosts/nixos/bluepill/services/gonic.nix b/hosts/nixos/bluepill/services/gonic.nix index 566427c..b1d5f0b 100644 --- a/hosts/nixos/bluepill/services/gonic.nix +++ b/hosts/nixos/bluepill/services/gonic.nix @@ -1,11 +1,13 @@ -{ +{config, ...}: { services.gonic = { enable = true; settings = { listen-addr = "0.0.0.0:4747"; - music-path = ["/srv/media/music"]; + music-path = [config.services.navidrome.settings.MusicFolder]; podcast-path = "/srv/media/podcasts"; playlists-path = "/srv/media/playlists"; }; }; + + networking.firewall.allowedTCPPorts = [4747]; } diff --git a/hosts/nixos/bluepill/services/ipod-sync.nix b/hosts/nixos/bluepill/services/ipod-sync.nix index 375af6e..10159eb 100644 --- a/hosts/nixos/bluepill/services/ipod-sync.nix +++ b/hosts/nixos/bluepill/services/ipod-sync.nix @@ -1,16 +1,17 @@ { config, + inputs, pkgs, ... }: let ipodUuid = "A751-935A"; - musicDir = "/srv/media/music"; + musicDir = config.services.navidrome.settings.MusicFolder; timeZone = if config.time.timeZone == null then "America/New_York" else config.time.timeZone; in { - age.secrets.ipod-sync.file = ../../../../secrets/ipod-sync.age; + age.secrets.ipod-sync.file = inputs.self + "/secrets/ipod-sync.age"; services.navidrome.settings.Subsonic.DefaultReportRealPath = true; diff --git a/hosts/nixos/bluepill/services/matrix.nix b/hosts/nixos/bluepill/services/matrix.nix index 3aa2d14..1248d5c 100644 --- a/hosts/nixos/bluepill/services/matrix.nix +++ b/hosts/nixos/bluepill/services/matrix.nix @@ -1,6 +1,13 @@ -{config, ...}: { +{ + config, + inputs, + topology, + ... +}: let + services = topology.bluepill.services; +in { age.secrets.draupnir-at = { - file = ../../../../secrets/draupnir-at.age; + file = inputs.self + "/secrets/draupnir-at.age"; }; services.matrix-continuwuity = { @@ -8,6 +15,7 @@ settings.global = { server_name = "skywardmc.org"; address = ["0.0.0.0"]; + port = [services.matrix]; new_user_displayname_suffix = ""; auto_join_rooms = ["#skywardmc:skywardmc.org"]; }; @@ -16,7 +24,7 @@ services.draupnir = { enable = true; settings = { - homeserverUrl = "http://localhost:6167"; + homeserverUrl = "http://localhost:${toString services.matrix}"; managementRoom = "#admins:skywardmc.org"; }; secrets.accessToken = config.age.secrets.draupnir-at.path; @@ -26,10 +34,11 @@ enable = true; settings = { homeserver = { - address = "http://localhost:6167"; + address = "http://localhost:${toString services.matrix}"; domain = "skywardmc.org"; }; appservice = { + port = services.mautrixDiscord; database = { type = "sqlite3"; uri = "file:${config.services.mautrix-discord.dataDir}/mautrix-discord.db?_txlock=immediate"; diff --git a/hosts/nixos/bluepill/services/navidrome.nix b/hosts/nixos/bluepill/services/navidrome.nix index 4d945c1..d758773 100644 --- a/hosts/nixos/bluepill/services/navidrome.nix +++ b/hosts/nixos/bluepill/services/navidrome.nix @@ -1,6 +1,11 @@ -{config, ...}: { +{ + config, + inputs, + topology, + ... +}: { age.secrets.navidrome = { - file = ../../../../secrets/navidrome.age; + file = inputs.self + "/secrets/navidrome.age"; owner = "navidrome"; group = "navidrome"; }; @@ -10,6 +15,7 @@ openFirewall = true; environmentFile = config.age.secrets.navidrome.path; settings = { + Port = topology.bluepill.services.navidrome; MusicFolder = "/srv/media/music"; Address = "0.0.0.0"; BaseUrl = "https://navidrome.devins.page"; diff --git a/hosts/nixos/bluepill/services/nix-serve.nix b/hosts/nixos/bluepill/services/nix-serve.nix index f158a79..0607e8f 100644 --- a/hosts/nixos/bluepill/services/nix-serve.nix +++ b/hosts/nixos/bluepill/services/nix-serve.nix @@ -1,6 +1,7 @@ -{ +{topology, ...}: { services.nix-serve = { enable = true; + port = topology.bluepill.services.binaryCache; secretKeyFile = "/var/cache-priv-key.pem"; }; } diff --git a/hosts/nixos/bluepill/services/restray.nix b/hosts/nixos/bluepill/services/restray.nix index 871aec3..191bd67 100644 --- a/hosts/nixos/bluepill/services/restray.nix +++ b/hosts/nixos/bluepill/services/restray.nix @@ -1,11 +1,17 @@ -{config, ...}: { +{ + config, + inputs, + ... +}: let + transmissionDir = config.services.transmission.home; +in { age.secrets.restray-bluepill-rest = { - file = ../../../../secrets/restray-bluepill-rest.age; + file = inputs.self + "/secrets/restray-bluepill-rest.age"; owner = "root"; group = "root"; }; age.secrets.restray-onedrive = { - file = ../../../../secrets/restray-onedrive.age; + file = inputs.self + "/secrets/restray-onedrive.age"; owner = "root"; group = "root"; }; @@ -28,7 +34,7 @@ "/srv" "/var/lib" ]; - args = ["--skip-if-unchanged" "--one-file-system" "--exclude-caches" "--exclude" "/var/lib/transmission"]; + args = ["--skip-if-unchanged" "--one-file-system" "--exclude-caches" "--exclude" transmissionDir]; }; prune.args = ["--repack-smaller-than" "64M" "--keep-last" "4" "--keep-hourly" "24" "--keep-daily" "14" "--keep-weekly" "4"]; }; @@ -47,7 +53,7 @@ "/srv" "/var/lib" ]; - args = ["--skip-if-unchanged" "--one-file-system" "--exclude-caches" "--exclude" "/var/lib/transmission" "--exclude" "/srv/general/software"]; + args = ["--skip-if-unchanged" "--one-file-system" "--exclude-caches" "--exclude" transmissionDir "--exclude" "/srv/general/software"]; }; prune.args = ["--repack-smaller-than" "64M" "--keep-last" "4" "--keep-daily" "7"]; }; diff --git a/hosts/nixos/bluepill/services/samba.nix b/hosts/nixos/bluepill/services/samba.nix index 6d714c8..8014669 100644 --- a/hosts/nixos/bluepill/services/samba.nix +++ b/hosts/nixos/bluepill/services/samba.nix @@ -1,4 +1,6 @@ -{ +{config, ...}: let + transmissionDir = config.services.transmission.home; +in { users.groups.share-general.members = ["transmission" "devin"]; users.groups.share-media.members = ["jellyfin" "navidrome" "gonic" "slskd" "transmission" "devin"]; @@ -36,7 +38,7 @@ "fruit:posix_rename" = "yes"; }; "transmission" = { - "path" = "/var/lib/transmission"; + "path" = transmissionDir; "comment" = "transmission daemon directory"; "read only" = "no"; }; diff --git a/hosts/nixos/bluepill/services/slskd.nix b/hosts/nixos/bluepill/services/slskd.nix index ceaab27..99e9938 100644 --- a/hosts/nixos/bluepill/services/slskd.nix +++ b/hosts/nixos/bluepill/services/slskd.nix @@ -1,10 +1,14 @@ -{config, ...}: { +{ + config, + inputs, + ... +}: let + musicDir = config.services.navidrome.settings.MusicFolder; +in { users.groups.slskd.members = ["devin"]; - networking.firewall.allowedTCPPorts = [5030]; - age.secrets.slskd = { - file = ../../../../secrets/slskd.age; + file = inputs.self + "/secrets/slskd.age"; owner = "slskd"; group = "slskd"; }; @@ -15,7 +19,7 @@ domain = null; environmentFile = config.age.secrets.slskd.path; settings = { - shares.directories = ["/srv/media/music"]; + shares.directories = [musicDir]; soulseek.description = "\n- running on NixOS and slskd\n- all files are compressed from FLAC/WAV to AAC with `fdk-aac -vbr 5` (essentially the best and most transparent AAC you can possibly get)\n- tagged and organized with beets\n\napologies if some of the path names look silly or inaccurate. i use beet's asciify function, which has a side effect of messing up non-latin characters\n\nthey/he | feel free to say hi, i don't check my messages super often though. enjoy the shares, and remember to try and support artists if you can :)"; }; }; diff --git a/hosts/nixos/bluepill/services/tangled.nix b/hosts/nixos/bluepill/services/tangled.nix index e815503..c7354f1 100644 --- a/hosts/nixos/bluepill/services/tangled.nix +++ b/hosts/nixos/bluepill/services/tangled.nix @@ -1,30 +1,35 @@ { config, lib, + topology, ... -}: { +}: let + owner = "did:plc:3xpaniu6rs7fygzthgmtuv7c"; +in { services.tangled = { knot = { enable = true; stateDir = "/srv/knot"; server = { + listenAddr = "0.0.0.0:${toString topology.bluepill.services.knot}"; hostname = "knot.devins.page"; - owner = "did:plc:3xpaniu6rs7fygzthgmtuv7c"; + inherit owner; maxResponseKB = 131072; }; }; spindle = { enable = true; server = { + listenAddr = "0.0.0.0:${toString topology.bluepill.services.spindle}"; hostname = "spindle.devins.page"; - owner = "did:plc:3xpaniu6rs7fygzthgmtuv7c"; + inherit owner; }; }; }; services.openssh = { enable = lib.mkForce true; - ports = [2222]; + ports = [topology.bluepill.services.ssh]; settings.AllowUsers = ["git"]; }; diff --git a/hosts/nixos/bluepill/services/tranquil-pds.nix b/hosts/nixos/bluepill/services/tranquil-pds.nix index 644062a..a67af8a 100644 --- a/hosts/nixos/bluepill/services/tranquil-pds.nix +++ b/hosts/nixos/bluepill/services/tranquil-pds.nix @@ -1,6 +1,11 @@ -{config, ...}: { +{ + config, + inputs, + topology, + ... +}: { age.secrets.tranquil-pds = { - file = ../../../../secrets/tranquil-pds.age; + file = inputs.self + "/secrets/tranquil-pds.age"; owner = "tranquil-pds"; group = "tranquil-pds"; }; @@ -13,6 +18,7 @@ server = { host = "0.0.0.0"; hostname = "tranquil-pds.devins.page"; + port = topology.bluepill.services.tranquilPds; }; email = { from_address = "noreply@devins.page"; diff --git a/hosts/nixos/bluepill/services/transmission.nix b/hosts/nixos/bluepill/services/transmission.nix index 8461a16..2eb9f7d 100644 --- a/hosts/nixos/bluepill/services/transmission.nix +++ b/hosts/nixos/bluepill/services/transmission.nix @@ -1,12 +1,13 @@ { config, + inputs, pkgs, ... }: { users.groups.transmission.members = ["devin"]; age.secrets.transmission = { - file = ../../../../secrets/transmission.age; + file = inputs.self + "/secrets/transmission.age"; owner = "transmission"; group = "transmission"; }; @@ -29,6 +30,6 @@ }; systemd.tmpfiles.rules = [ - "d /var/lib/transmission 2770 transmission transmission -" + "d ${config.services.transmission.home} 2770 transmission transmission -" ]; } diff --git a/hosts/nixos/bluepill/users/default.nix b/hosts/nixos/bluepill/users/default.nix deleted file mode 100644 index 6d5fea9..0000000 --- a/hosts/nixos/bluepill/users/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - home-manager.users.devin.imports = [./devin/beets.nix]; -} diff --git a/hosts/nixos/d-latitude/default.nix b/hosts/nixos/d-latitude/default.nix index 30ec234..28f1951 100644 --- a/hosts/nixos/d-latitude/default.nix +++ b/hosts/nixos/d-latitude/default.nix @@ -1,7 +1,9 @@ -{pkgs, ...}: { +{ imports = [ ./hardware.nix - ./users + ./programs + ./services + ./home-manager ]; boot.loader.systemd-boot.enable = true; @@ -13,60 +15,8 @@ networkmanager.enable = true; }; - programs.firefox.enable = true; - powerManagement.enable = true; powerManagement.powertop.enable = true; - services.power-profiles-daemon.enable = false; - services.auto-cpufreq.enable = true; - - services.displayManager.sddm.enable = true; - services.displayManager.sddm.wayland.enable = true; - services.displayManager.sddm.wayland.compositor = "kwin"; - services.desktopManager.plasma6.enable = true; - services.displayManager.defaultSession = "aerothemeplasma"; - - programs.aeroshell = { - enable = true; - fonts.segoe.enable = true; - polkit.enable = true; - aerothemeplasma = { - enable = true; - plymouth.enable = true; - sddm.enable = true; - }; - }; - programs.linver.enable = true; - programs.execbin.enable = true; - - programs.gamemode.enable = true; - - environment.systemPackages = with pkgs; [ - prismlauncher - dorion - - # https://nixos.wiki/wiki/KDE - # KDE Utilities - kdePackages.discover # Optional: Software center for Flatpaks/firmware updates - kdePackages.kcalc # Calculator - kdePackages.kcharselect # Character map - kdePackages.kclock # Clock app - kdePackages.kmail - kdePackages.kcolorchooser # Color picker - kdePackages.kolourpaint # Simple paint program - kdePackages.ksystemlog # System log viewer - kdePackages.sddm-kcm # SDDM configuration module - kdiff3 # File/directory comparison tool - - # Hardware/System Utilities (Optional) - kdePackages.isoimagewriter # Write hybrid ISOs to USB - kdePackages.partitionmanager # Disk and partition management - hardinfo2 # System benchmarks and hardware info - wayland-utils # Wayland diagnostic tools - wl-clipboard # Wayland copy/paste support - vlc # Media player - ]; - system.stateVersion = "26.11"; } diff --git a/hosts/nixos/d-latitude/home-manager/default.nix b/hosts/nixos/d-latitude/home-manager/default.nix new file mode 100644 index 0000000..baa69d2 --- /dev/null +++ b/hosts/nixos/d-latitude/home-manager/default.nix @@ -0,0 +1,5 @@ +{inputs, ...}: { + home-manager.users.devin.imports = [ + (inputs.self + "/modules/home-manager/users/devin/desktop") + ]; +} diff --git a/hosts/nixos/d-latitude/programs/default.nix b/hosts/nixos/d-latitude/programs/default.nix new file mode 100644 index 0000000..85de5eb --- /dev/null +++ b/hosts/nixos/d-latitude/programs/default.nix @@ -0,0 +1,43 @@ +{pkgs, ...}: { + programs.firefox.enable = true; + + programs.aeroshell = { + enable = true; + fonts.segoe.enable = true; + polkit.enable = true; + aerothemeplasma = { + enable = true; + plymouth.enable = true; + sddm.enable = true; + }; + }; + programs.linver.enable = true; + programs.execbin.enable = true; + programs.gamemode.enable = true; + + environment.systemPackages = with pkgs; [ + prismlauncher + dorion + + # https://nixos.wiki/wiki/KDE + # KDE Utilities + kdePackages.discover # Optional: Software center for Flatpaks/firmware updates + kdePackages.kcalc # Calculator + kdePackages.kcharselect # Character map + kdePackages.kclock # Clock app + kdePackages.kmail + kdePackages.kcolorchooser # Color picker + kdePackages.kolourpaint # Simple paint program + kdePackages.ksystemlog # System log viewer + kdePackages.sddm-kcm # SDDM configuration module + kdiff3 # File/directory comparison tool + + # Hardware/System Utilities (Optional) + kdePackages.isoimagewriter # Write hybrid ISOs to USB + kdePackages.partitionmanager # Partition management + hardinfo2 # System benchmarks and hardware info + wayland-utils # Wayland diagnostic tools + wl-clipboard # Wayland copy/paste support + vlc # Media player + ]; +} diff --git a/hosts/nixos/d-latitude/services/default.nix b/hosts/nixos/d-latitude/services/default.nix new file mode 100644 index 0000000..97e6eb7 --- /dev/null +++ b/hosts/nixos/d-latitude/services/default.nix @@ -0,0 +1,10 @@ +{ + services.power-profiles-daemon.enable = false; + services.auto-cpufreq.enable = true; + + services.displayManager.sddm.enable = true; + services.displayManager.sddm.wayland.enable = true; + services.displayManager.sddm.wayland.compositor = "kwin"; + services.desktopManager.plasma6.enable = true; + services.displayManager.defaultSession = "aerothemeplasma"; +} diff --git a/hosts/nixos/d-latitude/users/default.nix b/hosts/nixos/d-latitude/users/default.nix deleted file mode 100644 index 46139ab..0000000 --- a/hosts/nixos/d-latitude/users/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - home-manager.users.devin.imports = [ - ../../../../modules/users/devin/desktop - ]; -} diff --git a/hosts/nixos/default.nix b/hosts/nixos/default.nix index 314f508..54a7098 100644 --- a/hosts/nixos/default.nix +++ b/hosts/nixos/default.nix @@ -1,30 +1,37 @@ -{inputs}: +{ + inputs, + topology, +}: inputs.nixpkgs.lib.mapAttrs ( host: extraModules: inputs.nixpkgs.lib.nixosSystem { - specialArgs = {inherit inputs;}; + specialArgs = {inherit inputs topology;}; modules = [./${host}] ++ [ ../../modules/common ../../modules/nixos ../../modules/users/devin + ../../modules/home-manager/users/devin ] ++ extraModules; } ) { bluepill = [ - ../../modules/nixos/server.nix + ../../modules/nixos/profiles/cachyos-kernel.nix + ../../modules/nixos/profiles/server.nix inputs.tangled.nixosModules.knot inputs.tangled.nixosModules.spindle inputs.restray.nixosModules.default ]; bluepill-proxy = [ - ../../modules/nixos/server.nix + ../../modules/nixos/profiles/cachyos-kernel.nix + ../../modules/nixos/profiles/server.nix ]; d-latitude = [ + ../../modules/nixos/profiles/cachyos-kernel.nix inputs.aerothemeplasma-nix.nixosModules.aerothemeplasma-nix ]; } diff --git a/hosts/topology.nix b/hosts/topology.nix new file mode 100644 index 0000000..59c5f3e --- /dev/null +++ b/hosts/topology.nix @@ -0,0 +1,27 @@ +{ + bluepill = { + tailnetAddress = "100.108.47.83"; + + services = { + ssh = 2222; + binaryCache = 5000; + tranquilPds = 3000; + knot = 5555; + spindle = 6555; + navidrome = 4533; + feishin = 9180; + jellyfin = 8096; + matrix = 6167; + mautrixDiscord = 29334; + + ourcity = { + tcp = 21121; + udp = 21121; + }; + server2 = { + tcp = 23343; + voice = 22232; + }; + }; + }; +} diff --git a/modules/darwin/services/default.nix b/modules/darwin/services/default.nix new file mode 100644 index 0000000..b16c76b --- /dev/null +++ b/modules/darwin/services/default.nix @@ -0,0 +1,3 @@ +{ + imports = [./tailscaled.nix]; +} diff --git a/modules/home-manager/users/devin/default.nix b/modules/home-manager/users/devin/default.nix new file mode 100644 index 0000000..5330ccc --- /dev/null +++ b/modules/home-manager/users/devin/default.nix @@ -0,0 +1,28 @@ +{config, ...}: { + home-manager.users.devin = {pkgs, ...}: { + imports = [./programs]; + + programs.home-manager.enable = true; + + home = { + username = "devin"; + homeDirectory = config.users.users.devin.home; + stateVersion = "23.11"; + packages = with pkgs; [ + alejandra + bun + coreutils + just + mosh + nh + nix-your-shell + nixd + nodejs + pnpm + rsync + tree + xz + ]; + }; + }; +} diff --git a/modules/users/devin/desktop/default.nix b/modules/home-manager/users/devin/desktop/default.nix similarity index 100% rename from modules/users/devin/desktop/default.nix rename to modules/home-manager/users/devin/desktop/default.nix diff --git a/modules/users/devin/desktop/mail.nix b/modules/home-manager/users/devin/desktop/mail.nix similarity index 97% rename from modules/users/devin/desktop/mail.nix rename to modules/home-manager/users/devin/desktop/mail.nix index f29dacb..da99df4 100644 --- a/modules/users/devin/desktop/mail.nix +++ b/modules/home-manager/users/devin/desktop/mail.nix @@ -1,15 +1,16 @@ { config, + inputs, lib, pkgs, ... }: { age.secrets.mail-gmail = { - file = ../../../../secrets/mail-gmail.age; + file = inputs.self + "/secrets/mail-gmail.age"; }; age.secrets.mail-icloud = { - file = ../../../../secrets/mail-icloud.age; + file = inputs.self + "/secrets/mail-icloud.age"; }; systemd.user.services.mbsync-mail = lib.mkIf pkgs.stdenv.hostPlatform.isLinux { diff --git a/modules/users/devin/programs/default.nix b/modules/home-manager/users/devin/programs/default.nix similarity index 100% rename from modules/users/devin/programs/default.nix rename to modules/home-manager/users/devin/programs/default.nix diff --git a/modules/users/devin/programs/direnv.nix b/modules/home-manager/users/devin/programs/direnv.nix similarity index 100% rename from modules/users/devin/programs/direnv.nix rename to modules/home-manager/users/devin/programs/direnv.nix diff --git a/modules/users/devin/programs/fastfetch.nix b/modules/home-manager/users/devin/programs/fastfetch.nix similarity index 100% rename from modules/users/devin/programs/fastfetch.nix rename to modules/home-manager/users/devin/programs/fastfetch.nix diff --git a/modules/users/devin/programs/fish.nix b/modules/home-manager/users/devin/programs/fish.nix similarity index 100% rename from modules/users/devin/programs/fish.nix rename to modules/home-manager/users/devin/programs/fish.nix diff --git a/modules/users/devin/programs/git.nix b/modules/home-manager/users/devin/programs/git.nix similarity index 100% rename from modules/users/devin/programs/git.nix rename to modules/home-manager/users/devin/programs/git.nix diff --git a/modules/users/devin/programs/jujutsu.nix b/modules/home-manager/users/devin/programs/jujutsu.nix similarity index 100% rename from modules/users/devin/programs/jujutsu.nix rename to modules/home-manager/users/devin/programs/jujutsu.nix diff --git a/modules/users/devin/programs/neovim.nix b/modules/home-manager/users/devin/programs/neovim.nix similarity index 100% rename from modules/users/devin/programs/neovim.nix rename to modules/home-manager/users/devin/programs/neovim.nix diff --git a/modules/users/devin/programs/tmux.nix b/modules/home-manager/users/devin/programs/tmux.nix similarity index 100% rename from modules/users/devin/programs/tmux.nix rename to modules/home-manager/users/devin/programs/tmux.nix diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 7bc02a2..a9180a1 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -2,7 +2,6 @@ imports = [ inputs.agenix.nixosModules.default inputs.home-manager.nixosModules.default - ./cachyos.nix ./programs ./services ]; diff --git a/modules/nixos/cachyos.nix b/modules/nixos/profiles/cachyos-kernel.nix similarity index 100% rename from modules/nixos/cachyos.nix rename to modules/nixos/profiles/cachyos-kernel.nix diff --git a/modules/nixos/server.nix b/modules/nixos/profiles/server.nix similarity index 100% rename from modules/nixos/server.nix rename to modules/nixos/profiles/server.nix diff --git a/modules/nixos/programs/default.nix b/modules/nixos/programs/default.nix index a6e3c1c..cd07361 100644 --- a/modules/nixos/programs/default.nix +++ b/modules/nixos/programs/default.nix @@ -1,5 +1,3 @@ { - imports = [ - ./mosh.nix - ]; + imports = [./mosh.nix]; } diff --git a/modules/users/devin/default.nix b/modules/users/devin/default.nix index a31b749..de81d4d 100644 --- a/modules/users/devin/default.nix +++ b/modules/users/devin/default.nix @@ -1,5 +1,4 @@ { - config, lib, pkgs, ... @@ -23,31 +22,4 @@ isNormalUser = true; extraGroups = ["networkmanager" "wheel"]; }; - - home-manager.users.devin = {pkgs, ...}: { - imports = [./programs]; - - programs.home-manager.enable = true; - - home = { - username = "devin"; - homeDirectory = config.users.users.devin.home; - stateVersion = "23.11"; - packages = with pkgs; [ - alejandra - bun - coreutils - just - mosh - nh - nix-your-shell - nixd - nodejs - pnpm - rsync - tree - xz - ]; - }; - }; } -- 2.51.2