本文记录了使用 Docker Compose 部署 Mix Space 后端与 Shiro 前端的完整配置。
访客IP信息卡片
项目概述
- 后端: Mix Space Core v10.1.5
- 前端: Shiro (latest)
- 数据库: MongoDB 7
- 缓存: Redis
服务架构
┌─────────────────────────────────────────────────────────┐
│ Docker Network │
│ (mx-space) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Shiro │ │mx-server│ │ Mongo │ │ Redis │ │
│ │ :2323 │ │ :2333 │ │ :27017 │ │ :6379 │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────┘配置文件
docker-compose.yml
CodeBlock Loading...
.env
CodeBlock Loading...
服务说明
| 服务 | 容器名 | 镜像 | 端口 | 说明 |
|---|---|---|---|---|
| mx-server | mx-server | innei/mx-server:10.1.5 | 2333 | 后端 API 服务 |
| shiro | shiro | innei/shiro:latest | 2323 | 前端博客页面 |
| mongo | mongo | mongo:7 | 27017 | 数据库 |
| redis | redis | redis:alpine | 6379 | 缓存服务 |
环境变量说明
后端环境变量
| 变量名 | 说明 | 示例值 |
|---|---|---|
DB_HOST | MongoDB 主机地址 | mongo |
REDIS_HOST | Redis 主机地址 | redis |
ALLOWED_ORIGINS | 允许的跨域来源 | * |
JWT_SECRET | JWT 密钥 | 随机字符串 |
BETTER_AUTH_URL | 认证服务 URL | http://192.168.1.100:2333 |
前端环境变量
| 变量名 | 说明 | 示例值 |
|---|---|---|
NEXT_PUBLIC_API_URL | API 地址(浏览器访问) | http://192.168.1.100:2333/api/v2 |
NEXT_PUBLIC_GATEWAY_URL | 网关地址 | http://192.168.1.100:2333 |
NEXT_PUBLIC_CLIENT_API_URL | API 地址(服务端访问) | http://192.168.1.100:2333/api/v2 |
部署命令
CodeBlock Loading...
访问地址
- 博客首页: http://192.168.1.100:2323
- 后端 API: http://192.168.1.100:2333/api/v2
- 管理面板: http://192.168.1.100:2333/proxy/qaqdmin
注意事项
- 版本兼容性: Shiro 前端仅兼容 Mix Space Core 10.x 版本,不兼容 11.x/12.x
- 数据库: 10.x 版本使用 MongoDB,11.x/12.x 版本使用 PostgreSQL
- 环境变量: 前端需要同时配置
NEXT_PUBLIC_API_URL和NEXT_PUBLIC_CLIENT_API_URL - 跨域配置:
ALLOWED_ORIGINS需要包含所有访问来源 - ip: 把
192.168.1.100改成你的ip或者改回127.0.0.1 修改时注意BETTER_AUTH_URL环境变量需要改成你的后端地址+端口
常见问题
TypeError: Cannot read properties of undefined (reading 'config')
这是版本不兼容导致的错误,请确保:
- 后端版本为 10.x
- 数据库使用 MongoDB 而非 PostgreSQL
Invalid origin 错误
--- 需要在 ALLOWED_ORIGINS 中添加访问的域名或 IP 地址。测试时推荐直接使用*允许全部 还有必须要端口号 127.0.0.1是不行的127.0.0.1:2333
最后更新: 2026-05-09