# 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. - `VITE_BEAM_VIEWER_BASE_URL` and `VITE_BEAM_API_BASE_URL` point the web bundle to BIM Viewer for issue attachments/iframe. - Production default for NAS builds: `https://hub.nodedc.ru` - Production BIM default for NAS builds: `https://bim.nodedc.tech` - Local default in source helpers: `http://launcher.local.nodedc` - Local BIM default in source helpers: `http://localhost:8080` 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: ```env 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: ```sh 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: ```sh VITE_NODEDC_LAUNCHER_URL=http://launcher.local.nodedc \ VITE_BEAM_VIEWER_BASE_URL=http://localhost:8080 \ VITE_BEAM_API_BASE_URL=http://localhost:8080 \ 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.