Переменные окружения
DocPlatform читает конфигурацию из переменных окружения. Устанавливайте их в оболочке, файле .env в рабочей директории или в оркестраторе контейнеров.
Сервер
| Переменная | По умолчанию | Описание |
|---|---|---|
PORT |
3000 |
Порт HTTP-сервера |
HOST |
0.0.0.0 |
Адрес HTTP-сервера. Установите 127.0.0.1 для ограничения доступа только localhost. |
DATA_DIR |
.docplatform |
Корневая директория для всех данных DocPlatform (база данных, резервные копии, workspaces, ключи) |
BASE_DOMAIN |
— | Пользовательский домен для опубликованной документации (например, docs.yourcompany.com). При установке опубликованная документация использует этот домен для канонических URL и записей sitemap. |
PUBLISH_REQUIRE_AUTH |
false |
Если true, все опубликованные сайты документации требуют от посетителя входа в систему как участника workspace. Неаутентифицированные посетители перенаправляются на страницу входа и возвращаются на исходную страницу после авторизации. |
Аутентификация
| Переменная | По умолчанию | Описание |
|---|---|---|
JWT_SECRET_PATH |
{DATA_DIR}/jwt-key.pem |
Путь к приватному ключу RS256 для подписи JWT. Генерируется автоматически при первом запуске, если отсутствует. |
JWT_ACCESS_TTL |
900 |
Срок жизни access token в секундах (по умолчанию: 15 минут) |
JWT_REFRESH_TTL |
2592000 |
Срок жизни refresh token в секундах (по умолчанию: 30 дней) |
OIDC-провайдеры (опционально)
Включите вход через Google и/или GitHub, установив эти переменные. Если не установлены, доступна только локальная аутентификация (email + пароль).
| Переменная | По умолчанию | Описание |
|---|---|---|
OIDC_GOOGLE_CLIENT_ID |
— | Google OAuth 2.0 client ID |
OIDC_GOOGLE_CLIENT_SECRET |
— | Google OAuth 2.0 client secret |
OIDC_GITHUB_CLIENT_ID |
— | GitHub OAuth client ID |
OIDC_GITHUB_CLIENT_SECRET |
— | GitHub OAuth client secret |
Смотрите Аутентификация для инструкций по настройке.
Git
| Переменная | По умолчанию | Описание |
|---|---|---|
GIT_SSH_KEY_PATH |
~/.ssh/docplatform_deploy_key |
Путь к приватному SSH-ключу для git-операций. Требуется для приватных репозиториев через SSH. |
GIT_SYNC_INTERVAL |
300 |
Интервал polling по умолчанию в секундах для удаленной синхронизации (минимум: 10). Переопределяется значением sync_interval для каждого workspace. Установите 0 для синхронизации только через webhook (без polling). |
GIT_AUTO_COMMIT |
true |
Поведение auto-commit по умолчанию. Переопределяется значением git_auto_commit для каждого workspace. |
GIT_WEBHOOK_SECRET |
— | Общий секрет для проверки webhook payload (HMAC-SHA256) от GitHub, GitLab или Bitbucket. |
GIT_COMMIT_NAME |
DocPlatform |
Имя автора для auto-commit |
GIT_COMMIT_EMAIL |
docplatform@local |
Email автора для auto-commit |
Email (опционально)
Настройте SMTP для приглашений в workspace и email-сброса пароля. Без SMTP токены выводятся в stdout (логи сервера).
| Переменная | По умолчанию | Описание |
|---|---|---|
SMTP_HOST |
— | Имя хоста SMTP-сервера (например, smtp.gmail.com) |
SMTP_PORT |
587 |
Порт SMTP (587 для STARTTLS, 465 для SSL) |
SMTP_FROM |
— | Email-адрес отправителя (например, [email protected]) |
SMTP_USERNAME |
— | Имя пользователя для SMTP-аутентификации |
SMTP_PASSWORD |
— | Пароль для SMTP-аутентификации |
Резервные копии
| Переменная | По умолчанию | Описание |
|---|---|---|
BACKUP_ENABLED |
true |
Включить ежедневное автоматическое резервное копирование SQLite |
BACKUP_RETENTION_DAYS |
7 |
Количество дней хранения файлов резервных копий. Старые резервные копии удаляются автоматически. |
BACKUP_DIR |
{DATA_DIR}/backups |
Директория для файлов резервных копий |
Телеметрия
| Переменная | По умолчанию | Описание |
|---|---|---|
DOCPLATFORM_TELEMETRY |
off |
Установите on для включения анонимных, opt-in метрик использования. При включении еженедельно отправляется SHA-256 install ID (без персональных данных). |
DOCPLATFORM_TELEMETRY_ENDPOINT |
— | Пользовательский endpoint для телеметрии (расширенная настройка — для изолированных сред с внутренней аналитикой) |
Что отправляет телеметрия (при включении)
- SHA-256 install ID (вычисляется из директории данных, необратимый)
- Количество workspaces и общее количество страниц
- Версия DocPlatform
- ОС и архитектура
Телеметрия никогда не отправляет: контент страниц, email пользователей, IP-адреса, имена файлов или любые персональные данные. Частота: еженедельно.
Обработка frontmatter
| Переменная | По умолчанию | Описание |
|---|---|---|
FRONTMATTER_ERROR_MODE |
strict |
Как обрабатывать невалидный YAML frontmatter: strict ограничивает страницу только admin-доступом (предотвращает случайное раскрытие); lenient сохраняет последний корректный frontmatter и показывает предупреждение. |
Использование файла .env
Создайте файл .env в директории, где запускаете docplatform serve:
# .env
PORT=8080
DATA_DIR=/var/lib/docplatform
GIT_SSH_KEY_PATH=/etc/docplatform/deploy_key
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_FROM=[email protected]
SMTP_USERNAME=[email protected]
SMTP_PASSWORD=app-specific-password
BACKUP_RETENTION_DAYS=30
DocPlatform загружает файл .env автоматически. Переменные окружения, установленные в оболочке, имеют приоритет над значениями из .env.
Окружение Docker
Передавайте переменные окружения в Docker с помощью флагов -e или файла env:
docker run -d \
--name docplatform \
-p 3000:3000 \
-v docplatform-data:/data \
-e DATA_DIR=/data \
-e SMTP_HOST=smtp.example.com \
-e SMTP_FROM=[email protected] \
--env-file .env.production \
ghcr.io/valoryx-org/docplatform:latest
Замечания по безопасности
- Никогда не коммитьте файлы
.envв систему контроля версий. Добавьте.envв.gitignore. - JWT-ключи генерируются автоматически. Для ротации удалите файл ключа и перезапустите сервер — новый ключ будет сгенерирован, и все существующие сессии будут инвалидированы.
- Пароли SMTP — используйте app-specific пароли или API-ключи, а не основной пароль учетной записи.
- Git-токены — используйте токены с ограниченными правами для репозитория с минимальными разрешениями (чтение + запись для синхронизации).