hosts/suwako: split service files

Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
This commit is contained in:
2025-09-04 11:25:31 +05:30
parent 7e4a6ac8fe
commit 895a495b3f
6 changed files with 76 additions and 72 deletions

View File

@@ -9,7 +9,7 @@
./networking.nix
./hardware.nix
./boot.nix
./services.nix
./services
./mailserver.nix
];

View File

@@ -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
];
};
};
};
}

View File

@@ -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 ];
};
};
}

View File

@@ -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;
'';
};
};
};
}

View File

@@ -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
];
};
};
}