File Browser на Ubuntu 24.04: пошаговая установка
Иногда нужен не полноценный Nextcloud с базой пользователей и синхронизацией, а просто веб-страница, где можно загрузить файл на сервер, скачать его обратно или отредактировать текстовый конфиг без SSH и FTP-клиента. File Browser закрывает именно эту задачу: один бинарник без зависимостей, лёгкий веб-интерфейс с загрузкой по drag-and-drop, встроенным редактором и правами доступа по папкам. Ниже — пошаговая установка на чистый Ubuntu 24.04 с настройкой автозапуска и HTTPS. File Browser написан на Go и распространяется одним статическим бинарником — это его главное отличие от связки условного Nextcloud с PHP, базой данных и веб-сервером. Установка занимает пару минут, память и диск съедает copeечно, а конфигурация и список пользователей хранятся в локальной базе на основе BoltDB — отдельную СУБД поднимать не нужно. За это приходится платить набором функций: нет календарей, контактов и мобильной синхронизации, это именно файловый менеджер, а не корпоративное облако. Если нужен весь набор Nextcloud, разумнее взять полноценную установку Nextcloud — здесь же ставим компактный инструмент под конкретную задачу.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Шаг 1. Подготовка сервера Ubuntu 24.04
Понадобится чистый VPS с root-доступом. File Browser нетребователен: 1 ядро и 1 ГБ RAM спокойно тянут интерфейс и раздачу файлов, а под диск закладывайте объём с запасом — именно туда будут загружать файлы пользователи.
Обновите систему перед установкой:
apt update && apt upgrade -y
Локацию сервера выбирайте по тому, кто будет заходить в файловый менеджер. Если файлами пользуется команда в России — логичнее RU-площадка с минимальным пингом, если сервер обслуживает зарубежных клиентов или интегрирован с иностранными сервисами — ближе будут US или UK. У MAATRIX доступны все три локации, а оплата проходит картой российского банка, по СБП или криптовалютой — без иностранной карты.
Заведите отдельную непривилегированную учётную запись для сервиса — так процесс File Browser не будет работать от root:
adduser --system --group --no-create-home filebrowser
Шаг 2. Установка бинарника File Browser
Официальный способ установки — скрипт, который сам определяет архитектуру, скачивает актуальный релиз с GitHub и кладёт бинарник в /usr/local/bin:
curl -fsSL https://raw.githubusercontent.com/filebrowser/filebrowser/master/install.sh | bash
Проверьте, что бинарник встал и отвечает на вызов версии:
filebrowser version
Если по каким-то причинам скрипт недоступен (например, GitHub временно не открывается с сервера), альтернатива — скачать релиз вручную со страницы проекта на GitHub, распаковать архив и переложить бинарник filebrowser в /usr/local/bin с правами на исполнение (chmod +x). Логика дальнейшей настройки от способа установки не зависит.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверШаг 3. Каталог для файлов и первичная инициализация
Создайте каталог, который File Browser будет отдавать как корень файловой системы для пользователей, и каталог под служебные файлы (базу и конфиг):
mkdir -p /srv/files /etc/filebrowser
chown -R filebrowser:filebrowser /srv/files /etc/filebrowser
Инициализируйте базу конфигурации — она хранится в файле filebrowser.db (формат BoltDB) и содержит настройки сервера и список пользователей:
sudo -u filebrowser filebrowser config init --database /etc/filebrowser/filebrowser.db
Сразу пропишите базовые параметры: корневую папку, адрес и порт, на котором сервис будет слушать локально:
sudo -u filebrowser filebrowser config set \
--database /etc/filebrowser/filebrowser.db \
--root /srv/files \
--address 127.0.0.1 \
--port 8080
Сервис специально слушает только 127.0.0.1 — наружу его открывать не будем, доступ пойдёт через реверс-прокси с HTTPS, это разберём в шаге 5.
Шаг 4. Пользователи и учётные записи
По умолчанию первая созданная учётная запись — администратор с логином admin и автосгенерированным паролем, но удобнее сразу задать свой пароль явно:
sudo -u filebrowser filebrowser users add admin 'НАДЁЖНЫЙ_ПАРОЛЬ' \
--database /etc/filebrowser/filebrowser.db \
--perm.admin
Для остальных людей, которым нужен доступ без прав администратора, заведите отдельные записи с ограниченным набором разрешений:
sudo -u filebrowser filebrowser users add editor 'ДРУГОЙ_ПАРОЛЬ' \
--database /etc/filebrowser/filebrowser.db \
--perm.create --perm.rename --perm.modify --perm.delete
Каждому пользователю можно ограничить видимую область файловой системы отдельным scope — например, дать доступ только к подпапке /srv/files/team, а не ко всему корню. Список пользователей и их права всегда можно посмотреть командой:
sudo -u filebrowser filebrowser users ls --database /etc/filebrowser/filebrowser.db
Если позже понадобится встроить File Browser во внешнюю систему аутентификации, у него есть режим прокси-авторизации, когда логин передаётся заголовком от реверс-прокси, но для типового сценария встроенных учётных записей достаточно.
Шаг 5. Автозапуск через systemd
Чтобы File Browser поднимался сам после перезагрузки и перезапускался при сбое, опишите его как systemd-юнит. Создайте файл /etc/systemd/system/filebrowser.service:
[Unit]
Description=File Browser
After=network.target
[Service]
User=filebrowser
Group=filebrowser
ExecStart=/usr/local/bin/filebrowser --database /etc/filebrowser/filebrowser.db
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Обратите внимание: адрес, порт и корневая папка уже прописаны внутри самой базы filebrowser.db из шага 3, поэтому в ExecStart их повторно указывать не нужно — сервис читает их оттуда при старте.
Включите и запустите сервис:
systemctl daemon-reload
systemctl enable --now filebrowser
systemctl status filebrowser
Убедитесь, что порт слушается только локально:
ss -tlnp | grep 8080
В выводе должен быть 127.0.0.1:8080 — если видите 0.0.0.0:8080, вернитесь к шагу 3 и перепроверьте адрес в конфиге, прежде чем открывать сервер наружу.
Шаг 6. Реверс-прокси, HTTPS и фаервол
Открывать 8080 порт напрямую наружу не стоит: File Browser отдаёт трафик по HTTP без шифрования, а логин с паролем в открытом виде — плохая идея даже для внутреннего инструмента. Правильный путь — поставить перед ним Nginx или Caddy с HTTPS.
Если уже есть Nginx, добавьте отдельный server-блок с проксированием на локальный порт — подробная настройка реверс-прокси на Nginx с TLS разобрана в отдельной статье про Nginx как реверс-прокси на Ubuntu 24.04. Ключевой момент для File Browser — не забыть заголовки, иначе загрузка больших файлов и WebSocket-обновления интерфейса будут работать нестабильно:
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;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
client_max_body_size 0;
}
Директива client_max_body_size 0 снимает у Nginx ограничение на размер загружаемого файла — сам File Browser своего лимита по умолчанию не ставит, так что ограничивать размер загрузок, если это нужно, стоит именно на уровне прокси.
Если предпочитаете более простую настройку без ручного выпуска сертификатов, аналогичный результат даёт Caddy с авто-SSL на Ubuntu 24.04 — там достаточно нескольких строк конфига, и сертификат Let's Encrypt Caddy получит и продлит сам.
Закройте фаерволом всё, кроме SSH и веб-портов — детальная настройка разобрана в статье про UFW на Ubuntu 24.04:
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Порт 8080 в правила ufw добавлять не нужно — он и так недоступен снаружи, поскольку сервис слушает только 127.0.0.1.
Шаг 7. Проверка, обновление и типовые настройки
Откройте домен в браузере — должна появиться страница входа File Browser, а после логина под учётной записью администратора — файловый менеджер с содержимым /srv/files.
Из полезных настроек, которые стоит проверить сразу:
| Параметр | Что делает | Команда |
|---|---|---|
--branding.name | Название в шапке интерфейса | filebrowser config set --branding.name "Мои файлы" |
--auth.method | Способ аутентификации (json — встроенные логины, proxy — заголовок от внешнего SSO) | filebrowser config set --auth.method json |
--commands | Разрешённые серверные команды (например, для интеграции с git) | задаётся в конфиге отдельным блоком |
После любого изменения через filebrowser config set перезапустите сервис, чтобы он перечитал базу:
systemctl restart filebrowser
Обновление до новой версии — та же команда установки, что и в шаге 2: скрипт скачивает свежий релиз и заменяет бинарник, база и пользователи при этом не трогаются:
curl -fsSL https://raw.githubusercontent.com/filebrowser/filebrowser/master/install.sh | bash
systemctl restart filebrowser
Резервную копию всего сервиса достаточно снимать как один файл /etc/filebrowser/filebrowser.db плюс сам каталог с данными /srv/files — восстановление на другом сервере сводится к копированию этих двух путей и повторной установке бинарника.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
File Browser — это замена Nextcloud?
Нет, это лёгкий файловый менеджер без календарей, контактов и синхронизации — для этого набора функций нужен Nextcloud.
Можно ли обойтись без реверс-прокси и HTTPS?
Технически да, но логин и пароль будут идти в открытом виде по HTTP — для чего-то серьёзнее локального теста так делать не стоит.
Где хранятся пользователи и настройки?
В одном файле базы BoltDB — по умолчанию filebrowser.db по пути, который вы указали при config init.
Как ограничить одному пользователю доступ только к его папке?
При создании пользователя задайте параметр --scope с путём подпапки внутри корня — вне неё файлы будут не видны.
Нужна ли отдельная СУБД вроде PostgreSQL?
Нет, встроенной BoltDB достаточно для любого разумного числа пользователей, внешняя база не требуется.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →