Files
gitmost/README.ru.md
claude_code bc0c49db05
Some checks failed
Test / test (pull_request) Has been cancelled
fix(review): address PR #101 review findings (dead DI, docs)
- ai-chat: drop the unused pagePermissionRepo injection from
  PublicShareChatToolsService (its only use moved into
  ShareService.resolveReadableSharePage); update all 5 positional
  test construction sites to match the 3-arg constructor.
- env: correct the anonymous share-AI per-workspace cap comment —
  the limiter FAILS CLOSED on Redis failure (#62), not open.
- docs: sync README.ru.md with README.md — move "Page templates"
  from Planned to Done and drop the dead plan-doc link.

Remaining test-coverage gaps tracked as #102, #103, #104, #105, #106.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 05:24:13 +03:00

19 KiB

Gitmost

Совместная вики и система документации с открытым исходным кодом.
Полностью открытый community-форк Docmost.


English · Русский

Об этом форке

Gitmost — это community-форк Docmost, открытой системы для совместной работы над вики и документацией.

Цель форка — сборка на 100% открытая, только под AGPL, без кода Enterprise-редакции (EE):

  • Никакого EE-кода. Весь проприетарный код Enterprise-редакции удалён — приватный сабмодуль apps/server/src/ee, каталог apps/client/src/ee (201 файл) и пакет packages/ee. Никаких лицензионных ограничений: все функции доступны всем.
  • Замены написаны с нуля. Функции, которые раньше были скрыты за enterprise-лицензией (например, резолв комментариев, чат с AI-агентом, сервер /mcp), переписаны с нуля поверх community-кодовой базы. EE-код не переиспользуется, нет проверок entitlement и feature-флагов.
  • Никакого навязывания. В интерфейсе нигде нет плашек «купите лицензию» / «перейдите на Enterprise», напоминаний о триале и заглушек на месте заблокированных функций.
  • Аутентификация — обычная пара email + пароль (без SSO/LDAP/облака/биллинга).

Чем отличается от Docmost

Изменение Подробности
Удалён EE-код Вырезан весь код Enterprise-редакции на клиенте и сервере; это чистая community/AGPL-сборка без лицензионных проверок.
Резолв комментариев Переписан с нуля как community-функция (резолв / переоткрытие с вкладками «Открытые» / «Решённые»). EE-код не используется, доступно любому, кто может комментировать.
Встроенный MCP-сервер Community MCP-сервер (@docmost/mcp, 38 инструментов) отдаётся по HTTP на /mcp — без enterprise-лицензии. Заменяет удалённый лицензируемый EE MCP.
Чат с AI-агентом Встроенный чат с AI-агентом по содержимому вики, написанный с нуля как community-функция — без enterprise-лицензии. Агент читает и редактирует страницы от вашего имени (в рамках ваших прав), с полнотекстовым + векторным (RAG) поиском и опциональным доступом в интернет через внешние MCP-серверы.
Ребрендинг Логотип / название приложения изменены с Docmost на Gitmost.
Компактное дерево страниц Отступ дерева страниц по умолчанию уменьшен с 16px до 8px на уровень вложенности.
Сохранение состояния дерева страниц Дерево страниц в сайдбаре запоминает, какие узлы вы раскрыли/свернули, между перезагрузками — состояние хранится в браузере (localStorage) отдельно для каждой пары воркспейс + пользователь, чтобы аккаунты в одном браузере не пересекались. В оригинальном Docmost дерево сбрасывается при каждой перезагрузке.
CI / образы Release-CI публикует контейнерные образы в GHCR (ghcr.io/vvzvlad/gitmost) через встроенный GITHUB_TOKEN вместо Docker Hub.

Встроенный MCP-сервер

В Gitmost есть наш собственный MCP-серверdocmost-mcp, который мы написали сами, — встроенный прямо в приложение и доступный на /mcp. Он даёт 38 agent-native инструментов: точечное редактирование по блокам (patch / insert / delete по id), find/replace с сохранением структуры, скриптовые трансформации (doc) => doc с предпросмотром диффа, структурное редактирование таблиц, история версий с диффом / восстановлением, комментарии, изображения и ссылки на шаринг — всё применяется через слой real-time-коллаборации Docmost, поэтому запись никогда не затирает параллельную правку человека.

Лучше, чем родной MCP у Docmost. Встроенный MCP у Docmost — enterprise-функция, и его инструменты примитивные: прочитать страницу как Markdown, создать / переместить / удалить страницу, заменить страницу целиком. Наш сделан под то, как агент реально редактирует: адресовать один блок и пропатчить его или запрограммировать изменение, а не гонять документ на ~100 КБ через модель ради каждой мелкой правки. И enterprise-лицензия не нужна.

/mcp в Gitmost (наш docmost-mcp) Родной MCP у Docmost
Enterprise-лицензия Не нужна Нужна
Инструменты 38, agent-native Примитивные (Markdown, CRUD страниц, замена целиком)
Правки по блокам / find-replace / скриптовые трансформации
Структурное редактирование таблиц, дифф / восстановление версий
Комментарии, изображения, ссылки на шаринг
Безопасная запись через real-time-коллаборацию (без затирания)

Это тот же сервер, что и отдельный docmost-mcp, — просто встроенный. Это ровно тот самый docmost-mcp, который можно запускать и отдельно; от встраивания он не становится «мощнее» — просто не нужно ставить и держать отдельный процесс. Админ включает его одним переключателем в Настройки воркспейса → AI, а любой MCP-клиент указывает на ${APP_URL}/mcp.

Чат с AI-агентом

В Gitmost есть встроенный чат с AI-агентом по содержимому вики — написанный с нуля как community-функция, без enterprise-лицензии. Открывается из шапки страницы; агент умеет читать и редактировать ваш воркспейс от вашего имени:

  • Полный набор инструментов чтения + записи (~40 штук). Поиск и чтение страниц, точечные правки по блокам и в таблицах, создание / переименование / перемещение страниц, дифф и восстановление версий, создание / резолв комментариев — каждое действие выполняется под вашими правами (Docmost CASL), поэтому агент не видит и не меняет ничего, чего не могли бы вы сами.
  • Безопасность по умолчанию. Агенту доступны только обратимые операции (история версий + корзина); перманентное удаление не экспонируется. Правки агента помечаются в истории версий бейджем «AI-агент» со ссылкой на чат.
  • Поиск по вашему контенту. Полнотекстовый поиск плюс опциональный векторный (RAG) семантический поиск по страницам.
  • Доступ в интернет через внешние MCP. Админ может подключить внешние MCP-серверы (например, Tavily), чтобы дать агенту веб-поиск / доступ в интернет.
  • Своя модель. OpenAI-совместимый эндпоинт — OpenAI, OpenRouter, локальный Ollama или любой self-hosted-сервер — плюс модель и API-ключ настраиваются в Настройки воркспейса → AI. Ключ шифруется и никогда не покидает сервер.

Дорожная карта

Готово

  • MCP-сервер — встроенный community MCP-сервер на /mcp.
  • Приложение для macOS — нативное приложение для macOS (gitmost-app), встраивающее UI с вкладками для нескольких серверов.
  • AI-чат — встроенный чат с AI-агентом по содержимому вики (чтение + запись, RAG-поиск, настраиваемый провайдер, опциональный доступ в интернет через внешние MCP).
  • Голосовая диктовка — кнопка-микрофон в чате AI-агента и в редакторе страниц; аудио распознаётся на сервере (Whisper / OpenAI-совместимый STT) через AI-провайдер воркспейса, с тумблером админа для показа/скрытия.
  • Шаблоны страниц — пометить страницу шаблоном и вставлять её содержимое живой ссылкой в другие страницы; правки шаблона распространяются на все места вставки (whole-page-транслюзия поверх существующих synced-блоков).

В процессе

  • 🚧 Синхронизация с Git — двусторонняя синхронизация страниц с Git-репозиторием.

В планах

  • 🔭 Комментарии зрителей — возможность комментировать для пользователей с доступом только на чтение.
  • 🔭 AI-ассистент на публичных шарах — возможность анонимному зрителю расшаренной страницы спросить AI-агента, который ищет строго по дереву этой шары (read-only, share-scoped поиск), за тумблером воркспейса. См. docs/public-share-assistant-plan.md.
  • 🔭 Защищённые паролем страницы — защита отдельных страниц / шар паролем.
  • 🔭 Приложение для Windows / Linux — нативное десктоп-приложение для Windows и Linux.
  • 🔭 Мобильное приложение — мобильные приложения (iOS обязательно, Android как пойдёт) на базе существующей адаптивной веб-версии и редактора через обёртку Capacitor; оффлайн запланирован на будущее. См. docs/mobile-app-plan.md.
  • 🔭 Офлайн-режим — офлайн-синхронизация и поддержка PWA.
  • 🔭 Сноски — сноски академического вида: нумерованная ссылка-надстрочник прямо в тексте (читается на месте во всплывающем окне по наведению), а текст сноски живёт реальным редактируемым блоком внизу страницы; авто-нумерация, безопасна для совместного редактирования, переживает экспорт/импорт Markdown и доступна AI-агенту / MCP. См. docs/footnotes-plan.md.
  • 🔭 Улучшения редактора и UX — блоки внутри таблиц (списки, чек-листы), колоночная вёрстка, дополнительные уровни заголовков, highlight-блоки, кастомные эмодзи в callout-ах, плавающие изображения, anchor-ссылки на упоминания страниц, тоглы (ширина шары, aside/сайдбар, spellcheck, лигатуры), санитизация экспорта дерева спейса и mentions в хлебных крошках.

С чего начать

Gitmost повторяет процесс установки upstream-Docmost. Инструкции по self-hosting и разработке смотрите в документации Docmost; где это применимо, заменяйте образ docmost/docmost на ghcr.io/vvzvlad/gitmost.

Миграция с Docmost

Схема БД Gitmost — это строгий superset схемы Docmost. Все Gitmost-специфичные миграции только добавляют новые таблицы (page_embeddings, ai_chats, ai_chat_messages, ai_provider_credentials, ai_mcp_servers) и nullable-колонки — они никогда не удаляют и не переписывают существующие данные Docmost. Миграции применяются автоматически при старте, поэтому миграция существующего инстанса Docmost — это по сути замена двух образов.

Единственное жёсткое требование — образ БД: RAG-хранилище AI-агента использует расширение pgvector (CREATE EXTENSION vector), которого нет в стоковом образе postgres. Замените его на pgvector/pgvector:pgNN — это тот же ванильный Postgres со встроенным pgvector, собранный на базе официального образа postgres и полностью data-совместимый с ним.

С текущего Docmost на Postgres 18

Если ваш Docmost уже работает на postgres:18, это чистая замена in-place — без dump/restore, существующий каталог данных переиспользуется как есть:

 services:
   docmost:
-    image: docmost/docmost:latest
+    image: ghcr.io/vvzvlad/gitmost:latest
     ...
   db:
-    image: postgres:18
+    image: pgvector/pgvector:pg18

APP_SECRET, DATABASE_URL, REDIS_URL и том сторейджа остаются прежними. При первом запуске новые миграции применяются поверх вашей схемы (CREATE EXTENSION vector плюс таблицы page_embeddings и AI-таблицы); следите в логах за строками Migration "..." executed successfully.

Возможности

  • Совместная работа в реальном времени
  • Диаграммы (Draw.io, Excalidraw и Mermaid)
  • Пространства (Spaces)
  • Управление правами доступа
  • Группы
  • Комментарии (с резолвом / переоткрытием)
  • История страниц
  • Поиск
  • Вложения файлов
  • Встраивания (Airtable, Loom, Miro и другие)
  • Переводы (10+ языков)
  • Встроенный MCP-сервер (/mcp)
  • Чат с AI-агентом по вики (чтение + запись, RAG-поиск, внешние MCP / доступ в интернет)

Скриншоты

Чат с AI-агентом home editor

Лицензия

Gitmost распространяется под открытой лицензией AGPL 3.0.

В отличие от upstream-Docmost, этот форк не содержит кода Enterprise-редакции — каталоги apps/server/src/ee, apps/client/src/ee и packages/ee удалены, поэтому файлов под enterprise-лицензией здесь нет.

Благодарности

Gitmost основан на Docmost от команды Docmost. Огромное спасибо им за оригинальный открытый проект.

Crowdin

Crowdin — за доступ к их платформе локализации.

Algolia-mark-square-white

Algolia — за полнотекстовый поиск по документации.