# APKRelease **Repository Path**: tongfu/apkrelease ## Basic Information - **Project Name**: APKRelease - **Description**: APK管理平台 - **Primary Language**: CSS - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-12 - **Last Updated**: 2026-05-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # APK管理平台 公司内部 Android APK 分发管理平台,支持 APK 上传、版本管理、扫码下载、数据统计等功能。 ## 技术栈 | 层级 | 技术 | |------|------| | 前端 | Vue 3 + Vite + Element Plus + Pinia | | 后端 | Python 3.14 + FastAPI + SQLAlchemy 2.0 | | 数据库 | MySQL 8.0 (远程) | | 认证 | JWT (Access Token + Refresh Token) | | APK解析 | androguard | | 二维码 | python-qrcode + Pillow | ## 功能特性 - **APK管理**:上传 APK 自动解析元数据(包名、版本号、图标、SDK 等) - **版本管理**:支持多版本管理,versionCode 直接取自 APK 文件 - **扫码下载**:每个版本生成独立短链接和二维码,手机扫码即可下载 - **RBAC权限**:admin / manager / user 三级角色权限控制 - **数据看板**:下载趋势、TOP 排行、今日统计等可视化图表 - **操作日志**:关键操作自动记录审计日志 - **自定义文件名**:上传时自动提取 APK 文件名,下载时使用该名称 - **时区适配**:所有时间统一显示为 UTC+8 东八区时间 ## 项目结构 ``` APKRelease/ ├── backend/ # 后端 (FastAPI) │ ├── app/ │ │ ├── api/ # API 路由 │ │ ├── middleware/ # 认证中间件 │ │ ├── models/ # 数据模型 │ │ ├── schemas/ # Pydantic Schema │ │ ├── utils/ # 工具函数 │ │ ├── config.py # 配置管理 │ │ ├── database.py # 数据库连接 │ │ └── main.py # FastAPI 入口 │ ├── init_db.py # 数据库初始化脚本 │ ├── requirements.txt # Python 依赖 │ └── Dockerfile │ ├── frontend/ # 前端 (Vue 3) │ ├── src/ │ │ ├── components/ # 通用组件 (AppLogo, UploadDialog 等) │ │ ├── layouts/ # 布局 (MainLayout, AdminLayout) │ │ ├── router/ # 路由配置 │ │ ├── stores/ # Pinia 状态管理 │ │ └── views/ # 页面视图 │ ├── package.json │ └── vite.config.js │ ├── data/ # 持久化数据 (APK文件、图标) ├── docker-compose.yml # Docker 部署编排 ├── nginx/nginx.conf # Nginx 配置 ├── 启动服务.bat # Windows 一键启动脚本 └── PROJECT_PLAN.md # 项目规划文档 ``` ## 快速开始 ### 方式一:一键启动(推荐) 双击运行项目根目录下的 `启动服务.bat`,脚本会自动: 1. 检查并释放端口(后端 8000,前端 3000) 2. 检查 Python / Node.js 环境(缺失时自动下载 Node.js) 3. 安装依赖 4. 启动后端和前端服务 5. 自动打开浏览器 ### 方式二:手动启动 **环境要求:** - Python 3.14+ - Node.js 18+ - MySQL 8.0(远程 120.78.220.5:3306 / test_tf) **启动后端:** ```bash cd backend python -m venv venv venv\Scripts\activate # Windows pip install -r requirements.txt python init_db.py # 首次运行,初始化数据库表 uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload ``` **启动前端:** ```bash cd frontend npm install npm run dev ``` 前端开发服务器运行在 `http://localhost:3000`,API 请求自动代理到后端 `http://localhost:8000`。 ### 方式三:Docker 部署 ```bash docker-compose up -d --build ``` ## 默认账号 | 角色 | 用户名 | 密码 | |------|--------|------| | 管理员 | admin | admin123 | ## 访问地址 | 页面 | 地址 | |------|------| | 前台首页 | http://localhost:3000/ | | 管理后台 | http://localhost:3000/admin | | API 文档 | http://localhost:8000/docs | | 下载落地页 | http://localhost:3000/d/{short_code} | ## API 概览 | 模块 | 前缀 | 说明 | |------|------|------| | 认证 | `/api/v1/auth` | 登录、Token 刷新、密码修改 | | 应用 | `/api/v1/apps` | 应用 CRUD、版本上传、二维码 | | 下载 | `/api/v1/download` | 短链接下载页、文件下载 | | 统计 | `/api/v1/stats` | 总览、趋势、排行 | | 管理 | `/api/v1/admin` | 用户管理 | | 审计 | `/api/v1/audit` | 操作日志查询 | 完整 API 文档访问 http://localhost:8000/docs(Swagger UI)。 ## 角色权限 | 功能 | admin | manager | user | |------|:-----:|:-------:|:----:| | 管理后台 | ✅ | ❌ | ❌ | | 创建/上传应用 | ✅ | ✅ | ❌ | | 编辑应用信息 | ✅ | ✅ (自己的) | ❌ | | 浏览应用列表 | ✅ | ✅ | ✅ | | 下载 APK | ✅ | ✅ | ✅ | | 查看统计数据 | ✅ | ✅ | ❌ | | 操作日志 | ✅ | ❌ | ❌ | ## 环境变量 在 `backend/` 目录下创建 `.env` 文件可覆盖默认配置: ```env MYSQL_HOST=120.78.220.5 MYSQL_PORT=3306 MYSQL_USER=root MYSQL_PASSWORD=ileadtek MYSQL_DATABASE=test_tf JWT_SECRET_KEY=your_jwt_secret_key_here JWT_ACCESS_TOKEN_EXPIRE_MINUTES=120 JWT_REFRESH_TOKEN_EXPIRE_DAYS=7 UPLOAD_DIR=./data/apks ICON_DIR=./data/icons MAX_UPLOAD_SIZE_MB=500 PLATFORM_NAME=APK管理平台 PLATFORM_URL=http://localhost:80 ``` ## License Internal Use Only - 仅供公司内部使用