Go to file
DCCONSTRUCTIONS e31b247128 Add optional site archive backups 2026-07-10 01:21:30 +03:00
admin Add optional site archive backups 2026-07-10 01:21:30 +03:00
infra Add CMS site upload and SFTP publish 2026-07-06 14:02:52 +03:00
projects Initial DC CMS extraction 2026-07-06 00:33:27 +03:00
server Add optional site archive backups 2026-07-10 01:21:30 +03:00
.dockerignore Initial DC CMS extraction 2026-07-06 00:33:27 +03:00
.gitignore Add tracked CMS publishing progress 2026-07-10 00:32:56 +03:00
Dockerfile Initial DC CMS extraction 2026-07-06 00:33:27 +03:00
README.md Handle unloaded site workspace in CMS 2026-07-06 11:55:08 +03:00
package-lock.json Add CMS site upload and SFTP publish 2026-07-06 14:02:52 +03:00
package.json Add CMS site upload and SFTP publish 2026-07-06 14:02:52 +03:00

README.md

DC CMS

Отдельный сервис администрирования сайтов DCTOUCH / NODE.DC.

Первый подключенный проект

projects/nodedc.json подключает существующий сайт:

  • siteRoot: локальный путь к репозиторию сайта.
  • previewUrl: локальный адрес предпросмотра.
  • publicUrl: публичный домен сайта.
  • deploy: настройки будущей публикации на хостинг.

Пароль хостинга не хранится в JSON. В конфиге указывается имя переменной окружения, например MCHOST_PASSWORD.

CMS редактирует локальный workspace сайта, а внешний хостинг является целью публикации. На Synology текущий NODE.DC workspace монтируется в контейнер как /sites/nodedc и физически лежит в /volume1/docker/dc-cms/sites/nodedc.

Если workspace ещё не загружен, админка открывается без вкладок сайта и показывает состояние подключения. После загрузки content/, templates/, tools/ и нужных assets появляются режимы администрирования, SEO и Knowledge.

Локальный запуск

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.

CMS обращается к OIDC discovery внутри compose-сети через host-alias Authentik-домена (CMS_AUTH_DOMAIN), а не напрямую в контейнер authentik-server. Это сохраняет тот же Host/issuer-контекст, который видит браузер.

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.

На Synology bootstrap Authentik выполняется автоматически внутри compose-проекта при nodedc-deploy apply. Ручной вход в worker, VENV_PATH, отдельный apply_blueprint и shell-скрипты не являются штатным сценарием.