Представь, что тебе нужно управлять файлами на твоём NAS через браузер, но встроенный файловый менеджер TrueNAS слишком простой или его нет. File Browser — это мощное решение, которое превращает твой сервер в полноценный облачный файловый менеджер. Давай разберем, как установить и настроить его на TrueNAS Scale и Core.
Что такое File Browser и зачем он нужен в TrueNAS?
File Browser — это легковесный веб-файловый менеджер с поддержкой множества пользователей, ролей, загрузки файлов, просмотра изображений, видео и даже редактирования текстовых файлов. В отличие от стандартных методов доступа (SMB/NFS), он работает через браузер и не требует установки дополнительного ПО на клиенте.
Сравнение методов установки File Browser
| Метод | TrueNAS Scale | TrueNAS Core | Сложность |
|---|---|---|---|
| Официальное приложение | ✅ Поддерживается | ❌ Не поддерживается | Низкая |
| Docker контейнер | ✅ Рекомендуется | ⚠️ Через Jail | Средняя |
| Ручная установка | ⚠️ Возможно | ⚠️ Сложно | Высокая |
Установка File Browser на TrueNAS Scale через Docker
Это самый простой и рекомендуемый способ. TrueNAS Scale основан на Linux и имеет встроенную поддержку Docker через систему приложений.
Шаг 1: Подготовка dataset для File Browser
Сначала создай отдельный dataset для хранения конфигурации и данных File Browser:
# Путь к dataset (пример)
/mnt/pool/apps/filebrowser
/mnt/pool/data/filebrowser_data
apps (UID 568) и группу apps (GID 568).
Шаг 2: Установка через TrueNAS Apps
- Перейди в Apps → Discover Apps
- Найди File Browser в каталоге или используй ручную установку
- Нажми Install и заполни конфигурацию:
# Пример конфигурации docker-compose для TrueNAS
version: '3.8'
services:
filebrowser:
image: filebrowser/filebrowser:latest
container_name: filebrowser
restart: unless-stopped
ports:
- "8080:80" # Внешний порт:внутренний
volumes:
- /mnt/pool/data:/srv # Твои данные
- /mnt/pool/apps/filebrowser/database.db:/database.db
- /mnt/pool/apps/filebrowser/filebrowser.json:/config/filebrowser.json
environment:
- FB_BASEURL=/filebrowser # Если используешь reverse proxy
Шаг 3: Настройка File Browser после установки
После запуска контейнера открой браузер и перейди по адресу http://truenas-ip:8080. Первый вход:
- Логин:
admin - Пароль:
admin(сразу поменяй!) - Укажи корневой путь к файлам (например,
/srv)
Ручная установка File Browser на TrueNAS Core
На TrueNAS Core (FreeBSD) Docker недоступен напрямую, но можно использовать Jail или ручную сборку.
Способ 1: Установка в Jail (рекомендуется)
# Создай Jail
# Через веб-интерфейс: Jails → Add
# Или через CLI:
iocage create -n "filebrowser" -r 13.2-RELEASE ip4_addr="vnet0|192.168.1.100/24"
# Зайди в Jail
iocage console filebrowser
# Установи необходимые пакеты
pkg update && pkg upgrade -y
pkg install nano wget
# Скачай и установи File Browser
# Для FreeBSD/amd64:
wget https://github.com/filebrowser/filebrowser/releases/download/v2.23.0/freebsd-amd64-filebrowser.tar.gz
tar -xzf freebsd-amd64-filebrowser.tar.gz
mv filebrowser /usr/local/bin/
chmod +x /usr/local/bin/filebrowser
Способ 2: Настройка через конфигурационный файл
{
"port": 8080,
"baseURL": "",
"address": "0.0.0.0",
"log": "stdout",
"database": "/config/database.db",
"root": "/mnt/data",
"allowCommands": true,
"allowEdit": true,
"allowNew": true,
"commands": [
"git",
"svn"
]
}
Создай systemd сервис для автозапуска:
[Unit]
Description=File Browser
After=network.target
[Service]
User=filebrowser
Group=filebrowser
ExecStart=/usr/local/bin/filebrowser -c /path/to/config/filebrowser.json
Restart=on-failure
[Install]
WantedBy=multi-user.target
Настройка безопасности и reverse proxy
Никогда не оставляй File Browser доступным напрямую без защиты. Вот как настроить безопасность:
1. Настройка аутентификации в File Browser
# Смена пароля администратора
filebrowser users update admin --password новый_сложный_пароль
# Создание нового пользователя
filebrowser users add user1 --password пароль --perm.create --perm.delete --perm.download
# Ограничение доступа к определенным папкам
filebrowser users update user1 --scope "/mnt/data/user1,/mnt/data/shared"
2. Настройка Nginx как reverse proxy
server {
listen 443 ssl http2;
server_name files.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location /filebrowser/ {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Для правильной работы WebSocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# Блокировка прямого доступа к порту 8080
location = / {
return 301 https://$server_name/filebrowser;
}
}
3. Настройка fail2ban для защиты от брутфорса
# Создай фильтр для fail2ban
cat > /etc/fail2ban/filter.d/filebrowser.conf << EOF
[Definition]
failregex = ^.*Username or password incorrect.* ip=
ignoreregex =
EOF
# Добавь jail конфигурацию
cat >> /etc/fail2ban/jail.local << EOF
[filebrowser]
enabled = true
port = http,https,8080
filter = filebrowser
logpath = /var/log/filebrowser.log
maxretry = 5
bantime = 3600
EOF
Интеграция с SMB/NFS shares TrueNAS
Чтобы File Browser видел твои общие папки TrueNAS, нужно правильно смонтировать их в контейнере или Jail:
services:
filebrowser:
# ... остальная конфигурация
volumes:
- /mnt/pool/smb_share:/srv/smb
- /mnt/pool/nfs_share:/srv/nfs
# Для правильных разрешений в Linux контейнере
environment:
- PUID=1000
- PGID=1000
# Или запусти от root (небезопасно!)
# user: "root"
force user в настройках SMB TrueNAS или настрой правильные UID/GID в контейнере.
Автоматическое резервное копирование конфигурации
Не теряй настройки пользователей! Настрой автоматический бэкап:
#!/bin/bash
# backup-filebrowser.sh
BACKUP_DIR="/mnt/pool/backups/filebrowser"
CONFIG_DIR="/mnt/pool/apps/filebrowser"
DATE=$(date +%Y%m%d_%H%M%S)
# Создай бэкап базы данных и конфига
cp $CONFIG_DIR/database.db $BACKUP_DIR/database_$DATE.db
cp $CONFIG_DIR/filebrowser.json $BACKUP_DIR/filebrowser_$DATE.json
# Сожми и удали старые бэкапы (храни 30 дней)
tar -czf $BACKUP_DIR/filebrowser_backup_$DATE.tar.gz $BACKUP_DIR/*_$DATE.*
find $BACKUP_DIR -name "*.db" -mtime +30 -delete
find $BACKUP_DIR -name "*.json" -mtime +30 -delete
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete
# Добавь в crontab: 0 2 * * * /path/to/backup-filebrowser.sh
Оптимизация производительности File Browser
- Кэширование: Включи кэш в настройках File Browser для больших директорий
- Лимиты: Установи лимиты на размер загружаемых файлов в конфиге
- База данных: Регулярно выполняй
VACUUMдля SQLite базы - Ресурсы Docker: Ограничь CPU/RAM для контейнера в настройках TrueNAS
{
"port": 8080,
"cache": {
"enable": true,
"duration": 300,
"maxSize": 100
},
"upload": {
"maxSize": 1073741824, # 1GB
"chunkSize": 10485760 # 10MB
}
}
Частые проблемы и решения
Проблема 1: "Permission denied" при доступе к файлам
Решение: Проверь UID/GID контейнера и владельца файлов:
# В контейнере:
id
# На хосте:
ls -la /mnt/pool/data
# Синхронизируй UID/GID через переменные окружения PUID/PGID
Проблема 2: File Browser не видит вложенные папки
Решение: Проверь точки монтирования в Docker и права рекурсивно:
# Рекурсивно смени владельца
chown -R 568:568 /mnt/pool/data
# Или добавь ACL
setfacl -R -m u:568:rx /mnt/pool/data
Проблема 3: Медленная работа с большими директориями
Решение: Включи кэширование и увеличь лимиты:
filebrowser config set --cache.enable true
filebrowser config set --cache.duration 600
filebrowser config set --cache.maxSize 500
Альтернативы File Browser для TrueNAS
Если File Browser не подходит, рассмотри эти варианты:
- Nextcloud: Полноценное облако с календарем, контактами
- Seafile: Оптимизирован для синхронизации файлов
- Pydio Cells: Корпоративное решение с аудитом
- FileRun: Коммерческий продукт с расширенными функциями
- Встроенный файловый менеджер TrueNAS: Базовый функционал в разделе Datasets
Часто задаваемые вопросы (FAQ)
Можно ли установить File Browser на TrueNAS Core без Jail?
Технически да, но это сложно и не рекомендуется. FreeBSD не имеет нативной поддержки Docker, а ручная сборка потребует компиляции Go и зависимостей. Jail обеспечивает изоляцию и безопасность, используй его.
Как обновить File Browser в Docker контейнере?
В TrueNAS Scale: Apps → Installed Applications → выбери File Browser → Update. Или через CLI: docker-compose pull && docker-compose up -d. Не забудь сделать бэкап database.db перед обновлением.
File Browser тормозит при работе с тысячами файлов. Что делать?
1) Включи кэширование в настройках. 2) Увеличь ресурсы контейнера (CPU/RAM). 3) Разбей большие директории на подпапки. 4) Рассмотри использование более производительного решения типа Seafile для очень больших коллекций.
Как настроить автоматическую загрузку файлов по расписанию?
File Browser не имеет встроенного планировщика. Используй cron на хосте TrueNAS или внутри контейнера: crontab -e и добавь задание для wget/curl, которое загружает файлы в директорию, доступную File Browser.
Безопасно ли открывать File Browser в интернет?
Только с дополнительной защитой: 1) Обязательно используй HTTPS (через reverse proxy с Let's Encrypt). 2) Включи fail2ban. 3) Используй сложные пароли и 2FA если возможно. 4) Ограничь доступ по IP. 5) Регулярно обновляй.
Теперь у тебя есть полное руководство по установке и настройке File Browser на TrueNAS. Начни с Docker на Scale — это самый быстрый путь к удобному веб-доступу к твоим файлам. Не забывай про безопасность и регулярные бэкапы!