Представь, что твой TrueNAS сервер — это мощный швейцарский нож для хранения данных. А плагины TrueNAS — это дополнительные лезвия, отвертки и инструменты, которые превращают его из простого файлового хранилища в полноценную домашнюю лабораторию или корпоративный сервис. Давай разберем, как правильно выбирать, устанавливать и настраивать эти инструменты, чтобы не порезаться в процессе.
Что такое плагины в TrueNAS и зачем они нужны
Плагины (или приложения) в TrueNAS — это предварительно собранные и настроенные программные пакеты, которые запускаются в изолированных средах. Они позволяют развернуть сложные сервисы типа медиасервера, облачного хранилища или системы резервного копирования буквально в несколько кликов, без глубоких знаний Linux и Docker.
TrueNAS Scale: Установка приложений через Docker и Kubernetes
TrueNAS Scale использует современный подход на основе контейнеров. Давай пройдем весь путь от начала до работающего сервиса.
Шаг 1: Подготовка хранилища для приложений
Перед установкой любых плагинов создай отдельный dataset (набор данных):
# Рекомендуемая структура через веб-интерфейс:
# Storage → Datasets → Create Dataset
# Имя: apps
# Тип: Filesystem
# Включить ACL: Да (для правильных разрешений)
Шаг 2: Настройка официального каталога приложений
Перейди в раздел Apps → Discover Apps. TrueNAS Scale по умолчанию использует каталог TrueCharts, но ты можешь добавить и другие:
# Пример добавления кастомного репозитория:
# Apps → Settings → Manage Catalogs → Add Catalog
# Имя: my-catalog
# Репозиторий: https://github.com/username/charts-repo
# Ветка: main
# Каталог: train
Шаг 3: Установка популярного плагина — Plex Media Server
Найди Plex в каталоге и нажми «Install». Вот ключевые настройки, на которые стоит обратить внимание:
- Application Name: plex (используется для DNS имени)
- Версия: Выбери стабильную (stable)
- Storage Configuration: Самая важная часть!
# Пример маппинга томов для Plex:
# Host Path | Mount Path | Тип
# /mnt/pool/media | /media | ReadOnly
# /mnt/pool/apps/plex/config | /config | ReadWrite
# /mnt/pool/apps/plex/transcode | /transcode | ReadWrite
Шаг 4: Настройка сетевого доступа
По умолчанию приложения получают IP из внутренней сети Kubernetes. Для доступа извне:
- В настройках приложения найди раздел «Network Configuration»
- Включи «Host Network» для простого доступа по порту (если приложение одно)
- Или настрой Ingress (более сложно, но позволяет использовать поддомены)
- Открой порт на фаерволе: Network → Global Configuration → Services
TrueNAS Core: Работа с Jail-плагинами
В TrueNAS Core всё происходит через Jail — легковесные контейнеры FreeBSD. Интерфейс проще, но возможности более ограничены.
Установка плагина через веб-интерфейс
Plugins → Available Plugins. Выбери нужный (например, Nextcloud) и нажми Install.
# После установки проверь статус Jail:
iocage list
# Должен появиться новый jail с именем nextcloud
# Посмотреть IP адрес:
iocage get ip4_addr nextcloud
Ручная настройка Jail для кастомных нужд
Если нужного плагина нет в каталоге, создай пустой Jail и установи ПО вручную:
# Создание Jail через CLI:
iocage create -n "myjail" -r 13.0-RELEASE ip4_addr="vnet0|192.168.1.100/24"
# Запуск Jail:
iocage start myjail
# Вход в Jail:
iocage console myjail
# Внутри Jail устанавливай пакеты:
pkg install nginx php74 mysql80-server
# Настройка монтирования хостовых папок (из веб-интерфейса):
# Jail → Mount Points → Add
# Source: /mnt/pool/data
# Destination: /mnt/data
Сравнение: Jail (Core) vs Docker (Scale)
| Критерий | TrueNAS Core (Jail) | TrueNAS Scale (Docker) |
|---|---|---|
| Изоляция | Системная (FreeBSD Jail) | Контейнерная (Docker + K8s) |
| Выбор ПО | Ограничен (только FreeBSD пакеты) | Огромный (все Docker образы) |
| Сложность | Проще для новичков | Сложнее, но гибче |
| Производительность | Выше (меньше оверхеда) | Немного ниже (оверхед Docker) |
| Обновления | Через pkg в каждом Jail | Централизовано (образы контейнеров) |
Топ-10 полезных плагинов для TrueNAS
- Plex/Jellyfin/Emby: Медиасерверы для фильмов и музыки
- Nextcloud: Личное облако (альтернатива Google Drive)
- Bitwarden/Vaultwarden: Менеджер паролей
- Home Assistant: Умный дом
- Pi-hole/AdGuard: Блокировщик рекламы на уровне сети
- Transmission/qBittorrent: Торрент-клиенты
- PhotoPrism: Управление фотоархивом
- WordPress: Блог/сайт
- VSCode Server: Веб-версия редактора кода
- Uptime Kuma: Мониторинг доступности сервисов
Решение частых проблем с плагинами
Проблема 1: Плагин не запускается (CrashLoopBackOff)
Самый частый сценарий. Проверь логи:
# В TrueNAS Scale:
k3s kubectl get pods -n ix-namespace
k3s kubectl logs -n ix-namespace pod/plex-xxxxx
# Или через веб-интерфейс:
# Apps → Найди приложение → Нажми три точки → View Logs
Частые причины:
- Неправильные права на файлы (chmod/chown)
- Конфликт портов (два приложения на порту 80)
- Недостаточно памяти или места на диске
Проблема 2: Нет доступа к данным хоста
Убедись, что:
- Dataset смонтирован в правильную точку внутри контейнера
- Пользователь в контейнере имеет права на чтение/запись
- В TrueNAS Scale: Используется правильный Storage Class
# Проверь права на dataset:
ls -la /mnt/pool/apps/
# Должно быть что-то вроде:
# drwxr-xr-x 5 apps apps 5 Dec 10 10:00 plex
# Если права неправильные:
chown -R apps:apps /mnt/pool/apps/plex
Проблема 3: Обновления ломают плагин
Продвинутые техники: Кастомные Docker образы
Если в каталоге нет нужного приложения, создай своё:
# Создай docker-compose.yml в dataset'е apps/custom:
version: '3.8'
services:
myapp:
image: username/custom-app:latest
container_name: myapp
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- /mnt/pool/apps/myapp/config:/config
- /mnt/pool/media:/media:ro
environment:
- PUID=568 # ID пользователя apps
- PGID=568 # ID группы apps
- TZ=Europe/Moscow
Затем используй «Custom App» в интерфейсе TrueNAS Scale, указав путь к docker-compose.yml.
Безопасность: Best Practices
- Изоляция сети: Используй отдельную VLAN для приложений
- Минимальные привилегии: Не запускай плагины от root
- Регулярные обновления: Включай автообновления для критических уязвимостей
- Бэкапы: Настрой периодические снепшоты dataset'ов с конфигами
- Мониторинг: Установи Netdata или аналоги для отслеживания ресурсов
Частые вопросы (FAQ)
Можно ли перенести плагины с TrueNAS Core на Scale?
Прямого переноса нет. Jail (FreeBSD) и Docker (Linux) — несовместимые технологии. Придется:
1. Экспортировать конфигурацию и данные из Jail-плагина
2. Установить аналогичный Docker-образ в Scale
3. Импортировать данные и настроить заново
Почему некоторые плагины недоступны в официальном каталоге?
Команда TrueNAS проверяет и подписывает только стабильные, популярные приложения. Для остального:
1. Добавь community-каталог (например, TrueCharts)
2. Используй «Custom App» для своих Docker Compose
3. Создай пустой Jail/контейнер и установи ПО вручную
Как освободить место после удаления плагина?
1. Удали приложение через интерфейс (Apps → удали)
2. Удали связанные dataset'ы: Storage → Datasets → найди папку приложения → Destroy Dataset
3. Очисти Docker-образы (в Scale):
k3s crictl rmi --prune
Можно ли запускать плагины на отдельном диске/пуле?
Да, и это рекомендуется для производительности!
1. Создай отдельный pool из SSD-дисков
2. Создай dataset «apps» на этом пуле
3. В настройках Apps укажи этот dataset как Storage Pool
Результат: приложения не тормозят основной пул с данными.
Заключение: Системный подход к плагинам
Плагины TrueNAS — это не просто «установил и забыл». Это полноценные сервисы, которые требуют:
- Планирования: Где будут храниться данные? Какой сетевой доступ нужен?
- Резервного копирования: Конфиги важны не меньше данных
- Мониторинга: Следи за потреблением ресурсов
- Обновлений: Регулярно обновляй и проверяй совместимость
Начни с одного-двух простых плагинов (например, Plex для медиа и Nextcloud для файлов). Освой их настройку, пойми как работают монтирования томов и сеть. Затем постепенно расширяй свою домашнюю лабораторию, добавляя более сложные сервисы. И помни: если что-то сломалось — у тебя всегда есть снепшоты ZFS, чтобы откатиться к рабочему состоянию.