服务端部署指南
资源介绍
STP在线查看器
服务端的所有必需文件资源打包在一个名为 tiny_3dconvert.zip 的压缩包中。解压后,您将获得以下文件列表:
序号 | 文件名称 | 类型 | 备注 |
---|---|---|---|
1 | tiny-3dconvert-server1.1.tar | 文件 | Tiny_3DConvert Server Docker镜像压缩包 |
2 | tiny-fileimport-latest.tar | 文件 | Tiny_FileImport 最新 Docker镜像压缩包 |
3 | docker-compose.yml | 文件 | Docker Compose 配置示例文件 |
4 | init.sql | 文件 | 数据库初始化脚本 |
5 | tinydata | 文件夹 | 数据配置文件夹,存放各服务所需数据文件的路径配置 |
6 | nsdtlock | 文件 | Linux命令行工具,用于验证LICENSE并解锁服务 |
7 | tiny-viewer.js | 文件 | 3D模型预览JavaScript版SDK |
平台概述
STP在线查看器
是一个轻量级的3D服务平台,采用 Docker 容器化技术进行部署。整个运行环境由以下4个子服务组成:
- postgres: 数据库服务,用于存储3D数据及相关业务数据。
- minIo: 高性能对象存储服务,用于存储3D源文件及其关联数据。
- tiny-3dconvert-server: 服务端API接口提供者。
- tiny-fileimport: 文件导入服务。
服务镜像构建
在开始部署前,请确保已安装并配置好 Docker 和 Docker Compose 环境。首先创建一个新的文件夹并将解压后的资源 1-6 复制到该文件夹中。对于未提供的 postgres 和 minIo 镜像,可直接从官方拉取;而 tiny-3dconvert-server 和 tiny-fileimport 可通过导入镜像文件构建,操作步骤如下:
拉取官方镜像:
shell# 拉取postgres镜像 docker pull postgres:13.1-alpine # 拉取minIo镜像 docker pull minio/minio
导入自定义镜像:
shell# 导入tiny-3dconvert-server镜像 docker load -i tiny-3dconvert-server1.1.tar # 导入tiny-fileimport镜像 docker load -i tiny-fileimport-latest.tar
确认镜像构建成功,请运行 docker images
命令,若显示包含以下四个镜像,则表明镜像构建成功。
获取license
在部署tiny-3dconvert服务之前,您需要获取有效的license。在资源文件中有一个nsdtlock的命令行工具,该工具负责验证授权和解锁等工作。具体做法是需要将该工具运行起来,运行3个命令,如下:
chmod +x nsdtlock
nohup ./nsdtlock > nsdtlock.log 2>&1 &
iptables -I INPUT -p tcp --dport 5555 -j ACCEPT
运行完成之后,该命令行会产生一个machine mac的码,使用如下命令查看码:
tail -f 200 nsdtlock.log
将machine mac码复制,发给tiny-server的客服人员,他会给你一个LICENSE,然后将LICENSE配置到docker-compose.yaml/tiny-3dconvert-server/environment/LICENSE_CODE
,并且在MAC_IP
配置项中配置docker容器宿主机的ip地址。
另外nsdtlock这个命令行工具产生的进程不要杀掉,请保持运行直到服务已经完成启动、并且通过了授权验证,或者干脆让此进程一直运行。
下一步是基于这些镜像构建容器和服务。
部署配置详解
docker-compose.yaml 文件中提供了四个容器的配置示例,大部分配置无需更改,但请注意标记需要修改的部分。具体配置示例如下:
version: "3.5"
services:
tiny-postgres:
image: "postgres:13.1-alpine"
restart: always
environment:
POSTGRES_DB: tiny_3dconvert
POSTGRES_USER: tiny3dconvert
POSTGRES_PASSWORD: tiny3dconvert
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone
- ./tinydata/postgres-data:/var/lib/postgresql/data/
ports:
- "7432:5432"
tiny-minio:
image: "minio/minio"
command: server /data --console-address ":9002"
restart: always
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone
- ./tinydata/minio-data:/data
ports:
- "9900:9000"
- "9002:9002"
tiny-fileimport-service:
image: registry.cn-hangzhou.aliyuncs.com/nsdt/tiny-fileimport
container_name: tiny-fileimport-service
restart: always
privileged: true
ulimits:
core: 0
volumes:
- ./tinydata/tiny-fileimport-service/.env:/fileimport-service/.env
- /etc/localtime:/etc/localtime:ro
environment:
TZ: "Asia/Shanghai"
DEBUG: "fileimport-service:*"
# 根据实际情况进行配置
PG_CONNECTION_STRING: "postgres://tiny3dconvert:tiny3dconvert@ip:7432/tiny_3dconvert"
WAIT_HOSTS: postgres:7432
# 根据实际情况进行配置
S3_ENDPOINT: "http://ip:9900"
S3_ACCESS_KEY: "minioadmin"
S3_SECRET_KEY: "minioadmin"
S3_BUCKET: "speckle-server"
#根据实际情况进行配置
LICENSE_CODE: "xxxLICENSE_CODE"
# 根据实际情况进行配置
TINY_SERVER_URL: "http://ip:5500"
tiny-3dconvert-server:
container_name: tiny-3dconvert-server
image: nsdt/tiny-3dconvert-server:1.1
ports:
- "5500:3000"
environment:
TZ: "Asia/Shanghai"
NODE_ENV: "production"
PORT: 3000
BIND_ADDRESS: "0.0.0.0"
CANONICAL_URL: "http://127.0.0.1:3000"
# 根据实际情况进行配置
S3_ENDPOINT: "http://ip:9900"
S3_ACCESS_KEY: "minioadmin"
S3_SECRET_KEY: "minioadmin"
S3_BUCKET: "speckle-server"
S3_CREATE_BUCKET: true
FILE_SIZE_LIMIT_MB: 500
# 根据实际情况进行配置
POSTGRES_URL: "postgres://tiny3dconvert:tiny3dconvert@ip:7432/tiny_3dconvert"
POSTGRES_MAX_CONNECTIONS_SERVER: 10
# 根据实际情况进行配置
LICENSE_CODE: ""
MAC_IP: "172.16.0.245"
WAIT_HOSTS: tiny-postgres:7432, minio:9900
restart: always
volumes:
- /etc/localtime:/etc/localtime:ro
- ./tinydata/tinylogs:/app/logs
在配置过程中,请根据实际环境需求,正确设置与 postgres、minIo、tiny-fileimport-service 和 tiny-3dconvert-server 相关的环境变量和连接信息。
数据库容器构建与初始化
构建数据库容器
不修改配置的情况下,可以使用以下命令构建 PostgreSQL 容器:
shelldocker-compose up -d tiny-postgres
初始化数据库表
连接至数据库(初始数据库名:
tiny_3dconvert
,用户名:tiny3dconvert
,密码:tiny3dconvert
),执行 init.sql 初始化脚本以完成数据库表结构初始化。如下:
minIo 容器构建
构建 minIo 容器同样简便,只需运行以下命令:
docker-compose up -d tiny-minio
tiny-fileimport 与 tiny-3dconvert-server 容器构建
tiny-fileimport-service 和 tiny-3dconvert-server 服务分别依赖于数据库、minIo 服务,并需要配置正确的环境变量。请确保在 docker-compose.yaml 中相应服务下的配置项,如 PG_CONNECTION_STRING、POSTGRES_URL、S3_ENDPOINT、TINY_SERVER_URL 等均设置准确无误。
构建两个服务的命令分别为:
docker-compose up -d tiny-fileimport-service
docker-compose up -d tiny-3dconvert-server
使用docker logs tiny-3dconvert-server -f
命令查看服务日志,看到如下界面说明LICENSE验证成功、整个服务构成功。。