Jianhui Zhao
92b71481f8
ui: add addon @xterm/addon-web-links
...
Adds web link detection and interaction in terminal.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-21 21:18:32 +08:00
Jianhui Zhao
7c3eb9cc99
http proxy: simplify session management and remove redundant cookies
...
- Add devid, group, destaddr, and https fields to HttpProxySession for better session tracking and logging.
- Refactor doHttpProxy to use only the rtty-http-sid cookie for session lookup, removing dependencies on group, devid, proto, and destaddr cookies.
- In httpProxyRedirect, store all necessary session info in HttpProxySession and set only the rtty-http-sid cookie.
- Unify logging to use the session string for easier debugging.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-21 21:18:32 +08:00
Jianhui Zhao
6787a39007
ui: add support virtual keyboard
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-21 21:18:26 +08:00
Jianhui Zhao
1c5c761470
ui: migrate all Vue components from Options API to Composition API
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-20 17:06:33 +08:00
Jianhui Zhao
9ff0f441eb
update README
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-20 13:49:59 +08:00
Jianhui Zhao
49106e5602
ui: Optimize font size settings
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-20 13:31:51 +08:00
Jianhui Zhao
f992856d53
ui: add terminal window splitting functionality
...
- Add horizontal and vertical split options to context menu
- Support recursive splitting for complex terminal layouts
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-20 13:31:28 +08:00
Jianhui Zhao
1251278902
ui: fix locale for Upload file to device in en.
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-19 19:21:03 +08:00
Jianhui Zhao
55e2803404
ui: Optimize the display effect of the right-click menus
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-19 18:21:11 +08:00
Jianhui Zhao
3efb274902
improve authentication logic for empty password
...
- Move empty password check from httpLogin to httpAuth
- httpLogin now only validates actual password comparison
- httpAuth handles empty password as authentication bypass
- This ensures consistent authentication behavior across all endpoints
Previously, empty password would always return true in httpLogin,
now it's properly handled at the authentication middleware level.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-19 15:32:23 +08:00
Jianhui Zhao
dd10162d34
ui: add smart positioning for context menu
...
- Add viewport boundary detection to prevent menu overflow
- Auto-adjust menu position when near screen edges
- Ensure menu stays within visible area with 15px margin
- Use $nextTick to calculate position after DOM update
This prevents context menu from being cut off when right-clicking
near screen boundaries, especially in bottom-right corner.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-19 15:28:12 +08:00
Jianhui Zhao
39e2d8bbb6
ui: This WebSocket should be closed on unmounted
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-19 15:19:17 +08:00
Jianhui Zhao
cec373b4dd
ui: fix ContextMenu.vue
...
may be el is null in close.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-19 11:42:45 +08:00
Jianhui Zhao
9561f5efc7
ui: add component RttyTerm.vue
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-19 11:39:04 +08:00
Jianhui Zhao
b63d9852a1
ui: fix scroll in terminal
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-19 11:29:02 +08:00
Jianhui Zhao
8e9081d551
ui: use class instead of inline style for terminal
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-19 11:25:29 +08:00
Jianhui Zhao
e9d345287a
ui: enhance clipboard paste with permission guidance
...
- Detect clipboard permission errors and show user-friendly instructions
- Add fallback to Shift+Insert shortcut for unsupported scenarios
- Implement unified clipboard permission guidance with i18n support
- Improve error handling for better user
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-17 11:12:29 +08:00
Jianhui Zhao
d2320dce67
refine user hook URL control for specific API endpoints
...
Move user hook validation to individual endpoints (/connect, /cmd, /web).
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-16 20:35:04 +08:00
Jianhui Zhao
989d9be983
ui: add loading indicator for create terminal
...
This prevents users from seeing a blank terminal while waiting for the WebSocket
connection to establish and the login process to complete.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-16 19:27:11 +08:00
Jianhui Zhao
f8e63ad01a
ui: redesign error page for better user experience
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-16 17:06:41 +08:00
Jianhui Zhao
50bfe1a1e2
improve login timeout handling with proper race condition protection
...
- Extract login waiting logic into separate waitForLogin function for better code organization
- Fix race condition between timeout and device response by using LoadAndDelete atomically
- Continue waiting for device response if timeout occurs but device has already responded
This refactoring ensures robust handling of the login process even when timeout and
device response
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-16 17:05:56 +08:00
Jianhui Zhao
d1703f44cd
add pprof performance profiling support
...
Add --pprof command line option to enable performance profiling
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-16 17:05:39 +08:00
Jianhui Zhao
0ca0086bdd
ui: handle WebSocket 403 unauthorized errors properly
...
When WebSocket connection fails due to 403 unauthorized status from server,
browser WebSocket API cannot distinguish HTTP status codes and only fires
a generic 'error' event. Redirect to /connect/:devid HTTP endpoint so that
browser can properly capture and handle the 403 status code response.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-16 17:05:17 +08:00
Jianhui Zhao
3842518da9
optimize the terminal login process via websocket close messages.
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-16 17:04:49 +08:00
Jianhui Zhao
948e304984
ui: fix locales for Error.vue.
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-16 17:04:31 +08:00
Jianhui Zhao
17599404f8
Add devid into the response of command execution #119
...
```
{"devid":"test","err":1,"msg":"operation not permitted"}
```
```
{"code":0,"devid":"test","stderr":"","stdout":"SGVsbG8sIFJ0dHkK"}
```
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-16 17:03:42 +08:00
Jianhui Zhao
98f3dbce02
add HTTP error responses to proxy connections
...
- Add sendHTTPErrorResponse function to send proper HTTP error pages
- Improve user experience by showing meaningful error pages instead of silent connection drops
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-16 17:02:15 +08:00
Jianhui Zhao
4f47087148
Remove unnecessary empty group parameter from redirect URLs
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-15 16:24:31 +08:00
Jianhui Zhao
c98a09465f
add downloads badge
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-15 09:29:17 +08:00
Jianhui Zhao
d6c5d6a578
bump version 5.2.0
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-14 23:43:31 +08:00
Jianhui Zhao
cf2f50eae8
ci: release assets
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-14 23:25:23 +08:00
Jianhui Zhao
6df295f324
ci: add build windows
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-14 23:16:12 +08:00
Jianhui Zhao
3a7df54e8b
ci: do not run build.yml on push tag
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-14 23:14:58 +08:00
Jianhui Zhao
2179298bf7
fix build fail for windows.
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-14 22:34:24 +08:00
Jianhui Zhao
7edc2ac18e
add a script to create deb package.
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-14 21:57:52 +08:00
Jianhui Zhao
a50f99baf8
Improve configuration file documentation and clarity
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-14 18:07:04 +08:00
Jianhui Zhao
6c36d6d1c8
Add user hook URL support for API access validation
...
- Forward all original HTTP headers plus custom rttys headers:
- X-Rttys-Hook: true
- X-Original-Method: original request method
- X-Original-URL: original request URL
- Hook must return HTTP 200 to allow API access.
This enables external services to validate and control user API access
by receiving the complete original request context through HTTP hooks.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-14 18:06:58 +08:00
Jianhui Zhao
346065a428
Use json.RawMessage for command response attrs
...
This fixes handling of error responses like `{"token":"token","attrs":{"err":1,"msg":"xx"}}`.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-13 19:57:56 +08:00
Jianhui Zhao
98023ee54d
update README
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-11 15:32:04 +08:00
Jianhui Zhao
c2caed9e9c
bump version 5.1.0
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-10 10:25:43 +08:00
Jianhui Zhao
e91b262a46
Add /counts API to get total device count
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-10 10:24:44 +08:00
Jianhui Zhao
35a1fe2913
ui: Implement direct paste functionality for terminal context menu
...
- Add pasteFromClipboard() method to enable direct clipboard paste
- Use Clipboard API with async/await for modern browser support
- Add fallback message for unsupported browsers or permission denied
- Add 'Pasted from clipboard' translations for English and Chinese
- Replace paste menu item action from showing instruction to actual paste
This allows users to paste content directly from the context menu instead
of requiring keyboard shortcuts, improving user experience.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-10 09:45:31 +08:00
Jianhui Zhao
313c13271a
ui: Update clipboard copy message text
...
Simplify the copy success message from "Already copied to clipboard"
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-10 09:27:03 +08:00
Jianhui Zhao
7830a325f3
ui: Change message type from info to success in context menu actions
...
Replace $message.info() with $message.success() for copy, paste, and file
upload instructions in the terminal context menu to provide more positive
user feedback for these informational messages.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-10 09:18:57 +08:00
Jianhui Zhao
86abb34a47
bump version 5.0.0
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-07 12:21:49 +08:00
Jianhui Zhao
a0bfc21d11
Refactor the message distribution process
...
To solve a major problem: when there are many devices connected,
the broker will blocked in processing messages.
By the way, I've rewritten and reorganized the entire code architecture,
improved performance.
Some new features has been added:
* support device grouping.
* support show device's IP address.
Change-Id: I250e18091be7fd42028c82767b6edef50b3f6d8f
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-07 12:21:36 +08:00
Jianhui Zhao
ff6cbda736
remove unused conf dev-auth-url in rttys.conf
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-04 17:17:03 +08:00
Jianhui Zhao
86420d878f
ui: remove tooltip for operation icon
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-04 11:44:59 +08:00
Jianhui Zhao
21c8e48baa
Optimize the code for processing command requests
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-03 17:03:08 +08:00
Jianhui Zhao
8f2ae9d6c9
remove unused variable devCertPool in broker struct
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-02 17:28:45 +08:00
Jianhui Zhao
af9eaa7cb4
api: Optimizing Static Resource Handling
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-02 12:54:43 +08:00
Jianhui Zhao
c45c5bf5bd
ui: Fix placeholder in RttyWeb.vue
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-02 09:12:12 +08:00
Jianhui Zhao
cefd50c5f8
ui: fix locale
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-07-01 20:11:55 +08:00
Jianhui Zhao
a68aa3c921
add support log panic while running in daemon mode.
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-27 16:52:22 +08:00
Jianhui Zhao
f43b71d1eb
Adjust the code structure of main.go
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-26 20:41:10 +08:00
Jianhui Zhao
6749ca9e46
fix memleak in httpProxyCons
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-26 18:34:34 +08:00
Jianhui Zhao
efb4c8a539
Remove built-in TLS support in favor of Nginx termination
...
This commit eliminates the native TLS implementation from rttys.
Going forward, TLS termination will be handled exclusively by
Nginx reverse proxy. Key changes include:
1. Removed all TLS-related configuration options
2. Deleted certificate handling and encryption logic
3. Simplified network stack to plain TCP only
4. Updated documentation to reflect new architecture
Rationale:
- Delegates TLS to specialized reverse proxy (Nginx)
- Improves security through separation of concerns
- Reduces attack surface of rttys core service
- Enables centralized certificate management
- Facilitates future scalability with proxy layer
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-26 15:07:01 +08:00
Jianhui Zhao
183aa31b2c
ui: fix placeholder for web proxy
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-26 11:57:29 +08:00
Jianhui Zhao
ef160cc70b
ui: remove compositionOnly: false
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-25 22:17:29 +08:00
Jianhui Zhao
a7db997ea7
ui: remove unused method in ContextMenu.vue
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-23 14:05:36 +08:00
Jianhui Zhao
c9097e95df
pretty ui title
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-23 12:19:47 +08:00
Jianhui Zhao
dd2e8351a5
Fix language following the browser.
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-23 12:18:56 +08:00
Jianhui Zhao
046ff5943d
remove some doc
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-23 09:03:55 +08:00
Jianhui Zhao
09c01dabd8
copy rttys.service to release
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-22 18:27:50 +08:00
Jianhui Zhao
eaf1c3960a
add expire for httpProxySessions
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-20 17:07:34 +08:00
Jianhui Zhao
33f82c789a
fix log for http proxy
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-20 16:56:16 +08:00
Jianhui Zhao
9a4d81ba71
close device if invalid msg type received.
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-20 16:12:13 +08:00
Jianhui Zhao
9dc80c91fc
ui: fix translate
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-19 22:34:58 +08:00
Jianhui Zhao
79401c60fb
ci: update github workflows
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-19 22:08:43 +08:00
Jianhui Zhao
a355893d09
chore: update README
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-19 16:04:21 +08:00
Jianhui Zhao
87a8e877f2
feat: update cli to github.com/urfave/cli/v3
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-17 22:39:17 +08:00
Jianhui Zhao
8f2cf21dfb
fix: Fix func GenUniqueID
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-17 22:39:17 +08:00
Jianhui Zhao
a1ba56b9df
docs: update README
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-17 22:39:17 +08:00
Jianhui Zhao
553b64be8b
refactor: remove command line for generate token.
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-17 22:39:08 +08:00
Jianhui Zhao
74f6b42933
fix: Fix typo
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-17 11:50:05 +08:00
Jianhui Zhao
68cfedf733
perf: improve sending PingMessage for web user
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-17 09:17:15 +08:00
Jianhui Zhao
2dffb56e8a
chore: remove readmex bage
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-16 20:22:46 +08:00
Jianhui Zhao
d926f0ac6c
perf: Improve file upload speed
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-16 19:52:21 +08:00
Jianhui Zhao
f51ddc75d7
chore: Delete irrelevant files generate-CA.sh
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-16 18:33:23 +08:00
Jianhui Zhao
3f41e57b66
feat: update some go packages
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-16 18:30:29 +08:00
Jianhui Zhao
5477976428
perf: Remove unnecessary atomic operations
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-16 16:39:32 +08:00
Jianhui Zhao
84707378e0
perf: improve device heartbeat
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-16 16:03:16 +08:00
Jianhui Zhao
c7592da63f
fix: Ensure the client is only close once
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-16 15:35:46 +08:00
Jianhui Zhao
5cca249873
fix: stop timer while handle register for device
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-16 14:58:55 +08:00
Jianhui Zhao
1c41f1d90e
feat(ui): More convenient access device web
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-15 18:07:43 +08:00
Jianhui Zhao
ba05ea6764
perf(ui): improve code via create a vue component RttyCmd
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-15 18:07:09 +08:00
Jianhui Zhao
a23267dd53
feat: Add option allow-origins
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-15 15:37:16 +08:00
Jianhui Zhao
a6ae0322a6
feat: add an api /dev/:devid to get one device
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-15 15:37:16 +08:00
Jianhui Zhao
41723aca41
perf: Optimize HTTP session management
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-15 15:37:16 +08:00
Jianhui Zhao
8644fff049
perf: Optimize the device registration process.
...
Put most of the registration work into the device's
goroutine for processing.
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-15 15:37:16 +08:00
Jianhui Zhao
166ef7e991
refactor: parse device messages using TLV.
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-15 15:37:16 +08:00
Jianhui Zhao
7c5ebee190
style: Fix code style
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-15 15:37:16 +08:00
Jianhui Zhao
a6b008ed6e
feat: more convenient to set the terminal font size.
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-15 15:37:16 +08:00
Jianhui Zhao
8818c09d8d
feat: submit on keyup of enter in Login page.
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-15 15:37:16 +08:00
Jianhui Zhao
cbfa9f8bd4
chore: use autofocus for el-input
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-15 15:37:16 +08:00
Jianhui Zhao
f80ae5c7eb
feat: update all packages to latest
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-15 15:37:16 +08:00
Jianhui Zhao
b0258a312b
perf: call device hook in goroutine
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-15 15:37:16 +08:00
Jianhui Zhao
b5ba94e067
fix: Fix redundant if judgments in device register.
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-15 15:37:16 +08:00
Jianhui Zhao
7f1ff94f83
chore: pretty Login page
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-15 15:37:16 +08:00
Jianhui Zhao
0bfce6163a
fix: Fix device message length validation.
...
Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com >
2025-06-15 15:37:16 +08:00