这是rtty的服务器程序。
golang and node 20+ is required
cd ui
npm install
npm run build
cd ..
go build
生成一个 token
$ rttys token
Please set a password:******
Your token is: 34762d07637276694b938d23f10d7164
使用 token
$ rttys -t 34762d07637276694b938d23f10d7164
如果配置了设备认证 url, 设备连接时, rttys 会向此 url 发起认证请求, 认证服务器返回是否通过认证.
请求数据格式:
{"devid":"test", "token":"34762d07637276694b938d23f10d7164"}
认证服务器响应格式:
{"auth": true}
您可以在配置文件中指定设备 CA 存储(有效文件)或在 CLI 中指定设备 CA 存储(参数 ssl-cacert) 来启用 mTLS。 存储中没有有效 CA 的设备将在 TLS 握手中断开连接。
sqlite://rttys.db
mysql://rttys:rttys@tcp(localhost)/rttys
在数据库实例上,以root用户身份登录到数据库控制台:
mysql -u root -p
创建将由 Rttys 使用的数据库用户,通过密码验证。本例使用 “rttys” 作为密码。请为您的实例使用安全密码。
CREATE USER 'rttys' IDENTIFIED BY 'rttys';
使用 UTF-8 字符集和排序规则创建数据库。确保使用 utf8mb4 字符集而不是 utf8,因为前者支持基本多语言平面 之外的所有 Unicode字符(包括emojis)。另外,根据您期望的内容选择排序规则。如有疑问,请使用 unicode_ci 或general_ci。
CREATE DATABASE rttys CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
将数据库上的所有权限授予上面创建的数据库用户。
GRANT ALL PRIVILEGES ON rttys.* TO 'rttys';
FLUSH PRIVILEGES;
退出数据库控制台。
# rttys.conf
addr-http-proxy: :5914
http-proxy-redir-url: http://your-server.com:5914
local-auth: false
# nginx.conf
server {
listen 8080;
location /connect/ {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://127.0.0.1:5913;
}
location / {
proxy_pass http://127.0.0.1:5913;
}
}
sudo docker run -it -p 5912:5912 -p 5913:5913 -p 5914:5914 zhaojh329/rttys:latest run --addr-http-proxy :5914
如果你想帮助rttys变得更好,请参考 CONTRIBUTING_ZH.md。