diff --git a/features/server/backups.nix b/features/server/backups.nix index 505917e..ad0407a 100644 --- a/features/server/backups.nix +++ b/features/server/backups.nix @@ -78,7 +78,6 @@ "/srv/Minecraft" ]; postgresql_databases = [ - { name = "forgejo"; } { name = "nextcloud"; } { name = "matrix-synapse"; } ]; diff --git a/features/server/caddy.nix b/features/server/caddy.nix index 5b27bfb..c3405b2 100644 --- a/features/server/caddy.nix +++ b/features/server/caddy.nix @@ -4,81 +4,13 @@ enable = true; virtualHosts = { - "http://sisyphe.normandy.hypervirtual.world".extraConfig = '' - reverse_proxy :8082 - ''; - - "http://git.hypervirtual.world".extraConfig = '' - reverse_proxy :3333 - ''; - - "http://books.hypervirtual.world".extraConfig = '' - reverse_proxy :8083 - ''; - "http://fish.hypervirtual.world".extraConfig = '' reverse_proxy :3030 ''; - "http://jellyfin.sisyphe.normandy.hypervirtual.world".extraConfig = '' - reverse_proxy :8096 - ''; - - "http://media.hypervirtual.world".extraConfig = '' - reverse_proxy :8096 - ''; - - "http://slskd.sisyphe.normandy.hypervirtual.world".extraConfig = '' - reverse_proxy :5030 - ''; - - "http://radarr.sisyphe.normandy.hypervirtual.world".extraConfig = '' - reverse_proxy :7878 - ''; - - "http://sonarr.sisyphe.normandy.hypervirtual.world".extraConfig = '' - reverse_proxy :8989 - ''; - - "http://sonarr-anime.sisyphe.normandy.hypervirtual.world".extraConfig = '' - reverse_proxy :8999 - ''; - - "http://prowlarr.sisyphe.normandy.hypervirtual.world".extraConfig = '' - reverse_proxy :9696 - ''; - - "http://grafana.sisyphe.normandy.hypervirtual.world".extraConfig = '' - reverse_proxy :3000 - ''; - - "http://status.hypervirtual.world".extraConfig = '' - reverse_proxy :4000 - ''; - - "http://transmission.sisyphe.normandy.hypervirtual.world".extraConfig = '' - reverse_proxy :9091 - ''; - - "http://uptime.sisyphe.normandy.hypervirtual.world".extraConfig = '' - reverse_proxy :4000 - ''; - "http://mc.sisyphe.normandy.hypervirtual.world".extraConfig = '' reverse_proxy :8443 ''; - - "http://katflix.sisyphe.normandy.hypervirtual.world".extraConfig = '' - reverse_proxy :5055 - ''; - - "http://bazarr.sisyphe.normandy.hypervirtual.world".extraConfig = '' - reverse_proxy :6767 - ''; - - "http://bazarr-anime.sisyphe.normandy.hypervirtual.world".extraConfig = '' - reverse_proxy :6777 - ''; }; }; diff --git a/features/server/multimedia/arr-suite.nix b/features/server/multimedia/arr-suite.nix index d5e940c..17b55cb 100644 --- a/features/server/multimedia/arr-suite.nix +++ b/features/server/multimedia/arr-suite.nix @@ -55,4 +55,33 @@ in }; */ + services.caddy.virtualHosts = { + "http://radarr.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :7878 + ''; + + "http://sonarr.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :8989 + ''; + + "http://sonarr-anime.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :8999 + ''; + + "http://prowlarr.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :9696 + ''; + + "http://katflix.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :5055 + ''; + + "http://bazarr.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :6767 + ''; + + "http://bazarr-anime.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :6777 + ''; + }; } diff --git a/features/server/multimedia/calibre-web.nix b/features/server/multimedia/calibre-web.nix index 554d879..f8caa9d 100644 --- a/features/server/multimedia/calibre-web.nix +++ b/features/server/multimedia/calibre-web.nix @@ -10,4 +10,8 @@ enableKepubify = true; }; }; + + services.caddy.virtualHosts."http://books.hypervirtual.world".extraConfig = '' + reverse_proxy :8083 + ''; } diff --git a/features/server/multimedia/jellyfin.nix b/features/server/multimedia/jellyfin.nix index a2001bc..b90b9bb 100644 --- a/features/server/multimedia/jellyfin.nix +++ b/features/server/multimedia/jellyfin.nix @@ -21,4 +21,14 @@ enable = true; openFirewall = true; }; + + services.caddy.virtualHosts = { + "http://jellyfin.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :8096 + ''; + + "http://media.hypervirtual.world".extraConfig = '' + reverse_proxy :8096 + ''; + }; } diff --git a/features/server/multimedia/slskd.nix b/features/server/multimedia/slskd.nix index f9d1efe..c4b6337 100644 --- a/features/server/multimedia/slskd.nix +++ b/features/server/multimedia/slskd.nix @@ -35,5 +35,9 @@ in directories.incomplete = "${cfg.directory}/incomplete"; }; }; + + services.caddy.virtualHosts."http://slskd.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :5030 + ''; }; } diff --git a/features/server/multimedia/transmission.nix b/features/server/multimedia/transmission.nix index 6362b54..13e6e44 100644 --- a/features/server/multimedia/transmission.nix +++ b/features/server/multimedia/transmission.nix @@ -39,5 +39,9 @@ in ratio-limit-enabled = true; }; }; + + services.caddy.virtualHosts."http://transmission.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :9091 + ''; }; } diff --git a/features/server/prometheus.nix b/features/server/prometheus.nix index acc78d1..cb1bc96 100644 --- a/features/server/prometheus.nix +++ b/features/server/prometheus.nix @@ -1,6 +1,5 @@ { config, ... }: { - services.prometheus = { enable = true; exporters = { diff --git a/features/server/services/default.nix b/features/server/services/default.nix index f9e118f..6863dda 100644 --- a/features/server/services/default.nix +++ b/features/server/services/default.nix @@ -1,7 +1,7 @@ { config, ... }: { imports = [ - ./akkoma.nix + # ./akkoma.nix ./homelab-dashboard.nix ./nextcloud.nix # ./photoprism.nix diff --git a/features/server/services/forgejo.nix b/features/server/services/forgejo.nix index 708d1c6..69362c5 100644 --- a/features/server/services/forgejo.nix +++ b/features/server/services/forgejo.nix @@ -40,4 +40,8 @@ create="${lib.getExe config.services.forgejo.package} admin user create" $create --admin --email "`cat ${config.sops.secrets.forgejoInitialMail.path}`" --username you --password "`cat ${config.sops.secrets.forgejoInitialPassword.path}`" &>/dev/null || true ''; + + services.caddy.virtualHosts."http://git.hypervirtual.world".extraConfig = '' + reverse_proxy :3333 + ''; } diff --git a/features/server/services/grafana.nix b/features/server/services/grafana.nix index 98ca6aa..d7b2f72 100644 --- a/features/server/services/grafana.nix +++ b/features/server/services/grafana.nix @@ -8,4 +8,8 @@ }; }; }; + + services.caddy.virtualHosts."http://grafana.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :3000 + ''; } diff --git a/features/server/services/homelab-dashboard.nix b/features/server/services/homelab-dashboard.nix index 8aa225f..3ca9d89 100644 --- a/features/server/services/homelab-dashboard.nix +++ b/features/server/services/homelab-dashboard.nix @@ -38,6 +38,10 @@ in format = "dotenv"; }; + services.caddy.virtualHosts."http://sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :8082 + ''; + services.homepage-dashboard = { enable = true; environmentFile = config.sops.secrets."homepage".path; diff --git a/features/server/services/uptime-kuma.nix b/features/server/services/uptime-kuma.nix index c66d2ae..2ed8136 100644 --- a/features/server/services/uptime-kuma.nix +++ b/features/server/services/uptime-kuma.nix @@ -7,4 +7,14 @@ PORT = "4000"; }; }; + + services.caddy.virtualHosts."http://status.hypervirtual.world".extraConfig = '' + reverse_proxy :4000 + ''; + + services.caddy.virtualHosts."http://uptime.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :4000 + ''; + + } diff --git a/flake.lock b/flake.lock index c1b84dd..0692e23 100644 --- a/flake.lock +++ b/flake.lock @@ -61,6 +61,26 @@ "type": "github" } }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1730184279, + "narHash": "sha256-6OB+WWR6gnaWiqSS28aMJypKeK7Pjc2Wm6L0MtOrTuA=", + "owner": "LnL7", + "repo": "nix-darwin", + "rev": "b379bd4d872d159e5189053ce9a4adf86d56db4b", + "type": "github" + }, + "original": { + "owner": "LnL7", + "repo": "nix-darwin", + "type": "github" + } + }, "nix-secrets": { "flake": false, "locked": { @@ -164,6 +184,7 @@ "root": { "inputs": { "alejandra": "alejandra", + "nix-darwin": "nix-darwin", "nix-secrets": "nix-secrets", "nixos-generators": "nixos-generators", "nixpkgs": "nixpkgs", diff --git a/flake.nix b/flake.nix index 31867e3..b9be8fd 100644 --- a/flake.nix +++ b/flake.nix @@ -17,6 +17,9 @@ url = "github:nix-community/nixos-generators"; inputs.nixpkgs.follows = "nixpkgs"; }; + + nix-darwin.url = "github:LnL7/nix-darwin"; + nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = @@ -25,6 +28,7 @@ nixpkgs, sops-nix, nixos-generators, + nix-darwin, ... }@inputs: let @@ -117,5 +121,15 @@ format = "proxmox"; }; }; + + darwinConfigurations."iMac-de-Eddie" = nix-darwin.lib.darwinSystem { + modules = [ ./hosts/dadarwin/configuration.nix + + {system.configurationRevision = self.rev or self.dirtyRev or null;} + ]; + }; + + # Expose the package set, including overlays, for convenience. + darwinPackages = self.darwinConfigurations."iMac-de-Eddie".pkgs; }; } diff --git a/hosts/dadarwin/configuration.nix b/hosts/dadarwin/configuration.nix new file mode 100644 index 0000000..aefb368 --- /dev/null +++ b/hosts/dadarwin/configuration.nix @@ -0,0 +1,30 @@ +{ pkgs, ... }: +{ + # List packages installed in system profile. To search by name, run: + # $ nix-env -qaP | grep wget + environment.systemPackages = + [ + pkgs.neovim + pkgs.kitty + pkgs.kittysay + ]; + + programs.direnv.enable = true; + # Auto upgrade nix package and the daemon service. + services.nix-daemon.enable = true; + # nix.package = pkgs.nix; + + # Necessary for using flakes on this system. + nix.settings.experimental-features = "nix-command flakes"; + + # Create /etc/zshrc that loads the nix-darwin environment. + programs.zsh.enable = true; # default shell on catalina + # programs.fish.enable = true; + + # Used for backwards compatibility, please read the changelog before changing. + # $ darwin-rebuild changelog + system.stateVersion = 5; + + # The platform the configuration will be used on. + nixpkgs.hostPlatform = "x86_64-darwin"; +} diff --git a/hosts/sisyphe/hardware-configuration.nix b/hosts/sisyphe/hardware-configuration.nix index 0ac9604..98e7e3e 100644 --- a/hosts/sisyphe/hardware-configuration.nix +++ b/hosts/sisyphe/hardware-configuration.nix @@ -32,7 +32,7 @@ }; fileSystems."/srv/media" = { - device = "/dev/sdb1"; + device = "/dev/disk/by-uuid/bc4cf2f6-23ca-4d37-87d3-1b30148ab24b"; fsType = "ext4"; };