38 lines
974 B
Nix
38 lines
974 B
Nix
# https://github.com/ollama/ollama
|
|
{ pkgsStable, lib, setting, ... }: let
|
|
pkgs = pkgsStable;
|
|
in {
|
|
environment = {
|
|
# Add Ollama CLI app.
|
|
systemPackages = with pkgs; [ ollama ];
|
|
|
|
# Specify default model.
|
|
variables.OLLAMA_MODEL = setting.ollama.primaryModel;
|
|
};
|
|
|
|
# Enable Ollama server.
|
|
systemd.services.ollama = {
|
|
description = "Ollama LLM server.";
|
|
wantedBy = [ "multi-user.target" ];
|
|
wants = [ "NetworkManager-wait-online.service" ];
|
|
after = [ "NetworkManager-wait-online.service" ];
|
|
serviceConfig.Type = "simple";
|
|
script = ''
|
|
HOME=/root ${lib.getExe pkgs.ollama} serve
|
|
'';
|
|
};
|
|
|
|
# Download Ollama models.
|
|
systemd.services.ollamamodel = {
|
|
description = "Ollama LLM model.";
|
|
wantedBy = [ "multi-user.target" ];
|
|
wants = [ "ollama.service" ];
|
|
after = [ "ollama.service" ];
|
|
serviceConfig.Type = "simple";
|
|
script = ''
|
|
sleep 5
|
|
${lib.getExe pkgs.ollama} pull ${setting.ollama.primaryModel}
|
|
'';
|
|
};
|
|
}
|