PlotVault PDM 配置说明#
本文档介绍 PlotVault PDM 的各项配置参数。
环境变量#
核心配置#
| 变量名 | 默认值 | 说明 |
|---|
DATA_DIR | /data | 图纸数据目录(library 真实目录 + blobs 版本归档),主机上可直接浏览 |
CONFIG_DIR | /config | 软件缓存目录(dxf_cache + tmp) |
DATABASE_URL | postgres://postgres:postgres@localhost:5432/plotvault_pdm | PostgreSQL 连接串(compose 里指向 db 容器) |
BIND | 0.0.0.0:8642 | 监听地址 |
API_TOKEN | 空 | 设置后所有 API 需 Authorization: Bearer <token> |
即使是局域网私有环境,也建议设置 API_TOKEN。
Docker Compose 配置示例#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| version: '3.8'
services:
db:
image: postgres:18
environment:
POSTGRES_DB: plotvault_pdm
POSTGRES_USER: postgres
POSTGRES_PASSWORD: <数据库密码>
volumes:
- <PGDATA_HOST_PATH>:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
plotvault-pdm:
image: <DOCKERHUB_USER>/plotvault-pdm-server:latest
depends_on:
db:
condition: service_healthy
ports:
- "<HOST_PORT>:8642"
environment:
DATABASE_URL: postgres://postgres:<数据库密码>@db:5432/plotvault_pdm
API_TOKEN: <API_TOKEN>
DATA_DIR: /data
CONFIG_DIR: /config
BIND: 0.0.0.0:8642
volumes:
- <DATA_HOST_PATH>:/data
- <CONFIG_HOST_PATH>:/config
converter:
image: <DOCKERHUB_USER>/plotvault-pdm-converter:latest
ports:
- "8000:8000"
|
数据目录结构#
DATA_DIR(图纸数据)#
data/
├── library/ # 真实目录结构,与客户端看到的文件夹树一致
│ ├── 项目A/
│ │ ├── 零件1.step
│ │ └── 零件1.step
│ └── 项目B/
│ └── 图纸1.dwg
└── blobs/ # 版本归档
├── v1/
│ └── <hash>
└── v2/
└── <hash>
CONFIG_DIR(软件缓存)#
config/
├── dxf_cache/ # DWG 转 DXF 的缓存
└── tmp/ # 临时文件
安全建议#
1. 设置 API Token#
即使在局域网环境,也建议设置 API Token:
1
2
3
4
5
| # 生成一个随机 token
openssl rand -hex 32
# 将生成的 token 设置到环境变量
API_TOKEN=your_generated_token_here
|
2. 使用 HTTPS#
如果暴露到公网,建议使用反向代理(如 Nginx)配置 HTTPS:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| server {
listen 443 ssl;
server_name plotvault.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:8642;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
|
3. 限制访问#
可以通过防火墙规则限制只允许特定 IP 访问:
1
2
3
| # 只允许 192.168.1.0/24 网段访问
iptables -A INPUT -p tcp --dport 8642 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 8642 -j DROP
|
性能调优#
PostgreSQL 优化#
对于大量文件的场景,可以调整 PostgreSQL 配置:
# postgresql.conf
shared_buffers = 256MB
effective_cache_size = 1GB
work_mem = 16MB
maintenance_work_mem = 128MB
文件存储优化#
- 将
DATA_DIR 放在 SSD 上可以提高文件读写速度 - 使用 RAID 配置可以提高数据安全性
备份与恢复#
1
2
3
4
5
| # 备份图纸数据
cp -r /path/to/data /backup/data
# 备份数据库
docker exec -t db pg_dump -U postgres plotvault_pdm > /backup/plotvault_pdm.sql
|
1
2
3
4
5
| # 恢复图纸数据
cp -r /backup/data /path/to/data
# 恢复数据库
cat /backup/plotvault_pdm.sql | docker exec -i db psql -U postgres plotvault_pdm
|
清空重建#
1
2
3
4
5
6
7
| # 删除配置和数据库(保留图纸文件)
rm -rf /path/to/config
docker exec -t db dropdb -U postgres plotvault_pdm
docker exec -t db createdb -U postgres plotvault_pdm
# 连图纸一起清空
rm -rf /path/to/data
|