Кейс · SaaS и платформы
AtlasWiki: мультитенантная база знаний
Быстрая self-hosted вики с полноценным совместным редактором, строгой изоляцией тенантов на уровне базы данных и файловыми вложениями через соседнюю платформу.
- Индустрия
- Управление знаниями
- Сроки
- 4 недели
- Год
- 2026
- Услуги
- Продуктовая разработка, Архитектура безопасности
Проблема
В Notion знания компании уезжают жить на чужие серверы: за подписку и в одном изменении тарифов от проекта миграции. Open-source вики либо выглядят как 2008 год, либо требуют Kubernetes-кластер и администратора на полставки. Пробел на рынке: вики, которая ощущается современной, работает на одной машине и рассматривает изоляцию тенантов как гарантию базы данных, а не как if-условие.
Что мы построили
Мультитенантная база знаний с тем опытом редактирования, который люди ожидают после Notion: WYSIWYG-редактор на TipTap со slash-командами, вложенные страницы, обратные ссылки и inline-эмбеды, поверх архитектуры, которая относится к изоляции всерьез.
- Row-level security как граница изоляции. Разделение тенантов обеспечивают RLS-политики PostgreSQL, а не код приложения. Забытый WHERE в каком-нибудь будущем эндпоинте не сможет слить страницы другого тенанта: база просто откажется их вернуть.
- Вложения как сервис. Файлы, прикрепленные к страницам, вики вообще не хранит. Они уходят через внутренний API нашей self-hosted файловой платформы по приватной контейнерной сети: один слой хранения, консистентные бэкапы, никакого дублирования кода загрузки.
- Быстрая по архитектуре. Серверный рендеринг каркасов страниц, компактные ответы API, агрессивная индексация. Загрузка страниц быстрее 100 мс на мини-ПК, без всякого CDN.
Архитектура
FastAPI, React, PostgreSQL с RLS, деплой контейнерами за reverse proxy Traefik с TLS и security-заголовками. Service-to-service вызовы идут по внутренней Docker-сети, которая никогда не выставляется наружу.
Результат
База знаний, которая не стоит ничего в месяц, грузится быстрее замененного SaaS и демонстрирует паттерн безопасности, который мы теперь переиспользуем везде: спускать гарантии изоляции на уровень базы данных, интегрировать сервисы по приватным сетям и давать каждой платформе делать одну работу, но хорошо.