NODEDC_TASKMANAGER/docs_prod/NODEDC_TASKER_DEPLOY_MODEL.md

3.2 KiB

NODE.DC Tasker deploy model

Source of truth

NODEDC_TASKMANAGER is the source repository for Tasker code and Docker build inputs.

The NAS directory /volume1/docker/nodedc-platform/tasker/plane-src is a deploy checkout/copy only. It must not become the long-term source of truth.

Runtime state stays outside the repository:

  • PostgreSQL data: Docker volume nodedc-tasker_pgdata
  • Redis data: Docker volume nodedc-tasker_redisdata
  • RabbitMQ data: Docker volume nodedc-tasker_rabbitmq_data
  • MinIO uploads: Docker volume nodedc-tasker_uploads
  • NAS environment files: /volume1/docker/nodedc-platform/tasker/plane-app/.env.synology

Environment contract

The same codebase supports local and production-like runs. The deployment mode is selected by environment variables and Docker build args, not by branching the code.

Frontend brand and launcher integration:

  • VITE_NODEDC_LAUNCHER_URL points the web/admin bundles to Launcher.
  • Production default for NAS builds: https://hub.nodedc.ru
  • Local default in source helpers: http://launcher.local.nodedc

Backend integration:

  • PLANE_NODEDC_LAUNCHER_URL
  • PLANE_NODEDC_LAUNCHER_PUBLIC_URL
  • PLANE_NODEDC_HANDOFF_URL
  • PLANE_NODEDC_WORKSPACE_POLICY_URL
  • PLANE_NODEDC_ACCESS_CHECK_URL
  • PLANE_NODEDC_ACCESS_TOKEN
  • NODEDC_ENGINE_DOCKER_NETWORK
  • PLANE_NODEDC_AI_WORKSPACE_ASSISTANT_URL
  • PLANE_NODEDC_AI_WORKSPACE_ASSISTANT_TOKEN

AI Workspace Console uses the shared Platform ai-workspace-assistant service. Tasker does not connect to AI Workspace Hub directly. The Tasker backend containers must be attached to the same Docker network as Platform/Engine through NODEDC_ENGINE_DOCKER_NETWORK; on NAS this is currently nodedc-demo_default, while local development uses nodedc-platform_default.

Use the internal service URL on that shared network:

PLANE_NODEDC_AI_WORKSPACE_ASSISTANT_URL=http://ai-workspace-assistant:18082

The Assistant generates Codex worker installers with the public Hub endpoint wss://ai-hub.nodedc.ru/api/ai-workspace/hub. Do not point Tasker directly at the Hub and do not expose Assistant as a public Nginx/DSM route.

Production secrets remain in NAS env files or a secret store. They must not be committed.

NAS legacy rebuild

The current NAS-compatible script lives in plane-src/rebuild-nas-legacy.sh.

Default production-style web rebuild:

cd /volume1/docker/nodedc-platform/tasker/plane-src
BUILD_BACKEND=0 BUILD_WEB=1 BUILD_ADMIN=0 sh rebuild-nas-legacy.sh

Local/staging-style rebuild can override integration endpoints:

VITE_NODEDC_LAUNCHER_URL=http://launcher.local.nodedc \
SMOKE_BASE_URL=http://task.local.nodedc:18080 \
SMOKE_RESOLVE= \
BUILD_BACKEND=0 BUILD_WEB=1 BUILD_ADMIN=0 \
sh rebuild-nas-legacy.sh

The script recreates only services whose images were rebuilt. It must not remove Docker volumes.

Safety rules

  • Do not run docker compose down -v on production/staging data.
  • Do not delete nodedc-tasker_* Docker volumes without a verified backup.
  • Run database backups before backend migrations.
  • Frontend-only rebuilds do not modify PostgreSQL or MinIO data.
  • Backend image rebuilds are safe only when no destructive migration or data command is included.