From c3956d6fa4b4a707a21f2bdf5cdf04c0b282ab45 Mon Sep 17 00:00:00 2001 From: harry Date: Fri, 16 Aug 2024 15:28:32 +0200 Subject: [PATCH] (feat): reformatted code for flakes usage --- configuration.nix | 13 +++- customs/caddy/default.nix | 11 --- features/caddy.nix | 41 ----------- features/client/backups.nix | 0 features/{ => server}/authentik.nix | 0 features/{ => server}/backups.nix | 0 features/server/caddy.nix | 69 +++++++++++++++++++ features/{ => server}/containers/4get.nix | 0 .../containers/crafty-controller.nix | 0 features/{ => server}/containers/default.nix | 2 +- .../{ => server}/containers/flaresolverr.nix | 0 features/{ => server}/containers/freshrss.nix | 0 .../containers/pihole-exporter.nix | 0 features/{ => server}/containers/sonarr.nix | 0 features/{ => server}/databases/default.nix | 0 .../{ => server}/multimedia/arr-suite.nix | 0 .../{ => server}/multimedia/calibre-web.nix | 0 features/{ => server}/multimedia/default.nix | 0 features/{ => server}/multimedia/slskd.nix | 2 +- .../{ => server}/multimedia/transmission.nix | 2 +- features/{ => server}/prometheus.nix | 0 features/{ => server}/samba-shares.nix | 0 features/{ => server}/searx.nix | 0 features/{ => server}/services/default.nix | 0 features/server/services/forgejo-smtp.nix | 5 ++ features/{ => server}/services/forgejo.nix | 0 features/{ => server}/services/freshrss.nix | 0 features/{ => server}/services/grafana.nix | 0 .../services/homelab-dashboard.nix | 0 features/server/services/i2p.nix | 7 ++ features/{ => server}/services/nextcloud.nix | 0 features/{ => server}/services/photoprism.nix | 0 .../{ => server}/services/synapse-matrix.nix | 0 .../{ => server}/services/uptime-kuma.nix | 0 features/server/tailscale.nix | 7 ++ features/services/forgejo-smtp.nix | 5 -- features/shared/nvim.nix | 0 flake.nix | 18 +++++ vm-hardware.nix => hardware/vm-hardware.nix | 0 server-configuration.nix | 24 +++---- 40 files changed, 130 insertions(+), 76 deletions(-) delete mode 100644 customs/caddy/default.nix delete mode 100644 features/caddy.nix create mode 100644 features/client/backups.nix rename features/{ => server}/authentik.nix (100%) rename features/{ => server}/backups.nix (100%) create mode 100644 features/server/caddy.nix rename features/{ => server}/containers/4get.nix (100%) rename features/{ => server}/containers/crafty-controller.nix (100%) rename features/{ => server}/containers/default.nix (86%) rename features/{ => server}/containers/flaresolverr.nix (100%) rename features/{ => server}/containers/freshrss.nix (100%) rename features/{ => server}/containers/pihole-exporter.nix (100%) rename features/{ => server}/containers/sonarr.nix (100%) rename features/{ => server}/databases/default.nix (100%) rename features/{ => server}/multimedia/arr-suite.nix (100%) rename features/{ => server}/multimedia/calibre-web.nix (100%) rename features/{ => server}/multimedia/default.nix (100%) rename features/{ => server}/multimedia/slskd.nix (93%) rename features/{ => server}/multimedia/transmission.nix (93%) rename features/{ => server}/prometheus.nix (100%) rename features/{ => server}/samba-shares.nix (100%) rename features/{ => server}/searx.nix (100%) rename features/{ => server}/services/default.nix (100%) create mode 100644 features/server/services/forgejo-smtp.nix rename features/{ => server}/services/forgejo.nix (100%) rename features/{ => server}/services/freshrss.nix (100%) rename features/{ => server}/services/grafana.nix (100%) rename features/{ => server}/services/homelab-dashboard.nix (100%) create mode 100644 features/server/services/i2p.nix rename features/{ => server}/services/nextcloud.nix (100%) rename features/{ => server}/services/photoprism.nix (100%) rename features/{ => server}/services/synapse-matrix.nix (100%) rename features/{ => server}/services/uptime-kuma.nix (100%) create mode 100644 features/server/tailscale.nix delete mode 100644 features/services/forgejo-smtp.nix create mode 100644 features/shared/nvim.nix create mode 100644 flake.nix rename vm-hardware.nix => hardware/vm-hardware.nix (100%) diff --git a/configuration.nix b/configuration.nix index 06078a2..44cb5c7 100644 --- a/configuration.nix +++ b/configuration.nix @@ -11,7 +11,7 @@ { imports = [ - ./vm-hardware.nix # or hardware-configuration.nix + ./hardware/vm-hardware.nix # or hardware-configuration.nix ./server-configuration.nix "${(import ./nix/sources.nix).sops-nix}/modules/sops" ]; @@ -33,6 +33,11 @@ keyMap = "fr"; }; + nix.settings.experimental-features = [ + "nix-command" + "flakes" + ]; + users.users.homelab = { isNormalUser = true; extraGroups = [ @@ -45,7 +50,6 @@ neovim btop tree - git ]; openssh.authorizedKeys.keys = [ @@ -60,11 +64,14 @@ # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ - vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + git + nvim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. curl niv ]; + environment.variables.EDITOR = "nvim"; + # Some programs need SUID wrappers, can be configured further or are # started in user sessions. # programs.mtr.enable = true; diff --git a/customs/caddy/default.nix b/customs/caddy/default.nix deleted file mode 100644 index 3ac88a3..0000000 --- a/customs/caddy/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -let - pkgs = import { }; - -in -{ - name = "caddy"; - buildInputs = with pkgs; [ - xcaddy - go - ]; -} diff --git a/features/caddy.nix b/features/caddy.nix deleted file mode 100644 index 795fe91..0000000 --- a/features/caddy.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ config, lib, ... }: -{ - services.caddy = { - enable = true; - - virtualHosts.":5050".extraConfig = '' - reverse_proxy :8083 - ''; - /* - virtualHosts."sisyphe.normandy.hypervirtual.world".extraConfig = '' - reverse_proxy :8003 - ''; - */ - - virtualHosts."git.hypervirtual.world".extraConfig = '' - reverse_proxy :3333 - ''; - - virtualHosts."photos.hypervirtual.world".extraConfig = '' - reverse_proxy :2342 - ''; - - virtualHosts."books.hypervirtual.world".extraConfig = '' - reverse_proxy :8083 - ''; - - virtualHosts."fish.hypervirtual.world".extraConfig = '' - reverse_proxy :3030 - ''; - - virtualHosts.":2344".extraConfig = '' - reverse_proxy :2342 - ''; - /* - virtualHosts."jellyfin.normandy.hypervirtual.world".extraConfig = '' - reverse_proxy :8096 - ''; - */ - }; - -} diff --git a/features/client/backups.nix b/features/client/backups.nix new file mode 100644 index 0000000..e69de29 diff --git a/features/authentik.nix b/features/server/authentik.nix similarity index 100% rename from features/authentik.nix rename to features/server/authentik.nix diff --git a/features/backups.nix b/features/server/backups.nix similarity index 100% rename from features/backups.nix rename to features/server/backups.nix diff --git a/features/server/caddy.nix b/features/server/caddy.nix new file mode 100644 index 0000000..23c1aab --- /dev/null +++ b/features/server/caddy.nix @@ -0,0 +1,69 @@ +{ config, lib, ... }: +{ + services.caddy = { + enable = true; + + virtualHosts = { + ":5050".extraConfig = '' + reverse_proxy :8083 + ''; + + "sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :8003 + ''; + + "git.hypervirtual.world".extraConfig = '' + reverse_proxy :3333 + ''; + + "photos.hypervirtual.world".extraConfig = '' + reverse_proxy :2342 + ''; + + "books.hypervirtual.world".extraConfig = '' + reverse_proxy :8083 + ''; + + "fish.hypervirtual.world".extraConfig = '' + reverse_proxy :3030 + ''; + + ":2344".extraConfig = '' + reverse_proxy :2342 + ''; + + "jellyfin.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :8096 + ''; + + "slskd.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :5030 + ''; + + "radarr.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :7878 + ''; + + "sonarr.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :8989 + ''; + + "sonarr-anime.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :8999 + ''; + + "prowlarr.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :9696 + ''; + + "grafana.sisyphe.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :3000 + ''; + + "status.normandy.hypervirtual.world".extraConfig = '' + reverse_proxy :4000 + ''; + }; + }; + +} diff --git a/features/containers/4get.nix b/features/server/containers/4get.nix similarity index 100% rename from features/containers/4get.nix rename to features/server/containers/4get.nix diff --git a/features/containers/crafty-controller.nix b/features/server/containers/crafty-controller.nix similarity index 100% rename from features/containers/crafty-controller.nix rename to features/server/containers/crafty-controller.nix diff --git a/features/containers/default.nix b/features/server/containers/default.nix similarity index 86% rename from features/containers/default.nix rename to features/server/containers/default.nix index 7cbeb82..72cf21c 100644 --- a/features/containers/default.nix +++ b/features/server/containers/default.nix @@ -4,7 +4,7 @@ imports = [ ./crafty-controller.nix ./flaresolverr.nix - # ./freshrss.nix + ./freshrss.nix ./sonarr.nix #./pihole-exporter.nix ]; diff --git a/features/containers/flaresolverr.nix b/features/server/containers/flaresolverr.nix similarity index 100% rename from features/containers/flaresolverr.nix rename to features/server/containers/flaresolverr.nix diff --git a/features/containers/freshrss.nix b/features/server/containers/freshrss.nix similarity index 100% rename from features/containers/freshrss.nix rename to features/server/containers/freshrss.nix diff --git a/features/containers/pihole-exporter.nix b/features/server/containers/pihole-exporter.nix similarity index 100% rename from features/containers/pihole-exporter.nix rename to features/server/containers/pihole-exporter.nix diff --git a/features/containers/sonarr.nix b/features/server/containers/sonarr.nix similarity index 100% rename from features/containers/sonarr.nix rename to features/server/containers/sonarr.nix diff --git a/features/databases/default.nix b/features/server/databases/default.nix similarity index 100% rename from features/databases/default.nix rename to features/server/databases/default.nix diff --git a/features/multimedia/arr-suite.nix b/features/server/multimedia/arr-suite.nix similarity index 100% rename from features/multimedia/arr-suite.nix rename to features/server/multimedia/arr-suite.nix diff --git a/features/multimedia/calibre-web.nix b/features/server/multimedia/calibre-web.nix similarity index 100% rename from features/multimedia/calibre-web.nix rename to features/server/multimedia/calibre-web.nix diff --git a/features/multimedia/default.nix b/features/server/multimedia/default.nix similarity index 100% rename from features/multimedia/default.nix rename to features/server/multimedia/default.nix diff --git a/features/multimedia/slskd.nix b/features/server/multimedia/slskd.nix similarity index 93% rename from features/multimedia/slskd.nix rename to features/server/multimedia/slskd.nix index c1e4e87..3835aed 100644 --- a/features/multimedia/slskd.nix +++ b/features/server/multimedia/slskd.nix @@ -14,7 +14,7 @@ in config = { sops.secrets.slskd = { - sopsFile = ../../secrets/slskd.env; + sopsFile = ../../../secrets/slskd.env; format = "dotenv"; }; diff --git a/features/multimedia/transmission.nix b/features/server/multimedia/transmission.nix similarity index 93% rename from features/multimedia/transmission.nix rename to features/server/multimedia/transmission.nix index eff7aa2..18434b7 100644 --- a/features/multimedia/transmission.nix +++ b/features/server/multimedia/transmission.nix @@ -16,7 +16,7 @@ in config = { sops.secrets.transmission = { - sopsFile = ../../secrets/transmission.json; + sopsFile = ../../../secrets/transmission.json; path = "/var/lib/secrets/transmission/settings.json"; }; diff --git a/features/prometheus.nix b/features/server/prometheus.nix similarity index 100% rename from features/prometheus.nix rename to features/server/prometheus.nix diff --git a/features/samba-shares.nix b/features/server/samba-shares.nix similarity index 100% rename from features/samba-shares.nix rename to features/server/samba-shares.nix diff --git a/features/searx.nix b/features/server/searx.nix similarity index 100% rename from features/searx.nix rename to features/server/searx.nix diff --git a/features/services/default.nix b/features/server/services/default.nix similarity index 100% rename from features/services/default.nix rename to features/server/services/default.nix diff --git a/features/server/services/forgejo-smtp.nix b/features/server/services/forgejo-smtp.nix new file mode 100644 index 0000000..0000234 --- /dev/null +++ b/features/server/services/forgejo-smtp.nix @@ -0,0 +1,5 @@ +U2FsdGVkX18oY3efQYeXqacnpNaOkre/hn/Ck1shbtZiKPQbD7G+tdQBjxPdZxIL +7oZi2qay/Z6ZKgjmd5zMW+jFejxl9/PSbDFbydn3nADkOCgPO5QSjN2QX+cswV/T +MlSQovYhJzhBgy37cPNU4oZBM8u5ZyRKLgBdUcbaKOJShyzirwKaKdn4abN0QC9B +nPIRIY5INzJPDHJEi/hgOfp4PLeiJTOvrGjvKF2N65f4Uyi8BOW3NSDK+qp6VcUI +tfF/C6r6XQF4w3p9GD2Zxw== diff --git a/features/services/forgejo.nix b/features/server/services/forgejo.nix similarity index 100% rename from features/services/forgejo.nix rename to features/server/services/forgejo.nix diff --git a/features/services/freshrss.nix b/features/server/services/freshrss.nix similarity index 100% rename from features/services/freshrss.nix rename to features/server/services/freshrss.nix diff --git a/features/services/grafana.nix b/features/server/services/grafana.nix similarity index 100% rename from features/services/grafana.nix rename to features/server/services/grafana.nix diff --git a/features/services/homelab-dashboard.nix b/features/server/services/homelab-dashboard.nix similarity index 100% rename from features/services/homelab-dashboard.nix rename to features/server/services/homelab-dashboard.nix diff --git a/features/server/services/i2p.nix b/features/server/services/i2p.nix new file mode 100644 index 0000000..8f5ca24 --- /dev/null +++ b/features/server/services/i2p.nix @@ -0,0 +1,7 @@ +{ config, pkgs, ... }: +{ + services.i2pd = { + enable = true; + upnp.enable = true; + }; +} diff --git a/features/services/nextcloud.nix b/features/server/services/nextcloud.nix similarity index 100% rename from features/services/nextcloud.nix rename to features/server/services/nextcloud.nix diff --git a/features/services/photoprism.nix b/features/server/services/photoprism.nix similarity index 100% rename from features/services/photoprism.nix rename to features/server/services/photoprism.nix diff --git a/features/services/synapse-matrix.nix b/features/server/services/synapse-matrix.nix similarity index 100% rename from features/services/synapse-matrix.nix rename to features/server/services/synapse-matrix.nix diff --git a/features/services/uptime-kuma.nix b/features/server/services/uptime-kuma.nix similarity index 100% rename from features/services/uptime-kuma.nix rename to features/server/services/uptime-kuma.nix diff --git a/features/server/tailscale.nix b/features/server/tailscale.nix new file mode 100644 index 0000000..16062cc --- /dev/null +++ b/features/server/tailscale.nix @@ -0,0 +1,7 @@ +{ pkgs, config, ... }: +{ + services.tailscale = { + enable = true; + useRoutingFeatures = "server"; + }; +} diff --git a/features/services/forgejo-smtp.nix b/features/services/forgejo-smtp.nix deleted file mode 100644 index 540dcff..0000000 --- a/features/services/forgejo-smtp.nix +++ /dev/null @@ -1,5 +0,0 @@ -U2FsdGVkX18/ZUWWb+ppxHPa/5EQsIQuaikkDlQyP/HTNbfhQqc0DOinQ7HF0Bov -yfoiw4mfPZGbGJKUyV+KVYMz8xDryYV+VkelwjbQNP2+43ffAAqO6+Yq23i5T6fY -83H8RFjcZMqyKhR8UXI1MSRfT3c2aT9Aqo+ogmn1MmeXRqY9m1Y4FVo7PohHocNX -Gm48e2RIrQ+vGgHeRJ+1Kzan4wRfNDFKZPSu6H8jffdi2DFtBABGl+a+cqKyeclO -7yMCgv1n6tam8sgFS/6YMw== diff --git a/features/shared/nvim.nix b/features/shared/nvim.nix new file mode 100644 index 0000000..e69de29 diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..b3bfbfc --- /dev/null +++ b/flake.nix @@ -0,0 +1,18 @@ +{ + description = "the silliest NixOS config!"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05"; + }; + + outputs = + { self, nixpkgs, ... }@inputs: + { + nixosConfigurations.sisyphe = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./configuration.nix + ]; + }; + }; +} diff --git a/vm-hardware.nix b/hardware/vm-hardware.nix similarity index 100% rename from vm-hardware.nix rename to hardware/vm-hardware.nix diff --git a/server-configuration.nix b/server-configuration.nix index 095a65b..00910b3 100644 --- a/server-configuration.nix +++ b/server-configuration.nix @@ -11,14 +11,14 @@ let in { imports = [ - ./features/containers/default.nix - ./features/multimedia/default.nix - ./features/databases/default.nix - ./features/services/default.nix - ./features/backups.nix - ./features/caddy.nix - ./features/prometheus.nix - ./features/samba-shares.nix + ./features/server/containers/default.nix + ./features/server/multimedia/default.nix + ./features/server/databases/default.nix + ./features/server/services/default.nix + ./features/server/backups.nix + ./features/server/caddy.nix + ./features/server/prometheus.nix + ./features/server/samba-shares.nix ]; # setting up networking!! @@ -36,7 +36,10 @@ in nameservers = [ "1.1.1.1" "1.0.0.1" + "2606:4700:4700::1111" + "2606:4700:4700::1001" ]; + nftables.enable = true; # firewall rules firewall = { @@ -112,11 +115,6 @@ in openFirewall = true; }; - services.tailscale = { - enable = true; - useRoutingFeatures = "server"; - }; - services = { networkd-dispatcher = { enable = true;