From 72c17ae18e46a27c0aaaf7a019b2295debc01ebc Mon Sep 17 00:00:00 2001 From: TheWanderingCrow Date: Fri, 11 Jul 2025 10:57:44 -0400 Subject: [PATCH] add ollama --- hosts/nixos/HandlerOne/default.nix | 2 ++ hosts/nixos/Parzival/default.nix | 1 + modules/services/ollama/default.nix | 19 +++++++++++++++++++ modules/services/ollama/nginx.nix | 16 ++++++++++++++++ 4 files changed, 38 insertions(+) create mode 100644 modules/services/ollama/default.nix create mode 100644 modules/services/ollama/nginx.nix diff --git a/hosts/nixos/HandlerOne/default.nix b/hosts/nixos/HandlerOne/default.nix index 31a0e29..8eed8d6 100644 --- a/hosts/nixos/HandlerOne/default.nix +++ b/hosts/nixos/HandlerOne/default.nix @@ -47,6 +47,7 @@ "modules/services/lubelogger" "modules/services/trilium" "modules/services/umami" + "modules/services/ollama/nginx.nix" # Just host the nginx path back to Parzival ]) ]; @@ -118,6 +119,7 @@ "budget.wanderingcrow.net" = {}; "matrix.wanderingcrow.net" = {}; "ta.wanderingcrow.net" = {}; + "chat.wanderingcrow.net" = {}; }; }; } diff --git a/hosts/nixos/Parzival/default.nix b/hosts/nixos/Parzival/default.nix index b718532..54d9f7b 100644 --- a/hosts/nixos/Parzival/default.nix +++ b/hosts/nixos/Parzival/default.nix @@ -35,6 +35,7 @@ "hosts/common/optional/bluetooth.nix" "hosts/common/optional/pentesting.nix" "hosts/common/optional/gaming.nix" + "modules/services/ollama" ]) ]; diff --git a/modules/services/ollama/default.nix b/modules/services/ollama/default.nix new file mode 100644 index 0000000..f3e38a1 --- /dev/null +++ b/modules/services/ollama/default.nix @@ -0,0 +1,19 @@ +{ + config, + pkgs, + ... +}: { + services.ollama = { + enable = true; + loadModels = []; + acceleration = "rocm"; + }; + + networking.firewall.allowedTCPPorts = [3000]; + + services.nextjs-ollama-llm-ui = { + enable = true; + port = 3000; + hostname = "0.0.0.0"; + }; +} diff --git a/modules/services/ollama/nginx.nix b/modules/services/ollama/nginx.nix new file mode 100644 index 0000000..eee9c94 --- /dev/null +++ b/modules/services/ollama/nginx.nix @@ -0,0 +1,16 @@ +{ + nginx = { + enable = true; + recommendedProxySettings = true; + virtualHosts = { + "chat.wanderingcrow.net" = { + forceSSL = true; + useACMEHost = "chat.wanderingcrow.net"; + locations."/" = { + proxyPass = "http://192.168.0.72:3000"; + proxyWebsockets = true; + }; + }; + }; + }; +}