功能特性: - 用户端充值记录页面,从使用日志中分离 - 充值记录中的去开发票功能 - 管理员发票管理页面 - 发票申请、处理、邮件通知功能 - 侧边栏菜单更新 - UI优化和控制台清理 - Docker部署配置 - 生产环境安全配置
6.8 KiB
6.8 KiB
NewAPI Docker 本地部署指南
概述
本指南介绍如何使用Docker部署修改后的NewAPI本地版本,而不是使用远程仓库的镜像。
文件说明
主要文件
Dockerfile- Docker镜像构建文件docker-compose.local.yml- 本地构建版本的Docker Compose配置docker-compose.yml- 修改后的Docker Compose配置(使用本地构建).dockerignore- Docker构建时忽略的文件build-and-deploy.sh- 自动化构建和部署脚本
版本文件
VERSION- 包含自定义版本号v1.0.0-custom
快速部署
方法一:使用自动化脚本(推荐)
# 运行自动化构建和部署脚本
./build-and-deploy.sh
方法二:手动部署
# 1. 构建并启动服务
docker-compose -f docker-compose.local.yml up -d --build
# 2. 查看服务状态
docker-compose -f docker-compose.local.yml ps
# 3. 查看日志
docker-compose -f docker-compose.local.yml logs -f new-api
服务配置
开发环境配置
端口映射
- NewAPI:
3000:3000 - MySQL:
3306:3306(默认未暴露,如需外部访问请取消注释)
数据持久化
- 应用数据:
./data:/data - 日志文件:
./logs:/app/logs - MySQL数据: Docker volume
mysql_data
环境变量
TZ=Asia/Shanghai- 时区设置
生产环境配置 ⚠️
重要安全提醒
当前的 docker-compose.yml 和 docker-compose.local.yml 使用了默认密码,不适合生产环境!
生产环境部署文件
docker-compose.prod.yml- 生产环境专用配置env.prod.example- 生产环境变量模板deploy-prod.sh- 自动化生产部署脚本
生产环境安全特性
- 强密码要求: 所有密码通过环境变量配置
- 网络隔离: 数据库和Redis不对外暴露端口
- 健康检查: 完整的服务健康监控
- 权限控制: MySQL用户权限最小化
- 数据持久化: 独立的数据卷管理
- 会话安全: 必须配置SESSION_SECRET
ERROR_LOG_ENABLED=true- 启用错误日志SQL_DSN=root:123456@tcp(mysql:3306)/new-api- MySQL连接字符串REDIS_CONN_STRING=redis://redis- Redis连接字符串
自定义修改
本部署包含以下界面修改:
-
侧边栏权限控制
- 普通用户无法看到"操练场"和"聊天"功能
- 管理员用户保留完整权限
-
导航栏简化
- 隐藏"文档"和"关于"按钮
- 保留核心导航功能
-
首页优化
- 隐藏"获取密钥"和"文档"按钮
-
Footer移除
- 完全隐藏页面底部区域
管理命令
查看服务状态
docker-compose -f docker-compose.local.yml ps
查看日志
# 查看所有服务日志
docker-compose -f docker-compose.local.yml logs
# 实时查看NewAPI日志
docker-compose -f docker-compose.local.yml logs -f new-api
# 查看MySQL日志
docker-compose -f docker-compose.local.yml logs mysql
重启服务
# 重启所有服务
docker-compose -f docker-compose.local.yml restart
# 仅重启NewAPI服务
docker-compose -f docker-compose.local.yml restart new-api
停止服务
docker-compose -f docker-compose.local.yml down
完全清理
# 停止并删除所有容器、网络
docker-compose -f docker-compose.local.yml down
# 删除数据卷(注意:会丢失所有数据)
docker-compose -f docker-compose.local.yml down -v
# 清理未使用的镜像
docker image prune -f
故障排除
常见问题
-
端口冲突
- 确保3000端口未被其他服务占用
- 可以修改docker-compose.local.yml中的端口映射
-
构建失败
- 检查Docker和Docker Compose版本
- 确保有足够的磁盘空间
- 查看构建日志:
docker-compose -f docker-compose.local.yml build --no-cache
-
服务启动失败
- 查看容器日志:
docker-compose -f docker-compose.local.yml logs new-api - 检查数据库连接配置
- 确保MySQL服务正常启动
- 查看容器日志:
-
数据库连接问题
- 等待MySQL完全启动(通常需要30-60秒)
- 检查数据库密码配置是否一致
- 查看MySQL日志:
docker-compose -f docker-compose.local.yml logs mysql
健康检查
NewAPI服务包含健康检查,每30秒检查一次服务状态:
# 手动检查服务健康状态
curl http://localhost:3000/api/status
性能优化
-
资源限制
- 可在docker-compose.local.yml中添加内存和CPU限制
-
缓存优化
- 启用Redis缓存以提高性能
- 配置适当的缓存策略
更新部署
当代码有更新时:
# 方法一:使用脚本(推荐)
./build-and-deploy.sh
# 方法二:手动更新
docker-compose -f docker-compose.local.yml down
docker-compose -f docker-compose.local.yml build --no-cache
docker-compose -f docker-compose.local.yml up -d
生产环境建议
-
安全设置
- 修改默认数据库密码
- 配置防火墙规则
- 使用HTTPS
-
监控和日志
- 配置日志轮转
- 设置监控告警
- 定期备份数据
-
性能调优
- 根据负载调整资源配置
- 配置负载均衡
- 优化数据库设置
支持
如有问题,请检查:
- 日志文件
- 容器状态
- 网络连接
- 资源使用情况
🏭 生产环境专用配置
⚠️ 重要安全警告
当前的 docker-compose.yml 和 docker-compose.local.yml 使用默认密码,绝对不能用于生产环境!
生产环境专用文件
docker-compose.prod.yml- 生产环境Docker配置env.prod.example- 生产环境变量模板deploy-prod.sh- 自动化生产部署脚本nginx-example.conf- Nginx反向代理配置mysql-init/- MySQL安全初始化脚本
生产环境部署步骤
# 1. 复制并配置环境变量
cp env.prod.example .env.prod
nano .env.prod # 必须修改所有密码!
# 2. 自动化部署(推荐)
./deploy-prod.sh
# 或手动部署
docker-compose -f docker-compose.prod.yml --env-file .env.prod up -d --build
生产环境安全特性
- ✅ 强密码要求(环境变量配置)
- ✅ 网络隔离(数据库不对外暴露)
- ✅ 健康检查和自动重启
- ✅ MySQL权限最小化
- ✅ Redis密码保护
- ✅ 会话密钥安全配置
- ✅ 性能优化配置
必须配置的环境变量
MYSQL_ROOT_PASSWORD=strong_password_12+_chars
MYSQL_PASSWORD=strong_password_12+_chars
REDIS_PASSWORD=strong_password_12+_chars
SESSION_SECRET=random_string_32+_chars
生产环境安全检查清单
- 修改所有默认密码
- 设置强密码(12位以上)
- 配置SESSION_SECRET(32位以上)
- 配置防火墙规则
- 设置SSL证书(参考nginx-example.conf)
- 配置反向代理
- 设置定期备份
- 监控服务健康状态
- 定期更新Docker镜像