Конфигурация
Раскладка на control plane
| Путь |
Что |
/etc/xvii/instance.env |
DOMAIN, ACME_EMAIL, CLOUDFLARE_API_TOKEN (root, 600) |
/etc/xvii/platform.json |
желаемое состояние: сервисы, версии, настройки, отключения, переопределения хостов |
/etc/xvii/<service>/env |
сгенерированные настройки сервиса (root:xvii-<service>, 640) |
/etc/xvii/id/clients/<service>.json |
OIDC-клиенты, которые читает id |
/etc/xvii/caddy.env |
DNS-токен, которым Caddy пользуется для DNS-01 |
/var/lib/xvii/<service>/ |
данные сервиса |
/var/lib/xvii/releases/<service>/<version>/ |
хранилище релизов: manifest.json, бинарники, SHA256SUMS |
/usr/local/lib/xvii/<service>/<version>/ |
установленные бинарники; current ссылается на запущенный |
/etc/systemd/system/xvii-<service>.service |
юниты |
/etc/caddy/conf.d/xvii.caddy |
сайты платформы |
/run/xvii/node.sock |
сокет xvii-node для home (группа xvii-admin) |
В PostgreSQL у каждого сервиса своя роль с именем как у его системного пользователя (xvii-pages),
peer-аутентификация через локальный сокет и база xvii_<service>.
Настройки сервисов
Каждый сервис читает строки KEY=VALUE из /etc/xvii/<service>/env, а переменные окружения
XVII_<SERVICE>_<KEY> важнее файла. xvii-node пишет файл из:
- сгенерированных значений:
DOMAIN, LISTEN, DATA_DIR, PUBLIC_URL, ID_URL, DATABASE_URL,
OIDC_CLIENT_ID, OIDC_SECRET (сохраняется между обновлениями);
- фиксированного
env манифеста;
- настроек из home (объявленные в манифесте настройки формой плюс свободные пары
KEY=value).
Меняйте настройки в home → Сервисы → сервис → Настройки: сохранение перезапускает сервис. Не правьте
env-файл руками: следующее применение его перепишет.
Общие настройки
| Ключ |
Сервисы |
|
SMTP_URL, MAIL_FROM |
id, notify |
исходящая почта: smtp://user:pass@host:port |
PUBLIC_URL |
все |
адрес сервиса, если он не https://<host>.<domain> |
LISTEN |
все |
локальный адрес (xvii-node задаёт его по порту из манифеста) |
Собственные настройки каждого сервиса перечислены в его панели и спецификации.
Порты
| Порт |
Сервис |
| 8700 |
home |
| 8701 |
id |
| 8702 |
pages |
| 8703 |
notify |
| 8704 |
backups |
| 8705 |
env |
| 8706 |
apps |
| 8707 |
domains |
| 8708 |
tunnel |
| 8709 |
hooks |
| 8710 |
status |
| 8711 |
errors |
| 8712 |
analytics |
| 8713 |
ai |
| 8714 |
share |
| 8715 |
config |
| 8716 |
mail |
| 8717 |
docs |
Все слушают 127.0.0.1; Caddy направляет каждый хост на свой порт. mail также слушает 10025, 5587, 4465, 1143
и 1993 для почтовых протоколов. Relay-прокси нод слушают 7443.
Переопределение хоста
xvii-node host SERVICE LABEL обслуживает сервис на <LABEL>.<domain> вместо хоста из манифеста — например,
чтобы запустить вторую версию рядом с первой во время миграции. xvii-node host SERVICE возвращает как было.