189 lines
4.3 KiB
Markdown
189 lines
4.3 KiB
Markdown
# 萌芽个人主页
|
||
|
||
一个现代化的个人主页网站,采用前后端分离架构,支持 Docker 一键部署。
|
||
|
||
## 🚀 快速部署 (Docker)
|
||
|
||
### 一键启动
|
||
|
||
**Windows:**
|
||
```bash
|
||
docker-deploy.bat
|
||
```
|
||
|
||
**Linux/Mac:**
|
||
```bash
|
||
chmod +x docker-deploy.sh
|
||
./docker-deploy.sh
|
||
```
|
||
|
||
**或使用 Docker Compose:**
|
||
```bash
|
||
docker-compose up -d --build
|
||
```
|
||
|
||
**访问应用:**
|
||
- 主页: http://localhost:5000
|
||
- 管理员: http://localhost:5000/admin?token=shumengya520
|
||
|
||
📖 详细文档: [Docker 部署指南](DOCKER_README.md) | [快速开始](QUICKSTART.md)
|
||
|
||
---
|
||
|
||
## 项目简介
|
||
|
||
这是一个功能完整、设计精美的个人主页系统,展示个人信息、全部项目和联系方式。
|
||
|
||
### 特性亮点
|
||
|
||
- 🎨 **现代化设计**: 渐变色背景、流畅动画、精美卡片布局
|
||
- 📱 **响应式布局**: 完美适配桌面端和移动端
|
||
- 🔄 **前后端分离**: React + Python Flask 架构
|
||
- 🐳 **Docker 支持**: 一键部署,开箱即用
|
||
- 💾 **数据持久化**: SQLite(`data/site.db`)+ 管理后台
|
||
- ⚡ **内容管理**: 通过 `/admin` 或 Admin API 维护站点数据
|
||
- 🎯 **三大模块**: 个人信息、全部项目、联系方式
|
||
- 🔐 **权限控制**: 管理员模式隐藏私密项目
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
萌芽个人主页/
|
||
├── mengyaprofile-backend/ # 后端 Python Flask 项目
|
||
│ ├── app.py # Flask 应用主文件
|
||
│ ├── requirements.txt # Python 依赖
|
||
│ └── data/ # SQLite(site.db)与 logo 等静态资源
|
||
│
|
||
└── mengyaprofile-frontend/ # 前端 React 项目
|
||
├── public/ # 静态资源
|
||
├── src/ # 源代码
|
||
│ ├── App.js # 主应用
|
||
│ ├── App.css # 全局样式
|
||
│ └── components/ # 组件目录
|
||
│ ├── ProfileSection.js # 个人信息组件
|
||
│ ├── ProjectsSection.js # 项目展示组件
|
||
│ └── ContactsSection.js # 联系方式组件
|
||
└── package.json # 项目配置
|
||
```
|
||
|
||
## 快速开始
|
||
|
||
### 前置要求
|
||
|
||
- Python 3.7+
|
||
- Node.js 14+
|
||
- npm 或 yarn
|
||
|
||
### 1. 启动后端服务
|
||
|
||
```bash
|
||
# 进入后端目录
|
||
cd mengyaprofile-backend
|
||
|
||
# 安装依赖
|
||
pip install -r requirements.txt
|
||
|
||
# 运行服务
|
||
python app.py
|
||
```
|
||
|
||
后端服务将运行在 `http://localhost:5000`
|
||
|
||
### 2. 启动前端应用
|
||
|
||
```bash
|
||
# 进入前端目录
|
||
cd mengyaprofile-frontend
|
||
|
||
# 安装依赖
|
||
npm install
|
||
|
||
# 启动开发服务器
|
||
npm start
|
||
```
|
||
|
||
前端应用将运行在 `http://localhost:3000`
|
||
|
||
### 3. 访问应用
|
||
|
||
在浏览器中打开 `http://localhost:3000` 即可查看你的个人主页!
|
||
|
||
## 功能模块与数据
|
||
|
||
个人信息、项目列表、联系方式、技术栈等内容均存储在 **`mengyaprofile-backend/data/site.db`**(SQLite),表结构见 `mengyaprofile-backend/schema.sql`。
|
||
|
||
- **浏览**: 首页读取 `/api/all` 等接口。
|
||
- **编辑**: 打开 **`/admin`**(需管理员 token,见后端环境变量 `ADMIN_TOKEN`),在后台表单中维护;或直接调用 `/api/admin/*` 并携带请求头 `X-Admin-Token`。
|
||
|
||
空库首次启动时只会创建最小占位数据(空昵称、默认「技术栈」标题),其余请在管理后台中填写。
|
||
|
||
## 技术栈
|
||
|
||
### 前端
|
||
- React 19
|
||
- CSS3(动画、渐变、响应式布局)
|
||
- Fetch API
|
||
|
||
### 后端
|
||
- Python 3
|
||
- Flask 3.0
|
||
- Flask-CORS(跨域支持)
|
||
|
||
## API 接口
|
||
|
||
后端提供以下 RESTful API:
|
||
|
||
- `GET /api/profile` - 获取个人信息
|
||
- `GET /api/projects` - 获取项目列表
|
||
- `GET /api/contacts` - 获取联系方式
|
||
- `GET /api/all` - 获取所有数据
|
||
|
||
## 部署建议
|
||
|
||
### 后端部署
|
||
|
||
推荐使用以下方式部署后端:
|
||
- Heroku
|
||
- AWS EC2
|
||
- 阿里云 ECS
|
||
- 使用 Gunicorn 作为生产服务器
|
||
|
||
### 前端部署
|
||
|
||
推荐使用以下方式部署前端:
|
||
- Vercel
|
||
- Netlify
|
||
- GitHub Pages
|
||
- Nginx 静态服务器
|
||
|
||
**注意**: 部署前需要修改前端 `src/App.js` 中的 API 地址为生产环境地址。
|
||
|
||
## 浏览器支持
|
||
|
||
- ✅ Chrome(推荐)
|
||
- ✅ Firefox
|
||
- ✅ Safari
|
||
- ✅ Edge
|
||
- ✅ 移动端浏览器
|
||
|
||
## 开发计划
|
||
|
||
- [ ] 添加博客模块
|
||
- [ ] 添加深色模式
|
||
- [ ] 添加多语言支持
|
||
- [ ] 添加后台管理系统
|
||
- [ ] 添加访问统计
|
||
- [ ] 添加留言板功能
|
||
|
||
## 许可证
|
||
|
||
MIT License
|
||
|
||
## 作者
|
||
|
||
萌芽
|
||
|
||
---
|
||
|
||
如有问题或建议,欢迎提 Issue!
|