一个app管理平台-app-host的搭建_apphost-程序员宅基地

技术标签: app  app管理  

一、有幸结缘

最近IOS的同事遇到一个烦恼:之前他们的测试包都是上传到蒲公英等开放平台进行下载的,但是现在好像要手拿身份证拍照进行身份的验证,于是IOS同事们就不乐意了,开始疯狂的diss:这要是拿着我的照片去网贷,那我不是惨了啊,…

于是就开始在github上查找开源的,用于发布测试版本的app的管理平台。在看了几个星星比较多的项目之后,觉得app-host这个项目很合我意。于是就克隆下来项目进行安装,原项目的地址为https://github.com/pluosi/app-host

为了防止版本的变化带来的安装步骤的改变,我这里直接fork了作者的项目到自己的github中,地址为https://github.com/wangchaoforever/app-host.git,我这里安装的时间为2020年3月10号。

二、安装步骤

其实安装的步骤,在作者的README中已经写的很详细了,安装有两种方法:
1)通过docker运行
2)通过源码运行

像我这样追求高大上(装B)的,当然是通过docker运行了。但是在安装运行的过程中,发现和作者README中的方法有些许的出入,所以在这里做一下记录。

1、安装docker

这个不多说了,详见Docker学习–安装Docker

2、克隆、修改配置文件、运行

在这里先做一下介绍,因为IOS安装需要的时候必须是https协议的,所以我就在我们的阿里云的测试环境中搭建这个平台,在安装好这个平台之后,前面再用一个nginx作为代理来实现ssl,很完美。

[root@test-1 ~]# cd /usr/local/src
[root@test-1 src]# git clone https://github.com/pluosi/app-host.git
[root@test-1 src]# cd app-host
[root@test-1 app-host]# cp config/settings.local.example.yml config/settings.local.yml

#修改 config/settings.local.yml 中 `PROTOCOL` 和 `HOST` ,因为是正式使用,所以这里设置成https协议的
PROTOCOL: "https://"
HOST: "appledown.xxxxxx.com"

#然后修改一下启动文件docker/launcher
local_port=13000   #我这里3000端口已经被占用了,所以改成13000
把第135行的docker run启动命令中-h $container_name去掉,不然启动会有问题

#根据模板进行引导容器,这个步骤依赖网络,需要花费点时间进行镜像的拉取,如果网络不稳定报错了,可以重试
[root@test-1 app-host]# ./docker/launcher bootstrap -v 
当最后出现`[2020-03-10 17:49:19] Image built.`说明安装成功了。

#启动
[root@test-1 app-host]# ./docker/launcher start

#用docker ps查看下
[root@test-1 app-host]# docker ps 
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                     NAMES
ad9580ae4a1f        local_pluosi/app_host:0.1.1   "/bin/sh -c '/bin/ba…"   11 seconds ago      Up 9 seconds        0.0.0.0:13000->8686/tcp   app_host
3、配置nginx

因为测试环境本来就有一个nginx在的,所以直接加一个vhost就行了

   server{
    
        listen 80; 
        server_name appledown.xxxxxx.com;
        rewrite ^(.*) https://$server_name$1 permanent;
    }  


    server {
    
        listen       443;
        server_name  appledown.xxxxxx.com;
        ssl on; 
        ssl_certificate   cert/appledown.xxxxxx.com.pem;
        ssl_certificate_key  cert/appledown.xxxxxx.com.key;
        ssl_session_timeout 5m; 
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on; 

        client_max_body_size 100m;
        client_body_buffer_size 128k;
        proxy_connect_timeout 75;
        proxy_send_timeout 75;
        proxy_read_timeout 75;
        proxy_buffer_size 4k;
        proxy_buffers 4 32k;

        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';


        location / {
    
            proxy_redirect    off;
            proxy_set_header  Host             $http_host;
            proxy_set_header  X-Real-IP        $remote_addr;
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header  X-Forwarded-Proto $scheme;
            proxy_set_header  X-Forwarded-Ssl on; # Optional
            proxy_set_header  X-Forwarded-Port $server_port;

            if (!-f $request_filename) {
    
                proxy_pass http://192.168.0.158:13000;
            }
        }

    }

注意:根据自己的app包的大小在nginx中设置client_max_body_size的大小,不设置的话,上传会报错!!!
别忘了reload一下nginx。

4、创建用户

搭建好之后,在浏览器中输入域名,就可以直接来到添加用户的页面。

在这里插入图片描述

输入邮箱和密码,就可以创建管理员了。

然后点击右上角的"管理"进行登录,登录之后,就是我们想要的管理页面了,开始放飞自我吧!

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wc1695040842/article/details/104798837

智能推荐

JDOM-程序员宅基地

文章浏览阅读57次。JDOM是一种使用 XML(标准通用标记语言下的一个子集) 的独特 Java 工具包,。它的设计包含 Java 语言的语法乃至语义。概述编辑JDOM是两位著名的 Java 开发人员兼作者,Brett Mclaughlin 和 Jason Hunter 的创作成果, 2000 年初在类似于Apache协议的许可下,JDOM作为一个开放源代码项目正式开始研发了。它已成长为包含来自...

LangChain-Chatchat学习资料-Windows开发部署(踩坑篇)_int4weightextractionhalf-程序员宅基地

文章浏览阅读832次。1.[LangChain-Chatchat学习资料-简介]2.[LangChain-Chatchat学习资料-Windows开发部署]3.[LangChain-Chatchat学习资料-Windows开发部署(踩坑篇)]4.LangChain-Chatchat学习资料-Ubuntu安装Nvidia驱动和CUDA5.LangChain-Chatchat学习资料-Ubuntu开发部署6.LangChain-Chatchat学习资料-Ubuntu开发部署(踩坑篇)_int4weightextractionhalf

字符串匹配的KMP算法_字符串匹配kmp算法时间复杂度-程序员宅基地

文章浏览阅读458次。字符串匹配是计算机的基本任务之一。举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著名科学家Donald Knuth。这种算法不太容易理解,网上有很多解释,但读起来都很_字符串匹配kmp算法时间复杂度

关于ElementUI中级联选择器选择内容时出现空白的情况_element级联选择器空白框-程序员宅基地

文章浏览阅读6.5k次。关于ElementUI中级联选择器选择内容时出现空白的情况使用ElementUI中级联选择器进行某些数据的选择时,发现最后一级是空白的页的情况,如下图所示:原因分析通过查看请求中的响应我们发现,响应数据中存在children为[]空数组的情况,而在ElementUI中的级联选择器里,[]会被解析为空白数据进行展示,因此,前端人员在接受到后端开发人员返回的数据时,需要将children为[..._element级联选择器空白框

Sqoop ERROR metastore.GenericJobStorage: Cannot restore job-程序员宅基地

文章浏览阅读613次,点赞2次,收藏2次。我的环境为 CDH 6.2 sqoop1.4.7 出现这个错误。我这里不考虑没有创建JOB的情况。因为,我已经创建几次job。同时我执行运行job时,有时可以运行,有时不可以运行。20/04/27 10:22:41 ERROR metastore.GenericJobStorage: Cannot restore job: acc_account_ply_base_job20/04/27 10..._error metastore.genericjobstorage: cannot restore job: myjob_incremental_imp

git基本命令的使用以及使用原理的总结-程序员宅基地

文章浏览阅读574次,点赞11次,收藏23次。由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容,详细完整版的JavaScript面试题文档,或更多前端资料可以点此处即可获取!!!。来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)[外链图片转存中…(img-MRz3uxG8-1711663304128)][外链图片转存中…(img-lOUaHxYh-1711663304129)]

随便推点

Sci-Hub的URL使用_scihub url-程序员宅基地

文章浏览阅读2.7k次。目录标题@[TOC](目录标题)借鉴文章出处URL就是出版商的文章页面路径,要把文章的全部网址复制到Sci-Hub主页的搜索框进行搜索。_scihub url

如何从零将vue+springboot项目打包部署到云服务器(亲测,图文教程超详细!!)_spring boot vue 部署 图解-程序员宅基地

文章浏览阅读5.2k次,点赞30次,收藏115次。手把手教如何将个人项目部署到云服务器(超详细!!)步骤目录手把手教如何将个人项目部署到云服务器(超详细!!)前言一、云服务器设置1.1 首先去购买一个云服务器,阿里或腾讯,具体步骤就不讲了1.2 拿到服务器后先修改密码1.3 修改服务器安全组策略1.4 远程连接云服务器二、远程服务器环境配置2.1 安装jdk(1) 将Linux系统下自带JDK(如果原先安装过,无则忽略)的删除(2) JDK11的安装(3) 设置JAVA_HOME2.2 安装配置MySQL(1)下载mysql(2)卸载Maria DB_spring boot vue 部署 图解

Docker容器—Windows下的安装与使用_docker windows容器-程序员宅基地

文章浏览阅读5.8k次,点赞3次,收藏12次。Docker容器—Windows下的安装与使用_docker windows容器

云原生数据库性能对比(阿里云、百度智能云、腾讯云)-程序员宅基地

文章浏览阅读1.7k次,点赞27次,收藏27次。SysBench 是一个跨平台且支持多线程的模块化基准测试工具,用于评估系统在运行高负载的数据库时相关核心参数的性能表现。可绕过复杂的数据库基准设置,甚至在没有安装数据库的前提下,快速了解数据库系统的性能。

CAS单点登录6 - 服务端自定义返回的用户信息_如何获取单点登录自定义得值-程序员宅基地

文章浏览阅读3.9k次。原理返回的用户信息是在deployerConfigContext.xml中的配置的既然想自定义返回的用户信息,那么继承org.jasig.services.persondir.support.StubPersonAttributeDao就好了1、创建com.jadyer.sso.authentication extends StubPersonAttributeDao并复写getPer..._如何获取单点登录自定义得值

5G/NR 学习笔记: 3GPP 物理层概述38.201_3gpp物理层流程-程序员宅基地

文章浏览阅读6.4k次,点赞7次,收藏40次。物理信道和调制方式下行信道:PDSCH,PDCCH,PBCH 上行信道:PRACH,PUSCH,PUCCH下行调制:QPSK,16QAM,64QAM,256QAM 上行调制:QPSK,16QAM,64AQM,256QAM for OFDM with a CP;π/2-BPSK, QPSK, 16QAM, 64QAM and 256QAM for DFT-s-OFDM with a CP..._3gpp物理层流程