DataSafeS3: self-hosted S3 с LDAP, аудитом и «Мои файлы» — честный разбор до релиза

от автора

Репозиторий: github.com/DirektorBani/DataSafeS3
Лицензия: Apache-2.0
Релиз: DataSafeS3 CE v1.0.0 (июнь 2026)


За последние годы я несколько раз видел одну и ту же картину в небольших и средних компаниях. Для приложений поднимают S3-совместимое хранилище. Для людей — отдельный файловый сервис или сетевые шары. LDAP/OIDC живёт отдельно. Бэкапы — третий контур. Мониторинг — четвёртый. Всё работает, пока не приходит внутренний аудит или новый филиал с формулировкой: «нам нужен корпоративный диск с SSO, журналом и данными только у нас».

DataSafeS3 (Датасейф S3) — попытка собрать это в одну self-hosted платформу: объектное хранилище, веб-консоль, корпоративная идентичность, квоты, аудит и базовое файловое пространство для сотрудников. Не замена AWS на петабайты и не «новый Dropbox», а инструмент для ИТ-отдела и platform team.

Я автор проекта, поэтому расскажу о нём без маркетинговых обещаний. Без заявлений в духе «мы лидеры рынка» и без маркетинговых сравнений — только то, что уже есть в коде и что я проверял на собственных тестовых стендах.

Про ИИ и документацию. Код, архитектура и продуктовые решения — мои. Только документация (руководства, спеки, часть README) собиралась и вычитывалась с помощью Cursor — как ускоритель черновиков и проверки ссылок, не как автогенератор «продукта под ключ». На скриншотах ниже — реальный UI с локального стенда, те же картинки лежат в репозитории в docs/images/screenshots/.


Кому и что может зайти

ИТ и админы — пользователи, тенанты, MFA, политики, журнал активности.

DevOps / platform — S3 endpoint для Kubernetes, CI, restic, Velero.

Обычные сотрудники — личная папка в браузере («Мои файлы»), общий доступ к бакету или к подпапке, без входа в «страшную админку object store».

Не целевая аудитория:

  • команда, которой нужен гипермасштабный кластер на сотни петабайт с промышленным erasure;

  • бизнес, который ждёт мобильный клиент уровня Dropbox и интеграцию с Finder/Explorer «из коробки» (находится в беклоге);


Что внутри одной установки

Если коротко, платформа состоит из нескольких основных компонентов.

S3 для приложений

Бакеты, объекты, multipart, versioning, lifecycle, Object Lock (WORM), presigned-ссылки с лимитом скачиваний. Приложения подключаются как к обычному S3. Есть STS AssumeRole — короткоживущие ключи, привязанные к пользователю, который их запросил.

Консоль

Отдельный веб-интерфейс для работы с хранилищем. Через него можно управлять бакетами, просматривать объекты, создавать ссылки для доступа к файлам и выполнять административные задачи.

Идентичность

LDAP, OIDC/SSO, MFA (TOTP + WebAuthn для привилегированных учёток). Логин через ваш IdP, а не отдельная «учётка в хранилище».

Governance

Тенанты (изоляция подразделений/клиентов), группы, квоты на пользователей и бакеты, делегированные tenant admin.

Аудит и логи

Журнал в UI + выгрузка в Syslog, Loki, Elasticsearch, webhook.

Мониторинг

Prometheus, готовый дашборд DataSafeS3 Overview в Grafana.

Gateway

Асинхронная репликация объектов на внешний S3 — off-site копия без остановки записи на primary.

Файлы для людей (не только для dev)

При первом входе пользователю создаётся home bucket. В консоли — «Мои файлы» / «Общие со мной». Владелец может расшарить весь бакет или только папку (prefix grant). Есть in-app уведомления о шаринге.

Для тех, кому мало браузера: CLI datasafe-sync и опциональное Tauri-приложение (pull/push, watch, разруливание конфликтов). Мобильный и десктопный клиент пока в беклоге.

Production hygiene

Образы на GHCR, SBOM, подпись cosign, ночной прогон регрессии (93+ автоматических проверок на main). Для небольшого OSS это, на мой взгляд, уже взрослый подход, а не «скачайте бинарь с Google Drive».


Как выглядит интерфейс

Скриншоты с реального стенда (Docker Compose, локальный localhost:8080). В Habr картинки подтягиваются с GitHub;

Dashboard

Сводка после онбординга: хранилище, навигация, быстрый вход в разделы.

Dashboard — обзор системы

Dashboard — обзор системы

Бакеты

Список бакетов с демо-данными. Для роли user тот же раздел называется «Файлы», с вкладками «Мои» / «Общие».

Список бакетов

Список бакетов

Браузер объектов

Просмотр файлов внутри бакета, загрузка, папки, метаданные.

Браузер объектов

Браузер объектов

Пользователи и тенанты

Классическая админка: учётки, роли, изоляция по организациям.

Управление пользователями

Управление пользователями
Управление тенантами

Управление тенантами

Аудит и настройки

Журнал действий и системные параметры.

Журнал активности

Журнал активности
Системные настройки

Системные настройки

Gateway и мониторинг

Репликация на внешний S3 и дашборд в Grafana.

Gateway — репликация

Gateway — репликация
Grafana — DataSafeS3 Overview

Grafana — DataSafeS3 Overview

Сильные стороны (почему вообще заморачиваться)

Один контур вместо зоопарка

Самое практичное: не объяснять пользователям разницу между «S3 для разработчиков» и «порталом для файлов». Админ завёл человека в LDAP — у него появился личный бакет, он расшарил reports/2026 коллеге — всё в одном аудите и одних квотах.

Для отдела на 50–500 человек это сильно проще, чем MinIO + отдельный файловый продукт + скрипты между ними.

S3, который можно отдать не только backup-скрипту

Velero, restic, медиа-хранилище, артефакты CI — типовые сценарии. Не нужно писать свой API.

Governance без ощущения «домашнего NAS»

Тенанты, Object Lock, lifecycle, soft delete, квоты, tenant admin. Для внутреннего compliance-чеклиста обычно хватает: кто что сделал, сколько занял, можно ли удалить.

HA описан словами, которые можно выполнить

Есть reference deployment на 2 ноды: Postgres streaming replication, read-only standby storage-server, скрипты failover. Это не «multi-AZ из коробки», но и не картинка в презентации — развернуть можно по доке.

Apache-2.0 без платных gate на фичи

То, что в репозитории, — в Community Edition. Без «шаринг только в Enterprise».


Минусы — без самообмана

Пишу это не чтобы отпугнуть, а чтобы вы не ставили продукт туда, где он разочарует.

Масштаб «как у облачного вендора» — нет

DataSafeS3 не претендует на петабайтные кластеры уровня Ceph или специализированных hyperscale-движков. Erasure в проекте — скорее лабораторная/эволюционная история, не «раскидали по стойкам и забыли». Десятки терабайт на филиал или отдел — нормальная зона. Сотни петабайт — смотрите в другую сторону.

S3 «совместимый», не «как AWS на 100%»

База, multipart, lifecycle, Object Lock XML, STS — есть. Полного паритета со всем зоопарком AWS S3 (каждый edge-case API, все варианты event bus) — нет. Для типичного self-hosted хватает. Для миграции «один в один 200 микросервисов с S3» — обязательно гоняйте на стенде.

«Корпоративный диск» — да, но не Nextcloud

Веб-рабочее место, шаринг папок, desktop sync через CLI/Tauri — работает.

Пока нет: нативной интеграции с Finder/Explorer, production-мобилки, co-editing, push на телефон.

Если бизнес формулирует «Dropbox для всех сотрудников с iPhone» — рано. Если «отделу 30 человек — общая папка + SSO + аудит» — уже можно пилотить.

Молодой проект и маленькое сообщество

Звёзд на GitHub пока мало, на Stack Overflow не набито ответами. Баги бывают — чиним, регрессия в CI есть, но это не продукт с десятилетней историей. Нужно это понимать.

Desktop sync — для тех, кто не боится CLI

datasafe-sync мощный, но это CLI и опциональное Tauri-окно, не установщик «как OneDrive». Автообновление клиента в беклоге.


Быстрый старт (если хотите потрогать руками)

Из README:

git clone https://github.com/DirektorBani/DataSafeS3.gitcd DataSafeS3cp .env.example .envdocker compose -p datasafe --profile postgres -f docker-compose.yml -f docker-compose.local-binary.yml up -d --build

Дальше:

  1. Открыть http://localhost:8080

  2. Войти admin / admin

  3. Сразу сменить пароль (мастер настройки напомнит)

  4. Создать бакет в UI или по S3 API

Сервис

URL

Учётные данные по умолчанию

Консоль

http://localhost:8080

admin / admin

S3 API

http://localhost:9000

datasafe / datasafesecret

Grafana

http://localhost:3000

admin / admin

Подробный чеклист: онбординг RU.


Типовой сценарий в жизни

  1. Подняли compose на сервере во внутренней сети.

  2. Подключили LDAP или Keycloak по OIDC.

  3. Создали tenant «Бухгалтерия», выдали tenant admin.

  4. Restic складывает бэкапы в бакет backups.

  5. Сотрудники заходят в консоль — у каждого home bucket files, общие папки через Share.

  6. Grafana показывает, не забилась ли очередь Gateway на репликацию у провайдера.

Звучит буднично, и это хорошо. Надёжная инфраструктура обычно выглядит именно так.


Документация

В репозитории ~200 markdown-файлов на EN/RU: user guide, administrator guide, operations (backup, HA, scaling), use cases, OpenAPI/Swagger на /api/v1/docs.

Хаб: docs/README.md

Как уже сказал: черновики и структуру доков я ускорял через Cursor (поиск по репо, выравнивание EN/RU, проверка ссылок). Содержание, приоритеты фич и технические решения — не «сгенерированы кнопкой». Если в доке ошибка — пишите issue, поправлю.

Скриншоты для документации снимаются скриптом Playwright (scripts/capture-screenshots.mjs и scripts/screenshots/capture.mjs) с локального стенда — не мокапы из Figma.


С чем сравнивать в голове

Задача

Куда смотреть

Только максимум производительности S3

Специализированный object engine

Офисный диск + мобилки + экосистема приложений

Класс файловой коллаборации

S3 + SSO + аудит + консоль для людей в одном контуре

DataSafeS3

Мы не позиционируемся как замена всему рынку. Мы позиционируемся как «одна установка — и ИТ, и пользователи довольны в разумных пределах».


Итог

DataSafeS3 — self-hosted платформа объектного хранения с консолью, LDAP/OIDC, аудитом и базовым файловым пространством для сотрудников. Apache-2.0, релиз v1.0.0 уже на GitHub.

Берите, если: данные и политики должны оставаться у вас, нужен S3 для сервисов и нормальный UX для людей, готовы к пилоту на своём железе.

Не берите, если: петабайтный кластер, HA одной кнопкой или «как Dropbox вчера на всех платформах».

Если развернёте и что-то пойдёт не так — issues на GitHub. По опыту, половина полезных репортов начинается с «я ожидал вот это, а оказалось…» — такие комментарии ценнее любого маркетинга и развития продукта.


Автор: Илья Трачук — разработчик DataSafeS3. Статья написана самостоятельно; документация в репозитории частично подготовлена с помощью Cursor.

Теги s3, selfhosted, opensource, devops, информационнаябезопасность, ldap, objectstorage

ссылка на оригинал статьи https://habr.com/ru/articles/1051586/