LyEdu 部署指南
编辑日期:2026-02-26
基于 ly-edu 项目结构整理
一、部署方式概览
| 方式 | 适用场景 | 说明 |
|---|---|---|
| Docker Compose | 快速部署、中小规模 | 单机多容器,当前默认使用 Java 后端 |
| Kubernetes | 生产、高可用 | 需自行编写 K8s 清单 |
| 手动部署 | 定制化强 | 按模块分别部署前后端与数据库 |
二、Docker Compose 部署
环境要求
- Docker 20.10+
- Docker Compose 1.29+
- 可用内存 4GB+
当前 Docker 方案(Java 后端)
Docker 默认使用 Java 后端,需先本地构建 jar。
1. 构建 jar
bash
cd lyedu-api
.\build-api.ps1 # Windows
# 或 ./build-api.sh # Linux / Mac产物输出到 pkg/lyedu-api.jar。
2. 配置环境变量
bash
cd scripts/docker
cp .env.example .env编辑 .env,配置数据库密码、Redis、镜像源等。国内可配置:
bash
DOCKER_REGISTRY=registry.cn-hangzhou.aliyuncs.com
NPM_REGISTRY=https://registry.npmmirror.com3. 构建与启动
bash
cd scripts/docker
docker compose build api
docker compose up -d4. 访问地址
- 管理后台:http://localhost:9900
- PC 端:http://localhost:9800
- API:http://localhost:9700(若使用 Python compose)或 8080(Java)
初始化与升级
- 初始化数据:首次部署后,按 README 执行初始化命令(如 Java:
--spring.profiles.active=init) - 数据库迁移:Java 使用 Flyway 自动迁移;Python 需执行
alembic upgrade head
三、生产部署
1. 资源规划
- CPU:建议 4 核+
- 内存:8GB+,视并发调整
- 存储:数据库 + 视频/文件,建议 50GB+
2. 部署
2.1. 部署后端
- 安装MySQL数据库数据;视频、附件、图片存储到本地
- 创建
/app/ly-edu文件夹,拷贝
nginx
# 全局配置
{
# 关闭冗余日志,只保留警告及以上
log {
level warn
}
# 禁用自动HTTPS(避免Caddy自动监听443/80端口,彻底杜绝HTTP/HTTPS混淆)
auto_https off
# 关闭admin接口(减少端口占用,非必需)
admin off
}
# 配置1:ly-edu-admin 后台管理(9900端口,纯HTTP)
:9900 {
# 显式绑定所有网卡(解决WARN提示)
bind 0.0.0.0
# 前端代码目录(确保路径正确)
root * /app/ly-edu/lyedu-admin/dist
# gzip压缩
encode gzip
# 静态文件服务
file_server
# 解决Vue/Router刷新404
try_files {path} /index.html
# 跨域配置
header {
Access-Control-Allow-Origin *
Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS
Access-Control-Allow-Headers Content-Type,Authorization
}
}
# 配置2:ly-edu-h5 移动端(9901端口,纯HTTP)
:9901 {
bind 0.0.0.0
root * /app/ly-edu/lyedu-h5
encode gzip
file_server
try_files {path} /index.html
header {
Access-Control-Allow-Origin *
}
}- 使用 Nginx / Caddy 反向代理,配置 HTTPS
- 仅开放 80/443,后端端口不直接暴露
- 配置防火墙与安全组
4. 备份
- 定期备份 MySQL 数据
- 备份上传的文件目录
四、Kubernetes 部署(规划)
生产环境可选用 Kubernetes。需准备:
- Deployment、Service、Ingress 等清单
- ConfigMap / Secret 管理配置
- 持久化卷(PVC)用于数据库与文件
具体清单可参考项目 docs/ 或社区示例,后续可补充到本文档。
五、常见部署问题
1. 端口冲突
- 检查 9700、9800、9900、3306、6379 等端口占用
- 修改
docker-compose.yml或.env中的端口映射
2. 数据库连接失败
- 确认 MySQL 已启动且可从容器内访问
- 检查
DATABASE_URL/application.yml中的主机、端口、用户、密码
3. 前端访问 404
- 确认 Nginx/Caddy 配置了 SPA 的
try_files或fallback - 检查 base URL 与 API 代理配置
4. 镜像构建慢
- 使用国内镜像源(
DOCKER_REGISTRY、NPM_REGISTRY) - 合理利用构建缓存
六、升级流程
- 备份:数据库、配置文件、上传文件
- 拉取新代码:
git pull - 重新构建:
docker compose build - 执行迁移:Java 自动;Python 需
alembic upgrade head - 重启服务:
docker compose up -d - 验证:访问各端,检查功能正常
