Filebrowser установка на Ubuntu: Пошаговая инструкция 2024 | AdminWiki

Filebrowser установка на Ubuntu: Полное руководство для DevOps

18 декабря 2025 9 мин. чтения #devops #filebrowser #linux #ubuntu #веб-интерфейс #настройка сервера #файловый менеджер
Содержание статьи

Представь, что тебе нужно управлять файлами на удаленном сервере, но не хочется каждый раз подключаться по SSH. Filebrowser — это элегантное решение: легковесный веб-файловый менеджер с минимальными требованиями. Давай разберем, как выполнить установку Filebrowser на Ubuntu от начала до продвинутой настройки.

Что такое Filebrowser и зачем он нужен

Filebrowser — это самостоятельное веб-приложение, которое предоставляет интерфейс для управления файлами через браузер. В отличие от тяжеловесных панелей управления, он потребляет мало ресурсов и идеально подходит для:

  • Быстрого доступа к файлам сервера
  • Загрузки и скачивания файлов через браузер
  • Просмотра изображений, видео и документов
  • Редактирования текстовых файлов прямо в браузере
  • Управления правами доступа к файлам и папкам
Важно: Filebrowser работает как отдельный сервис, не требует базы данных и написан на Go, что обеспечивает высокую производительность.

Подготовка системы Ubuntu к установке

Перед началом установки Filebrowser убедимся, что система обновлена и у нас есть необходимые права:

bash
# Обновляем список пакетов и систему
sudo apt update
sudo apt upgrade -y

# Проверяем версию Ubuntu
lsb_release -a

# Устанавливаем curl для загрузки файлов
sudo apt install curl -y

Создание отдельного пользователя для Filebrowser

Для безопасности создадим отдельного системного пользователя:

bash
# Создаем пользователя filebrowser без возможности входа в систему
sudo useradd -r -s /usr/sbin/nologin filebrowser

# Создаем директорию для данных
sudo mkdir -p /var/lib/filebrowser
sudo chown -R filebrowser:filebrowser /var/lib/filebrowser

Установка Filebrowser на Ubuntu

Существует несколько способов установки. Рассмотрим самый надежный — через загрузку бинарного файла.

Способ 1: Установка из официального релиза

bash
# Определяем последнюю версию
VERSION=$(curl -s https://api.github.com/repos/filebrowser/filebrowser/releases/latest | grep tag_name | cut -d '"' -f 4)

# Скачиваем архив для Linux amd64
curl -fsSL https://github.com/filebrowser/filebrowser/releases/download/$VERSION/linux-amd64-filebrowser.tar.gz -o filebrowser.tar.gz

# Распаковываем архив
tar -xzf filebrowser.tar.gz

# Перемещаем бинарный файл в системную директорию
sudo mv filebrowser /usr/local/bin/

# Даем права на выполнение
sudo chmod +x /usr/local/bin/filebrowser

Способ 2: Установка через Docker (альтернативный вариант)

Если предпочитаешь контейнеризацию:

bash
# Устанавливаем Docker (если еще не установлен)
sudo apt install docker.io -y
sudo systemctl enable --now docker

# Запускаем Filebrowser в контейнере
docker run -d \
  --name filebrowser \
  -v /path/to/your/files:/srv \
  -v /path/to/database.db:/database.db \
  -v /path/to/settings.json:/config/settings.json \
  -e PUID=$(id -u) \
  -e PGID=$(id -g) \
  -p 8080:80 \
  filebrowser/filebrowser
Внимание: При установке через Docker убедись, что пути монтирования корректны и у контейнера есть доступ к необходимым директориям.

Настройка Filebrowser как системного сервиса

Чтобы Filebrowser запускался автоматически при загрузке системы, создадим systemd сервис:

bash
# Создаем конфигурационный файл сервиса
sudo nano /etc/systemd/system/filebrowser.service

Добавляем следующее содержимое:

config
[Unit]
Description=Filebrowser - Web File Manager
After=network.target

[Service]
User=filebrowser
Group=filebrowser
ExecStart=/usr/local/bin/filebrowser -c /etc/filebrowser/config.json
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Создание конфигурационного файла

bash
# Создаем директорию для конфигов
sudo mkdir -p /etc/filebrowser

# Генерируем базовый конфиг
sudo filebrowser config init -c /etc/filebrowser/config.json

# Настраиваем параметры
sudo filebrowser config set -c /etc/filebrowser/config.json \
  --address 0.0.0.0 \
  --port 8080 \
  --root /var/lib/filebrowser \
  --database /var/lib/filebrowser/filebrowser.db \
  --log /var/log/filebrowser.log

Запуск и управление сервисом

bash
# Перезагружаем systemd
sudo systemctl daemon-reload

# Включаем автозагрузку
sudo systemctl enable filebrowser

# Запускаем сервис
sudo systemctl start filebrowser

# Проверяем статус
sudo systemctl status filebrowser

# Просмотр логов
sudo journalctl -u filebrowser -f

Первоначальная настройка и безопасность

Создание администратора и настройка аутентификации

bash
# Создаем первого пользователя (администратора)
sudo filebrowser users add admin password123 \
  --perm.admin \
  -c /etc/filebrowser/config.json

# Изменяем пароль (рекомендуется сделать это сразу)
sudo filebrowser users update admin --password newStrongPassword123!
Критически важно: Никогда не используй простые пароли! Сгенерируй сложный пароль с помощью openssl rand -base64 16 или менеджера паролей.

Настройка HTTPS с Let's Encrypt

Для безопасного доступа настроим SSL:

bash
# Устанавливаем Certbot
sudo apt install certbot python3-certbot-nginx -y

# Получаем сертификат (замени example.com на свой домен)
sudo certbot certonly --standalone -d filebrowser.example.com

# Настраиваем Filebrowser для использования SSL
sudo filebrowser config set -c /etc/filebrowser/config.json \
  --tls.key /etc/letsencrypt/live/filebrowser.example.com/privkey.pem \
  --tls.cert /etc/letsencrypt/live/filebrowser.example.com/fullchain.pem \
  --address 0.0.0.0 \
  --port 443

Настройка Nginx как обратного прокси

Для продвинутой конфигурации и лучшей производительности используем Nginx:

bash
# Устанавливаем Nginx
sudo apt install nginx -y

# Создаем конфиг для Filebrowser
sudo nano /etc/nginx/sites-available/filebrowser

Конфигурация Nginx:

config
server {
    listen 80;
    server_name filebrowser.example.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name filebrowser.example.com;

    ssl_certificate /etc/letsencrypt/live/filebrowser.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/filebrowser.example.com/privkey.pem;

    # Security headers
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header X-Content-Type-Options "nosniff" always;

    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;
        
        # WebSocket support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    # Ограничение размера загружаемых файлов
    client_max_body_size 10G;
}
bash
# Активируем конфиг и перезапускаем Nginx
sudo ln -s /etc/nginx/sites-available/filebrowser /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

# Меняем порт Filebrowser на локальный
sudo filebrowser config set -c /etc/filebrowser/config.json --port 8080 --address 127.0.0.1
sudo systemctl restart filebrowser

Расширенные возможности Filebrowser

Полезные команды для управления

Команда Описание
filebrowser users ls Список всех пользователей
filebrowser rules ls Просмотр правил доступа
filebrowser config cat Показать текущую конфигурацию
filebrowser version Проверить версию Filebrowser

Настройка автоматического бэкапа

bash
# Создаем скрипт для бэкапа
sudo nano /usr/local/bin/filebrowser-backup.sh
bash
#!/bin/bash
# Скрипт бэкапа Filebrowser
BACKUP_DIR="/backup/filebrowser"
DATE=$(date +%Y%m%d_%H%M%S)

# Создаем директорию для бэкапов
mkdir -p $BACKUP_DIR

# Останавливаем Filebrowser для консистентного бэкапа
sudo systemctl stop filebrowser

# Копируем базу данных и конфиги
cp /var/lib/filebrowser/filebrowser.db $BACKUP_DIR/filebrowser_$DATE.db
cp /etc/filebrowser/config.json $BACKUP_DIR/config_$DATE.json

# Запускаем Filebrowser обратно
sudo systemctl start filebrowser

# Удаляем старые бэкапы (храним 30 дней)
find $BACKUP_DIR -name "*.db" -mtime +30 -delete
find $BACKUP_DIR -name "*.json" -mtime +30 -delete

echo "Backup completed: $BACKUP_DIR/filebrowser_$DATE.db"
bash
# Даем права на выполнение и настраиваем cron
sudo chmod +x /usr/local/bin/filebrowser-backup.sh
sudo crontab -e

# Добавляем в cron (бэкап каждый день в 2:00)
0 2 * * * /usr/local/bin/filebrowser-backup.sh

Решение распространенных проблем

Частые ошибки и их решение

Проблема Решение
"Permission denied" при доступе к файлам Проверь права пользователя filebrowser: sudo chown -R filebrowser:filebrowser /var/lib/filebrowser
Filebrowser не запускается Проверь логи: sudo journalctl -u filebrowser -n 50
Не работает загрузка больших файлов Увеличь лимит в Nginx: client_max_body_size 10G;
Ошибка базы данных Восстанови из бэкапа или инициализируй заново: filebrowser config init

Обновление Filebrowser до новой версии

bash
# Останавливаем сервис
sudo systemctl stop filebrowser

# Создаем бэкап текущей версии
sudo cp /usr/local/bin/filebrowser /usr/local/bin/filebrowser.backup

# Определяем и скачиваем новую версию
VERSION=$(curl -s https://api.github.com/repos/filebrowser/filebrowser/releases/latest | grep tag_name | cut -d '"' -f 4)
curl -fsSL https://github.com/filebrowser/filebrowser/releases/download/$VERSION/linux-amd64-filebrowser.tar.gz -o filebrowser-new.tar.gz

# Распаковываем и заменяем бинарник
tar -xzf filebrowser-new.tar.gz
sudo mv filebrowser /usr/local/bin/
sudo chmod +x /usr/local/bin/filebrowser

# Запускаем сервис
sudo systemctl start filebrowser

# Проверяем версию
filebrowser version
Совет: Перед обновлением всегда делай полный бэкап базы данных и конфигурационных файлов.

Часто задаваемые вопросы (FAQ)

Можно ли использовать Filebrowser для нескольких пользователей с разными правами?

Да, Filebrowser поддерживает многопользовательский режим с гибкой системой разрешений. Ты можешь создавать пользователей с правами только на чтение, запись в определенные директории или полный административный доступ. Используй команду filebrowser users add с соответствующими флагами разрешений.

Как ограничить доступ к Filebrowser по IP-адресу?

Лучше всего это сделать на уровне Nginx. Добавь в конфигурацию Nginx директиву allow и deny. Например, чтобы разрешить доступ только с определенной сети: allow 192.168.1.0/24; deny all; в блоке location.

Какие альтернативы Filebrowser существуют для Ubuntu?

Популярные альтернативы: 1) Nextcloud — полноценное облачное решение, 2) Pydio — корпоративный файловый менеджер, 3) Seafile — ориентирован на синхронизацию, 4) SFTP + веб-клиент. Filebrowser выигрывает в простоте и минимальном потреблении ресурсов.

Как интегрировать Filebrowser с внешней аутентификацией (LDAP, OAuth)?

Нативная поддержка внешней аутентификации в Filebrowser ограничена. Однако ты можешь использовать Nginx как прокси аутентификации с модулем auth_request или настроить аутентификацию на уровне приложения-посредника. Для корпоративных сценариев рассмотри использование Authelia или Keycloak перед Filebrowser.

Заключение и лучшие практики

Установка Filebrowser на Ubuntu — это простой процесс, который значительно упрощает управление файлами на сервере. Главные выводы:

  • Всегда используй отдельного пользователя для сервисов
  • Настраивай HTTPS для безопасного доступа
  • Регулярно обновляй Filebrowser до актуальных версий
  • Настрой мониторинг и бэкапы
  • Используй обратный прокси (Nginx) для продвинутой конфигурации

Теперь у тебя есть полностью функционирующий веб-файловый менеджер, доступный по адресу https://filebrowser.example.com (замени на свой домен). Для дальнейшей настройки изучи официальную документацию на GitHub.

Поделиться:
Сохранить гайд? В закладки браузера