# Space.Tab
Space.Tab是一个现代化的Web应用程序,提供多种功能,包括用户认证、服务器管理、设备信息收集、天气查询、搜索引擎集成等功能。
## 技术栈
- 前端:Vue 3、Tailwind CSS、GSAP
- 后端:Express.js、MySQL、Redis
- 构建工具:Vite
- 其他:JWT认证、Swagger API文档
## 项目设置
### 环境要求
- Node.js (推荐v18+)
- MySQL
- Redis
- PNPM (推荐v10+)
### 安装依赖
```bash
# 安装依赖
pnpm install
```
### 环境变量配置
1. 复制环境变量示例文件作为基础
```bash
cp .env.example .env
```
2. 编辑`.env`文件,填入你的实际配置信息:
- 数据库连接信息(MySQL和Redis)
- API密钥(高德地图、极验验证等)
- JWT密钥
- 其他应用配置
### 数据库初始化
1. 确保MySQL服务已启动
2. 创建数据库并导入初始数据
```bash
mysql -u your_username -p < sql/spacetab-data.sql
```
## 开发
启动开发服务器:
```bash
pnpm dev
```
应用将在 http://localhost:3001 (或环境变量中配置的端口) 上运行。
## 构建
构建生产版本:
```bash
pnpm build
```
## 部署
### 标准部署
```bash
# 构建项目
pnpm build
# 启动生产服务器
pnpm start
```
### Docker部署
```bash
# 使用生产环境配置启动Docker容器
pnpm docker
```
## 项目结构
- `src/client/` - 前端Vue应用
- `src/server/` - 后端Express服务器
- `sql/` - 数据库初始化脚本
- `public/` - 静态资源文件
## 环境变量说明
项目使用了多种环境变量来配置不同的功能。请参考`.env.example`文件了解所有可用的配置选项。关键配置包括:
### 基础配置
- `NODE_ENV` - 运行环境(development/production)
- `PORT` - 服务器端口
### 数据库配置
- `MYSQL_HOST` - MySQL主机地址
- `MYSQL_PORT` - MySQL端口
- `MYSQL_USER` - MySQL用户名
- `MYSQL_PASSWORD` - MySQL密码
- `MYSQL_DATABASE` - MySQL数据库名
### Redis配置
- `REDIS_HOST` - Redis主机地址
- `REDIS_PORT` - Redis端口
- `REDIS_PASSWORD` - Redis密码
- `REDIS_DATABASE` - Redis数据库索引
### 认证配置
- `JWT_SECRET` - JWT签名密钥
- `JWT_EXPIRES_IN` - JWT过期时间
### 第三方服务配置
- `VITE_MAMP_KEY` - 高德地图API密钥
- `VITE_GEETEST_CAPTCHA_ID` - 极验验证ID
- `VITE_GEETEST_CAPTCHA_KEY` - 极验验证密钥
## 安全注意事项
1. **环境变量文件**:
- `.env`、`.env.*` 文件包含敏感信息,已在`.gitignore`中配置为不上传
- 永远不要将包含实际密钥的环境文件提交到版本控制系统
2. **数据库凭证**:
- 生产环境中使用强密码
- 限制数据库用户权限
3. **API密钥**:
- 定期轮换第三方服务的API密钥
- 实施适当的访问控制和速率限制
## 贡献指南
1. Fork项目
2. 创建功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交更改 (`git commit -m 'Add some amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 创建Pull Request
## 许可证
本项目遵守 GPL-3.0 license 协议,在协议规范内,禁止用于商业用途