{ config, lib, ... }: let cfg = config.soispha.services.ollama; in { options.soispha.services.ollama = { enable = lib.mkEnableOption "ollama"; }; config = lib.mkIf cfg.enable { soispha.impermanence.directories = [ # Set the mode to 700, so that it is private enough for systemd. { directory = "/var/lib/private"; mode = "700"; } # Ollama's systemd services tries to do create the directory under # `/var/lib/private/ollama` and then symlink `/var/lib/ollama` to that, when # `DynamicUsers` is true. Thus we need to persist the private directory and not the # resulting symlink one. # Relevant issue: https://github.com/nix-community/impermanence/issues/93 "/var/lib/private/ollama" ]; services.ollama = { enable = true; rocmOverrideGfx = "10.3.0"; acceleration = "rocm"; }; }; }