cd store
# 安装依赖
pip install -r requirements.txt
# 配置环境变量 (复制并修改)
cp .env.example .env
# 初始化数据库
mysql -u root -p tappocloud < schema.sql
# 启动服务
uvicorn app.main:app --host 0.0.0.0 --port 8000
cd store/admin
# 安装依赖
npm install
# 开发模式
npm run dev
# 生产构建
npm run build
adminadmin123重要: 生产环境请立即修改密码!
创建 store/.env 文件:
TAPPO_DEBUG=false
TAPPO_DB_HOST=localhost
TAPPO_DB_PORT=3306
TAPPO_DB_USER=root
TAPPO_DB_PASSWORD=your_password
TAPPO_DB_NAME=tappocloud
# JWT 配置 (生产环境必须修改!)
TAPPO_JWT_SECRET=your-super-secret-key-change-me
TAPPO_JWT_EXPIRE_HOURS=24
# 存储配置
TAPPO_STORAGE_BASE_URL=https://app.tappo.dev/storage
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/v1/admin/login |
管理员登录 |
| POST | /api/v1/admin/apps/upload |
上传应用 (需认证) |
| GET | /api/v1/apps |
获取应用列表 |
| GET | /api/v1/apps/{app_uid} |
获取应用详情 |
| GET | /api/v1/apps/{app_uid}/download |
获取下载信息 |
http://localhost:3000/login (开发) 或生产地址cd store/scripts
# 发布单个应用
python publish.py your-app-v1.0.0.zip
# 批量发布
python publish.py app1.zip app2.zip app3.zip
# 指定 API 地址 (默认 https://app.tappo.dev)
python publish.py your-app.zip --api http://localhost:8000
# 登录获取 token
TOKEN=$(curl -s -X POST https://app.tappo.dev/api/v1/admin/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin123"}' | jq -r '.token')
# 上传应用
curl -X POST https://app.tappo.dev/api/v1/admin/apps/upload \
-H "Authorization: Bearer $TOKEN" \
-F "file=@your-app-v1.0.0.zip"
ZIP 包根目录必须包含 app.yml:
id: my-app # 必填,应用唯一标识 (小写字母、数字、连字符)
version: 1.0.0 # 必填,语义化版本号
name:
zh-CN: 我的应用
en-US: My App
type: community # system | community | external
category: tool # security | productivity | tool | ai | data | integration
author: Your Name
description:
zh-CN: 应用描述
en-US: App description
store/
├── app/ # FastAPI 后端
│ ├── main.py # 应用入口
│ ├── config.py # 配置管理
│ ├── auth.py # JWT 认证
│ ├── models.py # 数据库模型
│ ├── database.py # 数据库连接
│ └── routers/
│ ├── admin.py # 管理员 API
│ ├── apps.py # 应用 API
│ └── categories.py # 分类 API
├── admin/ # Vue 前端
│ ├── src/
│ │ ├── views/
│ │ │ ├── Login.vue # 登录页
│ │ │ └── Dashboard.vue # 上传管理页
│ │ ├── services/api.js # API 服务
│ │ └── router/index.js # 路由配置
│ └── package.json
├── scripts/ # 命令行工具
│ ├── publish.py # Python 发布脚本
│ ├── publish.sh # Bash 发布脚本
│ └── publish.bat # Windows 发布脚本
├── storage/ # 应用包存储目录
├── schema.sql # 数据库初始化脚本
├── requirements.txt # Python 依赖
└── .env.example # 环境变量示例