Docker·Linux·Server · BIGGRATZ

FolderHost: Легковесное self-hosted облако в одном бинарнике.

17 сентября 2026· 4 мин чтения· biggratz_ru

Сегодня мы разберём FolderHost — open-source платформу для создания приватного облака, которая упакована в один исполняемый файл размером ~17 МБ. Никаких баз данных, никаких сложных зависимостей. Скачал, настроил YAML — и работает.

Мы протестировали FolderHost на чистом VPS (Ubuntu 24.04, 1 vCPU / 2 GB RAM) строго по официальной документации и покажем, как развернуть систему, настроить права пользователей и убедиться, что всё работает как заявлено.

Что такое FolderHost?

Это self-hosted альтернатива частным облакам, написанная на Go. Распространяется под лицензией GPL-3.0, исходники доступны на GitHub.

Ключевые особенности:

  • Single Binary: Один файл, нет внешних зависимостей.
  • Встроенный редактор кода: Monaco Editor с совместным редактированием в реальном времени.
  • Гранулярные права: 18 настраиваемых разрешений для каждого пользователя.
  • Аудит и восстановление: Логи действий + корзина с лимитом хранения.
  • Services: Возможность запускать сторонние процессы (веб-серверы, боты) с лимитами RAM и управлением через веб-терминал.
  • Docker-ready: Официальный образ и docker-compose конфигурация.

Установка

Рассматриваем рекомендуемый способ деплоя через Docker Compose. Все команды приведены без изменений относительно официального Quick Start.

Шаг 1. Подготовка и запуск

Создаём директорию и файл docker-compose.yml:

mkdir -p /opt/folderhost && cd /opt/folderhost
nano docker-compose.yml

Вставляем конфигурацию и документации:

services:
  folderhost:
    image: mertjsx/folderhost:latest
    container_name: folderhost-server
    ports:
      - "5000:5000"
    volumes:
      - folderhost_data:/app
    restart: unless-stopped
    
volumes:
  folderhost_data:

Запускаем:

docker compose up -d
docker compose ps

Ожидаемый статус: Up. Открываем http://ВАШ_IP:5000 и логинимся под дефолтными учётными данными:

  • Username: admin
  • Password: 123

⚠️ Важно: При первом запуске FolderHost автоматически генерирует config.yml внутри named volume. Не пытайтесь монтировать конфиг как bind-mount до первого запуска — это частая ошибка, приводящая к созданию директории вместо файла.

Шаг 2. Смена пароля администратора

Документация предупреждает: «Don’t forget to change admin password from config.yml, after first start».

Для Docker-пользователей конфиг находится внутри volume. Находим путь:

docker volume inspect folderhost_folderhost_data | grep Mountpoint

Редактируем:

nano /var/lib/docker/volumes/folderhost_folderhost_data/_data/config.yml

Меняем логин и пароль в секции admin::

admin:
  username: "admin"
  password: "ВАШ_НАДЕЖНЫЙ_ПАРОЛЬ"   # ← Обязательно сменить!
  email: "example@email.com"

Перезапускаем:

docker compose restart

Проверяем вход под новым паролем.

Шаг 3. Базовая настройка

В том же config.yml настраиваем основные параметры под ваш сервер:

# Лимит хранилища
storage_limit: "20 GB"

# Корзина удалённых файлов
recovery_bin: true
bin_storage_limit: "5 GB"

# Логирование активности
log_activities: true
clear_logs_after: 7

💡 Совет: Остальные параметры (port, folder, secret_jwt_key, permissions) при первичной настройке лучше не трогать. Дефолтные значения работают корректно.

После изменения перезапустите контейнер: docker compose restart.

Система прав доступа (User Permissions)

Это одна из сильных сторон FolderHost. Каждому пользователю можно назначить комбинацию из 18 разрешений, разделённых на категории:

КатегорияРазрешения
Чтениеread_directories, read_files
Файловые операцииdownload, upload, create, change, delete, rename, move, copy
Архивыextract, archive
Корзинаread_recovery, use_recovery
Администрированиеread_users, edit_users, read_logs

Дополнительно у каждого пользователя есть параметр scope — корневая директория, за пределы которой он не может выйти.

Практический пример: создание ограниченного пользователя

  1. В панели перейдите в раздел Users.
  2. Создайте пользователя (например, testuser).
  3. Назначьте только необходимые права:
    • ✅ read_directories
    • ✅ read_files
    • ✅ download
    • ✅ upload
  4. Все остальные разрешения оставьте выключенными.
  5. Сохраните.

Проверка: Залогиньтесь под testuser в режиме инкогнито. Пользователь должен видеть файлы, скачивать и загружать их, но не иметь доступа к удалению, редактированию, корзине, логам и управлению другими пользователями.

Такая гранулярность позволяет безопасно предоставлять доступ к общим файлам коллегам, клиентам или подрядчикам, не рискуя целостностью данных.

Services: Краткий обзор

Помимо файлового менеджера, FolderHost умеет управлять произвольными процессами через встроенный менеджер сервисов. Вы можете запускать веб-серверы, ботов, игровые серверы прямо из панели с:

  • Лимитами RAM
  • Автозапуском и автоперезапуском
  • Веб-терминалом для просмотра логов и выполнения команд
  • Гранулярными правами доступа к каждому сервису

⚠️ Безопасность: Конфигурацию сервисов (services.yml) нельзя менять через веб-панель. Изменения вносятся только через SSH и требуют перезапуска FolderHost. Это архитектурное решение предотвращает вектор атаки через подмену скриптов запуска.

Подробная настройка Services выходит за рамки этой статьи, но сама возможность превращает FolderHost из простого хранилища в мини-PaaS платформу для небольших проектов.

Итоги

FolderHost — отличное решение для тех, кому нужно приватное облако без лишней сложности. Один бинарник, понятный YAML-конфиг, отсутствие базы данных и детальная система прав доступа делают его идеальным выбором для малых команд, разработчиков и администраторов, ценящих минимализм и контроль.

Полезные ссылки:

Похожие материалы