Files
Space.Tab/README.md
T

191 lines
4.5 KiB
Markdown
Raw Normal View History

2025-08-16 14:25:11 +08:00
<p align="center">
<img src="https://www.lingke.ink/wp-content/uploads/2025/08/space-scaled.png" alt="pARPxN8.png" border="0" />
</p>
# Space.Tab
Space.Tab是一个现代化的Web应用程序,提供多种功能,包括用户认证、服务器管理、设备信息收集、天气查询、搜索引擎集成等功能。
## 技术栈
- 前端:Vue 3、Tailwind CSS、GSAP
- 后端:Express.js、MySQL、Redis
- 构建工具:Vite
- 其他:JWT认证、Swagger API文档
2025-08-16 14:48:50 +08:00
## wiki文档
<p align="center">
<a href="https://deepwiki.com/lingke-net/Space.Tab"><img src="https://www.lingke.ink/wp-content/uploads/2025/08/wiki-scaled.png" alt="pARPxN8.png" border="0" /></a>
</p>
2025-08-16 14:25:11 +08:00
## 项目设置
2025-08-16 14:48:50 +08:00
<p align="center">
<img src="https://www.lingke.ink/wp-content/uploads/2025/08/setup-scaled.png" alt="pARPxN8.png" border="0" />
</p>
2025-08-16 14:25:11 +08:00
### 环境要求
- 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
```
## 开发
2025-08-16 14:48:50 +08:00
<p align="center">
<img src="https://www.lingke.ink/wp-content/uploads/2025/08/dev-scaled.png" border="0" />
</p>
2025-08-16 14:25:11 +08:00
启动开发服务器:
```bash
pnpm dev
```
应用将在 http://localhost:3001 (或环境变量中配置的端口) 上运行。
## 构建
2025-08-16 14:48:50 +08:00
<p align="center">
<img src="https://www.lingke.ink/wp-content/uploads/2025/08/build-scaled.png" alt="pARPxN8.png" border="0" />
</p>
2025-08-16 14:25:11 +08:00
构建生产版本:
```bash
pnpm build
```
## 部署
2025-08-16 14:48:50 +08:00
<p align="center">
<img src="https://www.lingke.ink/wp-content/uploads/2025/08/run-scaled.png" border="0" />
</p>
2025-08-16 14:25:11 +08:00
### 标准部署
```bash
# 构建项目
pnpm build
# 启动生产服务器
pnpm start
```
### Docker部署
```bash
# 使用生产环境配置启动Docker容器
pnpm docker
```
## 项目结构
- `src/client/` - 前端Vue应用
- `src/server/` - 后端Express服务器
- `sql/` - 数据库初始化脚本
- `public/` - 静态资源文件
## 环境变量说明
2025-08-16 14:48:50 +08:00
<p align="center">
<img src="https://www.lingke.ink/wp-content/uploads/2025/08/env-scaled.png" alt="pARPxN8.png" border="0" />
</p>
2025-08-16 14:25:11 +08:00
项目使用了多种环境变量来配置不同的功能。请参考`.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` - 极验验证密钥
## 安全注意事项
2025-08-16 14:48:50 +08:00
<p align="center">
<img src="https://www.lingke.ink/wp-content/uploads/2025/08/warning-scaled.png" alt="pARPxN8.png" border="0" />
<img src="https://www.lingke.ink/wp-content/uploads/2025/08/warning-tip-scaled.png" alt="pARPxN8.png" border="0" />
</p>
2025-08-16 14:25:11 +08:00
1. **环境变量文件**
- `.env``.env.*` 文件包含敏感信息,已在`.gitignore`中配置为不上传
- 永远不要将包含实际密钥的环境文件提交到版本控制系统
2. **数据库凭证**
- 生产环境中使用强密码
- 限制数据库用户权限
3. **API密钥**
- 定期轮换第三方服务的API密钥
- 实施适当的访问控制和速率限制
## 贡献指南
2025-08-16 14:48:50 +08:00
<p align="center">
<img src="https://www.lingke.ink/wp-content/uploads/2025/08/gongxian-scaled.png" alt="pARPxN8.png" border="0" />
</p>
2025-08-16 14:25:11 +08:00
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
## 许可证
2025-08-16 14:26:03 +08:00
<p align="center">
2025-08-16 14:48:50 +08:00
<img src="https://www.lingke.ink/wp-content/uploads/2025/08/license-scaled.png" alt="pARPxN8.png" border="0" />
2025-08-16 14:26:03 +08:00
</p>
2025-08-16 14:48:50 +08:00
本项目遵守 GPL-3.0 license 协议,在协议规范内,禁止用于商业用途