{"id":14984622,"url":"https://github.com/appspa/app-space","last_synced_at":"2025-05-16T01:04:56.090Z","repository":{"id":41563593,"uuid":"280132722","full_name":"appspa/app-space","owner":"appspa","description":"应用内网发布分发测试部署管理平台版本管理类似蒲公英蒲公英 类似fir.im fir App publish IOS超级签名免签 开源| https://app-space.up.railway.app |APP增量热更新| 支持iOS、Android、flutter、 react-native更新摇一摇提Bug SDK 提供自动化部署jenkins fastlane 丰富组件库 安卓苹果发布发版publish 管理发发布适用于企业手机应用内测服务应用内测托管的平台开源","archived":false,"fork":false,"pushed_at":"2024-08-08T02:29:48.000Z","size":312006,"stargazers_count":1226,"open_issues_count":6,"forks_count":209,"subscribers_count":39,"default_branch":"develop","last_synced_at":"2025-04-08T11:12:46.451Z","etag":null,"topics":["android","app-host","appspace","bugtags","code-push","code-push-server","fir","flutter","jenkins","pgyer","react-native","sdk"],"latest_commit_sha":null,"homepage":"https://app-space.up.railway.app","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/appspa.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-16T11:10:09.000Z","updated_at":"2025-04-08T02:34:11.000Z","dependencies_parsed_at":"2024-04-29T11:49:33.794Z","dependency_job_id":"ff21ed46-391e-4236-a2b8-764c656f0ac9","html_url":"https://github.com/appspa/app-space","commit_stats":{"total_commits":59,"total_committers":4,"mean_commits":14.75,"dds":0.2542372881355932,"last_synced_commit":"9b0e1c92e42c9836818350cd93260c1d6f2d9d0c"},"previous_names":["appspa/appspa"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appspa%2Fapp-space","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appspa%2Fapp-space/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appspa%2Fapp-space/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appspa%2Fapp-space/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/appspa","download_url":"https://codeload.github.com/appspa/app-space/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254448579,"owners_count":22072764,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","app-host","appspace","bugtags","code-push","code-push-server","fir","flutter","jenkins","pgyer","react-native","sdk"],"created_at":"2024-09-24T14:09:23.058Z","updated_at":"2025-05-16T01:04:56.071Z","avatar_url":"https://github.com/appspa.png","language":"C","readme":"\n\u003cdiv align='center'\u003e\n\n  \u003ch1\u003eAppSpace\u003c/h1\u003e\n\n  \u003ch4\u003e\n    私有化部署服务,集成应用分发 Bug管理 提供iOS、Android、Flutter、React-Native SDK，支持自动化部署jenkins fastlane等丰富组件 \n  \u003c/h4\u003e\n\n  \u003cdiv\u003e\n    \u003ca href=\"https://appspa.github.io/\"\u003e私有化部署\u003c/a\u003e •\n    \u003ca href=\"https://appspa.github.io/docs/developer-guide\"\u003e快速接入\u003c/a\u003e •\n    \u003ca href=\"https://github.com/appspa/app-space-docker\"\u003edocker部署\u003c/a\u003e •\n  \u003c/div\u003e\n\u003c/div\u003e\n\n## 在线演示\n\u003e **注意**: 演示服务使用免费资源部署，资源额度耗尽会不可访问次月初重置；数据每日都会重新初始化，不对用户上传的应用承担任何法律风险，后果自负！(翻墙)\n（包要求小于50M)\n- 演示地址：https://app-space.up.railway.app\n- 登录账户: `admin`\n- 登录密码：`app@space`\n\n## 功能列表\n\n![AppSpace home](https://github.com/appspa/appspa.github.io/blob/main/static/img/img_6.png)\n### 应用设置\n![AppSpace home](https://github.com/appspa/appspa.github.io/blob/main/static/img/img_4.png)\n### 发布应用\n![AppSpace home](https://github.com/appspa/appspa.github.io/blob/main/static/img/img_5.png)\n### 团队管理\n![AppSpace home](https://github.com/appspa/appspa.github.io/blob/main/static/img/img_3.png)\n### 应用下载\n![AppSpace home](https://github.com/appspa/appspa.github.io/blob/main/static/img/img_2.png)\n### 钉钉机器人\n![AppSpace home](https://github.com/appspa/appspa.github.io/blob/main/static/img/img_1.png)\n\n# 源代碼部署\n\n\n### 运行前准备\n\n* 安装 MongoDB (3.6)\n* 安装 Nodejs\n\n\n1.clone 下载代码 `git clone https://github.com/appspa/app-space.git`\n\n2.运行server端\n\n```bash\n#进入项目根目录\ncd server\nnpm install  #安装依赖\nnpm start\n\n=============\u003e\u003eout\n...\n...\nApp is listening on 8081.\n数据库连接成功\n=============\u003e\u003eend\n```\n\n3.编译运行前端页面\n\n```Bash\ncd client\nnpm install\nnpm run build #正式环境可以用该命令编译静态文件交给nginx\nnpm run start  #本地运行可以使用该命令\n\n============\u003e\u003eout\n...\n...\n DONE  Compiled successfully in 18546ms                                                \n I  Your application is running here: http://0.0.0.0:8081\n============\u003e\u003eend\n```\n\n4.使用浏览器打开进入http://localhost:8081即可进入应用\n\n# Docker部署\n### 构建镜像\n```\ndocker build . -t appspace\n```\n\n### 使用 compose 运行\n```\n# 启动\ndocker compose up -d\n\n# 停止\ndocker compose stop\n\n# 停止并删除容器(包括数据)\ndocker compose down --remove-orphans\n```\n\n### 项目配置说明\n\n**前端配置**\n\n参见 client/config.js\n```javascript\nconst config = {\n  domain: process.env.APP_SPA_DOMAIN || \"http://192.168.1.10:8081\",\n  // basePath: process.env.APP_SPA_PATH || \"/x/app/\",\n};\n\nexport default config;\n\n```\n\n**后端配置**\n\n参见 server/config.js\n\n```javascript\n//需要修改配置可以修改config.js文件,也可以在部署的时候导出环境变量\n//比如 export APP_SPA_DOMAIN=https://127.0.0.1:8085\n\nconst common = {\n    //baseUrl应用请求的url地址,比如https://appspace\n    baseUrl: process.env.APP_SPA_DOMAIN || \"https://127.0.0.1:8081\", \n    port: process.env.APP_SPA_PORT || \"8085\", //server运行的端口\n    apiPrefix: 'api',\n    secret: process.env.APP_SPA_SECRET || \"secretsecret\", //secret\n    //数据库用户 (没有开启mongodb用户认证的可以不填写)\n    dbUser: process.env.APP_SPA_DBUSER || undefined,  \n    //数据库密码 (没有开启mongodb用户认证的可以不填写)\n    dbPass: process.env.APP_SPA_DBPWD || undefined,  \n    dbName: process.env.APP_SPA_DB_NAME || \"app_space\", //数据库名称\n    dbHost: process.env.APP_SPA_DB_HOST || \"localhost\", //数据库地址\n    dbPort: process.env.APP_SPA_DB_PORT || \"27017\", //数据库端口\n\t\n    //邮件相关配置 用于找回密码和邀请团队成员发送邮件\n    emailService: process.env.APP_SPA_EMAIL_SERVICE || \"qq\", \n    emailUser: process.env.APP_SPA_EMAIL_USER || \"\", \n    emailPass: process.env.APP_SPA_EMAIL_PASS || \"\",\n\n    //是否允许用户注册,为否则后端注册接口不可用\n    allowRegister: process.env.APP_SPA_ALLOW_REGISTER || true, \n\n    //是否开启ldap 默认是false 如果公司没有ldap服务可以不用理会\n    openLdap: process.env.APP_SPA_ALLOW_LDAP || false, \n    ldapServer: process.env.APP_SPA_LDAP_URL || \"\",  //ldap server url\n    ldapUserDn: process.env.APP_SPA_LDAP_USERDN || \"\", //ldap管理员dn 管理员用户名\n    ldapBindCredentials: process.env.APP_SPA_LDAP_CREDENTIALS || \"\", //ldap管理员密码\n    ldapBase: process.env.APP_SPA_LDAP_BASE || \"\" //ldap base\n\n};\n```\n\n\n\n\n\n### 正式环境部署 nginx配置(注意请使用https部署,否则iOS会出现无法安装的问题)\n\n可以按照项目根目录的 app_space_nginx.conf 文件进行配置\n\n```bash\nserver{\n  listen 80;\n  server_name appspace;\n\n  #root目录为项目根目录的client/dist目录下,前端静态页面\n  root /home/ubuntu/appspace/client/dist;\n  index index.html;\n\n  location / {\n      try_files $uri $uri/ @router;\n      index index.html;\n  }\n location @router {\n      rewrite ^.*$ /index.html last;\n  }\n  location /api/ {  #把以api打头的接口转发给后端server\n    proxy_pass http://127.0.0.1:8085; #这里端口修改为后端服务运行的端口\n    proxy_set_header Host $host;\n    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n  }\n  client_max_body_size 208M; #最大上传的ipa/apk文件大小\n}\n```\n[//]: # ()\n[//]: # (## 在线演示)\n\n[//]: # ()\n[//]: # (## 发布协议)\n## 联系作者\nQQ:1206149686\n\n\u003cimg src=\"https://github.com/appspa/appspa.github.io/blob/main/static/img/qq.png\" height=120/\u003e\n\n[MIT][mit-link]\n\n\n[app-space-ios-sdk]: https://github.com/appspa/app-space-ios-sdk\n[app-space-android-sdk]: https://github.com/appspa/app-space-android-sdk\n[fastlane-plugin-app-space]: https://github.com/appspa/fastlane-plugin-app-space\n[mit-link]: https://github.com/appspa/app-space/blob/develop/CHANGELOG.md\n","funding_links":[],"categories":["C"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappspa%2Fapp-space","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fappspa%2Fapp-space","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappspa%2Fapp-space/lists"}