Read in:
Русский

База знаний в одном контейнере

Dockerfile.docs в репозитории собирает образ, в который вшита папка с заметками. Запустили, и сайт работает: без тома, без входа, без клиента синхронизации рядом. Образ и есть содержимое; чтобы поменять страницу, пересоберите его.

docker build -f Dockerfile.docs -t trip2g-docs .
docker run --rm -p 8080:8080 trip2g-docs

Дальше откройте http://localhost:8080/ru/user или направьте MCP-клиент на http://localhost:8080/_system/mcp. Все заметки помечены как открытые патчами из patches/, так что и то и другое работает без ключа.

Что внутри образа

По умолчанию эта документация: docs/en/user, docs/ru/user и docs/patches. Чтобы упаковать свою папку, замените три строки COPY на неё. Патчи frontmatter едут вместе с заметками, поэтому free: true, lang и сайдбары задаются один раз на всю папку, а не в каждой странице.

Как он стартует

Точка входа запускает trip2g, ждёт, пока он ответит, забирает клиент синхронизации из собственного onboarding-архива инстанса, один раз заливает /vault и дальше просто обслуживает запросы. База и секреты живут внутри контейнера и создаются при старте, поэтому ничего не нужно монтировать и настраивать.

PUBLIC_URL единственная настройка, которую стоит переопределить: это адрес, который инстанс подставляет в ссылки и URL для входа. Передайте его через -e PUBLIC_URL=https://docs.example.com.

Инструкции для агентов

MCP-клиент читает заметку с mcp_method: instructions как инструкции базы. Если у разделов свои инструкции, каждая под своим именем метода, клиент выбирает нужную параметром ?method=<имя> в адресе MCP: http://localhost:8080/_system/mcp?method=agent_instructions. Остальное про MCP в ru/user/mcp.