6 Star 17 Fork 3

skytoup / AppServer

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

AppServer

license

简介

基于Sanic搭建的简单App在线下载、安装服务器。可在线下载安装包, 或者iPhone在线安装ipa。

首页 pic

上传App pic

App详情页 pic

App编辑页 pic

功能

  • RESTful的API
  • 上传apk、ipa文件
  • 下载apk、下载ipa
  • 短链接进入下载页
  • App、版本管理
  • 搜索App
  • HTML更好兼容移动端

更多...

使用

环境

  • Python > 3.5
  • macOS 10.12+
  • centos 6+
  • ubuntu 14.04+
  • 还有其它更多尚未测试...

配置(app/config.py)

Confighost修改为本机地址 配置

运行服务器

源码运行

# linux系统请注意, 需要安装libpng12(centos已测试, 其它系统还没测试), MacOSX系统不需要
`yum install libpng12` # centos
  1. git clone https://github.com/skytoup/AppServer
  2. cd AppServer
  3. gcc vendors/pngdefry/pngdefry.c -o pngdefry # 编译pngdfry
  4. pip install -r requirements.txt # 安装依赖
  5. python main.py # 运行服务器 运行
  6. open https://your_bing_host:8000 # or 打开浏览器, 输入https://{Config的host}:8000, 回车

Docker运行

  1. git clone https://github.com/skytoup/AppServer
  2. cd AppServer
  3. 修改app/config/config.py:BaseConfig.host为需要绑定的ip地址, 设置错误会导致iOS无法在线下载安装ipa
  4. docker build -t app_server ./
  5. docker run -d -p 8000:8000 -v /path/to/data:/www/AppServer/data -v /path/to/log:/www/AppServer/log --name AppServer app_server # or docker run -d -p 8000:8000 --name AppServer app_server
  6. open https://your_bing_host:8000 # or 打开浏览器, 输入https://{Config的host}:8000, 回车

服务器的单元测试

  1. pip install -r requirements_test.txt
  2. pytest -q tests

HTML前端

不是专业前端, 只是简单做了一个非常简陋的, 请勿介意😅

详情请看 👉 传送门: AppServerHTML

https证书

证书使用的是自签证书, 每次修改Confighost后, 会自动重新生成

Tip

  1. 开启服务器后, 需要在地址栏输入的是Config的host, 不能填写127.0.0.1、localhost、0.0.0.0; 还有协议是https, 不是http
  2. iPhone安装ipa需要在App详情的界面里面点击安装证书, 因为证书是自己生成的, 不能免证书安装(iOS9以上系统安装完证书后, 还需要在设置那里信任一下证书, 请参考: 苹果iOS9系统安装应用证书信任操作指导)
  3. centosubuntu安装可能出现的问题 👉 传送门
  4. linux运行aapt需要安装libpng12, centos: yum install libpng12

更详细请看 👉 FAQ

API

基本格式

{
	code: int,  # 请参考👇的表
	ok: bool,  # 是否请求成功
	msg: str,  # 请求返回的信息
	datas: dict/array,  # 请求返回的数据
}
code 描述
0 成功
-1 失败

上传App安装包

POST /upload/app

Form

参数 必填 描述
pcakage y 上传的安装包
msg n 更新说明

返回datas: object or not(上传不存在的App时, 才有返回)

参数 描述
id App的id
type 安装包类型, 0: iOS, 1: Android
name 名称
icon 图标
detail 介绍
short_chain 短链接
package_name 包名
create_at 创建时间

获取App列表

GET /apps/<app_type>/page/<page>?t=<time>
参数 必填 描述
app_type y 安装包的类型: iOS、android、all
page y 页码, 从1开始
time y 当获取第一页时, 为当前时间戳; 获取其它页时, 为获取第一页的时间戳
kw n 按照App名称过滤

返回datas: array

参数 描述
id App的id
type 安装包类型, 0: iOS, 1: Android
name 名称
icon 图标
detail 介绍
short_chain 短链接
package_name 包名
version_name 最后上传安装包的版本名称
version_code 最后上传安装包的版本号
create_at 创建时间

获取App详情

GET /apps/<app_id>
参数 必填 描述
app_id y App的id

返回datas: dict

参数 描述
id App的id
type 安装包类型, 0: iOS, 1: Android
name 名称
icon 图标
detail 介绍
short_chain 短链接
package_name 包名
create_at 创建时间

删除整个App(文件也删除)

DELETE /apps/<app_id>
参数 必填 描述
app_id y App的id

返回datas: 无

参数 描述

修改App信息

PUT /apps/<app_id>

Json

参数 必填 描述
app_id y App的id
- - -
name n 名称
short_chain n 短链
detail n 简介

返回datas: 无

参数 描述

获取App的版本列表

GET /apps/<app_id>/versions/page/<page>?t=<time>
参数 必填 描述
app_id y App的id
page y 页码, 从1开始
time y 当获取第一页时, 为当前时间戳; 获取其它页时, 为获取第一页的时间戳

返回的datas: array

参数 描述
id App Version的id
app_id App的id
version_name 版本名
version_code 版本号
package 安装包下载地址
size 安装包大小
update_msg 更新信息
create_at 创建时间
plist plist下载地址, App类型为iOS时, 才有此字段

删除App的某个版本

DELETE /apps/<app_id>/versions/<app_version_id>
参数 必填 描述
app_id y App的id
app_version_id y App Version的id

返回datas: 无

参数 描述

版本更新 👉 传送门

使用的开源项目

相关文章

讨论&贡献

qq

联系方式

捐献(请喝杯咖啡, 我是不会拒绝的😄)

支付宝

alipay

微信

wx

MIT License Copyright (c) 2017 skytoup Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

在线下载、安装App的服务器 展开 收起
Python
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/skytoup/AppServer.git
git@gitee.com:skytoup/AppServer.git
skytoup
AppServer
AppServer
master

搜索帮助