55 lines
1.5 KiB
Nix
55 lines
1.5 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
...
|
|
}: let
|
|
port = 3021;
|
|
in {
|
|
imports = [./ollama.nix];
|
|
|
|
localWebApps = {
|
|
anything-llm = {
|
|
name = "Anything LLM";
|
|
genericName = "Chatbot";
|
|
icon = ../icons/anythingllm.png;
|
|
inherit port;
|
|
requires.containers = ["anything-llm" "ollama"];
|
|
};
|
|
};
|
|
|
|
services.podman.containers.anything-llm = let
|
|
str = builtins.toString;
|
|
username = config.mainUser;
|
|
in {
|
|
image = "docker.io/mintplexlabs/anythingllm";
|
|
devices = ["nvidia.com/gpu=all"];
|
|
ports = ["${str port}:3001"];
|
|
autoStart = false;
|
|
autoUpdate = "registry";
|
|
network = ["ollama"];
|
|
volumes = let
|
|
home = "/home/${username}";
|
|
share = "${home}/.local/share/anything-llm";
|
|
in [
|
|
"${share}:/app/server/storage"
|
|
"${share}/.env:/app/server/.env"
|
|
"${share}/config:/home/anythingllm/.config/anythingllm-desktop"
|
|
"${share}/config:/home/${username}/.config/anythingllm-desktop"
|
|
];
|
|
environment = {
|
|
STORAGE_DIR = "/app/server/storage";
|
|
LLM_PROVIDER = "ollama";
|
|
OLLAMA_BASE_PATH = "http://ollama:11434";
|
|
EMBEDDING_ENGINE = "ollama";
|
|
EMBEDDING_BASE_PATH = "http://ollama:11434";
|
|
VECTOR_DB = "lancedb";
|
|
WHISPER_PROVIDER = "local";
|
|
TTS_PROVIDER = "native";
|
|
};
|
|
extraConfig.Unit.Requires = ["podman-ollama.service"];
|
|
extraPodmanArgs = [
|
|
"--health-cmd"
|
|
(lib.escapeShellArg "bash -c 'cat < /dev/null > /dev/tcp/localhost/3001'")
|
|
];
|
|
};
|
|
}
|