DocPlatform Community Edition

DocPlatform — это самостоятельно размещаемая платформа документации, которая сочетает функциональный веб-редактор с двунаправленной синхронизацией git, упакованная в единый бинарный файл без внешних зависимостей.

Пишите в браузере. Отправляйте из IDE. Все остается синхронизированным.

Почему DocPlatform

Платформы документации заставляют выбирать: красивый веб-редактор с привязкой к вендору или файлы в git без инструментов для совместной работы. DocPlatform устраняет этот компромисс.

Что вы получаете Как это работает
Единый бинарный файл, ноль зависимостей Один бинарный файл на Go включает редактор, базу данных, поисковый движок и git-движок. Не нужен Node.js, Postgres или Elasticsearch.
Каждая страница — файл .md Контент хранится в виде Markdown-файлов в реальном git-репозитории. Никаких проприетарных форматов. Экспорт не требуется.
Двунаправленная синхронизация git Редактируете в браузере — изменения автоматически коммитятся и пушатся. Пушите из IDE — веб-интерфейс обновляется автоматически.
Красивая опубликованная документация Один клик для публикации сайта документации с темной темой, подсветкой синтаксиса и 7 встроенными компонентами.
Командная работа 6-уровневая иерархия ролей, приглашения в workspace, индикаторы присутствия в реальном времени и полный журнал аудита.
Полнотекстовый поиск Встроенный поисковый движок с мгновенными результатами. Не нужно настраивать внешний сервис.

Для кого предназначен

DocPlatform Community Edition создан для:

  • Мейнтейнеров open-source проектов, которые хранят документацию в репозитории, но хотят более удобный UX редактирования, чем работа с Markdown напрямую в GitHub
  • Внутренних платформенных / DevEx команд, которым нужен docs-as-code с контролем доступа и веб-редактором — а не что-то одно из двух
  • Небольших агентств разработки, управляющих документацией нескольких клиентов с git-бэкапом и без доступной self-hosted альтернативы
  • Технических писателей, которым нужен качественный инструмент для написания документации с контролем версий
  • Индивидуальных разработчиков, которые хотят личную базу знаний с публичной публикацией — без подписки

Не для: крупных предприятий с требованиями compliance, требующих SAML/SCIM (см. будущую Enterprise Edition), или нетехнических контент-команд без опыта работы с git.

Как это работает

┌──────────────────────────────────────────────────┐
│              DocPlatform (single binary)          │
│                                                  │
│   ┌────────────┐  ┌──────────┐  ┌────────────┐  │
│   │ Web Editor  │  │ SQLite   │  │ Bleve      │  │
│   │ (Next.js)   │  │ Database │  │ Search     │  │
│   └──────┬──────┘  └────┬─────┘  └──────┬─────┘  │
│          │              │               │        │
│          └──────┬───────┴───────┬───────┘        │
│                 │               │                │
│          ┌──────▼──────┐ ┌─────▼──────┐         │
│          │ Content     │ │ Git        │         │
│          │ Ledger      │ │ Engine     │         │
│          └──────┬──────┘ └─────┬──────┘         │
│                 │              │                 │
└─────────────────┼──────────────┼─────────────────┘
                  │              │
           ┌──────▼──────┐ ┌────▼──────┐
           │ Filesystem  │ │ Remote    │
           │ (.md files) │ │ Git Repo  │
           └─────────────┘ └───────────┘

Каждое изменение контента — будь то из веб-редактора, git push или API-вызова — проходит через Content Ledger, единый конвейер, который поддерживает идеальную синхронизацию между файловой системой, базой данных и поисковым индексом.

Быстрый старт

Запустите DocPlatform менее чем за 5 минут:

# Download the binary (recommended — auto-detects platform)
curl -fsSL https://valoryx.org/install.sh | sh

# Initialize a workspace
docplatform init --workspace-name "My Docs" --slug my-docs

# Start the server
docplatform serve

Откройте http://localhost:3000 и зарегистрируйте первого пользователя — он автоматически станет Super Admin.

Полное руководство смотрите в разделе Начало работы.

Обзор возможностей

Основная платформа

  • Функциональный веб-редактор — редактор на базе Tiptap с формой frontmatter, переключением в режим Markdown и автосохранением
  • Двунаправленная синхронизация git — Web -> git commit -> push; CLI push -> polling -> обновление в вебе
  • Обнаружение конфликтов — оптимистичная конкурентность на основе хешей с возможностью скачать diff при коллизии
  • Полнотекстовый поиск — встроенный движок Bleve с фильтрацией результатов по правам доступа и сочетанием Cmd+K
  • RBAC-права — 5 ролей: Super Admin, Admin, Editor, Commenter, Viewer
  • Аутентификация — локальная (argon2id) + опциональный Google/GitHub OIDC
  • Модель workspace — Org -> Workspace -> Pages иерархия с приглашениями в команду
  • Журнал аудита — каждая мутация логируется с указанием пользователя, временной метки и типа операции

Опубликованная документация

  • Публичный сайт — документация доступна по адресу /p/{workspace-slug}/{page-path}
  • Темная тема — автоматическая светлая/темная тема с ручным переключением
  • 7 встроенных компонентов — Callout, Code (200+ языков), Tabs, Accordion, Cards, Steps, API Block
  • Готовность к SEO — теги OpenGraph, канонические URL, sitemap.xml, robots.txt

Эксплуатация

  • Диагностика — 9-точечная команда doctor проверяет консистентность FS/DB, работу поиска, битые ссылки
  • Ежедневные резервные копии — автоматическое резервное копирование SQLite с настраиваемым сроком хранения
  • Корректное завершение работы — обработка сигналов для обновлений без простоя
  • Структурированное логирование — JSON-логи с идентификаторами запросов для наблюдаемости

Системные требования

Требование Минимум Рекомендуется
ОС Linux (amd64/arm64), macOS (amd64/arm64) Linux amd64
Память 128 МБ 512 МБ
Диск 200 МБ (бинарный файл + данные) 1 ГБ
Git Опционально (для удаленной синхронизации) Git 2.30+
Сеть Не требуется (работает офлайн) Открытый порт 3000

Что дальше

Руководство Описание
Начало работы Установка, настройка и создание первого workspace
Руководства пользователя Редактор, синхронизация git, публикация и поиск
Конфигурация Переменные окружения, аутентификация, права доступа и настройки workspace
Развертывание Промышленное развертывание с бинарным файлом, Docker или контейнерами
Справочник CLI Полный справочник команд
Справочник API REST API endpoints и примеры
Устранение неполадок Распространенные проблемы и способы их решения

Производительность

Измерено на Apple M2, NVMe SSD, workspace с 1 000 страниц:

Операция Задержка
Сохранение страницы (sync core) < 30 мс
Рендеринг страницы (API response) < 50 мс p99
Полнотекстовый поиск < 8 мс p99
Проверка прав доступа < 0.1 мс
Пакетная проверка прав (100 страниц) < 1 мс
Холодный старт сервера < 1 секунды
Полная реконсиляция (1 000 файлов) < 5 секунд
Git commit (одиночный файл) < 2 секунд
Память (в простое) < 80 МБ
Память (10 одновременных пользователей) < 200 МБ
Размер бинарного файла ~120 МБ

Сравнение DocPlatform

Возможность DocPlatform GitBook Notion Docusaurus Confluence Wiki.js
Self-hosted Да Нет Нет Да Нет Да
Git-backed Да Частично Нет Да Нет Нет
Веб-редактор Да Да Да Нет Да Да
Двунаправленная синхронизация git Да Нет Нет Н/Д Нет Нет
Единый бинарный файл (ноль зависимостей) Да Н/Д Н/Д Нет (Node.js) Н/Д Docker
Встроенный RBAC Да Платно Платно Нет Да Да
Публикация документации Да Да Да Да Да Да
Бесплатная версия Да Нет Нет Да Нет Да
Работа офлайн Да Нет Нет Да Нет Нет

Ограничения Community Edition

Community Edition — это полнофункциональное, самостоятельно размещаемое ядро DocPlatform. Оно включает все, что описано на этом сайте, со следующими ограничениями:

Ресурс Community Edition
Редакторы (пользователи, которые могут создавать/редактировать страницы) До 5
Workspaces До 3
Зрители и комментаторы Без ограничений (не учитываются)
Страниц на workspace Без ограничений
Опубликованная документация Без ограничений

Эти ограничения покрывают потребности большинства малых и средних команд. Будущая Enterprise Edition предложит неограниченное количество редакторов и workspaces, SAML/SSO, поддержку PostgreSQL и расширенный поиск через Meilisearch — но Community Edition всегда останется полноценной, самостоятельно размещаемой основой.