我要在云服务器上开发 Cumulo 的服务, 基于 Node 和 shadow-cljs 运行,
刚发现阿里云有按小时租赁服务器的设置, 感觉自己以前的服务器太慢, 就试试,
面对的问题
此前服务器选择香港节点, 发现网络还是有点延时, 另外配置较低,
考虑到大部分时间闲置, 不好意思买很高, 但是对于 shadow-cljs 来说太少,
因为 ClojureScript 编译需要 Java, 冷启动吃 CPU, 运行吃内存,
我考虑至少 3G 内存, 双核 CPU, 那样应该够的.
之前的服务器是共享的, 估计有限制, 我 CPU 持续跑满半分钟, 就会无响应,
提交工单还是没解决, 我只能想到再买个服务器了, 开发需要.
初始化服务器
首先, 在阿里云的界面里选择好配置了网络, 创建新的机器, 华东2机房,
我出于习惯选择了 Ubuntu, 里面的操作命令我比较熟悉,
创建需要几分钟, 完成之后会收到短信提示, 机器创建完成, 需要重置密码,
于是就重置密码, 然后还要重启服务器才能生效, 用 root
登录,
然后 adduser
命令创建自己的用户, visudo
修改权限, 登录新用户.
安装相关依赖
shadow-cljs 运行依赖 JDK, 所以要安装一份, 版本 8 就好,
mosh 是处理 SSH 连接断网的, 安装后在服务器需要启动一下 mosh-server.
sudo apt-get update
sudo apt-get install aptitude
sudo aptitude install git openjdk-8-jdk mosh
参考官方文档, 安装 Node.js :
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
参考官方文档, 安装 yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
最后安装一下自己的编辑器, 用来编辑代码:
sudo npm i -g calcit-editor
配置环境
然后为了方便登录, 运行一下 ssh-copy-id
拷贝本地的公钥到服务器.
前面说了服务器已经有 mosh-server
在运行, 本地应该是可以用 mosh 命令登录的.
不过, 当前的安全策略还不可以, Mosh 采用 UDP 协议, 需要配置安全策略,
在”安全组规则”里面, 允许 UDP 60000/61000
从 0.0.0.0/0
访问.
除了 UDP 端口, shadow-cljs 相关还有 7000
, 9630
, 这些端口,
而 calcit-editor 用到 6001
6002
等等端口, 都需要加上,
考虑到我的服务器还有 WebSocket 用到 5021 这个奇怪的端口, 范围还要扩大.
我是直接在”安全组规则”把所有相关范围都开启了的
然后我需要有个 /data/
目录存放数据, 自己创建:
sudo mkdir /data
sudo chown -R chen:chen /data
另外两次碰到需要修改奇怪的权限, 这个路径可能是 root
给我创建的.
sudo chown -R chen:chen /home/chen/.config/
然后就是在服务器上使用 Git 的初始配置, 以及生成公钥, 添加到 GitHub:
git config --global user.email jiyinyiyong@gmail.com
git config --global user.name jiyinyiyong
ssh-keygen
cat ~/.ssh/id_rsa.pub
运行服务
后面就是具体到 Cumulo 项目相关的内容了, 比如当前的应用:
git clone git@github.com:TopixIM/impatiens.git
然后 Cumulo Workflow 的文档把前后端都启动起来, 运行一个服务器.
基本就完成了, 一个可以在云服务器上开发的环境, 同时在远程实时预览效果.