From 895a495b3faf58bab3790757e246f3a1b88530e9 Mon Sep 17 00:00:00 2001 From: Amneesh Singh Date: Thu, 4 Sep 2025 11:25:31 +0530 Subject: [PATCH] hosts/suwako: split service files Signed-off-by: Amneesh Singh --- flake.nix | 2 +- hosts/suwako/default.nix | 2 +- hosts/suwako/services.nix | 70 --------------------------- hosts/suwako/services/default.nix | 21 ++++++++ hosts/suwako/services/nginx.nix | 36 ++++++++++++++ hosts/suwako/services/pufferpanel.nix | 17 +++++++ 6 files changed, 76 insertions(+), 72 deletions(-) delete mode 100644 hosts/suwako/services.nix create mode 100644 hosts/suwako/services/default.nix create mode 100644 hosts/suwako/services/nginx.nix create mode 100644 hosts/suwako/services/pufferpanel.nix diff --git a/flake.nix b/flake.nix index f4eb9c0..e6cd920 100644 --- a/flake.nix +++ b/flake.nix @@ -19,7 +19,7 @@ perSystem = { system, pkgs, ... }: rec { - formatter = pkgs.nixfmt-rfc-style; + formatter = pkgs.nixfmt-tree; devShells.default = with pkgs; mkShell { diff --git a/hosts/suwako/default.nix b/hosts/suwako/default.nix index 8827461..d3e534d 100644 --- a/hosts/suwako/default.nix +++ b/hosts/suwako/default.nix @@ -9,7 +9,7 @@ ./networking.nix ./hardware.nix ./boot.nix - ./services.nix + ./services ./mailserver.nix ]; diff --git a/hosts/suwako/services.nix b/hosts/suwako/services.nix deleted file mode 100644 index 46d8764..0000000 --- a/hosts/suwako/services.nix +++ /dev/null @@ -1,70 +0,0 @@ -{ - config, - pkgs, - lib, - conf, - ... -}: -let - domain = conf.network.addresses.domain.natto; -in -{ - virtualisation.docker = { - enable = true; - }; - - services = { - cron.enable = true; - - openssh = { - enable = true; - settings.PermitRootLogin = "yes"; - ports = [ 22 ]; - }; - - nginx = { - enable = true; - virtualHosts = with conf.network.addresses.wireguard.ips; { - "moj.${domain}" = { - enableACME = true; - forceSSL = true; - locations."/" = { - proxyPass = "https://${suwako}:25565"; - }; - }; - "puffer.${domain}" = { - enableACME = true; - forceSSL = true; - locations."/" = { - proxyPass = "http://${suwako}:8080"; - }; - extraConfig = '' - proxy_set_header X-Real-IP $remote_addr; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Connection "Upgrade"; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header X-Nginx-Proxy true; - proxy_set_header X-Forwarded-Proto $scheme; - client_max_body_size 100M; - ''; - }; - }; - }; - pufferpanel = { - enable = true; - extraGroups = [ "docker" ]; - package = pkgs.buildFHSEnv { - name = "pufferpanel-fhs"; - runScript = lib.getExe pkgs.pufferpanel; - targetPkgs = - pkgs': with pkgs'; [ - icu - openssl - zlib - ]; - }; - }; - }; -} diff --git a/hosts/suwako/services/default.nix b/hosts/suwako/services/default.nix new file mode 100644 index 0000000..91ec852 --- /dev/null +++ b/hosts/suwako/services/default.nix @@ -0,0 +1,21 @@ +{ ... }: +{ + imports = [ + ./nginx.nix + ./pufferpanel.nix + ]; + + virtualisation.docker = { + enable = true; + }; + + services = { + cron.enable = true; + + openssh = { + enable = true; + settings.PermitRootLogin = "yes"; + ports = [ 22 ]; + }; + }; +} diff --git a/hosts/suwako/services/nginx.nix b/hosts/suwako/services/nginx.nix new file mode 100644 index 0000000..9512679 --- /dev/null +++ b/hosts/suwako/services/nginx.nix @@ -0,0 +1,36 @@ +{ conf, ... }: +let + domain = conf.network.addresses.domain.natto; +in +{ + services.nginx = { + enable = true; + virtualHosts = with conf.network.addresses.wireguard.ips; { + "moj.${domain}" = { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "https://${suwako}:25565"; + }; + }; + "puffer.${domain}" = { + enableACME = true; + forceSSL = true; + locations."/" = { + proxyPass = "http://${suwako}:8080"; + }; + extraConfig = '' + proxy_set_header X-Real-IP $remote_addr; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Connection "Upgrade"; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header X-Nginx-Proxy true; + proxy_set_header X-Forwarded-Proto $scheme; + client_max_body_size 100M; + ''; + }; + }; + }; +} diff --git a/hosts/suwako/services/pufferpanel.nix b/hosts/suwako/services/pufferpanel.nix new file mode 100644 index 0000000..47c73dc --- /dev/null +++ b/hosts/suwako/services/pufferpanel.nix @@ -0,0 +1,17 @@ +{ pkgs, lib, ... }: +{ + services.pufferpanel = { + enable = true; + extraGroups = [ "docker" ]; + package = pkgs.buildFHSEnv { + name = "pufferpanel-fhs"; + runScript = lib.getExe pkgs.pufferpanel; + targetPkgs = + pkgs': with pkgs'; [ + icu + openssl + zlib + ]; + }; + }; +}