大家好,这是我作为独立开发者的一个小作品,又一个向微信发通知的服务。这样的服务其实不少,一定是有新的特色我才好意思来介绍。
Server饭不仅可以给微信发通知,还能反过来用微信和服务器产生交互。大概像下面这样:

好了,还是先介绍基础功能吧。

主动发送通知

给自己发消息是最常用的功能。
拉到文末扫码关注服务号,或者在微信搜索 "LetServerRun" 这个服务号关注。
在服务号发送 token 命令查看自己的用户 token 。
使用用户 token,您就可以用 API 向公众号发警告消息了:

curl "https://api.letserver.run/message/info?token=YOUR-TOKEN&msg=hello"

这个 GET 接口是为了调试和轻量使用场景的,在程序中使用的话有一系列接口和SDK。

反向控制服务器

Server饭的特色功能是用微信控制服务器做简单的事情。就像一开始的图里那样。
放心,不需要你提供ssh密钥,为了安全,命令能做什么完全由你定义。

实现的原理是在服务号中你发的命令会被存储在云端,
Agent 每分钟向云端发起请求检查一次,如果有命令则拉回来执行它。
执行完成之后可以返回成功或者失败的结果,你就会在微信服务号上看到。

Agent 哪里来呢?有这么几种选择:

  • 最自由:调用我们的API自己写
  • 省事点:调用 SDK 自己写
  • 够用就好:直接用我们几个开源的方案

这里我们先使用一个开源的通用 Agent来上手。
它可以帮你在服务器执行特定的命令。后面我们可以根据需求,自己通过 API 或 SDK,集成 Agent 或自己编写。

假设你的服务器是 Debian/Ubuntu ,如果是别的请参考 安装通用Agent
如果您本身就是 root 用户,麻烦去掉所有命令中的 sudo

# 注册仓库
curl -1sLf \
  'https://dl.cloudsmith.io/public/hackfan/skadi/setup.deb.sh' \
  | sudo -E bash
# 更新
apt update
# 安装
apt install skadi

在安装后,因为还没有 Token,所以并没有自动启动。
Token 哪来的呢?在服务号输入命令: agent add 名字 (名字是要你给它取个简单的名字,以后每次都要用它发命令)
然后将得到的 Token 写入配置文件,像下面这样。
你也可以编辑 /etc/skadi/skadi.yml 这个文件自己写入。

# 写入 Token
sudo skadi AGENT-TOKEN
# 启动服务
sudo systemctl start

只有第一次需要配置Token后手动启动服务,服务器重启它是会依靠systemd自己启动的。

然后就可以试用这个 Agent 了。

在公众号输入 名字 help ,看看 Agent 自己的帮助。
这个官方的通用 Agent 功能由你部署它的服务器上的 /etc/skadi/skadi.yml 这个配置文件定义。

然后你可以顺次输入名字 date,名字 lsroot,名字 free -m,名字 Hi Fool,
去试用,接下来,更改配置文件就可以完成重启服务,查看状态等简单的动作了。

只是想现在看看的话,也可以看看代码仓库的版本

更多功能

因为目前只是提供了一个舞台,更多的功能在持续的发掘中,我们会陆续更新文档中的 cookbook:

  • 在 CI 服务中通知微信,甚至直接给 Agent 发任务进行持续部署
  • Agent 之间链式发送任务配合完成工作
  • 集成在业务系统中当作一个简单的控制台,比如清除缓存,封禁用户等操作,微信上就搞定了。
  • 当成一个延迟队列使用
  • 控制家里的电脑
  • 控制路由器或者 NAS
  • 更多用法等待你开发脑洞~
03-05 23:59