{ config, pkgs, ... }:
{
  virtualisation.oci-containers.containers = {
    "open-webui" = {
      autoStart = true;
      environment = {
        ENABLE_OLLAMA_API = "false";
        ENABLE_OPENAI_API = "true";
        VECTOR_DB = "chroma";
        RAG_EMBEDDING_ENGINE = "openai";
        RAG_TOP_K = "10";
        CHROMA_HTTP_HOST = "chromadb";
        CHROMA_HTTP_PORT = "8000";
        CHROMA_HTTP_SSL = "false";
        ENABLE_RAG_WEB_SEARCH = "true";
        RAG_WEB_SEARCH_RESULT_COUNT = "4";
        RAG_WEB_SEARCH_ENGINE = "duckduckgo"; # duckduckgo, brave, tavily, jina
      };
      extraOptions = [
        "--network=lm-network"
        "--dns=8.8.8.8"
        "--add-host=lmstudiolmstudio.marvinroman.me:192.168.0.249"
      ];
      environmentFiles = [
        config.age.secrets."open-webui-env".path # variables with API's and Keys
      ];
      image = "ghcr.io/open-webui/open-webui:main";
      ports = [
        "0.0.0.0:8080:8080"
      ];
      serviceName = "openwebui";
      volumes = [
        "open-webui:/app/backend/data"
      ];
    };
  };
  networking.firewall.allowedTCPPorts = [ 8080 ];
}