{ config, pkgs, ... }:
{
  environment.systemPackages = with pkgs; [
    ollama
  ];
  systemd.services = {
    ollama = {
      description = "Server for local large language models";
      after = ["network-online.target"];
      wantedBy = ["multi-user.target"];
      environment = {
        HOME = "%S/ollama";
        OLLAMA_HOST = "0.0.0.0";
        OLLAMA_MODELS = "%S/ollama/models";
      };
      serviceConfig = {
        Type = "simple";
        User = "ollama";
        Group = "ollama";
        Restart = "always";
        RestartSec = "3";
        WorkingDirectory = "/var/lib/ollama";
        StateDirectory = [ "ollama" ];
        DynamicUser = true;  
        ExecStart = "${pkgs.ollama}/bin/ollama serve";
      };
    };
  };
  networking.firewall.allowedTCPPorts = [ 11434 ];
}