Infrastructure configs for GMKtec K11 (Docker, vLLM, LocalAI, ComfyUI, control-plane, gpu-fan agent, Server UI with CLI/file explorer/GPU fan curve). Co-authored-by: Cursor <cursoragent@cursor.com>
6.1 KiB
08 — Server UI i panel sterowania (Control Plane)
Cel rozdziału: zainstalować panel Server UI do zarządzania stackami Docker (LocalAI, ComfyUI, vLLM, NPMPlus) oraz zakładkę GPU Fan — i wiedzieć, gdzie są klucze API.
Szacowany czas: 10–15 minut
Wymagania: rozdział 01 — Docker; opcjonalnie 06 — gpu-fan dla zakładki wentylatorów
Spis treści
- Co to jest Server UI
- Dlaczego nie ma go w docker ps
- Instalacja jednym skryptem
- Gdzie są klucze API
- Jak uruchomić i otworzyć panel
- Tryb Docker (opcjonalnie)
- Troubleshooting
- Następny krok
1. Co to jest Server UI
Server UI to jeden panel w przeglądarce (port 8091), w którym możesz:
- włączać i wyłączać stacki Docker (Start / Stop / Restart),
- przeglądać logi kontenerów,
- otwierać linki do LocalAI, ComfyUI, vLLM, NPMPlus,
- zmieniać porty usług (zapis do
.envstacku), - sterować wentylatorami GPU (zakładka GPU Fan).
Zastępuje Portainer i Dockge.
2. Dlaczego nie ma go w docker ps
Komenda docker ps pokazuje tylko kontenery Docker.
Co widzisz w docker ps |
Co to jest |
|---|---|
comfyui, npmplus, localai |
Stacki AI / proxy — Docker |
Brak server-ui |
Panel działa jako usługa systemd na hoście (domyślnie) |
Brak gpu-fan |
Agent wentylatorów — też systemd na hoście |
To nie jest błąd. Panel nie musi być kontenerem.
Sprawdzenie:
systemctl status server-ui gpu-fan
ss -tln | grep -E '8091|18090'
Jeśli wybrałeś instalację Server UI w Dockerze (opcja 2 w instalatorze), wtedy zobaczysz kontener:
docker compose --profile server-ui ps
3. Instalacja jednym skryptem
Na serwerze:
cd ~/cursor/ubuntu-bare-metal/stacks/server-ui
sudo ./scripts/install-control-plane.sh
Menu instalatora
1) gpu-fan — agent sterowania wentylatorami GPU
- Działa tylko na hoście (root + NVML).
- Nie instalujemy go w Dockerze — karta wymaga bezpośredniego dostępu do sterownika NVIDIA.
- Zalecane: Y (tak).
2) Server UI — panel w przeglądarce
| Opcja | Opis |
|---|---|
| 1 — Native | systemd, /opt/server-ui (zalecane) |
| 2 — Docker | kontener z dostępem do docker.sock |
| 3 — Pomiń | tylko gpu-fan |
Instalacja bez pytań (domyślnie: gpu-fan + server-ui native)
sudo ./scripts/install-control-plane.sh -y
Tylko Server UI (bez gpu-fan)
sudo ./scripts/install-control-plane.sh --gpu-fan=no --server-ui=native
4. Klucz API — wpisz w panelu
Pełna instrukcja krok po kroku: 04a — Klucz API
Skrót po instalacji:
- Na serwerze:
sudo grep ^API_KEY= /opt/control-plane/.env— skopiuj wartość po= - W przeglądarce:
http://<IP-serwera>:8091/→ pole API Key → Zapisz → Sprawdź klucz - Lub gotowy link:
bash stacks/server-ui/scripts/show-api-key.sh(wypisze URL z kluczem)
Jeden plik, jeden klucz — /opt/control-plane/.env (Server UI + gpu-fan).
Nie używaj stacks/server-ui/.env ani GPU_FAN_AGENT_KEY — to przestarzałe.
5. Jak uruchomić i otworzyć panel
Native (systemd)
sudo systemctl status server-ui
sudo systemctl start server-ui # jeśli zatrzymany
sudo systemctl restart server-ui # po aktualizacji kodu
Adres (przykład):
http://192.168.100.90:8091/
gpu-fan (jeśli zainstalowany)
sudo systemctl status gpu-fan
journalctl -u gpu-fan -f
Weryfikacja API
curl -s http://127.0.0.1:8091/api/health
curl -s http://127.0.0.1:8091/api/stacks
Aktualizacja kodu po zmianach w repo
cd ~/cursor/ubuntu-bare-metal/stacks/server-ui
sudo ./scripts/install.sh && sudo systemctl restart server-ui
6. Tryb Docker (opcjonalnie)
Jeśli w instalatorze wybrałeś 2 — Docker:
cd ~/cursor/ubuntu-bare-metal/stacks/server-ui
docker compose --profile server-ui ps
docker compose --profile server-ui logs -f
docker compose --profile server-ui down # stop
sudo ./scripts/install-docker.sh # ponowna instalacja
gpu-fan nadal działa na hoście (systemd) — kontener Server UI łączy się z agentem przez host.docker.internal:18090.
Przełączenie z Docker na native:
docker compose --profile server-ui down
sudo ./scripts/install.sh
7. Troubleshooting
Port 8091 zajęty
ss -tlnp | grep 8091
systemctl status server-ui
Zobacz też: 06 — gpu-fan, sekcja portów (podobna sytuacja — nie zwiększaj portu bez diagnozy).
Zakładka GPU Fan nie działa
- Czy gpu-fan działa:
systemctl status gpu-fan - Czy agent odpowiada:
API_KEY=$(grep ^API_KEY= /opt/control-plane/.env | cut -d= -f2) curl -s http://127.0.0.1:18090/api/status -H "X-API-Key: $API_KEY" - Ten sam klucz w panelu Server UI (pole API Key lub
?api_key=)
Start stacku zwraca 401 / Invalid API key
Zobacz 04a — Klucz API, sekcja 7.
Start stacku zwraca 409
Tylko jeden duży workload GPU naraz (LocalAI lub ComfyUI lub vLLM). Zatrzymaj działający stack GPU przed startem drugiego.
8. Następny krok
- Zarządzaj stackami z panelu :8091
- Edytuj porty usług w kartach stacków (pole Zapisz port)
- Przy zmianie portu LocalAI zaktualizuj upstream w NPMPlus ręcznie
Powrót do roadmapy: README.md
Podsumowanie
| Pytanie | Odpowiedź |
|---|---|
| Gdzie panel? | http://<IP>:8091/ |
Dlaczego nie w docker ps? |
Domyślnie systemd, nie kontener |
| Klucz (Server UI + gpu-fan) | 04a — Klucz API · /opt/control-plane/.env |
| Instalacja | sudo ./scripts/install-control-plane.sh |