- Docker & Docker Compose 已安装
- 足够的磁盘空间(约2GB)
-
启动所有服务
docker-compose up -d
-
初始化数据库(第一次运行时)
docker-compose exec backend npm run seed -
访问应用
http://localhost -
查看日志
docker-compose logs -f
-
停止服务
docker-compose down
- Node.js 18+
- MongoDB 6.0+
- npm 或 yarn
-
克隆项目
git clone https://github.com/kemomi/SakuraTime.git cd SakuraTime -
配置环境变量
cat > .env << EOF
MONGODB_URI=mongodb://127.0.0.1:27017/sakura PORT=3000 JWT_SECRET=dev-secret-key-change-in-production NODE_ENV=development EOF
3. **安装后端依赖**
```bash
npm install
-
安装前端依赖
cd client npm install cd ..
-
启动 MongoDB(如果未运行)
# macOS (使用 Homebrew) brew services start mongodb-community # Windows (使用 Docker) docker run -d -p 27017:27017 --name mongodb mongo:6.0 # Linux sudo systemctl start mongod
-
初始化数据库
npm run seed
-
启动开发服务器
终端 1 - 后端服务
npm run dev
输出应该显示:
樱花时刻服务运行在端口 3000终端 2 - 前端应用
cd client npm run client输出应该显示:
On Your Network: http://192.168.x.x:3000 -
打开浏览器
http://localhost:3000
A: 检查 MongoDB 是否运行
# 测试连接
mongosh mongodb://127.0.0.1:27017/sakura如果连接失败,使用 Docker 启动 MongoDB:
docker run -d -p 27017:27017 --name mongo mongo:6.0A: 检查后端是否运行在 3000 端口
curl http://localhost:3000/api/health应该返回:{"status":"OK","timestamp":"2024-..."}
A: 使用 MongoDB GUI 工具
# 安装 MongoDB Compass (GUI工具)
# 连接到 mongodb://127.0.0.1:27017A:
# 删除所有数据
npm run seedsakura-time/
├── server.js # 后端服务器
├── src/ # 后端代码
│ ├── models/ # 数据库模型
│ ├── routes/ # API路由
│ └── utils/ # 工具函数
├── client/ # 前端 React 应用
│ └── src/
│ ├── pages/ # 页面组件
│ └── App.js # 主应用
└── docker-compose.yml # Docker 配置
-
创建数据模型
# 在 src/models/ 中创建新模型 vim src/models/MyModel.js -
创建路由
# 在 src/routes/ 中创建新路由 vim src/routes/myroute.js -
在 server.js 中注册路由
const myRoutes = require('./src/routes/myroute'); app.use('/api/myroute', myRoutes);
-
测试 API
curl http://localhost:3000/api/myroute
-
创建页面组件
vim client/src/pages/MyPage.js
-
在 App.js 中添加路由
import MyPage from './pages/MyPage'; // 在 <Routes> 中添加 <Route path="/mypage" element={<MyPage />} />
-
在导航中添加链接 在 AppBar 中添加导航链接
- 更新环境变量
cat > .env << EOF
MONGODB_URI=mongodb://user:password@mongodb:27017/sakura?authSource=admin PORT=3000 JWT_SECRET=your-secure-random-string-here NODE_ENV=production EOF
2. **构建镜像**
```bash
docker-compose build
-
启动服务
docker-compose up -d
-
检查服务状态
docker-compose ps docker-compose logs -f
# 查看实时日志
docker-compose logs -f backend
# 重启服务
docker-compose restart backend
# 备份数据库
docker-compose exec mongodb mongodump --out /backup
# 恢复数据库
docker-compose exec mongodb mongorestore /backup- 启用 MongoDB 索引 - 已在模型中配置
- 启用 Gzip 压缩 - 已在 Nginx 中配置
- 使用 CDN - 为静态资源配置 CDN
- 缓存策略 - 实现 Redis 缓存层
- ✅ 初始版本发布
- ✅ 核心功能完成
- ✅ Docker 支持
- ✅ 用户认证系统
- 📖 查看完整文档:PROJECT_STRUCTURE.md
- 🐛 提交 Issue:https://github.com/kemomi/SakuraTime/issues
- 💬 讨论:https://github.com/kemomi/SakuraTime/discussions
祝您使用樱花时刻愉快! 🌸