diff --git a/stacks/ai/ai-frontend.nomad b/stacks/ai/ai-frontend.nomad index 6805e9c..23f6754 100644 --- a/stacks/ai/ai-frontend.nomad +++ b/stacks/ai/ai-frontend.nomad @@ -1,9 +1,9 @@ job "ai-frontend" { - datacenters = ["Homelab-PTECH-DC"] + datacenters = [ "Homelab-PTECH-DC" ] region = "home" type = "service" - # --- OpenWebUI --- + # --- OpenWebUI (completely unchanged) --- group "openwebui" { count = 1 @@ -17,11 +17,10 @@ job "ai-frontend" { static = 8080 to = 8080 } - - # ✅ DNS Moved Here + dns { - servers = ["192.168.1.133"] - searches = ["service.consul"] + servers = [ "192.168.1.133" ] + searches = [ "service.consul" ] } } @@ -29,7 +28,7 @@ job "ai-frontend" { name = "openwebui" port = "http" tags = ["traefik.enable=true"] - + check { type = "http" path = "/health" @@ -46,8 +45,8 @@ job "ai-frontend" { } config { - image = "ghcr.io/open-webui/open-webui:main" - ports = ["http"] + image = "ghcr.io/open-webui/open-webui:main" + ports = [ "http" ] volumes = [ "/mnt/local-ssd/nomad/stacks/ai/ai-frontend/openwebui:/app/backend/data" ] @@ -59,4 +58,66 @@ job "ai-frontend" { } } } + + # --- LobeChat (new, no Traefik tags) --- + group "lobechat" { + count = 1 + + constraint { + attribute = "${attr.unique.hostname}" + value = "hp1-home" + } + + network { + port "http" { + static = 3210 + to = 3210 + } + + dns { + servers = [ "192.168.1.133" ] + searches = [ "service.consul" ] + } + } + + service { + name = "lobechat" + port = "http" + + # No Traefik tags added + # Only registers the service in Consul for discovery/health checks + + check { + type = "tcp" + port = "http" + interval = "20s" + timeout = "2s" + } + } + + task "server" { + driver = "podman" + + env { + OLLAMA_PROXY_URL = "http://ollama.service.consul:11434" + + # Optional: Add a password if you expose this port externally + # ACCESS_CODE = "your-strong-password-here" + } + + config { + image = "lobehub/lobe-chat:latest" + ports = [ "http" ] + + volumes = [ + "/mnt/local-ssd/nomad/stacks/ai/ai-frontend/lobechat/data:/data" + ] + } + + resources { + cpu = 1000 + memory = 2000 + } + } + } } \ No newline at end of file