diff --git a/modules/nixos/secrets/default.nix b/modules/nixos/secrets/default.nix index e73318e..d266428 100644 --- a/modules/nixos/secrets/default.nix +++ b/modules/nixos/secrets/default.nix @@ -1,115 +1,112 @@ -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 diff --git a/modules/nixos/services/ollama/default.nix b/modules/nixos/services/ollama/default.nix index 12f16f4..d2d1777 100644 --- a/modules/nixos/services/ollama/default.nix +++ b/modules/nixos/services/ollama/default.nix @@ -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 ]; }; }; } diff --git a/systems/x86_64-linux/Hevana/default.nix b/systems/x86_64-linux/Hevana/default.nix index df2d9f2..18eeaf9 100644 --- a/systems/x86_64-linux/Hevana/default.nix +++ b/systems/x86_64-linux/Hevana/default.nix @@ -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";