Headscale使用gRPC API
背景
最近在开发一个 Headscale
控制管理平台用来管理用户创建、设备管理等等。但是当我试用了 Headscale
官网推荐的几个 UI
程序后,发现它们离我预期的功能还相差很多。我试用的几个 Headscale UI
程序,都使用 REST API
与 Headscale
进行通信,但是我遇到一个问题,在高版本 Headscale(0.25.1及以上)
中,REST API
不能创建带 Namespace
或 displayName
的用户。
所以我就通过搜索引擎查找关于 Headscale
REST API
创建 带租户的用户名,发现了以下两个链接:
- https://github.com/juanfont/headscale/issues/2166
- https://github.com/juanfont/headscale/commit/028d9aab73206eadbccd600d63910e057de7feb8
知道, Headscale
提供 gRPC API
提供 用户 displayName
创建。不过互联网上关于 Headscale gRPC API
的资料少之又少,跟别提 demo
程序了。
一番检索之后,我发现只能自己来完成这项工作了,并且在程序开发完成后,将 Headscale
一部分管理控制功能开源出来。
开发
知道使用 gRPC API
可以创建带 displayName
的用户后,后面的开发就简单多了,是的,全部交给 AI
来完成。
不过 AI
的知识库没有那么多新内容,在处理 gRPC
返回格式时一直出现错误。此时我们需要把 Headscale
的 Github
相关链接告诉它,并且提供 gRPC
返回的数据格式,AI
就顺利的完成了整个代码编写。 后续我自己进行相关测试即可。
开源
由于关于 Headscale
gRPC API
功能的说明文档以及示例代码很少,所以我就准备将这部分开源出来。
开源的程序有 两套,一套是基于 headscale-admin
添加的 gRPC
功能,这是一个纯 NodeJS
项目;另一套是 Java
程序,纯后端,没有前端配套界面。