Commit a42734b03cc8e9edf2293709dfc66d353dca5471
Committed by
小小鲁班
1 parent
d5142a3a
docs(deployment): update deployment on ecs
Showing
5 changed files
with
58 additions
and
287 deletions
README.en.md
| ... | ... | @@ -12,6 +12,22 @@ |
| 12 | 12 | |
| 13 | 13 | <img src="https://s2.ax1x.com/2019/10/11/u7WzUx.gif" style="margin: 10px;" width="60%" /> |
| 14 | 14 | |
| 15 | +### let's go through it real quick. | |
| 16 | +> in short | |
| 17 | + | |
| 18 | +```shell | |
| 19 | +docker pull ubuntu | |
| 20 | +docker run -it -p 1234:80 -p 1235:1337 -v `pwd`:/app ubuntu | |
| 21 | +apt update && apt install -y wget git | |
| 22 | +wget -qO- https://raw.githubusercontent.com/ly525/luban-h5/dev/deploy/ubuntu-install.sh | bash | |
| 23 | + | |
| 24 | +# after the installation finished | |
| 25 | +# 1. visit :http://localhost:1235/admin, add your admin account | |
| 26 | +# 1.2 config the api permissions, see more here:https://ly525.github.io/luban-h5/en/getting-started/quick-start.html#_2-something-important | |
| 27 | + | |
| 28 | +# 2. front-end | |
| 29 | +# 2.1 visit https://localhost:1235 to get the front-end of luban-h5 | |
| 30 | +``` | |
| 15 | 31 | |
| 16 | 32 | ## Links |
| 17 | 33 | - Documents | ... | ... |
README.md
| ... | ... | @@ -28,6 +28,9 @@ Mobile Page Builder&Generator with Drag&Drop |
| 28 | 28 | ```shell |
| 29 | 29 | docker pull ubuntu |
| 30 | 30 | docker run -it -p 1234:80 -p 1235:1337 -v `pwd`:/app ubuntu |
| 31 | +# 使用清华大学 Ubuntu 软件镜像 | |
| 32 | +sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list | |
| 33 | +apt update && apt install -y wget git | |
| 31 | 34 | wget -qO- https://raw.githubusercontent.com/ly525/luban-h5/dev/deploy/ubuntu-install.sh | bash |
| 32 | 35 | |
| 33 | 36 | # 安装完成之后 | ... | ... |
deploy/ubuntu-install.sh
| ... | ... | @@ -5,7 +5,7 @@ |
| 5 | 5 | # @Author: ly525 |
| 6 | 6 | # @Date: 2019-11-30 13:24:57 |
| 7 | 7 | # @LastEditors : ly525 |
| 8 | - # @LastEditTime : 2020-01-05 21:39:42 | |
| 8 | + # @LastEditTime : 2020-01-11 12:20:31 | |
| 9 | 9 | # @FilePath: /luban-h5/deploy/ubuntu-install.sh |
| 10 | 10 | # @Github: https://github.com/ly525/luban-h5 |
| 11 | 11 | # @Description: |
| ... | ... | @@ -330,16 +330,19 @@ function install_luban-h5 { |
| 330 | 330 | cd ~/ |
| 331 | 331 | git clone https://github.com/ly525/luban-h5 |
| 332 | 332 | |
| 333 | - # 鲁班前端 | |
| 334 | - cd luban-h5/front-end/h5 && yarn && yarn build # build editor and preview engine | |
| 333 | + # # 鲁班前端 | |
| 334 | + # cd luban-h5/front-end/h5 && yarn && yarn build # build editor and preview engine | |
| 335 | 335 | |
| 336 | - cd - | |
| 336 | + # cd - | |
| 337 | 337 | |
| 338 | - # 鲁班后端 | |
| 339 | - cd luban-h5/back-end/h5-api/ && yarn && yarn build # build strapi admin | |
| 340 | - pm2 start server.js | |
| 341 | - pwd | |
| 342 | - success luban-h5 | |
| 338 | + # # 鲁班后端 | |
| 339 | + # cd luban-h5/back-end/h5-api/ && yarn && yarn build # build strapi admin | |
| 340 | + # pm2 start server.js | |
| 341 | + # pwd | |
| 342 | + # success luban-h5 | |
| 343 | + | |
| 344 | + ./luban-h5.sh init | |
| 345 | + ./luban-h5.sh start | |
| 343 | 346 | fi |
| 344 | 347 | } |
| 345 | 348 | |
| ... | ... | @@ -369,7 +372,7 @@ install_yarn |
| 369 | 372 | set_npm_mirror |
| 370 | 373 | install_strapi |
| 371 | 374 | install_pm2 |
| 372 | -install_nginx | |
| 375 | +# install_nginx | |
| 373 | 376 | install_luban-h5 |
| 374 | 377 | exitBanner |
| 375 | 378 | ... | ... |
docs/en/getting-started/deployment.md
| 1 | + | |
| 1 | 2 | # Deployment |
| 2 | 3 | |
| 3 | 4 | |
| 4 | 5 | ## Aliyun/Tencent Cloud/Digital Ocean |
| 5 | 6 | |
| 6 | -#### 1. on your server(centos) | |
| 7 | -First of all, you need to install some basic software packages, please install them yourself (refer to its official website documents for details) | |
| 8 | - | |
| 9 | -1. Node | |
| 10 | -1. Npm | |
| 11 | -1. Nginx | |
| 12 | -1. Yarn | |
| 13 | -1. Pm2 | |
| 14 | - | |
| 15 | -> The following scripts are just for your information | |
| 7 | +1. Preinstall | |
| 8 | + > First of all, you need to install some basic software on your server(centos), please install them yourself (refer to its official website documents for details) | |
| 16 | 9 | |
| 10 | + > `node、npm、yarn、pm2` | |
| 17 | 11 | |
| 12 | +The following scripts are just for your information | |
| 18 | 13 | ```bash |
| 19 | 14 | # install yarn |
| 20 | 15 | curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo |
| ... | ... | @@ -29,135 +24,23 @@ npm install pm2 -g |
| 29 | 24 | # pm2 stop server |
| 30 | 25 | # pm2 restart server |
| 31 | 26 | # pm2 stop all |
| 32 | - | |
| 33 | 27 | ``` |
| 34 | 28 | |
| 35 | -Nginx profile demo | |
| 36 | - | |
| 37 | -```nginx | |
| 38 | -server { | |
| 39 | - listen 443; | |
| 40 | - server_name your_domain; | |
| 41 | - | |
| 42 | - client_body_buffer_size 20M; | |
| 43 | - client_max_body_size 20M; | |
| 44 | - proxy_buffer_size 20M; | |
| 45 | - proxy_buffers 32 20M; | |
| 46 | - proxy_busy_buffers_size 20M; | |
| 47 | - | |
| 48 | - # https ssl config | |
| 49 | - ssl on; | |
| 50 | - ssl_certificate cert/your-https.pem; | |
| 51 | - ssl_certificate_key cert/your-https.key; | |
| 52 | - ssl_session_timeout 5s; | |
| 53 | - ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; | |
| 54 | - ssl_protocols TLSv1 TLSv1.1 TLSv1.2; | |
| 55 | - ssl_prefer_server_ciphers on; | |
| 56 | - | |
| 57 | - gzip on; | |
| 58 | - gzip_min_length 1k; | |
| 59 | - gzip_buffers 4 16k; | |
| 60 | - gzip_disable "MSIE [1-6]\."; | |
| 61 | - gzip_comp_level 3; | |
| 62 | - gzip_types image/png application/json text/plain application/x-javascript text/css application/xml text/javascript application/javascript; | |
| 63 | - | |
| 64 | - | |
| 65 | - location ~ ^/(upload|content-manager|users-permissions|works|admin|psd-files|workforms|third-libs|engine-assets) { | |
| 66 | - proxy_set_header Host $host; | |
| 67 | - proxy_set_header X-Real-IP $remote_addr; | |
| 68 | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
| 69 | - proxy_pass http://localhost:1337; | |
| 70 | - } | |
| 71 | - location / { | |
| 72 | - | |
| 73 | - root /home/centos/luban-h5-dist/front-end/; | |
| 74 | - #try_files $uri $uri/ /index.html; | |
| 75 | - } | |
| 76 | - | |
| 77 | -} | |
| 78 | -``` | |
| 79 | - | |
| 80 | -#### 2. on local machine | |
| 81 | -Do the following in the root path of the project: | |
| 29 | +2. Run the code on the server | |
| 82 | 30 | |
| 83 | 31 | ```bash |
| 84 | -yarn add flightplan | |
| 85 | -npm run deploy:ecs // Elastic Compute Service | |
| 86 | -``` | |
| 87 | - | |
| 88 | -Local deployment script | |
| 89 | - | |
| 90 | -```javascript | |
| 91 | -var os = require('os'); | |
| 92 | -var plan = require('flightplan'); | |
| 93 | - | |
| 94 | -// configuration | |
| 95 | -local_dist_dir = './'; // root path for luban-h5 | |
| 96 | -remote_project_dir = '~/codebase/luban/luban-h5'; // root path for luban-h5 on server | |
| 97 | -remote_project_api_dir = '~/codebase/luban/luban-h5/back-end/h5-api'; // api root path for luban-h5 on server | |
| 98 | - | |
| 99 | -// production server config | |
| 100 | -plan.target('production', { | |
| 101 | - host: 'your host ip', // your server ip | |
| 102 | - username: 'centos', // your server username | |
| 103 | - // privateKey should be absolute path | |
| 104 | - privateKey: `${os.homedir}/.ssh/id_rsa` // your privateKey to rsync files | |
| 105 | -}); | |
| 106 | - | |
| 107 | -/** | |
| 108 | - * 1. setup folders | |
| 109 | - * 2. sync files | |
| 110 | - * 3. install dependencies | |
| 111 | - * 4. (re)start api service | |
| 112 | - * 5. soft link nginx conf | |
| 113 | - * | |
| 114 | - */ | |
| 115 | - | |
| 116 | -// init remove server path | |
| 117 | -// plan.remote(remote => { | |
| 118 | -// // remove.exec(`mkdir -p ${remote_project_dir}`) | |
| 119 | -// remove.sudo(`yum install nginx -y`) | |
| 120 | -// remote.with(`mkdir -p ${remote_project_dir}`, () => { | |
| 121 | -// // remote.log('Install dependencies'); | |
| 122 | -// // remote.exec('yarn'); | |
| 123 | -// remote.exec('pwd'); | |
| 124 | -// }); | |
| 125 | -// }); | |
| 126 | - | |
| 127 | - | |
| 128 | -// run commands on localhost | |
| 129 | -plan.local(local => { | |
| 130 | - // local.log('=> Run build'); | |
| 131 | - // local.exec('npm run build'); | |
| 132 | - // local.log('=> Build finish'); | |
| 133 | - | |
| 134 | - local.log('=> Copy files to remote hosts'); | |
| 135 | - // reference: https://github.com/pstadler/flightplan/issues/142 | |
| 136 | - local.with(`cd ${local_dist_dir}`, () => { | |
| 137 | - // const filesToCopy = local.exec('find . -type f', { silent: true }) | |
| 138 | - const filesToCopy = local.git('ls-files', {silent: true}) // get list of files under version control | |
| 139 | - | |
| 140 | - local.transfer(filesToCopy, remote_project_dir); | |
| 141 | - local.log('=> Copy finish'); | |
| 142 | - | |
| 143 | - }); | |
| 144 | -}); | |
| 145 | - | |
| 146 | -// run commands on the target's remote hosts | |
| 147 | -plan.remote(remote => { | |
| 148 | - remote.with(`cd ${remote_project_api_dir}`, () => { | |
| 149 | - remote.log('Install dependencies'); | |
| 150 | - remote.exec('yarn'); | |
| 151 | - remote.exec('pm2 restart server') | |
| 152 | - }); | |
| 153 | -}); | |
| 32 | +# just run the following code on the server | |
| 33 | +git clone https://github.com/ly525/luban-h5.git | |
| 34 | +./luban-h5.sh init # installation dependency, build front-end and back-end | |
| 35 | +./luban-h5.sh start # just start the service | |
| 36 | +./luban-h5.sh stop # stop the service | |
| 154 | 37 | ``` |
| 155 | 38 | |
| 156 | -#### Some problems that may be encountered in the middle: | |
| 157 | - | |
| 158 | -1. `Cannot parse privateKey: Unsupported key format` <br />For solutions, please refer: [Cannot parse privateKey: Unsupported key format](https://stackoverflow.com/questions/53400628/cannot-parse-privatekey-unsupported-key-format) | |
| 159 | - | |
| 160 | - | |
| 39 | +3. How to access | |
| 40 | + 1. configure the firewall security group and add port `1337`. | |
| 41 | + 2. visit `http://ServerIP:1337/admin` to get the admin panel for luban-h5 | |
| 42 | + 3. config the API permissions, see more [here](https://ly525.github.io/luban-h5/en/getting-started/quick-start.html#_2-something-important) | |
| 43 | + 4. visit `http://ServerIP:1337` to get the app | |
| 161 | 44 | |
| 162 | 45 | ## Docker deployment |
| 163 | 46 | > TODO | ... | ... |
docs/zh/getting-started/deployment.md
| ... | ... | @@ -4,16 +4,8 @@ |
| 4 | 4 | ## 阿里云/腾讯云/Digital Ocean |
| 5 | 5 | > 以 Centos 为例,Ubuntu等其它发行版,请自行调整 |
| 6 | 6 | |
| 7 | -1. 预安装: | |
| 8 | - | |
| 9 | - - 首先需要安装一些基础的软件包,请自行安装(具体参照其官网文档) | |
| 10 | - - node | |
| 11 | - - npm | |
| 12 | - - nginx | |
| 13 | - - yarn | |
| 14 | - - pm2 | |
| 15 | - | |
| 16 | - - 1.2 以下脚本仅供参考 | |
| 7 | +1. 首先需要安装一些基础的软件包,请自行安装(具体参照其官网文档) | |
| 8 | +> `node、npm、yarn、pm2` | |
| 17 | 9 | |
| 18 | 10 | ```bash |
| 19 | 11 | # install yarn |
| ... | ... | @@ -31,144 +23,18 @@ |
| 31 | 23 | # pm2 stop all |
| 32 | 24 | ``` |
| 33 | 25 | |
| 34 | -nginx 配置文件 demo | |
| 35 | - | |
| 36 | -```nginx | |
| 37 | -server { | |
| 38 | - listen 443; | |
| 39 | - server_name your_domain; | |
| 40 | - | |
| 41 | - client_body_buffer_size 20M; | |
| 42 | - client_max_body_size 20M; | |
| 43 | - proxy_buffer_size 20M; | |
| 44 | - proxy_buffers 32 20M; | |
| 45 | - proxy_busy_buffers_size 20M; | |
| 46 | - | |
| 47 | - ssl on; | |
| 48 | - ssl_certificate cert/your-https.pem; | |
| 49 | - ssl_certificate_key cert/your-https.key; | |
| 50 | - ssl_session_timeout 5s; | |
| 51 | - ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; | |
| 52 | - ssl_protocols TLSv1 TLSv1.1 TLSv1.2; | |
| 53 | - ssl_prefer_server_ciphers on; | |
| 54 | - | |
| 55 | - gzip on; | |
| 56 | - gzip_min_length 1k; | |
| 57 | - gzip_buffers 4 16k; | |
| 58 | - gzip_disable "MSIE [1-6]\."; | |
| 59 | - gzip_comp_level 3; | |
| 60 | - gzip_types image/png application/json text/plain application/x-javascript text/css application/xml text/javascript application/javascript; | |
| 61 | - | |
| 62 | - # TODO 这边的 psd-files、engine-assets、third-libs 开发的时候,可以走 proxy_pass | |
| 63 | - # 生产环境的时候,最好走另外的 location,直接让 nginx 访问静态文件 | |
| 64 | - location ~ ^/(upload|content-manager|users-permissions|works|admin|psd-files|workforms|third-libs|engine-assets) { | |
| 65 | - proxy_set_header Host $host; | |
| 66 | - proxy_set_header X-Real-IP $remote_addr; | |
| 67 | - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
| 68 | - proxy_pass http://localhost:1337; | |
| 69 | - } | |
| 70 | - | |
| 71 | - location / { | |
| 72 | - root /home/centos/codebase/luban/luban-h5-dist/front-end/; | |
| 73 | - #try_files $uri $uri/ /index.html; | |
| 74 | - } | |
| 75 | - | |
| 76 | -} | |
| 77 | -``` | |
| 78 | - | |
| 79 | -#### 本地执行: | |
| 80 | -请先提前调研:flightplan | |
| 81 | -在项目根目录作如下操作: | |
| 26 | +2. 在服务器上执行如下代码即可 | |
| 82 | 27 | |
| 83 | 28 | ```bash |
| 84 | -yarn add flightplan // 部署脚本,官方链接 | |
| 85 | -npm run deploy:ecs // 云服务器 (Elastic Compute Service, 简称 ECS) | |
| 86 | -``` | |
| 87 | - | |
| 88 | -本地部署脚本 | |
| 89 | - | |
| 90 | -```javascript | |
| 91 | -var os = require('os'); | |
| 92 | -var plan = require('flightplan'); | |
| 93 | - | |
| 94 | -// configuration | |
| 95 | -local_dist_dir = './'; // root path for luban-h5 | |
| 96 | -remote_project_dir = '~/codebase/luban/luban-h5'; // root path for luban-h5 on server | |
| 97 | -remote_project_api_dir = '~/codebase/luban/luban-h5/back-end/h5-api'; // api root path for luban-h5 on server | |
| 98 | - | |
| 99 | -// production server config | |
| 100 | -plan.target('production', { | |
| 101 | - host: 'your host ip', // your server ip | |
| 102 | - username: 'centos', // your server username | |
| 103 | - // 更新为绝对路径 | |
| 104 | - privateKey: `${os.homedir}/.ssh/id_rsa` // your privateKey to rsync files | |
| 105 | -}); | |
| 106 | - | |
| 107 | -/** | |
| 108 | - * 1. setup folders | |
| 109 | - * 2. sync files | |
| 110 | - * 3. install dependencies | |
| 111 | - * 4. (re)start api service | |
| 112 | - * 5. soft link nginx conf | |
| 113 | - * | |
| 114 | - * 1. 创建同步文件件 | |
| 115 | - * 2. 同步本地在 git 中的文件(你也可以在服务器端git clone) | |
| 116 | - * 3. 在 h5-api 目录安装依赖 | |
| 117 | - * 4. 使用pm2 重启服务 | |
| 118 | - * 5. 给 nginx 文件做一个软件链接 | |
| 119 | - * | |
| 120 | - */ | |
| 121 | - | |
| 122 | -// init remove server path | |
| 123 | -// 在第一步的时候,需要打开这一项:初始化服务器,现在还不完整,需要补充 | |
| 124 | -// plan.remote(remote => { | |
| 125 | -// // remove.exec(`mkdir -p ${remote_project_dir}`) | |
| 126 | -// remove.sudo(`yum install nginx -y`) | |
| 127 | -// remote.with(`mkdir -p ${remote_project_dir}`, () => { | |
| 128 | -// // remote.log('Install dependencies'); | |
| 129 | -// // remote.exec('yarn'); | |
| 130 | -// remote.exec('pwd'); | |
| 131 | -// }); | |
| 132 | -// }); | |
| 133 | - | |
| 134 | - | |
| 135 | -// run commands on localhost | |
| 136 | -plan.local(local => { | |
| 137 | - // local.log('=> Run build'); | |
| 138 | - // local.exec('npm run build'); | |
| 139 | - // local.log('=> Build finish'); | |
| 140 | - | |
| 141 | - local.log('=> Copy files to remote hosts'); | |
| 142 | - // TODO reference: https://github.com/pstadler/flightplan/issues/142 | |
| 143 | - local.with(`cd ${local_dist_dir}`, () => { | |
| 144 | - // const filesToCopy = local.exec('find . -type f', { silent: true }) | |
| 145 | - const filesToCopy = local.git('ls-files', {silent: true}) // get list of files under version control | |
| 146 | - | |
| 147 | - local.transfer(filesToCopy, remote_project_dir); | |
| 148 | - local.log('=> Copy finish'); | |
| 149 | - | |
| 150 | - }); | |
| 151 | -}); | |
| 152 | - | |
| 153 | -// run commands on the target's remote hosts | |
| 154 | -plan.remote(remote => { | |
| 155 | - remote.with(`cd ${remote_project_api_dir}`, () => { | |
| 156 | - remote.log('Install dependencies'); | |
| 157 | - remote.exec('yarn'); | |
| 158 | - remote.exec('pm2 restart server') | |
| 159 | - }); | |
| 160 | -}); | |
| 161 | - | |
| 162 | - | |
| 29 | +git clone https://github.com/ly525/luban-h5.git | |
| 30 | +./luban-h5.sh init # 安装依赖,构建前后端 | |
| 31 | +./luban-h5.sh start # 启动项目即可 | |
| 32 | +./luban-h5.sh stop # 停止服务 | |
| 163 | 33 | ``` |
| 164 | 34 | |
| 165 | - | |
| 166 | - | |
| 167 | -#### 中间可能遇到的一些问题: | |
| 168 | - | |
| 169 | -1. `Cannot parse privateKey: Unsupported key format` | |
| 170 | - | |
| 171 | - 解决方案请参照:[Cannot parse privateKey: Unsupported key format](https://stackoverflow.com/questions/53400628/cannot-parse-privatekey-unsupported-key-format) | |
| 35 | +3. 如何访问: | |
| 36 | + 1. 配置防火墙安全组,添加 1337 端口,通过 `http://服务器IP:1337` 访问即可访问 | |
| 37 | + 2. `http://服务器IP:1337/admin` 为鲁班的管理后台 | |
| 172 | 38 | |
| 173 | 39 | |
| 174 | 40 | ## Docker 部署 | ... | ... |