3.9 KiB
3.9 KiB
部署指南
项目部署到 TrueNAS 服务器
服务器信息
- 服务器地址: 192.168.58.20
- 用户名: root
- 部署路径: /mnt/tank/apps/youyidian-3d
- 访问地址: http://192.168.58.20:4320
自动部署(推荐)
使用提供的部署脚本:
cd /Users/lanmu/Desktop/gongxiangp2
./deploy.sh
脚本会自动:
- 打包项目文件
- 上传到 NAS 服务器
- 构建 Docker 镜像
- 启动容器
- 运行数据库迁移
手动部署
1. 打包项目
cd /Users/lanmu/Desktop/gongxiangp2
tar -czf project.tar.gz \
--exclude='node_modules' \
--exclude='.next' \
--exclude='.git' \
--exclude='uploads' \
.
2. 上传到服务器
scp project.tar.gz root@192.168.58.20:/tmp/
3. SSH 登录服务器
ssh root@192.168.58.20
# 密码: jsjj8888
4. 部署应用
# 创建项目目录
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. 运行数据库迁移
docker-compose exec app npx prisma db push
Docker 命令
# 查看容器状态
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:
openssl rand -base64 32
初始化数据库
第一次部署后,需要在数据库中插入初始场景数据:
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;
"
创建管理员账户
- 注册一个账户
- SSH 登录服务器,设置为管理员:
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';
"
故障排查
查看容器日志
docker-compose logs -f app
进入容器
docker-compose exec app sh
检查数据库连接
docker-compose exec app npx prisma db execute --stdin <<< "SELECT 1"
重新生成 Prisma Client
docker-compose exec app npx prisma generate
备份和恢复
备份上传文件
cd /mnt/tank/apps/youyidian-3d
tar -czf uploads-backup-$(date +%Y%m%d).tar.gz uploads/
备份数据库
数据库在云端,由云服务提供商负责备份。
更新应用
- 本地修改代码
- 运行部署脚本:
./deploy.sh - 或手动上传并重新构建
监控和维护
- 定期检查磁盘空间(上传文件会占用空间)
- 定期查看日志文件
- 监控容器状态
- 定期更新 Docker 镜像基础版本
安全建议
- 修改
NEXTAUTH_SECRET为随机生成的值 - 配置防火墙,只开放必要的端口
- 定期更新依赖包
- 使用 HTTPS(可配置 Nginx 反向代理)
- 定期备份重要数据