我要在云服务器上开发 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/610000.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 的文档把前后端都启动起来, 运行一个服务器.
基本就完成了, 一个可以在云服务器上开发的环境, 同时在远程实时预览效果.


题叶
17.3k 声望2.6k 粉丝

Calcit 语言作者