Чек-лист для production
Используйте этот чек-лист перед развертыванием DocPlatform в production-среде. Каждый пункт ссылается на соответствующий раздел документации.
Обязательно
Эти пункты необходимы для безопасного и надежного production-развертывания.
Сервер
- Persistent storage настроено — примонтируйте volume или используйте стабильный путь файловой системы для
DATA_DIR. Потеря этой директории означает потерю всех данных. - Менеджер процессов настроен — используйте systemd, Docker с
restart: unless-stoppedили оркестратор контейнеров для обеспечения перезапуска сервера после сбоев или перезагрузок. - Порт доступен — убедитесь, что настроенный
PORT(по умолчанию: 3000) доступен из вашей сети или reverse proxy. - Достаточно ресурсов — минимум 128 МБ RAM, 200 МБ диска. Рекомендуется 512 МБ RAM, 1 ГБ диска.
Безопасность
- TLS включен — запускайте за reverse proxy (Caddy, nginx, облачный балансировщик нагрузки) с HTTPS. DocPlatform не выполняет TLS-терминацию самостоятельно.
- JWT-ключ защищен — файл
jwt-key.pemпозволяет подделывать токены аутентификации. Ограничьте права файловой системы:chmod 600. - Первый пользователь зарегистрирован — первый зарегистрированный пользователь становится Super Admin. Зарегистрируйте учетную запись администратора до открытия сервера для других.
- Привязка к localhost — при использовании reverse proxy на том же хосте установите
HOST=127.0.0.1, чтобы DocPlatform не был доступен напрямую.
Резервные копии
- Резервные копии включены —
BACKUP_ENABLED=true(по умолчанию). Проверьте, что резервные копии создаются в{DATA_DIR}/backups/. - Срок хранения задан —
BACKUP_RETENTION_DAYSнастроен в соответствии с вашей политикой (по умолчанию: 7 дней). - Внесерверное резервное копирование — копируйте файлы резервных копий в отдельное хранилище (S3, NFS, другой сервер). Резервные копии на диске не защищают от отказа диска.
Рекомендуется
Эти пункты улучшают надежность, безопасность и удобство работы команды.
Аутентификация
- OIDC настроен — если ваша команда использует Google или GitHub, включите OIDC-вход для делегирования управления паролями. Смотрите Аутентификация.
- SMTP настроен — включите email для приглашений в workspace и сброса пароля. Без SMTP токены выводятся в stdout. Смотрите Переменные окружения.
Git
- SSH deploy key подготовлен — для приватных репозиториев сгенерируйте выделенный deploy key с доступом на запись. Смотрите Интеграция с Git.
- Webhook настроен — для почти мгновенной синхронизации настройте push webhook у вашего хостинг-провайдера git. Polling (по умолчанию: 5 минут) работает, но добавляет задержку.
- Git установлен на хосте — хотя go-git обрабатывает большинство операций, native git CLI необходим для больших репозиториев (>1 ГБ).
Мониторинг
- Health endpoint мониторится — опрашивайте
GET /healthиз системы мониторинга (Uptime Robot, Prometheus blackbox exporter и т.д.). - Логи собираются — DocPlatform выводит JSON-структурированные логи в stdout. Направляйте их в агрегатор логов (ELK, Datadog, CloudWatch).
- Использование диска мониторится — базы данных SQLite и поисковые индексы растут с увеличением контента. Настройте алерт при использовании диска свыше 80%.
Эксплуатация
-
docplatform doctorзапущен — выполнитеdocplatform doctorпосле начальной настройки для проверки консистентности FS/DB, состояния поиска и битых ссылок. - Процесс обновления задокументирован — задокументируйте, как ваша команда обновляет DocPlatform (замена бинарного файла + перезапуск или Docker pull + пересоздание).
- План отката готов — сохраните предыдущую версию бинарного файла и знайте, как восстановить из резервной копии базы данных.
Ограничения ресурсов Community Edition
Community Edition включает следующие жестко заданные ограничения:
| Ресурс | Ограничение |
|---|---|
| Пользователи с ролью Editor и выше | Без ограничений |
| Workspaces | Без ограничений |
| Viewers и Commenters | Без ограничений |
| Страниц на workspace | Без ограничений |
Community Edition не имеет ограничений по функциональности. Все возможности доступны без лицензионного ключа.
Вопросы масштабирования
DocPlatform Community Edition работает как единый экземпляр с базой данных SQLite с единственным писателем. Это правильная архитектура для целевого масштаба:
| Метрика | Протестированный лимит |
|---|---|
| Страницы | 1 000 |
| Одновременные пользователи | 50 |
| Workspaces | 10 |
| Задержка рендеринга страницы | < 50 мс (p99) |
| Задержка поиска | < 50 мс (p99) |
| Использование памяти | < 200 МБ под нагрузкой |
Если вам нужно масштабироваться за эти пределы, будущие версии поддержат развертывание нескольких экземпляров, внешние базы данных и Meilisearch.
Усиление безопасности
Сеть
- Запускайте за reverse proxy с TLS
- Установите
HOST=127.0.0.1для блокировки прямого доступа - Используйте правила файрвола для ограничения доступа к серверу
- WebSocket proxy — убедитесь, что ваш reverse proxy поддерживает WebSocket upgrade. Без этого присутствие в реальном времени и live-обновления не будут работать. И Caddy, и nginx (с
proxy_http_version 1.1и заголовкамиUpgrade) поддерживают это.
Заголовки ответа
DocPlatform автоматически устанавливает заголовки безопасности на все ответы:
| Заголовок | Значение |
|---|---|
X-Content-Type-Options |
nosniff |
X-Frame-Options |
DENY |
Content-Security-Policy |
default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline' |
X-Request-ID |
ULID (уникальный для каждого запроса) |
Файловая система
- Запускайте от имени выделенного пользователя без root-прав (systemd:
User=docplatform) - Ограничьте права на директорию данных:
chmod 700 {DATA_DIR} - Ограничьте права на JWT-ключ:
chmod 600 {DATA_DIR}/jwt-key.pem
Аутентификация
- Включите OIDC для уменьшения количества локально хранимых учетных данных
- Используйте надежные пароли (DocPlatform использует argon2id — устойчив к перебору)
- Периодически проверяйте активные сессии (Admin panel -> Users -> Sessions)
Обновления
- Подпишитесь на GitHub Releases для получения обновлений безопасности
- Обновляйтесь оперативно при выпуске патчей безопасности
- Выполняйте
docplatform doctorпосле каждого обновления
Пример: минимальная production-настройка
# 1. Install
sudo mv docplatform /usr/local/bin/
# 2. Create service user and data directory
sudo useradd -r -s /sbin/nologin docplatform
sudo mkdir -p /var/lib/docplatform
sudo chown docplatform:docplatform /var/lib/docplatform
# 3. Initialize workspace
cd /var/lib/docplatform
sudo -u docplatform docplatform init \
--workspace-name "Docs" \
--slug docs
# 4. Configure environment
sudo mkdir -p /etc/docplatform
sudo tee /etc/docplatform/.env <<EOF
PORT=3000
HOST=127.0.0.1
DATA_DIR=/var/lib/docplatform
BACKUP_RETENTION_DAYS=30
EOF
# 5. Create systemd service (see Binary Deployment guide)
# 6. Set up reverse proxy with TLS (see Binary Deployment guide)
# 7. Start and verify
sudo systemctl enable --now docplatform
docplatform doctor
# 8. Register admin account at https://docs.yourcompany.com