flnxi-Wu/docs/reports/DEPLOYMENT.md
WuYongJie f646b71813
Some checks failed
CI Check / check (push) Has been cancelled
chore: 初始化本地仓库并同步最近改动
2025-11-18 17:50:16 +08:00

198 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 部署指南
## 项目部署到 TrueNAS 服务器
### 服务器信息
- 服务器地址: 192.168.58.20
- 用户名: root
- 部署路径: /mnt/tank/apps/youyidian-3d
- 访问地址: http://192.168.58.20:4320
### 自动部署(推荐)
使用提供的部署脚本:
```bash
cd /Users/lanmu/Desktop/gongxiangp2
./deploy.sh
```
脚本会自动:
1. 打包项目文件
2. 上传到 NAS 服务器
3. 构建 Docker 镜像
4. 启动容器
5. 运行数据库迁移
### 手动部署
#### 1. 打包项目
```bash
cd /Users/lanmu/Desktop/gongxiangp2
tar -czf project.tar.gz \
--exclude='node_modules' \
--exclude='.next' \
--exclude='.git' \
--exclude='uploads' \
.
```
#### 2. 上传到服务器
```bash
scp project.tar.gz root@192.168.58.20:/tmp/
```
#### 3. SSH 登录服务器
```bash
ssh root@192.168.58.20
# 密码: jsjj8888
```
#### 4. 部署应用
```bash
# 创建项目目录
mkdir -p /mnt/tank/apps/youyidian-3d
cd /mnt/tank/apps/youyidian-3d
# 解压项目
tar -xzf /tmp/project.tar.gz
# 启动服务
docker-compose up -d --build
# 查看日志
docker-compose logs -f
```
#### 5. 运行数据库迁移
```bash
docker-compose exec app npx prisma db push
```
### Docker 命令
```bash
# 查看容器状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 重启服务
docker-compose restart
# 停止服务
docker-compose down
# 重新构建并启动
docker-compose up -d --build
```
### 环境变量
在服务器上修改 `docker-compose.yml` 中的环境变量(如需要):
- `DATABASE_URL`: PostgreSQL 数据库连接
- `S3_*`: MinIO S3 存储配置
- `NEXTAUTH_URL`: 应用访问地址
- `NEXTAUTH_SECRET`: 认证密钥(建议生成新的)
生成新的 NEXTAUTH_SECRET:
```bash
openssl rand -base64 32
```
### 初始化数据库
第一次部署后,需要在数据库中插入初始场景数据:
```bash
docker-compose exec app npx prisma db execute --stdin <<< "
INSERT INTO scenes (id, name, \"createdAt\") VALUES
(gen_random_uuid(), '客厅', NOW()),
(gen_random_uuid(), '卧室', NOW()),
(gen_random_uuid(), '厨房', NOW()),
(gen_random_uuid(), '餐厅', NOW()),
(gen_random_uuid(), '书房', NOW()),
(gen_random_uuid(), '儿童房', NOW()),
(gen_random_uuid(), '主卧', NOW()),
(gen_random_uuid(), '次卧', NOW()),
(gen_random_uuid(), '阳台', NOW()),
(gen_random_uuid(), '卫生间', NOW()),
(gen_random_uuid(), '玄关', NOW()),
(gen_random_uuid(), '衣帽间', NOW()),
(gen_random_uuid(), '办公室', NOW()),
(gen_random_uuid(), '会议室', NOW()),
(gen_random_uuid(), '展厅', NOW())
ON CONFLICT (name) DO NOTHING;
"
```
### 创建管理员账户
1. 注册一个账户
2. SSH 登录服务器,设置为管理员:
```bash
docker-compose exec app npx prisma studio
# 或者使用 SQL:
docker-compose exec app npx prisma db execute --stdin <<< "
UPDATE users SET role='ADMIN', \"isActive\"=true WHERE email='your-email@example.com';
"
```
### 故障排查
#### 查看容器日志
```bash
docker-compose logs -f app
```
#### 进入容器
```bash
docker-compose exec app sh
```
#### 检查数据库连接
```bash
docker-compose exec app npx prisma db execute --stdin <<< "SELECT 1"
```
#### 重新生成 Prisma Client
```bash
docker-compose exec app npx prisma generate
```
### 备份和恢复
#### 备份上传文件
```bash
cd /mnt/tank/apps/youyidian-3d
tar -czf uploads-backup-$(date +%Y%m%d).tar.gz uploads/
```
#### 备份数据库
数据库在云端,由云服务提供商负责备份。
### 更新应用
1. 本地修改代码
2. 运行部署脚本: `./deploy.sh`
3. 或手动上传并重新构建
### 监控和维护
- 定期检查磁盘空间(上传文件会占用空间)
- 定期查看日志文件
- 监控容器状态
- 定期更新 Docker 镜像基础版本
### 安全建议
1. 修改 `NEXTAUTH_SECRET` 为随机生成的值
2. 配置防火墙,只开放必要的端口
3. 定期更新依赖包
4. 使用 HTTPS(可配置 Nginx 反向代理)
5. 定期备份重要数据