目的
开发app时,在团队内测,或者给客户体验时,app的安装分发比较频繁,尤其IOS还比较麻烦。之前也用过第三方的内测分发托管平台,比如:蒲公英。不过限制较多,有时也有一些不便。通过搜索发现可以自己搭建这样一个平台,这里总结记录一下。
准备
- docker,主服务是docker部署的。拉取镜像:
docker pull dudurpg/ipapk:latest
- nginx,安装包下载需要通过nginx,nginx配置路径指向安装包存放的目录
- mysql,ipapk需要将元数据存到数据库种
- 外网IP,域名,SSL证书。不是必须的,不过最好有,用于ios分发时也更方便
部署
主服务
- docker-compose.yml
version: '2.1'
services:
ipapk:
image: dudurpg/ipapk:latest
volumes:
- ./files:/data/files
ports:
- "7890:7890"
restart: always
environment:
IPAPK_DB_HOST: 192.168.1.144:4306
IPAPK_DB_USER: root
IPAPK_DB_PASSWORD: zxcASDqwe!@#
IPAPK_DB_NAME: ipapk
WEBHOOK: xxx
WEWORK_BOT: xxx
SOURCE_URL: https://app.good365.net/
ACCESS_KEY: abcdefg
- ACCESS_KEY:通过api上传app安装包时使用。
上述配置的安装包存放路径为/data/compose/25/files
,也可以自己指定主机上的目录,并且用于下面nginx的配置- 数据库会自动创建表
- 启动服务
docker-compose up -d iapk
- nginx配置
server {
listen 80;
server_name app.good365.net iapp.good365.net;
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/nginx/ssl/good365/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/good365/privkey.pem;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:7890/; #本机7890端口已映射到容器端口,也可以是容器ip
}
location /static/files {
alias /data/compose/25/files; #文件存放目录
}
}
nginx反向代理到主服务,/static/files路径指向文件存放目录。
- 浏览器访问
iphone: https://app.good365.net/ios
android: https://app.good365.net/apk
- 安装包上传
curl -X POST \
-H "Accesskey:abcdefg" \
-F "message=gamebox" \
-F "file=@app/build/outputs/apk/release/app-release.apk" \
https://iapp.good365.net:6443/upload
- 相关文档:
gitlab-ci自动打包发布apk