DC_CMS/README.md

74 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# DC CMS
Отдельный сервис администрирования сайтов DCTOUCH / NODE.DC.
## Первый подключенный проект
`projects/nodedc.json` подключает существующий сайт:
- `siteRoot`: локальный путь к репозиторию сайта.
- `previewUrl`: локальный адрес предпросмотра.
- `publicUrl`: публичный домен сайта.
- `deploy`: настройки будущей публикации на хостинг.
Пароль хостинга не хранится в JSON. В конфиге указывается имя переменной окружения, например `MCHOST_PASSWORD`.
## Локальный запуск
```bash
PORT=8210 npm run admin
```
Админка будет доступна на `http://127.0.0.1:8210/admin/`, а подключенный сайт на `http://127.0.0.1:8210/`.
## Запуск с Authentik
Полная локальная связка лежит в `infra/`: CMS, отдельный Authentik, Postgres и Caddy reverse proxy. Секреты хранятся только в локальном `infra/.env`; файл игнорируется git и Docker build context.
Для локальных доменов нужны host aliases:
```bash
127.0.0.1 cms.local.nodedc cms-auth.local.nodedc cms-auth-admin.local.nodedc
```
Старт:
```bash
docker compose --env-file infra/.env -f infra/docker-compose.yml up -d --build
infra/scripts/bootstrap-authentik.sh
```
Адреса:
- CMS: `http://cms.local.nodedc:8210/admin/`
- Authentik login: `http://cms-auth.local.nodedc:8210/`
- Authentik admin: `http://cms-auth-admin.local.nodedc:8210/if/admin/`
Bootstrap создает OIDC-приложение `dc-cms`, группы `dc-cms:*` и стартового администратора из `infra/.env`. После первичного входа временный пароль нужно заменить в Authentik.
## Synology
Для Synology используется отдельный env-шаблон `infra/.env.synology.example`. Рабочий файл должен лежать рядом как `infra/.env.synology` и не должен попадать в artifact.
Публичные host routes:
- `cms.dcserve.ru` -> CMS.
- `auth.dcserve.ru` -> Authentik login/OIDC issuer.
- `auth-admin.dcserve.ru` -> Authentik admin, опционально и лучше не открывать публично без необходимости.
DNS-записи должны вести на внешний IP NAS. В Synology Reverse Proxy:
- `cms.dcserve.ru` -> `http://172.22.0.222:9918`
- `auth.dcserve.ru` -> `http://172.22.0.222:9919`
Оба target-порта ведут в один Caddy контейнер внутри compose-проекта `dc-cms`; Caddy разводит запросы по Host.
Bootstrap Authentik on Synology:
```bash
cd /volume1/docker/dc-cms/source/infra
sudo env CMS_ENV_FILE=.env.synology sh ./scripts/bootstrap-authentik.sh
```
Bootstrap выполняется так же, как в платформе NODE.DC: через `authentik-server ak shell < authentik/bootstrap-cms.py`. Ручной вход в worker, `VENV_PATH` и отдельный `apply_blueprint` не являются штатным сценарием.