Skip to content

zhaojh329/rtty

Repository files navigation

rtty (中文) - Access your device from anywhere via the web

This project is officially supported by GL.iNet.

license PRs Welcome Issue Welcome Release Version Build Status Downloads ReadmeX Ask DeepWiki visitors

Architecture

flowchart TB
s[rttys with public IP address]
u1["User (Web Browser)"] --> s
u2["User (Web Browser)"] --> s
u3["User (Web Browser)"] --> s
s --> c1["rtty (Linux Device)"]
s --> c2["rtty (Linux Device)"]
s --> c3["rtty (Linux Device)"]
Loading

Overview

rtty is a powerful remote terminal solution composed of clients and a server.

Client Implementations:

  • C Client: Ultra-lightweight, designed for embedded Linux and resource-constrained devices.
  • Go Client: Easy cross-platform compilation, suitable for rapid integration and cloud-native/container environments.

The server is implemented in Go, with a modern frontend built using Vue.

You can access your device from anywhere via a web browser, and manage devices using unique device IDs.

rtty is ideal for remote maintenance and management of large-scale distributed Linux devices, making it a great choice for enterprise operations.

Go client repository: https://github.com/zhaojh329/rtty-go

Key Features

🚀 Multi-language Client Options

  • C Client:

    • Ultra-lightweight, designed for embedded Linux and resource-constrained devices
    • Minimal footprint (without SSL: rtty 32KB + libev 56KB; with SSL: + libmbedtls 88KB + libmbedcrypto 241KB + libmbedx509 48KB)
    • Multiple SSL backends (OpenSSL, mbedtls, CyaSSl/wolfssl)
    • mTLS support for mutual authentication
  • Go Client:

    • Easy cross-platform compilation, suitable for rapid integration and cloud/container environments
    • Minimal dependencies, simple deployment
    • It has the same functions as the C client and is fully compatible.

🔐 Security

  • Multiple SSL backends and mutual authentication for secure data transfer

🌐 Advanced Remote Management

  • Batch command execution across multiple devices
  • Device identification using unique device IDs
  • HTTP Proxy support for accessing device web interfaces

📁 File Management

  • Seamless file transfer: convenient upload and download
  • Web-based interface for intuitive file operations

💻 Modern Terminal Experience

  • Full-featured terminal powered by Xterm.js
  • Browser-based access from anywhere
  • Virtual keyboard support for touch devices
  • Window splitting for multi-session and multitasking

Deployment & Compatibility

  • Simple deployment and quick setup
  • Easy-to-use interface
  • Cross-platform compatibility

Deployment & Usability

  • Simple deployment process
  • Easy to use interface
  • Cross-platform compatibility

Production Users

Trusted by leading technology companies:

Client Dependencies

C Client Dependencies

Go Client Dependencies

  • No extra dependencies. Pure Go build and runtime.

⭐ Star History

Star History Chart

🤝 Contributing

Help us make rtty even better!

See the CONTRIBUTING.md file for detailed guidelines on how to contribute to this project.