Сегодня мы разберём 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 — корневая директория, за пределы которой он не может выйти.
Практический пример: создание ограниченного пользователя
- В панели перейдите в раздел Users.
- Создайте пользователя (например,
testuser). - Назначьте только необходимые права:
- ✅ read_directories
- ✅ read_files
- ✅ download
- ✅ upload
- Все остальные разрешения оставьте выключенными.
- Сохраните.

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


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

⚠️ Безопасность: Конфигурацию сервисов (
services.yml) нельзя менять через веб-панель. Изменения вносятся только через SSH и требуют перезапуска FolderHost. Это архитектурное решение предотвращает вектор атаки через подмену скриптов запуска.
Подробная настройка Services выходит за рамки этой статьи, но сама возможность превращает FolderHost из простого хранилища в мини-PaaS платформу для небольших проектов.
Итоги
FolderHost — отличное решение для тех, кому нужно приватное облако без лишней сложности. Один бинарник, понятный YAML-конфиг, отсутствие базы данных и детальная система прав доступа делают его идеальным выбором для малых команд, разработчиков и администраторов, ценящих минимализм и контроль.
Полезные ссылки:
- GitHub: https://github.com/MertJSX/folderhost
- Сайт проекта: https://folderhost.org/
- Лицензия: GPL-3.0



