|
|
||
|---|---|---|
| admin | ||
| infra | ||
| projects | ||
| server | ||
| .dockerignore | ||
| .gitignore | ||
| Dockerfile | ||
| README.md | ||
| package-lock.json | ||
| package.json | ||
README.md
DC CMS
Отдельный сервис администрирования сайтов DCTOUCH / NODE.DC.
Первый подключенный проект
projects/nodedc.json подключает существующий сайт:
siteRoot: локальный путь к репозиторию сайта.previewUrl: локальный адрес предпросмотра.publicUrl: публичный домен сайта.deploy: настройки будущей публикации на хостинг.
Пароль хостинга не хранится в JSON. В конфиге указывается имя переменной окружения, например MCHOST_PASSWORD.
Локальный запуск
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:
127.0.0.1 cms.local.nodedc cms-auth.local.nodedc cms-auth-admin.local.nodedc
Старт:
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:9918auth.dcserve.ru->http://172.22.0.222:9919
Оба target-порта ведут в один Caddy контейнер внутри compose-проекта dc-cms; Caddy разводит запросы по Host.
Bootstrap Authentik on Synology:
cd /volume1/docker/dc-cms/source/infra
sudo /usr/local/bin/docker compose --env-file .env.synology -f docker-compose.yml exec -T authentik-worker sh -lc 'set -e; export PATH="${VENV_PATH}/bin:${PATH}"; for bp in default/flow-default-authentication-flow.yaml default/flow-default-invalidation-flow.yaml default/flow-default-provider-authorization-implicit-consent.yaml; do /lifecycle/ak apply_blueprint "$bp"; done; /lifecycle/ak shell < /bootstrap/bootstrap-cms.py'