Merge pull request #302474 from abysssol/ollama-options

nixos/ollama: add options to override `HOME` and `OLLAMA_MODELS`
This commit is contained in:
Pol Dellaiera 2024-04-08 07:58:55 +02:00 committed by GitHub
commit 1d6f060cd5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -15,6 +15,22 @@ in
services.ollama = { services.ollama = {
enable = lib.mkEnableOption "ollama server for local large language models"; enable = lib.mkEnableOption "ollama server for local large language models";
package = lib.mkPackageOption pkgs "ollama" { }; package = lib.mkPackageOption pkgs "ollama" { };
home = lib.mkOption {
type = types.str;
default = "%S/ollama";
example = "/home/foo";
description = ''
The home directory that the ollama service is started in.
'';
};
models = lib.mkOption {
type = types.str;
default = "%S/ollama/models";
example = "/path/to/ollama/models";
description = ''
The directory that the ollama service will read models from and download new models to.
'';
};
listenAddress = lib.mkOption { listenAddress = lib.mkOption {
type = types.str; type = types.str;
default = "127.0.0.1:11434"; default = "127.0.0.1:11434";
@ -58,8 +74,8 @@ in
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network.target" ]; after = [ "network.target" ];
environment = cfg.environmentVariables // { environment = cfg.environmentVariables // {
HOME = "%S/ollama"; HOME = cfg.home;
OLLAMA_MODELS = "%S/ollama/models"; OLLAMA_MODELS = cfg.models;
OLLAMA_HOST = cfg.listenAddress; OLLAMA_HOST = cfg.listenAddress;
}; };
serviceConfig = { serviceConfig = {