Skip to content
个人作品推荐
栾媛爱动物
播放动物叫声趣味微信小程序
栾媛爱动物微信小程序
微信扫码体验

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.com

3. 构建与启动

bash
cd scripts/docker
docker compose build api
docker compose up -d

4. 访问地址

初始化与升级

  • 初始化数据:首次部署后,按 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_filesfallback
  • 检查 base URL 与 API 代理配置

4. 镜像构建慢

  • 使用国内镜像源(DOCKER_REGISTRYNPM_REGISTRY
  • 合理利用构建缓存

六、升级流程

  1. 备份:数据库、配置文件、上传文件
  2. 拉取新代码git pull
  3. 重新构建docker compose build
  4. 执行迁移:Java 自动;Python 需 alembic upgrade head
  5. 重启服务docker compose up -d
  6. 验证:访问各端,检查功能正常

相关链接