{pkgs, ...}: /* Ollama API service Don't put too much work into this, there's a much better and more complete ollama service (with webui!) being built here: https://github.com/NixOS/nixpkgs/pull/275448 If you want to spend time on it, spend time over there. */ let pkg = pkgs.unstable.ollama; in { systemd.services.ollama = { description = "ollama"; after = ["network.target"]; wantedBy = ["multi-user.target"]; environment = { OLLAMA_HOST = "localhost:11434"; # Where to store LLM model files. HOME = "%S/ollama"; OLLAMA_MODELS = "%S/ollama/models"; OLLAMA_DEBUG = "1"; }; serviceConfig = { ExecStart = "${pkg}/bin/ollama serve"; User = "ollama"; Group = "ollama"; Type = "simple"; Restart = "on-failure"; RestartSec = 3; # Persistent storage for model files, i.e. /var/lib/ StateDirectory = ["ollama"]; }; }; # for administration, make this available to users' PATH environment.systemPackages = [pkg]; users.groups.ollama = {}; users.users.ollama = { group = "ollama"; isSystemUser = true; extraGroups = ["render" "video"]; }; }