mirror of
https://github.com/zhaojh329/rttys.git
synced 2026-02-27 09:53:21 +08:00
160 lines
4.1 KiB
Markdown
160 lines
4.1 KiB
Markdown
# rttys([中文](/README_ZH.md))
|
|
|
|
[1]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=plastic
|
|
[2]: /LICENSE
|
|
[3]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=plastic
|
|
[4]: https://github.com/zhaojh329/rttys/pulls
|
|
[5]: https://img.shields.io/badge/Issues-welcome-brightgreen.svg?style=plastic
|
|
[6]: https://github.com/zhaojh329/rttys/issues/new
|
|
[7]: https://img.shields.io/badge/release-4.4.5-blue.svg?style=plastic
|
|
[8]: https://github.com/zhaojh329/rttys/releases
|
|
[9]: https://github.com/zhaojh329/rttys/workflows/build/badge.svg
|
|
[12]: https://deepwiki.com/badge.svg
|
|
[13]: https://deepwiki.com/zhaojh329/rttys
|
|
|
|
[![license][1]][2]
|
|
[![PRs Welcome][3]][4]
|
|
[![Issue Welcome][5]][6]
|
|
[![Release Version][7]][8]
|
|
![Build Status][9]
|
|
[![Ask DeepWiki][12]][13]
|
|
|
|
This is the server program of [rtty](https://github.com/zhaojh329/rtty)
|
|
|
|
## Build from source
|
|
golang and node 20+ is required
|
|
|
|
cd ui
|
|
npm install
|
|
npm run build
|
|
cd ..
|
|
go build
|
|
|
|
## Authorization(optional)
|
|
### Token
|
|
A token is a random string generated by users themselves, which can be regarded
|
|
as the password for device connecting.
|
|
|
|
$ rttys run -t 34762d07637276694b938d23f10d7164
|
|
|
|
### Use your own authentication server
|
|
If the device authentication URL is configured, when the device connecting,
|
|
rttys will initiate an authentication request to this URL, and the authentication
|
|
server will return whether the authentication has been passed.
|
|
|
|
Request data format:
|
|
|
|
{"devid":"test", "token":"34762d07637276694b938d23f10d7164"}
|
|
|
|
Authentication Server Response Format:
|
|
|
|
{"auth": true}
|
|
|
|
### mTLS
|
|
You can enable mTLS by specifying device CA storage (valid file) in config file or from CLI (variable ssl-cacert).
|
|
Device(s) without valid CA in storage will be disconnected in TLS handshake.
|
|
|
|
## nginx proxy
|
|
|
|
```
|
|
# rttys.conf
|
|
|
|
addr-user: 127.0.0.1:5913
|
|
|
|
addr-http-proxy: 127.0.0.1:5914
|
|
http-proxy-redir-url: http://web.your-server.com
|
|
http-proxy-redir-domain: .your-server.com
|
|
```
|
|
|
|
```
|
|
# nginx.conf
|
|
|
|
server {
|
|
listen 80;
|
|
|
|
server_name rtty.your-server.com;
|
|
|
|
location /connect/ {
|
|
proxy_http_version 1.1;
|
|
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;
|
|
}
|
|
}
|
|
|
|
server {
|
|
listen 80;
|
|
|
|
server_name web.your-server.com;
|
|
|
|
location / {
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "Upgrade";
|
|
proxy_pass http://127.0.0.1:5914;
|
|
}
|
|
}
|
|
```
|
|
|
|
The parameter 'http-proxy-redir-url' and 'http-proxy-redir-domain' in rttys.conf can also be configured
|
|
by setting new HTTP headers in nginx.
|
|
|
|
```
|
|
server {
|
|
listen 80;
|
|
|
|
server_name rtty.your-server.com;
|
|
|
|
location /connect/ {
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "Upgrade";
|
|
proxy_pass http://127.0.0.1:5913;
|
|
}
|
|
|
|
location /web/ {
|
|
proxy_set_header HttpProxyRedir http://web.your-server.com;
|
|
proxy_set_header HttpProxyRedirDomain .your-server.com
|
|
proxy_pass http://127.0.0.1:5913;
|
|
}
|
|
|
|
location / {
|
|
proxy_pass http://127.0.0.1:5913;
|
|
}
|
|
}
|
|
|
|
server {
|
|
listen 80;
|
|
|
|
server_name web.your-server.com;
|
|
|
|
location / {
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "Upgrade";
|
|
proxy_pass http://127.0.0.1:5914;
|
|
}
|
|
}
|
|
```
|
|
|
|
## Docker
|
|
### Simple run
|
|
|
|
sudo docker run -it -p 5912:5912 -p 5913:5913 -p 5914:5914 zhaojh329/rttys:latest \
|
|
run --addr-http-proxy :5914
|
|
|
|
### Using config file
|
|
|
|
sudo mkdir -p /opt/rttys
|
|
sudo sh -c 'echo "addr-http-proxy: :5914" > /opt/rttys/rttys.conf'
|
|
sudo docker run -it -p 5912:5912 -p 5913:5913 -p 5914:5914 -v /opt/rttys:/etc/rttys \
|
|
zhaojh329/rttys:latest run -conf /etc/rttys/rttys.conf
|
|
|
|
## Contributing
|
|
If you would like to help making [rttys](https://github.com/zhaojh329/rttys) better,
|
|
see the [CONTRIBUTING.md](https://github.com/zhaojh329/rttys/blob/master/CONTRIBUTING.md) file.
|