Инструменты пользователя

Инструменты сайта


truenas:application:strata_qwen_server

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
truenas:application:strata_qwen_server [2026/11/12 17:25]
werwolf debug
truenas:application:strata_qwen_server [2026/11/12 18:15] (текущий)
werwolf llama.cpp: MoE-модели с NVMe + RAM на TrueNAS (Custom App)
Строка 1: Строка 1:
-test+====== Strata + Qwen3.8-Flash-Next на сервере TrueNAS (Docker, Custom App) и подключение клиентов по IP ====== 
 + 
 +===== Введение ===== 
 + 
 +Инструкция описывает,​ как развернуть движок **Strata** с моделью **Qwen3.8-Flash-Next** на домашнем сервере **TrueNAS SCALE** в Docker — как приложение (Custom App) через веб-интерфейс TrueNAS — и подключаться к нему по сети с других компьютеров:​ из Goose Desktop, OpenCode, Open WebUI, Claude Code или любого OpenAI-совместимого клиента. 
 + 
 +Локальная установка на Windows-ПК (проверенная пошагово,​ с замерами скорости и таблицей моделей) — на странице [[:​truenas:​application:​strata_qwen_goose|Qwen3.8-Flash-Next на Strata + Goose Desktop (Windows)]]. 
 + 
 +**Без обновления TrueNAS:** на текущем драйвере 550 работает llama.cpp, который держит модель на NVMe и подгружает через RAM — см. [[:​truenas:​application:​llamacpp_moe_ssd|llama.cpp:​ большие MoE-модели с NVMe + RAM на TrueNAS]]. 
 + 
 +**Статус инструкции.** Сервер обследован по SSH, совместимость образа Strata с текущим драйвером **проверена на сервере** (см. «Шаг 1»). Сама установка Custom App после обновления TrueNAS ещё не выполнялась — такие места помечены **(проверить)**. 
 + 
 +===== Сервер ===== 
 + 
 +Данные сняты по SSH (''​truenas_admin@192.168.1.135''​):​ 
 + 
 +^ Параметр ^ Значение ^ 
 +| Система | TrueNAS SCALE **25.04.2.6** (Fangtooth),​ ядро 6.12.15 | 
 +| CPU | Intel Core i5-14500 (14 ядер / 20 потоков,​ AVX2, без AVX-512) | 
 +| RAM | 62 GB | 
 +| GPU | NVIDIA **RTX 2000 Ada Generation, 16 GB**, PCIe 4.0 x8 | 
 +| Драйвер NVIDIA | **550.142** — для Strata **слишком старый** | 
 +| Docker | 27.5, NVIDIA Container Runtime установлен (runtime по умолчанию — ''​nvidia''​) | 
 +| Быстрый пул | ''​appData''​ — 2 × Samsung 990 PRO 4 TB (NVMe), свободно ~3.3 TB, монтируется в ''/​mnt/​appData''​ | 
 +| Большой пул | ''​storage''​ — 5 × HDD 16 TB, ''/​mnt/​storage''​ | 
 +| Занятые порты | среди прочих 8080 (ai-anki), 8081 (youtrack) — для Strata берём **30080** | 
 + 
 +**Кто уже использует видеокарту и память** (на момент обследования):​ 
 + 
 +  * VRAM занято **11.8 из 16 GB**: Ollama, LibreTranslate,​ Whisper, XTTS / VoxCPM TTS. 
 +  * RAM: из 62 GB около 24 GB занимают приложения,​ ещё ~22 GB — кэш ZFS (ARC, отдаётся по требованию). 
 + 
 +Strata нужна почти вся видеопамять и десятки GB RAM, поэтому на время работы Strata GPU-приложения нужно останавливать (см. «Шаг 3»). 
 + 
 +===== Шаг 1: Обновить TrueNAS до 25.10.7 или новее (драйвер NVIDIA 580) ===== 
 + 
 +==== Почему ==== 
 + 
 +Образы Strata требуют драйвер NVIDIA: ''​cuda13''​ — **580+**, ''​cuda12''​ — **575+**. Проверка на этом сервере образом ''​ghcr.io/​niko1221/​strata:​0.2.13-cuda12'':​ 
 + 
 +<​code>​ 
 +$ docker run --rm --gpus all ghcr.io/​niko1221/​strata:​0.2.13-cuda12 strata components engine 
 +this PC           ​linux-x86_64,​ cuda (nvidia-smi) 
 +  installed ​      ​0.1.59 linux-x86_64-cuda ​ /​opt/​strata/​components/​engine/​0.1.59-linux-x86_64-cuda-cuda12 
 +Your NVIDIA graphics driver (550.142) is too old for Strata. Install driver 575 or newer ... 
 +</​code>​ 
 + 
 +На TrueNAS драйвер не обновляется отдельно — он приходит с версией системы:​ 
 + 
 +^ Версия TrueNAS ^ Драйвер NVIDIA ^ Strata ^ 
 +| 25.04 Fangtooth (сейчас) | 550.142 | **не работает** | 
 +| 25.10.0 – 25.10.6 Goldeye | 570.172.08 (open kernel modules) | не работает (нужно 575+) | 
 +| **25.10.7 Goldeye и новее** | **580.173.02** (LTS-ветка) | работает образ ''​cuda13''​ | 
 + 
 +Источники:​ release notes TrueNAS 25.10 (переход на open kernel modules с 570.172.08) и заметки к 25.10.7 (обновление на 580.173.02). RTX 2000 Ada (архитектура Ada) открытыми модулями поддерживается. 
 + 
 +==== Как обновить ==== 
 + 
 +  - **System → General Settings → Manage Configuration → Download File** — сохранить конфигурацию (с ключом шифрования). 
 +  - **System → Update**: в выпадающем списке **Train** выбрать **TrueNAS-SCALE-Goldeye** (сервер его уже видит),​ дождаться списка обновлений,​ убедиться,​ что предлагается **25.10.7 или новее**,​ нажать **Download / Apply**, перезагрузить. 
 +  - После перезагрузки проверить драйвер:​ **System → Shell** (или SSH):<​code bash> 
 +nvidia-smi --query-gpu=name,​driver_version --format=csv 
 +</​code>​Ожидается ''​NVIDIA RTX 2000 Ada Generation, 580.x''​. 
 +  - Проверить,​ что GPU-приложения (Ollama, Whisper, LibreTranslate и др.) запустились и видят карту. **(проверить после обновления)** 
 + 
 +**Важно:​** переход 25.04 → 25.10 — смена основной версии. Перед обновлением почитайте release notes 25.10 (раздел о breaking changes) и убедитесь,​ что есть резервная копия важных данных. Откат возможен выбором предыдущего boot environment (**System → Boot**). 
 + 
 +===== Шаг 2: Выбор модели под этот сервер ===== 
 + 
 +Ресурсы сервера:​ 62 GB RAM + 16 GB VRAM = **78 GB**, но часть занята другими приложениями. Strata планирует память по **всему** объёму RAM сервера и не знает о других контейнерах,​ поэтому модель надо выбирать с запасом. 
 + 
 +Столбец «Нужно RAM+VRAM» — оценка Strata (та же, что в таблице на странице Windows-ПК). 
 + 
 +^ ''​FAMILY''​ / ''​MODEL''​ ^ Скачать ^ Нужно RAM+VRAM ^ На этом сервере ^ 
 +| ''​gyro''​ / ''​Gyro-M''​ | — | ~35 GB | да | 
 +| ''​qwen''​ / ''​Q2_0''​ | 66 GB | ~38 GB | **да, рекомендуется для начала** | 
 +| ''​unsloth''​ / ''​UD-IQ1_M''​ | 68 GB | ~39 GB | да | 
 +| ''​unsloth''​ / ''​UD-Q2_K_XL''​ | 80 GB | ~51 GB | только если остановить другие тяжёлые приложения (Nextcloud, PhotoPrism, Jellyfin…) | 
 +| ''​unsloth''​ / ''​UD-IQ3_XXS''​ | 84 GB | ~55 GB | то же, впритык | 
 +| ''​qwen''​ / ''​IQ3_XXS'',​ ''​IQ3_S''​ | 76 / 84 GB | ~76 / ~84 GB | **только в режиме «только Strata»** — см. ниже «Вариант:​ IQ3_S» | 
 +| unsloth ''​UD-Q4_K_XL''​ и крупнее | 111+ GB | 82+ GB | нет — не хватит RAM | 
 +| ''​qwen36''​ (Qwen3.6-35B-A3B) | меньше | меньше | да; меньшая модель,​ умеет несколько запросов одновременно — **(проверить размер ''​--plan''​)** | 
 + 
 +Скорость здесь будет **ниже**,​ чем на ПК с RTX 4080: у RTX 2000 Ada примерно в 3 раза меньше пропускная способность видеопамяти и шина PCIe x8. Замеров нет. **(проверить)** 
 + 
 +==== Вариант:​ IQ3_S в режиме «только Strata» ==== 
 + 
 +Если на время работы Strata остановить все остальные приложения,​ сервер по памяти почти равен Windows-ПК,​ на котором IQ3_S проверен (64 GB RAM + 16 GB VRAM, реально занято ~50 GB RAM + 15.7 GB VRAM, ~21.5 ток/с на RTX 4080). На сервере 62 GB RAM — запас меньше,​ а генерация будет медленнее (видеопамять RTX 2000 Ada примерно в 3 раза медленнее,​ чем у RTX 4080). **(проверить на сервере)** 
 + 
 +Что нужно:​ 
 +  - **Остановить приложения** (Apps → Installed → Stop): все GPU-приложения (''​ollama'',​ ''​whisper'',​ ''​libretranslate'',​ ''​xtts'',​ ''​voxcpmtts''​) и тяжёлые по памяти (''​nextcloud'',​ ''​photoprism'',​ ''​jellyfin'',​ ''​open-webui'',​ ''​anki'',​ ''​pdf-ocr'',​ ''​youtrack''​…). Проверка свободной памяти:​ ''​free -g''​ — в ''​available''​ должно быть 55+ GB. 
 +  - **Ограничить кэш ZFS (ARC).** По умолчанию он может занять почти всю RAM и отдаёт её постепенно,​ а Strata при загрузке сразу закрепляет десятки GB. **System → Advanced Settings → Init/​Shutdown Scripts → Add**: 
 +    * Type: **Command** 
 +    * Command: ''​echo 8589934592 > /​sys/​module/​zfs/​parameters/​zfs_arc_max''​ (8 GB) 
 +    * When: **Post Init** 
 +    * Сохранить и, чтобы применить сразу, выполнить ту же команду в **System → Shell** под root (''​sudo -i''​). Проверка:​ ''​awk '/​^size/​ {print $3/2^30 " GB"​}'​ /​proc/​spl/​kstat/​zfs/​arcstats''​. **(проверить)** 
 +    * Минус: меньше кэша для файлов на дисках — сетевые шары и приложения могут работать чуть медленнее. 
 +  - В YAML («Шаг 6») поставить ''​MODEL:​ IQ3_S''​ (скачивание ~85 GB) и **''​restart:​ "​no"''​** — чтобы после перезагрузки сервера Strata не стартовала автоматически рядом с остальными приложениями и не вызвала нехватку памяти. 
 + 
 +Порядок работы:​ остановить приложения → **Start** у ''​strata''​ → дождаться ''​healthy''​ → работать → **Stop** у ''​strata''​ → запустить приложения обратно. 
 + 
 +Если при загрузке контейнер падает или в логах ошибки памяти — вернуться к ''​Q2_0''​ / ''​UD-Q2_K_XL''​ либо добавить RAM в сервер (i5-14500 поддерживает до 192 GB; с 128 GB IQ3_S работает рядом со всеми приложениями). 
 + 
 +Посмотреть план без запуска (после обновления TrueNAS, образ скачается ~0.7 GB): 
 + 
 +<code bash> 
 +docker run --rm --gpus all ghcr.io/​niko1221/​strata:​0.2.13-cuda13 strata launch --plan --family qwen --model q2_0 --vision off --no-tui 
 +</​code>​ 
 + 
 +===== Шаг 3: Освободить видеокарту ===== 
 + 
 +На время работы Strata остановите приложения,​ которые держат видеопамять:​ **Apps → Installed → (приложение) → Stop**: 
 + 
 +  * ''​ollama''​ (держит загруженные модели в VRAM), 
 +  * ''​whisper'',​ ''​libretranslate'',​ ''​xtts'',​ ''​voxcpmtts''​. 
 + 
 +Проверка,​ что VRAM свободна:​ 
 + 
 +<code bash> 
 +nvidia-smi --query-gpu=memory.used,​memory.total --format=csv 
 +nvidia-smi --query-compute-apps=pid,​process_name,​used_memory --format=csv 
 +</​code>​ 
 + 
 +Если Strata нужна постоянно — у этих приложений стоит выключить автозапуск или перенести их на CPU. 
 + 
 +===== Шаг 4: Датасет для данных Strata ===== 
 + 
 +Модель (десятки GB), подготовленные файлы, пресеты и API-ключ хранятся в ''/​data''​ контейнера. Кладём их на быстрый NVMe-пул:​ 
 + 
 +**Datasets** → выбрать ''​appData''​ → **Add Dataset**:​ 
 +  * Name: ''​strata''​ 
 +  * Dataset Preset: **Apps** 
 +  * Save. 
 + 
 +Путь получится ''/​mnt/​appData/​strata''​. Нужно свободное место: размер модели + ~10 GB (для ''​Q2_0''​ — ~80 GB). 
 + 
 +===== Шаг 5: API-ключ ===== 
 + 
 +Сервер будет доступен из сети, поэтому ключ обязателен (Strata без ключа в сеть не отдаёт). Сгенерировать (**System → Shell** или SSH): 
 + 
 +<code bash> 
 +openssl rand -hex 24 
 +</​code>​ 
 + 
 +Сохраните ключ (например,​ в KeePass) — он нужен в YAML и на каждом клиенте. Ниже он обозначен ''<​КЛЮЧ>''​. 
 + 
 +===== Шаг 6: Установка Custom App через веб-интерфейс ===== 
 + 
 +**Apps → Discover Apps →** (меню **⋮** справа вверху) **→ Install via YAML**. **(проверить название пункта в 25.10)** 
 + 
 +  * **Name:** ''​strata''​ 
 +  * **Custom Config** — вставить YAML: 
 + 
 +<code yaml> 
 +services: 
 +  strata: 
 +    image: ghcr.io/​niko1221/​strata:​0.2.13-cuda13 
 +    container_name:​ strata 
 +    restart: unless-stopped 
 +    ports: 
 +      - "​30080:​8080"​ 
 +    environment:​ 
 +      FAMILY: qwen 
 +      MODEL: Q2_0 
 +      CONTEXT: 64k 
 +      VISION: "​off"​ 
 +      TUNE: skip 
 +      API_KEY: "<​КЛЮЧ>"​ 
 +    volumes: 
 +      - /​mnt/​appData/​strata:/​data 
 +    deploy: 
 +      resources:​ 
 +        reservations:​ 
 +          devices: 
 +            - driver: nvidia 
 +              count: 1 
 +              capabilities:​ [gpu] 
 +    ulimits: 
 +      memlock: 
 +        soft: -1 
 +        hard: -1 
 +    shm_size: 2gb 
 +    stop_grace_period:​ 2m 
 +</​code>​ 
 + 
 +  * **Save** / **Install**. 
 + 
 +Пояснения:​ 
 +  * ''​image''​ — версия закреплена (''​0.2.13''​);​ ''​cuda13''​ — для драйвера 580+. Список версий:​ ''​ghcr.io/​niko1221/​strata''​ на GitHub. 
 +  * ''​ports:​ "​30080:​8080"''​ — снаружи порт **30080** (8080 и 8081 на сервере заняты),​ внутри контейнера 8080. Порт открыт для всей сети — поэтому ключ. 
 +  * ''​FAMILY''​ / ''​MODEL''​ — модель из таблицы «Шаг 2»; ''​CONTEXT''​ — длина контекста (''​32k'',​ ''​64k'',​ ''​128k''​);​ больше контекст — больше памяти. 
 +  * ''​volumes''​ — всё скачанное и настройки живут в датасете,​ переживают обновление образа и пересоздание приложения. 
 +  * ''​deploy … nvidia''​ — доступ к GPU (так же настроены ваши ''​whisper''​ и ''​libretranslate''​). 
 +  * ''​memlock'',​ ''​shm_size''​ — движок закрепляет в RAM десятки GB; **не ставьте лимит памяти** контейнеру. 
 +  * ''​stop_grace_period:​ 2m''​ — время на выгрузку модели при остановке. 
 +  * ''​restart:​ unless-stopped''​ — после перезагрузки сервера Strata стартует сама, если не была остановлена вручную. 
 + 
 +Другие переменные (из документации Strata): ''​PARALLEL''​ (одновременных запросов 1–8), ''​KV''​ (''​int8''​ / ''​q4_0''​ — вдвое меньше памяти на контекст),​ ''​TUNE=quick''​ (один раз подобрать быстрые настройки),​ ''​STRATA_SET''​ (расширенные настройки движка),​ ''​MODEL_PATH''​ (свои GGUF-файлы,​ смонтированные в контейнер). 
 + 
 +===== Шаг 7: Первый запуск ===== 
 + 
 +Первый старт скачивает модель (для ''​Q2_0''​ ~68 GB) — это долго. Ход загрузки:​ **Apps → Installed → strata → Logs** (или ''​docker logs -f strata''​ по SSH). Прерванная загрузка продолжается с места остановки. 
 + 
 +Состояние:​ пока качается и загружается — ''​starting'',​ когда модель загружена — ''​healthy''​ / **Running**. 
 + 
 +Проверка на самом сервере:​ 
 + 
 +<code bash> 
 +curl -s http://​127.0.0.1:​30080/​health 
 +curl -s http://​127.0.0.1:​30080/​v1/​models -H "​Authorization:​ Bearer <​КЛЮЧ>"​ 
 +</​code>​ 
 + 
 +===== Шаг 8: Проверка с другого компьютера ===== 
 + 
 +Windows (PowerShell):​ 
 + 
 +<code powershell>​ 
 +curl.exe -s http://​192.168.1.135:​30080/​v1/​models -H "​Authorization:​ Bearer <​КЛЮЧ>"​ 
 +</​code>​ 
 + 
 +Linux / macOS: 
 + 
 +<code bash> 
 +curl -s http://​192.168.1.135:​30080/​v1/​chat/​completions \ 
 +  -H "​Authorization:​ Bearer <​КЛЮЧ>"​ -H "​Content-Type:​ application/​json"​ \ 
 +  -d '​{"​model":"<​имя из /​v1/​models>","​messages":​[{"​role":"​user","​content":"​Привет,​ ответь одним словом"​}],"​max_tokens":​200}'​ 
 +</​code>​ 
 + 
 +  * ''​Connection refused''​ / таймаут — приложение не запущено,​ неверный порт; 
 +  * ''​401''​ — неверный или не переданный ключ. 
 + 
 +Имя модели берите **точно** из ответа ''/​v1/​models''​ (для Q2_0 — вида ''​qwen3.8-flash-next-q2_0''​). 
 + 
 +===== Шаг 9: Подключение клиентов ===== 
 + 
 +Общие параметры:​ 
 + 
 +^ Параметр ^ Значение ^ 
 +| Тип API | OpenAI Compatible (Chat Completions) | 
 +| Base URL | ''​http://​192.168.1.135:​30080/​v1''​ | 
 +| Полный путь Chat Completions | ''​http://​192.168.1.135:​30080/​v1/​chat/​completions''​ | 
 +| API Key | ''<​КЛЮЧ>''​ | 
 +| Модель | имя из ''/​v1/​models''​ | 
 +| Anthropic-совместимый адрес | ''​http://​192.168.1.135:​30080''​ (без ''/​v1''​) | 
 + 
 +==== Goose Desktop ==== 
 + 
 +Settings → Models → **Add Custom Provider**:​ 
 + 
 +^ Поле ^ Значение ^ 
 +| Provider Type | **OpenAI Compatible** | 
 +| Display Name | ''​Strata Server''​ | 
 +| API URL | ''​http://​192.168.1.135:​30080/​v1/​chat/​completions''​ | 
 +| API Key | ''<​КЛЮЧ>''​ | 
 +| Available Models | имя из ''/​v1/​models''​ | 
 +| Streaming | включить | 
 + 
 +Или файлом ''​%APPDATA%\Block\goose\config\custom_providers\custom_strata_server.json''​ (Linux/​macOS — ''​~/​.config/​goose/​custom_providers/''​):​ 
 + 
 +<code json> 
 +{ 
 +  "​name":​ "​custom_strata_server",​ 
 +  "​engine":​ "​openai",​ 
 +  "​display_name":​ "​Strata Server",​ 
 +  "​description":​ "​Strata on TrueNAS 192.168.1.135:​30080",​ 
 +  "​api_key_env":​ "​CUSTOM_STRATA_SERVER_API_KEY",​ 
 +  "​base_url":​ "​http://​192.168.1.135:​30080/​v1/​chat/​completions",​ 
 +  "​models":​ [ 
 +    { "​name":​ "​qwen3.8-flash-next-q2_0",​ "​context_limit":​ 65536 } 
 +  ], 
 +  "​headers":​ null, 
 +  "​timeout_seconds":​ 600, 
 +  "​supports_streaming":​ true, 
 +  "​requires_auth":​ true 
 +} 
 +</​code>​ 
 + 
 +Ключ — ввести в Settings → Models у провайдера //Strata Server// или задать переменной окружения ''​CUSTOM_STRATA_SERVER_API_KEY''​ **(проверить)**. Русский язык, ''​.goosehints''​ и MCP (Developer, Playwright) настраиваются на клиенте — как на [[:​truenas:​application:​strata_qwen_goose|странице локальной установки]]. 
 + 
 +==== Open WebUI (уже стоит на этом же TrueNAS) ==== 
 + 
 +Admin Panel → Settings → Connections → OpenAI API → добавить:​ 
 +  * URL: ''​http://​192.168.1.135:​30080/​v1''​ 
 +  * Key: ''<​КЛЮЧ>''​ 
 + 
 +Модель Strata появится в списке рядом с моделями Ollama. 
 + 
 +==== OpenCode ==== 
 + 
 +''​~/​.config/​opencode/​opencode.json'':​ 
 + 
 +<code json> 
 +{ 
 +  "​$schema":​ "​https://​opencode.ai/​config.json",​ 
 +  "​model":​ "​strata/​qwen3.8-flash-next-q2_0",​ 
 +  "​provider":​ { 
 +    "​strata":​ { 
 +      "​npm":​ "​@ai-sdk/​openai-compatible",​ 
 +      "​name":​ "​Strata (TrueNAS)",​ 
 +      "​options":​ { 
 +        "​baseURL":​ "​http://​192.168.1.135:​30080/​v1",​ 
 +        "​apiKey":​ "<​КЛЮЧ>"​ 
 +      }, 
 +      "​models":​ { 
 +        "​qwen3.8-flash-next-q2_0":​ { 
 +          "​name":​ "​Qwen3.8-Flash-Next Q2_0",​ 
 +          "​tool_call":​ true, 
 +          "​reasoning":​ true, 
 +          "​limit":​ { "​context":​ 65536, "​output":​ 16384 } 
 +        } 
 +      } 
 +    } 
 +  } 
 +} 
 +</​code>​ 
 + 
 +Готовый файл с ключом и именем модели можно получить на сервере:​ ''​docker exec strata strata connect opencode''​ (адрес в нём будет внутренний — замените на ''​http://​192.168.1.135:​30080''​). 
 + 
 +==== Claude Code ==== 
 + 
 +<code bash> 
 +export ANTHROPIC_BASE_URL=http://​192.168.1.135:​30080 
 +export ANTHROPIC_AUTH_TOKEN=<​КЛЮЧ>​ 
 +claude 
 +</​code>​ 
 + 
 +==== Python (openai SDK) ==== 
 + 
 +<code python>​ 
 +from openai import OpenAI 
 + 
 +client = OpenAI(base_url="​http://​192.168.1.135:​30080/​v1",​ api_key="<​КЛЮЧ>"​) 
 +r = client.chat.completions.create( 
 +    model="​qwen3.8-flash-next-q2_0",​ 
 +    messages=[{"​role":​ "​user",​ "​content":​ "​Привет! Кратко:​ чем list отличается от tuple?"​}],​ 
 +) 
 +print(r.choices[0].message.content) 
 +</​code>​ 
 + 
 +===== Управление ===== 
 + 
 +^ Действие ^ Как ^ 
 +| Остановить / запустить | **Apps → Installed → strata → Stop / Start** (остановка корректно выгружает модель и освобождает VRAM) | 
 +| Логи | **Apps → strata → Logs** или ''​docker logs -f strata''​ | 
 +| Монитор (скорость,​ память,​ запросы) | ''​docker exec -it strata strata monitor''​ (выход — ''​q'',​ сервер продолжает работать) | 
 +| Показать ключ | ''​docker exec strata strata launch --show-key --preset docker''​ | 
 +| Сменить модель | **Apps → strata → Edit** → поменять ''​MODEL''​ / ''​FAMILY''​ → Save. Новая модель скачается,​ старая останется в ''/​mnt/​appData/​strata''​ | 
 +| Обновить Strata | **Edit** → поменять версию в ''​image''​ (например ''​0.2.14-cuda13''​) → Save. Модели и настройки сохраняются. ''​strata update''​ внутри контейнера не используется | 
 +| Удалить старые модели | ''/​mnt/​appData/​strata/​Strata-data/​models/''​ и ''​packs/''​ | 
 + 
 +===== Безопасность ===== 
 + 
 +  * Порт 30080 доступен из всей домашней сети — поэтому ключ обязателен. **Не пробрасывайте 30080 на роутере в интернет.** 
 +  * Нужен доступ извне — через VPN (Tailscale/​WireGuard) или через ''​nginx-proxy-manager''​ (уже стоит на сервере) с HTTPS и ограничением доступа. 
 +  * Контейнер Strata работает от ''​root''​ (нужно для GPU и закрепления памяти) — не монтируйте в него лишние папки. 
 + 
 +===== Проблемы и решения ===== 
 + 
 +==== «Your NVIDIA graphics driver (550.142) is too old for Strata» ==== 
 + 
 +Драйвер ниже 575/580. Решение — «Шаг 1» (TrueNAS 25.10.7+). Образ ''​cuda12''​ не поможет:​ ему нужен 575+. 
 + 
 +==== CUDA out of memory / модель не помещается ==== 
 + 
 +Видеокарту держат другие приложения — «Шаг 3». Либо выберите модель меньше,​ ''​CONTEXT:​ 32k''​ или ''​KV:​ q4_0''​. 
 + 
 +==== Контейнер убит, сервер тормозит ==== 
 + 
 +Не хватает RAM: остановите другие тяжёлые приложения,​ возьмите модель меньше. У контейнера не должно быть лимита памяти. 
 + 
 +==== Порт занят ==== 
 + 
 +Выберите другой внешний порт в ''​ports''​ (например ''"​30081:​8080"''​) и поменяйте адрес у клиентов. 
 + 
 +==== Не скачивается модель ==== 
 + 
 +Смотрите **Logs**: прогресс выводится каждые несколько секунд. Нужно свободное место в ''/​mnt/​appData/​strata''​ (размер модели + ~10 GB). 
 + 
 +===== Приложение:​ обычный Linux-сервер (не TrueNAS) ===== 
 + 
 +На Ubuntu/​Debian с драйвером NVIDIA 580+ и NVIDIA Container Toolkit — тот же YAML через ''​docker compose up -d''​. Без Docker — установщик Terminal: 
 + 
 +<code bash> 
 +curl -fsSL https://​github.com/​Niko1221/​Strata/​releases/​latest/​download/​install.sh -o install.sh 
 +less install.sh && sh install.sh 
 +strata launch --family qwen --model q2_0 --vision off --access lan --port 8080 --no-tui --yes --save-preset "​Server Q2_0"​ 
 +strata launch --show-key --preset "​Server Q2_0"​ 
 +</​code>​ 
 + 
 +''​--access lan''​ открывает доступ из сети и включает API-ключ. 
 + 
 +===== Шпаргалка ===== 
 + 
 +<code bash> 
 +# сервер (SSH или System → Shell) 
 +docker logs -f strata 
 +docker exec -it strata strata monitor 
 +docker exec strata strata launch --show-key --preset docker 
 +nvidia-smi 
 + 
 +# клиент 
 +curl -s http://​192.168.1.135:​30080/​v1/​models -H "​Authorization:​ Bearer <​КЛЮЧ>"​ 
 +</​code>​ 
 + 
 +^ Что ^ Значение ^ 
 +| Адрес API | ''​http://​192.168.1.135:​30080/​v1''​ | 
 +| Данные | ''/​mnt/​appData/​strata''​ | 
 +| Образ | ''​ghcr.io/​niko1221/​strata:​0.2.13-cuda13''​ (нужен TrueNAS 25.10.7+) | 
truenas/application/strata_qwen_server.1794504337.txt.gz · Последние изменения: 2026/11/12 17:25 — werwolf