|
|
||
|---|---|---|
| .. | ||
| data | ||
| README.md | ||
| index.js | ||
| package.json | ||
README.md
Server
Лёгкий файловый backend без внешних зависимостей.
Быстрый старт
- Сервер:
npm --prefix server start(PORT=8080 по умолчанию). Если порт занят, сервер попробует 8081/8082/8083 автоматически. - Ручной выбор порта:
PORT=8088 npm --prefix server start - Клиент отдельно (только статика, без API):
npx http-server frontend -p 9001и открыть http://localhost:9001
Статика: раздаётся из ../frontend/dist, при отсутствии сборки — из ../frontend.
Хранилище: server/data/projects/index.json (список) + server/data/projects/proj_<id>.json (полный проект).
Upload-артефакты лежат в server/data/uploads, публичные share-ссылки — в server/data/shares/index.json,
а пользовательские ссылки/ref-count моделей — в server/data/models/registry.json. При старте директории и индексы создаются при необходимости.
API:
GET /api/projects[?type=project|template]— укороченный список изindex.json.GET /api/projects/:id— полный JSON проекта.POST /api/projects— создать проект, генерируетсяid,createdAt,updatedAt, сохраняется файл и обновляется индекс.POST /api/uploads?filename=<name>&projectId=<id>— сохранить оригинальный файл модели вserver/data/uploads.DELETE /api/uploads/asset— снять ссылку текущего пользователя на модель и физически удалить asset только если больше нет user/share refs.DELETE /api/uploads/version— удалить версию, если на неё нет чужих refs или публичных share-ссылок.GET /api/conversions/status?src=<uploads/...>— получить статус подготовки viewer-артефакта. Для.step/.stpответ помечаетсяconversion.status=conversion_required: оригинал уже доступен для скачивания, а preview должен появиться после работыNodeDcBimConverter, который готовит GLB и metadata/tree.
Локальный Beam compose:
docker compose -f docker-compose.beam.yml up ndc-beam-viewerdocker compose -f docker-compose.beam.yml up nodedc-bim-converter
Synology Beam compose:
- скопировать
.env.synology.exampleв.envрядом сdocker-compose.beam.yml; - заполнить
NODEDC_INTERNAL_ACCESS_TOKENтем же значением, что и в platform.env.synology; - запустить
docker compose -f docker-compose.beam.yml up -d ndc-beam-viewer nodedc-bim-converter.
Поле ownerId пока всегда null, но оставлено для будущих пользователей/шаринга.
NODE.DC auth/share:
NODEDC_BIM_AUTH_REQUIRED=1включает вход через Launcher handoff.NODEDC_BIM_SERVICE_SLUG=bim-viewerдолжен совпадать со slug сервиса в Launcher.NODEDC_INTERNAL_ACCESS_TOKENдолжен совпадать с Launcher internal token.NODEDC_LAUNCHER_BASE_URL— публичный Launcher URL для редиректа на login/launch.NODEDC_LAUNCHER_INTERNAL_URL— внутренний URL Launcher для/api/internal/handoff/consume.NODEDC_BIM_PUBLIC_URL— публичный URL viewer-а для share-ссылок, на продеhttps://bim.nodedc.tech.NODEDC_BIM_HOST_PORT— host-port дляdocker-compose.beam.yml; на Synology BIM публикуется как18100:8080.NODEDC_BIM_COOKIE_SAMESITE=NoneиNODEDC_BIM_COOKIE_SECURE=1нужны для BIM в iframe наops.nodedc.ru.NODEDC_BIM_DATA_ROOT— опциональный корень файлового storage вместоserver/data.POST /api/sharesсоздаёт публичную read-only ссылку на upload artifact;/share/<token>открывает viewer в guest mode.GET /api/modelsвозвращает личные активные модели текущего пользователя.POST /api/models/refsсохраняет существующий upload artifact в личные модели текущего пользователя.DELETE /api/models/refsснимает личную ссылку и удаляет физические файлы только при отсутствии других refs/share.