# py-music **Repository Path**: Metaverse_sgb/py-music ## Basic Information - **Project Name**: py-music - **Description**: 此为音乐网站,我的个人私有网站 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-11 - **Last Updated**: 2025-02-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 音乐网站项目 基于 Vue 3 + TypeScript 的音乐网站,采用Docker容器化部署,支持自动化运维。 ## 技术栈 ### 前端 - Vue 3 - TypeScript - Pinia (状态管理) - Vue Router - Element Plus (UI组件库) - Sass (样式预处理器) ### 后端 - Node.js - PostgreSQL (数据库) - Redis (缓存) - Nginx (负载均衡) ### 运维 - Docker + Docker Compose - Prometheus (监控) - Grafana (可视化) - AlertManager (告警) ## 项目结构 bash . ├── src/ # 前端源码 │ ├── api/ # API接口 │ ├── assets/ # 静态资源 │ ├── components/ # 公共组件 │ ├── layouts/ # 布局组件 │ ├── router/ # 路由配置 │ ├── stores/ # 状态管理 │ ├── styles/ # 全局样式 │ ├── types/ # 类型定义 │ ├── utils/ # 工具函数 │ └── views/ # 页面组件 ├── server/ # 后端源码 ├── docker/ # Docker配置 ├── deploy/ # 部署脚本 └── docs/ # 项目文档 ## 快速开始 ### 环境要求 - Docker 20.10+ - Docker Compose 2.0+ - Git - Node.js 16+ (开发环境) ### 部署步骤 1. 克隆仓库: bash git clone https://github.com/99Earlysummer/py-music.git cd py-music 2. 配置环境变量: ```bash cp .env.example .env # 编辑 .env 文件,配置必要的环境变量 ``` 3. 一键部署: ```bash # 给脚本添加执行权限 chmod +x init-db.sh chmod +x deploy-all.sh # 清理所有容器和卷 docker-compose down -v docker system prune -f docker volume prune -f # 重新启动 ./deploy-all.sh ``` --- 1、git拉取代码 2、在根目录启动服务 docker-compose up -d db redis 3、在py-music/server目录下 npm install express cors docker-compose up -d api 4、在py-music目录下 安装插件:npm install vite-plugin-pwa --save-dev 安装依赖:npm install 启动项目:npm run dev/serve --- ## 服务访问 部署完成后可访问以下服务: | 服务 | 地址 | 说明 | |-----|------|-----| | 前端网站 | http://localhost | 音乐网站主页 | | API服务 | http://localhost:3000 | RESTful API | | Grafana | http://localhost:3001 | 监控面板 | | Prometheus | http://localhost:9090 | 监控数据 | | AlertManager | http://localhost:9093 | 告警管理 | ## API文档 ### 用户相关 #### 登录 - 请求: `POST /api/auth/login` - 参数: ```json { "username": "string", "password": "string" } ``` #### 注册 - 请求: `POST /api/auth/register` - 参数: ```json { "username": "string", "password": "string", "email": "string" } ``` ### 音乐相关 #### 获取歌曲列表 - 请求: `GET /api/songs` - 参数: ```json { "page": "number", "limit": "number", "category": "string", "sort": "hot|new" } ``` #### 获取歌单详情 - 请求: `GET /api/playlists/:id` - 响应: ```json { "id": "number", "name": "string", "cover": "string", "description": "string", "songs": "Song[]" } ``` 更多API详见 [API文档](./docs/api.md) ## 开发指南 ### 本地开发 1. 安装依赖: ```bash npm install ``` 2. 启动开发服务器: ```bash npm run dev ``` 3. 构建生产版本: ```bash npm run build ``` ### Docker开发环境 使用Docker Compose启动开发环境: ```bash docker-compose -f docker-compose.dev.yml up ``` ## 监控告警 ### Grafana仪表板 默认包含以下仪表板: - 系统监控 - 应用性能 - 业务指标 - 错误日志 访问 http://localhost:3001 (默认账号: admin/admin) ### 告警规则 - CPU使用率 > 80% - 内存使用率 > 80% - API响应时间 > 2s - 错误率 > 1% 告警通知支持: - Slack - Email - Webhook ## 自动化运维 ### 自动备份 配置定时备份: ```bash # 编辑crontab crontab -e # 添加定时任务(每天凌晨3点执行) 0 3 * * * /path/to/auto-backup.sh ``` ### 日志管理 日志文件位置: - Nginx: `/logs/nginx/` - API: `/logs/api/` - PostgreSQL: `/logs/postgres/` ### 扩容说明 1. 扩展API实例: ```bash docker-compose up -d --scale api=5 ``` 2. 扩展数据库: 配置主从复制,详见 [数据库扩容文档](./docs/db-scale.md) ## 常见问题 1. 部署失败 - 检查环境变量配置 - 检查端口占用 - 查看服务日志 2. 服务无法访问 - 检查防火墙设置 - 确认服务状态 - 查看nginx配置 ## 维护团队 - 后端: @backend-team - 前端: @frontend-team - 运维: @ops-team ## 贡献指南 1. Fork 项目 2. 创建功能分支 3. 提交代码 4. 发起 Pull Request 详见 [贡献指南](./CONTRIBUTING.md) ## 开源协议 [MIT License](./LICENSE)