{ 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 ]; }