1
0
Fork 0

Services: enable Ollama

This commit is contained in:
Aires 2025-01-06 09:59:51 -05:00
parent eb6b1ed0c0
commit 0328a2349f
3 changed files with 166 additions and 152 deletions

View file

@ -1,115 +1,112 @@
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

View file

@ -1,3 +1,4 @@
# FIXME: Clean up
{
config,
lib,
@ -5,44 +6,44 @@
...
}:
let
cfg = config.${namespace}.services.ollama;
cfg = config.${namespace}.services;
api.port = 11434;
webui.port = 8130;
user = "ollama";
group = "ollama";
in
{
options = {
${namespace}.services.ollama = {
enable = lib.mkEnableOption "Enables Ollama.";
auth = {
password = lib.mkOption {
${namespace}.services = {
ollama = {
enable = lib.mkEnableOption "Enables Ollama.";
home = lib.mkOption {
default = "";
type = lib.types.str;
description = "The password to use for authentication.";
example = "MySuperSecurePassword123";
description = "Where to store Ollama's files";
example = "/var/lib/ollama";
};
user = lib.mkOption {
default = "ltuser";
};
open-webui = {
enable = lib.mkEnableOption "Enables Ollama.";
url = lib.mkOption {
default = "";
type = lib.types.str;
description = "The username to use for authentication.";
description = "The complete URL where Open-WebUI is hosted.";
example = "https://open-webui.example.com";
};
home = lib.mkOption {
default = "/var/lib/open-webui";
type = lib.types.str;
description = "Where to store Open-webUI's files";
example = "/var/lib/open-webui";
};
};
home = lib.mkOption {
default = "";
type = lib.types.str;
description = "Where to store Ollama's files";
example = "/var/lib/ollama";
};
url = lib.mkOption {
default = "";
type = lib.types.str;
description = "The complete URL where Ollama is hosted.";
example = "https://ollama.example.com";
};
};
};
config = lib.mkIf cfg.enable {
config = lib.mkIf cfg.ollama.enable {
services = {
ollama = {
enable = true;
@ -54,39 +55,46 @@ in
"cuda"
else
false;
home = cfg.home;
home = cfg.ollama.home;
port = api.port;
user = user;
group = group;
};
open-webui = {
open-webui = lib.mkIf cfg.open-webui.enable {
enable = true;
port = webui.port;
environment = {
ANONYMIZED_TELEMETRY = "False";
DO_NOT_TRACK = "True";
SCARF_NO_ANALYTICS = "True";
OLLAMA_API_BASE_URL = "http://127.0.0.1:${
builtins.toString config.${namespace}.services.ollama.port
}";
OLLAMA_BASE_URL = "http://127.0.0.1:${builtins.toString api.port}";
};
stateDir = "${cfg.home}/open-webui";
stateDir = cfg.open-webui.home;
};
nginx.virtualHosts."${cfg.url}" = {
useACMEHost = lib.${namespace}.getDomainFromURI cfg.url;
nginx.virtualHosts."${cfg.open-webui.url}" = {
useACMEHost = lib.${namespace}.getDomainFromURI cfg.open-webui.url;
forceSSL = true;
basicAuth = {
"${cfg.auth.user}" = cfg.auth.password;
};
locations."/" = {
proxyPass = "http://127.0.0.1:${builtins.toString api.port}";
proxyPass = "http://127.0.0.1:${builtins.toString webui.port}";
extraConfig = "proxy_ssl_server_name on;";
};
};
};
systemd.services = {
ollama.unitConfig.RequiresMountsFor = cfg.home;
nginx.wants = [ config.systemd.services.ollama.name ];
ollama.unitConfig.RequiresMountsFor = cfg.ollama.home;
open-webui = {
serviceConfig = {
User = user;
Group = group;
};
unitConfig.RequiresMountsFor = cfg.open-webui.home;
wants = [ config.systemd.services.ollama.name ];
};
nginx.wants = [ config.systemd.services.open-webui.name ];
};
};
}

View file

@ -244,6 +244,15 @@ in
};
};
};
ollama = {
enable = true;
home = "${services-root}/ollama";
};
open-webui = {
#home = "${services-root}/open-webui";
enable = true;
url = config.${namespace}.secrets.services.open-webui.url;
};
qbittorrent = {
enable = true;
home = "${services-root}/qbittorrent";