feat: nginx reverse proxy that shi

This commit is contained in:
s-prechtl 2025-11-08 20:04:43 +01:00
parent 411755a47e
commit 8fc518d422
13 changed files with 98 additions and 58 deletions

View file

@ -30,6 +30,7 @@
in { in {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
./nginx.nix
./nextcloud.nix ./nextcloud.nix
./teamspeak.nix ./teamspeak.nix
./matrix.nix ./matrix.nix

View file

@ -1,5 +1,4 @@
{...} : {config, ...}: {
{
services.open-webui = { services.open-webui = {
enable = true; enable = true;
openFirewall = true; openFirewall = true;
@ -8,8 +7,25 @@
services.ollama = { services.ollama = {
enable = true; enable = true;
host = "chattn.sprechtl.me";
acceleration = "cuda"; acceleration = "cuda";
loadModels = ["llama3.2:3b" "deepseek-r1:1.5b" "gpt-oss:20b"]; loadModels = ["llama3.2:3b" "deepseek-r1:1.5b" "gpt-oss:20b"];
};
services.nginx = {
enable = true;
virtualHosts.${config.services.ollama.host} = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://127.0.0.1:8080";
proxyWebsockets = true;
};
};
};
security.acme = {
acceptTerms = true;
defaults.email = "stefan@tague.at";
}; };
} }

View file

@ -1,4 +1,8 @@
{ config, pkgs, ... }: { {
config,
pkgs,
...
}: {
age.secrets.mail-admin = { age.secrets.mail-admin = {
file = ../../secrets/mail-admin.age; file = ../../secrets/mail-admin.age;
owner = "virtualMail"; owner = "virtualMail";

View file

@ -57,9 +57,4 @@
enableACME = true; enableACME = true;
}; };
}; };
security.acme = {
acceptTerms = true;
defaults.email = "stefan@tague.at";
};
} }

View file

@ -0,0 +1,12 @@
{...}: {
services.nginx = {
recommendedProxySettings = true;
recommendedTlsSettings = true;
enable = true;
};
security.acme = {
acceptTerms = true;
defaults.email = "stefan@tague.at";
};
}

View file

@ -1,5 +1,8 @@
{config, lib, ...}:
{ {
config,
lib,
...
}: {
nixpkgs.config.allowUnfreePredicate = pkg: nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [ builtins.elem (lib.getName pkg) [
"nvidia-x11" "nvidia-x11"
@ -14,7 +17,6 @@
services.xserver.videoDrivers = ["nvidia"]; services.xserver.videoDrivers = ["nvidia"];
hardware.nvidia = { hardware.nvidia = {
# Modesetting is required. # Modesetting is required.
modesetting.enable = true; modesetting.enable = true;

View file

@ -120,7 +120,8 @@ in {
"/var/lib/caddy/.local/share/caddy/pki/authorities/local/root.crt:/usr/local/share/ca-certificates/root.crt:ro" "/var/lib/caddy/.local/share/caddy/pki/authorities/local/root.crt:/usr/local/share/ca-certificates/root.crt:ro"
]; ];
extraOptions = [ extraOptions = [
"--network" "host" "--network"
"host"
"--dns=192.168.0.201" "--dns=192.168.0.201"
]; ];

View file

@ -1,14 +1,20 @@
{lib, pkgs, ...}: { {
lib,
pkgs,
...
}: {
# Disables spindown on all disks of /dev/sd* format. -S might be used later not sure if needed yet. # Disables spindown on all disks of /dev/sd* format. -S might be used later not sure if needed yet.
services.udev.extraRules = services.udev.extraRules = let
let
mkRule = as: lib.concatStringsSep ", " as; mkRule = as: lib.concatStringsSep ", " as;
mkRules = rs: lib.concatStringsSep "\n" rs; mkRules = rs: lib.concatStringsSep "\n" rs;
in mkRules ([( mkRule [ in
mkRules [
(mkRule [
''ACTION=="add|change"'' ''ACTION=="add|change"''
''SUBSYSTEM=="block"'' ''SUBSYSTEM=="block"''
''KERNEL=="sd[a-z]"'' ''KERNEL=="sd[a-z]"''
''ATTR{queue/rotational}=="1"'' ''ATTR{queue/rotational}=="1"''
''RUN+="${pkgs.hdparm}/bin/hdparm -B 254 /dev/%k"'' ''RUN+="${pkgs.hdparm}/bin/hdparm -B 254 /dev/%k"''
])]); ])
];
} }

View file

@ -1,4 +1,8 @@
{config, pkgs, ...}: { {
config,
pkgs,
...
}: {
services.xserver.videoDrivers = ["modesetting"]; services.xserver.videoDrivers = ["modesetting"];
hardware.graphics = { hardware.graphics = {
enable = true; enable = true;

View file

@ -1,5 +1,8 @@
{config, lib, ...}:
{ {
config,
lib,
...
}: {
nixpkgs.config.allowUnfreePredicate = pkg: nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [ builtins.elem (lib.getName pkg) [
"nvidia-x11" "nvidia-x11"
@ -14,7 +17,6 @@
services.xserver.videoDrivers = ["nvidia"]; services.xserver.videoDrivers = ["nvidia"];
hardware.nvidia = { hardware.nvidia = {
# Modesetting is required. # Modesetting is required.
modesetting.enable = true; modesetting.enable = true;

View file

@ -1,7 +1,4 @@
{ {pkgs, ...}: {
pkgs,
...
}: {
services.greetd = { services.greetd = {
enable = true; enable = true;