|
|
||
|---|---|---|
| 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/. Подключенный сайт хранится как управляемый проект, но не является корневым UI этого сервиса.
Запуск с 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
Адреса:
- CMS:
http://cms.local.nodedc:8210/ - Authentik login:
http://cms-auth.local.nodedc:8210/ - Authentik admin:
http://cms-auth-admin.local.nodedc:8210/if/admin/
Compose-сервис authentik-bootstrap создает OIDC-приложение dc-cms, группы dc-cms:* и стартового администратора из infra/.env. После первичного входа временный пароль нужно заменить в Authentik; следующие deploy не перетрут пароль, пока CMS_BOOTSTRAP_FORCE_PASSWORD=false.
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.
На Synology bootstrap Authentik выполняется автоматически внутри compose-проекта при nodedc-deploy apply. Ручной вход в worker, VENV_PATH, отдельный apply_blueprint и shell-скрипты не являются штатным сценарием.