strata-supervisor
Docker app from sognix's Repository
Overview
Web UI for Strata, the local LLM server for large mixture-of-experts models (Qwen, DeepSeek) on consumer GPUs. Built on the official Strata image: keep several model configs side by side and load or unload one at a time, only by hand. Nothing loads at container start, nothing swaps by itself. Strata downloads a model on its first load; your own GGUF files work too.
- Multi-GPU: one role per card (main, helper, off), also across different cards.
- RAM mode per model: all experts in RAM, only what no card holds, a RAM budget, or straight from the model files.
- OpenAI- and Anthropic-compatible API on port 8080 while a model is loaded.
Pick the image for your card when you install: the default tag is for NVIDIA RTX 20 to 50 with driver 580 or newer; the other tags cover older NVIDIA cards and AMD RX 7000, RX 9000 and Strix Halo. NVIDIA needs the Nvidia-Driver plugin. Models are 60 to 190 GB each: put the Strata data path on a fast disk with room.
The web UI has no login: keep it on your LAN and set "Allowed host names".
Unofficial private project, not affiliated with the Strata project.
Readme
View on GitHubStrata Supervisor
A web UI for Strata, the local LLM server for large
mixture-of-experts models (Qwen, DeepSeek) on consumer GPUs. It is built FROM the official Strata
image: one container, no Docker socket, no Strata code changed. It drops into Unraid or any other
Docker host with an NVIDIA or AMD GPU.
Strata's own Docker image loads one model, fixed by environment variables, at container start. This project keeps the container running without a model and lets you manage several model configs and load or unload them by hand in the browser.
Unofficial private project, not affiliated with, endorsed by, or supported by Niko1221 or the Strata project.
Features
- Several model configs, one TOML file each, editable in the UI or on the host. Several configs of the same model are fine (e.g. different contexts).
- Load and unload only by hand. Nothing loads at container start, nothing loads or swaps by itself. Switching models needs no container restart.
- Strata's catalog in the form: models grouped like in Strata's desktop app, with download size,
ON DISKand a fit marker for your cards and RAM. Or pick a folder of your own GGUF files. - Multi-GPU through roles (main, helper, off), passed as
--gpu-roles. Card numbers come fromnvidia-smi, never from the code. - RAM mode per model: all experts in RAM, only what no card holds, a RAM budget, or straight from the model files. The budget respects the container's RAM limit.
- Plan and Check download ask Strata what a load would need, without changing anything.
- Models page: Strata's downloads and your own GGUF folders with size and the configs using them; delete with confirmation.
- Logs of the launch, the engine and the supervisor, with the API key hidden.
- While no model runs, the API port answers
503with "No model loaded in Strata." andGET /v1/modelslists nothing.
Requirements
- A graphics card Strata supports, with the matching image (see "Image tags" below):
- NVIDIA: driver 580 or newer (575 or newer for
cuda12); on Unraid the Nvidia-Driver plugin, elsewhere the NVIDIA Container Toolkit (--gpus all). - AMD RX 7000, RX 9000 or Strix Halo: the
amdgpukernel driver (built into Unraid), the devices/dev/kfdand/dev/driin the container, and--group-add video.
- NVIDIA: driver 580 or newer (575 or newer for
- Disk space: 60 to 190 GB per model, on a fast disk.
- RAM: depends on the model and RAM mode; see Strata's
docs/MODELS.md. - amd64 only, like Strata's images.
Quick start
Unraid
Install strata-supervisor from Community Applications, or add
unraid/strata-supervisor.xml as a template. Then follow the
user guide.
Docker
docker run -d --name strata-supervisor --gpus all \
-p 8081:8081 -p 8080:8080 \
--ulimit memlock=-1:-1 --shm-size 2g \
-e ALLOWED_HOSTS=192.168.1.10,myserver \
-v /srv/strata/data:/data \
-v /srv/strata/config:/config \
ghcr.io/sognix/strata-supervisor:latest
AMD (here an RX 7000):
docker run -d --name strata-supervisor \
--device /dev/kfd --device /dev/dri --group-add video \
-p 8081:8081 -p 8080:8080 \
--ulimit memlock=-1:-1 --shm-size 2g \
-e ALLOWED_HOSTS=192.168.1.10,myserver \
-v /srv/strata/data:/data \
-v /srv/strata/config:/config \
ghcr.io/sognix/strata-supervisor:latest-rocm-gfx110x
Open http://<server>:8081. Nothing is loaded at start.
Image tags
ghcr.io/sognix/strata-supervisor, one image per Strata flavor:
| Tag | Cards |
|---|---|
latest (= latest-cuda13) |
NVIDIA RTX 20 to 50, driver 580 or newer |
latest-cuda12 |
older NVIDIA (GTX 10, P40, P100, V100) or driver 575 to 579 |
latest-rocm-gfx120x |
AMD RX 9000, Radeon AI PRO R9700 |
latest-rocm-gfx110x |
AMD RX 7900, 7800, 7700, 7600 |
latest-rocm-gfx1151 |
AMD Ryzen AI Max (Strix Halo) |
Each release also has fixed tags such as 1.0.0 / 1.0.0-rocm-gfx110x and 1.0 / 1.0-rocm-gfx110x. dev
and dev-<flavor> follow the main branch and are for testing.
Configuration
| Variable | Default | Meaning |
|---|---|---|
UI_PORT |
8081 |
Web UI port inside the container (change only with host networking) |
PORT |
8080 |
API port inside the container |
API_KEY / API_KEY_FILE |
empty | Inference key, 16 characters or more. Empty: one is made once and kept in /data/state/api-key |
ALLOWED_HOSTS |
empty | Host names or IPs the UI answers to, comma separated. Recommended, see Security |
PUID / PGID |
99 / 100 |
Owner of the files written to /config |
| Path | Content |
|---|---|
/data |
Strata's models, prepared data, state and the API key. Needs lots of room |
/config |
One TOML file per model config in models/ |
/models |
Optional: your own GGUF files, one sub-folder per model. Writable if the Models page should be able to delete there |
docker stop must finish within Unraid's "Docker Stop Timeout" (10 s by default). The supervisor stops
a loaded model within 8 s.
Model configs
One flat TOML file per config in /config/models/<name>.toml. These files decide: every load passes
--save-preset <name>, never --preset, so nothing old from Strata's presets comes back.
model = "Q2_0"
family = "qwen"
context = "64k"
kv = "int8"
vision = "off"
gpu_roles = "0=main,1=helper"
ram_mode = "budget" # normal | resident-experts | budget | mmap-experts
ram_budget_gib = 28
vram_reserve_mib = 512 # optional, first card in Strata's order (the helper when split)
extra_set = ["prefill=65536"]
Changes to the loaded model apply at its next load.
Security
The web UI has no login. Anyone who can reach port 8081 can load and unload models, delete model
files and read the API key. Run it only on a trusted network and don't expose it to the internet.
Set ALLOWED_HOSTS to the names you open the UI with: the UI then refuses other host names, which
stops web pages on other sites from reaching it through DNS rebinding. Changes are accepted only as
JSON POST requests whose Origin matches the host.
The inference API on port 8080 is Strata's own and needs the API key.
To report a vulnerability, see SECURITY.md.
Known limitations
- One image per Strata flavor is published:
cuda13,cuda12,rocm-gfx120x,rocm-gfx110xandrocm-gfx1151. Tested on real cards: onlycuda13(RTX 3090 + RTX 5060 Ti) androcm-gfx110x(one RX 7900 XTX). Intel Arc (sycl) is not built. - The UI depends on some internals of Strata (catalog, log lines, folder layout). A new Strata
version may need an update of this project; the Strata version is pinned in the
Dockerfile(STRATA_VERSION). - Only one model is loaded at a time. Strata's "one model per card" mode is not supported.
- Tuning (
--tune) is not offered.
Documentation
docs/USER-GUIDE.md- installing, getting models, settings, troubleshootingCONTRIBUTING.md- building, testing and running it yourselfAI/IMPLEMENTATION.md- background, decisions and test results (written as working notes for AI coding agents, but readable for humans too)CHANGELOG.md- what changed in each release
Support
This is a private hobby project, maintained in spare time. Bug reports with the details the issue template asks for are welcome and get looked at; feature requests too, but without any promise. For problems with Strata itself (model quality, speed, engine crashes), please check the Strata repository first.
License
Copyright (c) 2026 sognix, MIT License, see LICENSE.
The image is built on the official Strata image (MIT) and contains everything in it; see
NOTICE.md for Strata's license and the third-party components.
Requirements
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/sognix/strata-supervisor:latestRuntime arguments
- Web UI
http://[IP]:[PORT:8081]/- Network
bridge- Shell
sh- Privileged
- false
- Extra Params
--gpus all --ulimit memlock=-1:-1 --shm-size 2g
Template configuration
Web UI. Change only the host port here; set UI_PORT only with host networking.
- Target
- 8081
- Default
- 8081
- Value
- 8081
OpenAI- and Anthropic-compatible API of the loaded model. Without a model it answers 503.
- Target
- 8080
- Default
- 8080
- Value
- 8080
Models (60 to 190 GB each), Strata state and the API key. Put it on a fast disk with enough space.
- Target
- /data
- Default
- /mnt/user/appdata/strata
- Value
- /mnt/user/appdata/strata
One TOML file per model config in models/, editable from the host.
- Target
- /config
- Default
- /mnt/user/appdata/strata-supervisor
- Value
- /mnt/user/appdata/strata-supervisor
Optional: a host folder with GGUF files you already have, one sub-folder per model. Pick a sub-folder in a model config under GGUF file. Writable, so the Models page can delete a folder; set it to read-only if the web UI should never delete there.
- Target
- /models
Key clients must send (16 characters or more). Empty: one is made once and kept in /data/state/api-key; the web UI shows it on request.
- Target
- API_KEY
Recommended: the server's IP and name, comma separated, e.g. 192.168.1.10,tower. The web UI then answers only to these names, which stops other web pages from reaching it through DNS rebinding. Empty: any name.
- Target
- ALLOWED_HOSTS
Owner of the files the web UI writes in /config (99 = nobody).
- Default
- 99
- Value
- 99
Group of the files the web UI writes in /config (100 = users).
- Default
- 100
- Value
- 100
NVIDIA only: cards visible to the container. Ignored on AMD.
- Default
- all
- Value
- all
NVIDIA only: driver features passed into the container. Ignored on AMD.
- Default
- all
- Value
- all