Compare commits
15 Commits
6c29f57d61
...
dev
Author | SHA1 | Date | |
---|---|---|---|
64d4861bc7 | |||
7f3996f15b | |||
43ec6cbcdf | |||
571cf1bf5e | |||
fa0bc88221 | |||
00fcee6ac8 | |||
30152feb79 | |||
db2854f569 | |||
934df30846 | |||
6968483acc | |||
74105a1a4f | |||
9e80051475 | |||
99db40f356 | |||
9295b165f7 | |||
7077517fe0 |
2
.gitignore
vendored
2
.gitignore
vendored
@ -13,3 +13,5 @@ npm-debug.log
|
||||
.Trashes
|
||||
|
||||
yarn-error.log
|
||||
|
||||
.vscode
|
||||
|
16
README.md
16
README.md
@ -11,7 +11,9 @@ Electron build and auto update service, application distribution. Making applica
|
||||
|
||||
A git repository corresponds to an electron app and an distributed system.
|
||||
|
||||
Electron Distribution server-side work in 64 bit Linux OS (required) and MacOS (optional), and build for x64 platfrom, other platfrom need to modify the code (It is easy).
|
||||
Electron Distribution server-side work in 64 bit Linux OS (required) and MacOS (optional), and build for x64 platform, other platform need to modify the code (It is easy).
|
||||
|
||||

|
||||
|
||||
## Quick Setup Guide
|
||||
|
||||
@ -37,14 +39,18 @@ docker run -itd --name electron-distribution --restart always \
|
||||
wy373226722/electron-distribution:latest
|
||||
```
|
||||
|
||||
China user: `docker pull registry.cn-shenzhen.aliyuncs.com/yi-ge/electron-distribution:latest` or `docker pull ccr.ccs.tencentyun.com/yi-ge/electron-distribution:latest`
|
||||
**China user**
|
||||
Aliyun: `docker pull registry.cn-shenzhen.aliyuncs.com/yi-ge/electron-distribution:latest`
|
||||
|
||||
TencentYun: `docker pull ccr.ccs.tencentyun.com/yi-ge/electron-distribution:latest`
|
||||
|
||||
**Notice**
|
||||
You need to configure nginx and SSL by yourself. SCHEME only a tip.
|
||||
|
||||
#### Environment
|
||||
|
||||
| ENV Var | Default | Description |
|
||||
|---|---|---|
|
||||
| ----------------------- | -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `NAME` | `"APP"` | `Your app name. Numbers, letters and "-".` |
|
||||
| `SCHEME` | `"https"` | `Production environment only work with SSL.` |
|
||||
| `DOMAIN` | `"www.example.com"` | `Your Electron Distribution server-side domain.` |
|
||||
@ -174,3 +180,7 @@ Run the `ssh macName@macIp` in the linux server at least once .
|
||||
Run the `ssh linux@linuxIp` in the mac server at least once.
|
||||
|
||||
Install `rsync` and enable sshd in your Linux Server.
|
||||
|
||||
## Author
|
||||
|
||||
Yi Wang a@wyr.me
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
一个`git`仓库对应一个`Electron`应用程序,对应使用一套应用分发系统。
|
||||
|
||||
`Electron 应用分发系统`服务器端工作在64位Linux操作系统(必须)和MacOS(可选),默认编译x64应用程序, 其它平台及架构需要修改相应代码(不过这很容易实现).
|
||||
`Electron 应用分发系统`服务器端工作在 64 位 Linux 操作系统(必须)和 MacOS(可选),默认编译 x64 应用程序, 其它平台及架构需要修改相应代码(不过这很容易实现).
|
||||
|
||||
## 快速开始
|
||||
|
||||
@ -37,14 +37,18 @@ docker run -itd --name electron-distribution --restart always \
|
||||
wy373226722/electron-distribution
|
||||
```
|
||||
|
||||
国内用户: `docker pull registry.cn-shenzhen.aliyuncs.com/yi-ge/electron-distribution:latest` or `docker pull ccr.ccs.tencentyun.com/yi-ge/electron-distribution:latest`
|
||||
**国内用户**
|
||||
阿里云镜像:`docker pull registry.cn-shenzhen.aliyuncs.com/yi-ge/electron-distribution:latest`
|
||||
|
||||
你需要自行安装Nginx并配置使其支持SSL,这是必须的,否则应用程序自动更新可能会失效。`SCHEME`只是一个标识。
|
||||
腾讯云镜像:`docker pull ccr.ccs.tencentyun.com/yi-ge/electron-distribution:latest`
|
||||
|
||||
**注意**
|
||||
你需要自行安装 Nginx 并配置使其支持 SSL,这是必须的,否则应用程序自动更新可能会失效。`SCHEME`只是一个标识。
|
||||
|
||||
#### 环境变量
|
||||
|
||||
| 变量名 | 默认值 | 描述 |
|
||||
|---|---|---|
|
||||
| ----------------------- | -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `NAME` | `"APP"` | `Your app name. Numbers, letters and "-".` |
|
||||
| `SCHEME` | `"https"` | `Production environment only work with SSL.` |
|
||||
| `DOMAIN` | `"www.example.com"` | `Your Electron Distribution server-side domain.` |
|
||||
@ -91,7 +95,7 @@ docker run -itd --name electron-distribution --restart always \
|
||||
|
||||
**Swagger:** https://yourdomain/documentation
|
||||
|
||||
API中的token需要进行`SHA-512`加密。
|
||||
API 中的 token 需要进行`SHA-512`加密。
|
||||
|
||||
**Github webhooks:** https://yourdomain/build/webhooks
|
||||
|
||||
@ -157,7 +161,7 @@ yarn add electron-builder electron-simple-updater -D
|
||||
|
||||
## Mac APP 编译及代码签名
|
||||
|
||||
在macOS Majave (10.14.4)中安装 `Xcode 10.2` \ `brew (yarn 1.15.2)` \ `nvm (node 11.13.0)`, 至少运行一次`Xcode`。
|
||||
在 macOS Majave (10.14.4)中安装 `Xcode 10.2` \ `brew (yarn 1.15.2)` \ `nvm (node 11.13.0)`, 至少运行一次`Xcode`。
|
||||
|
||||
操作系统默认安装了 Git 和 rsync。
|
||||
|
||||
@ -167,7 +171,7 @@ yarn add electron-builder electron-simple-updater -D
|
||||
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
|
||||
```
|
||||
|
||||
添加你的服务器公钥到Mac `~/.ssh/authorized_keys`。
|
||||
添加你的Mac公钥到服务器 `~/.ssh/authorized_keys`。
|
||||
添加你的服务器公钥到 Mac `~/.ssh/authorized_keys`。
|
||||
添加你的 Mac 公钥到服务器 `~/.ssh/authorized_keys`。
|
||||
|
||||
在你的Linux服务器中安装`rsync`,并开启SSH服务。
|
||||
在你的 Linux 服务器中安装`rsync`,并开启 SSH 服务。
|
||||
|
48
package.json
48
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "electron-distribution",
|
||||
"version": "1.0.3",
|
||||
"version": "1.0.4",
|
||||
"description": "Electron Distribution",
|
||||
"author": "yi-ge <a@wyr.me>",
|
||||
"scripts": {
|
||||
@ -10,35 +10,35 @@
|
||||
},
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ali-oss": "^6.1.1",
|
||||
"axios": "^0.18.0",
|
||||
"chalk": "^2.4.2",
|
||||
"chance": "^1.0.18",
|
||||
"cos-nodejs-sdk-v5": "^2.5.7",
|
||||
"dockerode": "^2.5.8",
|
||||
"ali-oss": "^6.4.0",
|
||||
"axios": "^0.19.1",
|
||||
"chalk": "^3.0.0",
|
||||
"chance": "^1.1.4",
|
||||
"cos-nodejs-sdk-v5": "^2.5.14",
|
||||
"dockerode": "^3.0.2",
|
||||
"hapi": "^18.1.0",
|
||||
"hapi-swagger": "^9.4.2",
|
||||
"inert": "^5.1.2",
|
||||
"joi": "^13.7.0",
|
||||
"hapi-swagger": "^12.0.0",
|
||||
"inert": "^5.1.3",
|
||||
"joi": "^14.3.1",
|
||||
"jssha": "^2.3.1",
|
||||
"lodash": "^4.17.11",
|
||||
"lodash": "^4.17.15",
|
||||
"lowdb": "^1.0.0",
|
||||
"moment-timezone": "^0.5.23",
|
||||
"qiniu": "^7.2.1",
|
||||
"simple-git": "^1.110.0",
|
||||
"socket.io": "^2.2.0",
|
||||
"ssh2": "^0.8.2",
|
||||
"moment-timezone": "^0.5.27",
|
||||
"qiniu": "^7.3.0",
|
||||
"simple-git": "^1.129.0",
|
||||
"socket.io": "^2.3.0",
|
||||
"ssh2": "^0.8.7",
|
||||
"vision": "^5.4.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.2.3",
|
||||
"@babel/core": "^7.4.0",
|
||||
"@babel/plugin-proposal-class-properties": "^7.4.0",
|
||||
"@babel/plugin-proposal-decorators": "^7.4.0",
|
||||
"@babel/plugin-proposal-optional-chaining": "^7.2.0",
|
||||
"@babel/preset-env": "^7.4.2",
|
||||
"@babel/register": "^7.4.0",
|
||||
"nodemon": "^1.18.10"
|
||||
"@babel/cli": "^7.8.3",
|
||||
"@babel/core": "^7.8.3",
|
||||
"@babel/plugin-proposal-class-properties": "^7.8.3",
|
||||
"@babel/plugin-proposal-decorators": "^7.8.3",
|
||||
"@babel/plugin-proposal-optional-chaining": "^7.8.3",
|
||||
"@babel/preset-env": "^7.8.3",
|
||||
"@babel/register": "^7.8.3",
|
||||
"nodemon": "^2.0.2"
|
||||
},
|
||||
"nodemonConfig": {
|
||||
"ignore": [
|
||||
|
BIN
preview.png
Normal file
BIN
preview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 707 KiB |
@ -65,7 +65,7 @@ const gitCodeUpdate = async (buidType) => {
|
||||
} else {
|
||||
resolve({
|
||||
code: 1,
|
||||
type: 'clone',
|
||||
type: 'pull',
|
||||
change: false
|
||||
})
|
||||
}
|
||||
@ -75,7 +75,8 @@ const gitCodeUpdate = async (buidType) => {
|
||||
|
||||
const promiseList = []
|
||||
|
||||
if (buidType.includes('mac')) {
|
||||
// 无论是否包含mac,都应该更新参照代码
|
||||
// if (buidType.includes('mac')) {
|
||||
if (!fs.existsSync(sourcePath)) {
|
||||
mkdirsSync(sourcePath)
|
||||
promiseList.push(gitClone(repoPath, sourcePath, 'Source'))
|
||||
@ -86,7 +87,7 @@ const gitCodeUpdate = async (buidType) => {
|
||||
promiseList.push(gitClone(repoPath, sourcePath, 'Source'))
|
||||
}
|
||||
}
|
||||
}
|
||||
// }
|
||||
|
||||
if (buidType.includes('linux')) {
|
||||
if (!fs.existsSync(linuxPath)) {
|
||||
|
Reference in New Issue
Block a user