Mix Space + Shiro 博客容器部署指南(无反向代理版)
整理润色:Hermes
本文记录了使用 Docker Compose 部署 Mix Space 后端与 Shiro 前端的完整配置。全程无需配置 Nginx 反向代理。
项目概述
- 后端: Mix Space Core v10.1.5
- 前端: Shiro(最新版)
- 数据库: MongoDB 7
- 缓存: Redis
服务架构
┌─────────────────────────────────────────────────┐
│ Docker Network │
│ (mx-space) │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ MongoDB │ │ Redis │ │ Mix Space│ │
│ │ :27017 │ │ :6379 │ │ :2333 │ │
│ └──────────┘ └──────────┘ └────┬─────┘ │
│ │ │
│ ┌────────▼──────┐ │
│ │ Shiro │ │
│ │ :2323 │ │
│ └───────────────┘ │
└─────────────────────────────────────────────────┘docker-compose.yml
version: "3.8"
networks:
mx-space:
services:
# MongoDB —— 数据主存储
mongodb:
image: mongo:7
container_name: mx-mongo
restart: always
volumes:
- ./data/mongo:/data/db
networks:
- mx-space
environment:
MONGO_INITDB_DATABASE: mx-space
# Redis —— 缓存与 Session
redis:
image: redis:7-alpine
container_name: mx-redis
restart: always
volumes:
- ./data/redis:/data
networks:
- mx-space
# Mix Space Core —— 后端
mx-server:
image: mxspace/mx-server:10
container_name: mx-server
restart: always
ports:
- "2333:2333"
depends_on:
- mongodb
- redis
networks:
- mx-space
environment:
- NODE_ENV=production
- MONGO_URL=mongodb://mongodb:27017/mx-space
- REDIS_URL=redis://redis:6379
- JWT_SECRET=your_jwt_secret_here
- ALLOWED_ORIGINS=*
volumes:
- ./data/mx-space:/app/data
# Shiro —— 前端
mx-web:
image: mxspace/shiro:latest
container_name: mx-shiro
restart: always
ports:
- "2323:2323"
depends_on:
- mx-server
networks:
- mx-space
environment:
- NEXT_PUBLIC_API_URL=http://localhost:2333/api/v2
- NEXTAUTH_URL=http://localhost:2323
- NEXTAUTH_SECRET=your_nextauth_secret_here部署步骤
1. 创建项目目录
mkdir mx-space && cd mx-space
mkdir -p data/mongo data/redis data/mx-space2. 编写 docker-compose.yml
将上面的配置保存为 docker-compose.yml。
3. 修改配置
根据你的实际情况修改环境变量:
JWT_SECRET:替换为随机字符串(可用 openssl rand -hex 32 生成)NEXTAUTH_SECRET:同上ALLOWED_ORIGINS:生产环境建议指定具体域名
4. 启动服务
CodeBlock Loading...
5. 验证
- 后端:访问
http://服务器IP:2333/api/v2,应返回 API 信息 - 前端:访问
http://服务器IP:2323,应能看到博客前台 - 后台:访问
http://服务器IP:2323/qaqdmin,进入管理后台
管理员初始化
首次启动后,访问后台会提示创建管理员账号。完成后即可开始写文章。
常见问题
404 Not Found
如果后端启动后返回 404,可能是 MongoDB 未就绪。稍等片刻后重启 mx-server:
CodeBlock Loading...
数据库版本不兼容
Mix Space v10.x 必须搭配 MongoDB 使用。如果之前使用的是 PostgreSQL 版本,请确保:
- 后端版本为 10.x
- 数据库使用 MongoDB 而非 PostgreSQL
Invalid origin 错误
在 ALLOWED_ORIGINS 中添加访问域名或 IP 地址。测试时可直接设为 *。
注意:
127.0.0.1不加端口号可能不生效,应写全如127.0.0.1:2333
最后更新: 2026-06-24 | 整理润色:Hermes