Самохостинг File Browser: гайд по веб‑менеджеру файлов
Как самохостить File Browser: установка через Docker, настройка прав доступа, интеграция с Nextcloud и PLEX, безопасность домашнего сервера.
Обновление системы и установка утилит
Перед установкой File Browser необходимо обновить пакеты системы и установить базовые утилиты для загрузки файлов.
sudo apt update && sudo apt upgrade -y
sudo apt install curl wget git -yУстановка File Browser
Использование официального скрипта для автоматической установки, определения архитектуры и создания системного пользователя.
curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bashСоздание директорий для данных
Создание папок для хранения базы данных (конфигурации) и файлов, которые будут доступны через веб-интерфейс.
sudo mkdir -p /var/lib/filebrowser
sudo mkdir -p /srv/filebrowserНазначение владельца директорий
Предоставление прав пользователю 'filebrowser' (созданному скриптом установки) на управление созданными директориями.
sudo chown -R filebrowser:filebrowser /var/lib/filebrowser
sudo chown -R filebrowser:filebrowser /srv/filebrowserСоздание службы Systemd
Создание файла службы для управления File Browser (автозапуск, перезапуск при сбоях). Укажите путь к корневой папке файлов в параметре -r.
sudo tee /etc/systemd/system/filebrowser.service > /dev/null <<EOF
[Unit]
Description=File Browser Service
After=network.target
[Service]
User=filebrowser
Group=filebrowser
Type=simple
ExecStart=/usr/local/bin/filebrowser \
-d /var/lib/filebrowser/database.db \
-r /srv/filebrowser \
-a 0.0.0.0 \
-p 8080
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
EOFЗапуск службы File Browser
Перезагрузка конфигурации systemd, включение службы для автозапуска при загрузке системы и её запуск.
sudo systemctl daemon-reload
sudo systemctl enable filebrowser
sudo systemctl start filebrowserУстановка Nginx и настройка обратного прокси
Установка веб-сервера Nginx для маршрутизации трафика с домена на локальный порт File Browser (8080).
sudo apt install nginx -y
sudo tee /etc/nginx/sites-available/filebrowser > /dev/null <<EOF
server {
listen 80;
server_name ваш_домен.example.com;
location / {
proxy_pass http://127.0.0.1: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;
}
}
EOF
sudo ln -s /etc/nginx/sites-available/filebrowser /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginxУстановка Certbot и получение SSL-сертификата
Установка Certbot и плагина для Nginx для автоматического получения бесплатного SSL-сертификата Let's Encrypt.
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d ваш_домен.example.comПервоначальный вход и смена пароля
Вход в веб-интерфейс по адресу https://ваш_домен.example.com. Логин и пароль по умолчанию: admin/admin. Смена пароля обязательна для безопасности.
После входа перейдите в раздел Settings -> Users -> Найдите admin -> Change PasswordНастройка Public URL (опционально)
Если File Browser работает за обратным прокси, рекомендуется указать публичный URL в настройках, чтобы ссылки на скачивание работали корректно.
sudo filebrowser config set --public-url "https://ваш_домен.example.com" -d /var/lib/filebrowser/database.dbСамостоятельное хостинг: File Browser — веб-файловый менеджер
File Browser — это легковесный, кроссплатформенный веб-файловый менеджер с открытым исходным кодом. Он позволяет управлять файлами на сервере через браузер, предоставляет функции загрузки, скачивания, редактирования и предпросмотра. В отличие от тяжелых решений вроде Nextcloud или Seafile, File Browser фокусируется на простоте и минимальных ресурсах, что делает его идеальным для VPS, NAS или даже домашнего сервера.
Что потребуется
- Сервер с Linux (Ubuntu/Debian, CentOS/RHEL, Fedora). Инструкции ориентированы на Debian-подобные системы, но аналоги для RHEL указаны.
- SSH-доступ с правами sudo.
- Домен или статический IP-адрес (необязательно, но рекомендуется для HTTPS и удобства).
- Базовые знания командной строки.
Проверка предварительных условий
Обновите систему и установите базовые утилиты:
sudo apt update && sudo apt upgrade -y
sudo apt install curl wget git -y
Установка File Browser
Способ 1: Через официальный скрипт (рекомендуется для быстрого старта)
Скрипт автоматически определяет архитектуру, скачивает последнюю версию и создает системного пользователя.
curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash
После выполнения скрипт:
- Создаст пользователя
filebrowser. - Установит бинарник в
/usr/local/bin/filebrowser. - Создаст службу systemd.
Проверьте установку:
filebrowser version
Способ 2: Ручная установка из бинарных пакетов
Если скрипт недоступен, скачайте бинарник вручную. Перейдите на страницу релизов и выберите версию для вашей архитектуры (обычно linux-amd64 для 64-битных систем).
# Пример для amd64
wget https://github.com/filebrowser/filebrowser/releases/download/v2.31.2/linux-amd64-filebrowser.tar.gz
tar -xvzf linux-amd64-filebrowser.tar.gz
sudo mv filebrowser /usr/local/bin/
sudo chmod +x /usr/local/bin/filebrowser
Способ 3: Через Docker (если предпочитаете контейнеризацию)
File Browser официально поддерживает Docker. Это изолирует приложение и упрощает развертывание.
# Создайте директорию для конфигурации и данных
mkdir -p ~/filebrowser/data
cd ~/filebrowser
# Создайте файл конфигурации (опционально, можно настроить через веб-интерфейс)
cat > config.json << EOF
{
"settings": {
"auth": {
"admin": {
"password": "ВАШ_СЛОЖНЫЙ_ПАРОЛЬ",
"username": "admin"
}
},
"branding": {
"name": "Мой Файл-менеджер"
},
"server": {
"root": "/srv/filebrowser",
"port": 8080
}
}
}
EOF
# Запустите контейнер
docker run -d \
--name filebrowser \
-p 8080:8080 \
-v $(pwd)/data:/data \
-v /путь/к/вашим/файлам:/srv/filebrowser \
-v $(pwd)/config.json:/config.json \
--restart unless-stopped \
filebrowser/filebrowser
Примечание: Для Docker-версии структура каталогов внутри контейнера:
/srv/filebrowser— корневая папка для файлов./data— для базы данных и конфигурации.
Настройка и запуск
Через системный сервис (Systemd)
Если вы использовали скрипт или установили бинарник вручную, создайте службу для автоматического запуска.
- Создайте директории для данных:
sudo mkdir -p /var/lib/filebrowser
sudo mkdir -p /srv/filebrowser
- Назначьте владельца:
sudo chown -R filebrowser:filebrowser /var/lib/filebrowser
sudo chown -R filebrowser:filebrowser /srv/filebrowser
- Создайте службу:
sudo nano /etc/systemd/system/filebrowser.service
Содержимое файла:
[Unit]
Description=File Browser Service
After=network.target
[Service]
User=filebrowser
Group=filebrowser
Type=simple
ExecStart=/usr/local/bin/filebrowser \
-d /var/lib/filebrowser/database.db \
-r /srv/filebrowser \
-a 0.0.0.0 \
-p 8080
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
- Перезагрузите systemd, включите и запустите службу:
sudo systemctl daemon-reload
sudo systemctl enable filebrowser
sudo systemctl start filebrowser
- Проверьте статус:
sudo systemctl status filebrowser
Первое подключение и настройка
- Откройте браузер и перейдите по адресу:
http://ваш_сервер_IP:8080илиhttp://ваш_домен:8080. - По умолчанию используется административный аккаунт:
- Логин:
admin - Пароль:
admin(измените немедленно!)
- Логин:
Изменение пароля через веб-интерфейс
После входа перейдите в раздел Настройки (Settings) → Пользователи (Users). Найдите пользователя admin и измените пароль.
Через командную строку (без веб-интерфейса)
Если вы предпочитаете CLI, используйте команду filebrowser users update.
# Пример: смена пароля для пользователя admin
sudo filebrowser users update admin --password "Ваш_новый_сложноый_пароль" \
-d /var/lib/filebrowser/database.db
Добавление других пользователей
Через веб-интерфейс: Настройки → Пользователи → Добавить пользователя.
Через CLI:
sudo filebrowser users add "username" "password" --perm.admin=false -d /var/lib/filebrowser/database.db
Настройка HTTPS с Let’s Encrypt
Для безопасной работы через веб нужно шифрование. Рекомендуем использовать Nginx как обратный прокси.
Установка и настройка Nginx
- Установите Nginx:
sudo apt install nginx -y
- Создайте конфигурационный файл для вашего домена:
sudo nano /etc/nginx/sites-available/filebrowser
Содержимое:
server {
listen 80;
server_name ваш_домен.example.com;
location / {
proxy_pass http://127.0.0.1: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;
}
}
- Активируйте конфигурацию:
sudo ln -s /etc/nginx/sites-available/filebrowser /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
Получение SSL-сертификата с помощью Certbot
- Установите Certbot и плагин для Nginx:
sudo apt install certbot python3-certbot-nginx -y
- Запустите получение сертификата:
sudo certbot --nginx -d ваш_домен.example.com
Сертификат автоматически обновится (по умолчанию каждые 90 дней). Проверьте, что в конфигурации Nginx появился блок listen 443 ssl; и пути к сертификатам.
Обновление настроек File Browser (если требуется)
Если вы используете обратный прокси, File Browser может не знать о публичном домене. В веб-интерфейсе перейдите в Настройки (Settings) → Сервер (Server) и укажите Public URL: https://ваш_домен.example.com.
Или через CLI:
sudo filebrowser config set --public-url "https://ваш_домен.example.com" \
-d /var/lib/filebrowser/database.db
Расширенная настройка и управление
База данных
По умолчанию File Browser использует SQLite, что упрощает развертывание. Для отказоустойчивости можно перейти на PostgreSQL или MySQL.
- Создайте пользователя и базу данных в PostgreSQL:
CREATE DATABASE filebrowser;
CREATE USER filebrowser_user WITH PASSWORD 'секрет_пароль';
GRANT ALL PRIVILEGES ON DATABASE filebrowser TO filebrowser_user;
- Измените строку подключения в службе:
Обновите ExecStart в /etc/systemd/system/filebrowser.service:
ExecStart=/usr/local/bin/filebrowser \
-d "postgresql://filebrowser_user:секрет_пароль@localhost:5432/filebrowser" \
-r /srv/filebrowser \
-a 0.0.0.0 \
-p 8080
- Перезапустите службу:
sudo systemctl daemon-reload
sudo systemctl restart filebrowser
Квоты и ограничения
File Browser не имеет встроенных квот. Для ограничения дискового пространства используйте системные квоты (на Linux) или ограничения на уровне обратного прокси (например, Nginx через client_max_body_size).
Пример настройки Nginx для ограничения загрузки файлов (в блоке server):
client_max_body_size 100M; # Максимальный размер файла 100 МБ
Интеграция с внешними хранилищами
File Browser поддерживает S3-совместимые хранилища (MinIO, AWS S3 и др.). Настройка через веб-интерфейс: Настройки → Диски (Disks).
Пример конфигурации для MinIO:
- Имя диска:
s3 - Тип:
S3 - Ключ доступа (Access Key ID): ваш_ключ
- Секретный ключ (Secret Access Key): ваш_секрет
- Region:
us-east-1 - Endpoint:
https://minio.example.com(без/в конце) - Bucket:
filebrowser-bucket
После сохранения файлы из этого диска будут доступны в интерфейсе File Browser.
Устранение неисправностей
Service не запускается
- Проверьте логи:
sudo journalctl -u filebrowser -f
- Убедитесь, что порт 8080 свободен и доступен:
ss -tlnp | grep 8080
- Проверьте права доступа к директориям и файлу БД:
sudo chown -R filebrowser:filebrowser /var/lib/filebrowser
sudo chown -R filebrowser:filebrowser /srv/filebrowser
Ошибки подключения через Nginx
- 502 Bad Gateway: Убедитесь, что File Browser запущен и слушает порт 8080.
- 413 Request Entity Too Large: Увеличьте
client_max_body_sizeв Nginx. - Перенаправление на 8080 вместо HTTPS: Проверьте настройки
proxy_set_headerв Nginx, особенноX-Forwarded-Proto $scheme.
Проблемы с базой данных
Если вы перешли на PostgreSQL и видите ошибки подключения:
- Проверьте, разрешены ли соединения с localhost в
pg_hba.conf. - Убедитесь, что хосты
127.0.0.1иlocalhostесть вlisten_addressesвpostgresql.conf.
Сброс пароля администратора
Если вы потеряли пароль, можно сбросить его через CLI, создав новый пользователь или изменив существующий. Если же доступ к CLI отсутствует, можно временно запустить File Browser с флагом --username admin --password newpassword и затем настроить корректно.
Заключение
File Browser — это мощный и гибкий инструмент для управления файлами через веб, который можно настроить за несколько минут. Ключевые шаги:
- Установка бинарника или запуск Docker-контейнера.
- Настройка системного сервиса для автоматического запуска.
- Обеспечение безопасности через HTTPS (Nginx + Let’s Encrypt).
- Настройка пользователей и расширенных опций (база данных, облачные хранилища).
После настройки вы получите надежный файловый менеджер, который можно использовать как для личных нужд, так и для предоставления доступа нескольким пользователям.