Skip to content

gandli/proxy-tui

Repository files navigation

proxy-tui

A terminal-based TUI tool for managing proxy deployments across multiple VPS servers.

Rust License

Features

  • Multi-Server Management: Add and remove VPS servers with SSH credentials (edit planned)
  • Multi-Protocol Support: Hysteria2, VLESS, VMess, Trojan, Tuic, sing-box, and more
  • Extensible Templates: Define custom protocols via YAML templates (planned)
  • Hybrid Deployment: Generate configs locally or use existing installation scripts (planned)
  • Real-time Status: Monitor service status across all your servers (planned)

Quick Start

# Install from crates.io (coming soon)
cargo install proxy-tui

# Or build from source
git clone https://github.com/gandli/proxy-tui.git
cd proxy-tui
cargo build --release
./target/release/proxy-tui

Quick Commands

Convenience scripts for common development workflows:

# Development
./scripts/dev.sh          # Build and run the TUI
./scripts/dev.sh watch    # Watch mode with auto-rebuild
./scripts/dev.sh docker   # Start SSH target container for testing

# Testing
./scripts/test.sh         # Quick check (cargo check)
./scripts/test.sh unit    # Run unit tests
./scripts/test.sh test    # Run unit + integration tests
./scripts/test.sh lint    # Format and lint code
./scripts/test.sh ci      # Full CI check (fmt + clippy + tests)

All scripts are cross-platform friendly (macOS/Linux) and include helpful error messages.

Using Make

Alternatively, use the Makefile for more targets:

make run        # Build and run
make test       # Run unit tests
make lint       # Format + clippy
make help       # Show all available targets

Usage

proxy-tui         # Launch the TUI
proxy-tui --help  # Show help

Key Bindings

Key Action
j/k or ↑/↓ Navigate
Enter Select / Confirm
a Add server
d or x Delete server (with confirmation)
e Edit server (planned)
i Install protocol (placeholder)
t Test SSH connectivity
p Protocol list (from detail view)
q / Ctrl+C Quit

Note: h (help) and r (refresh) are planned for v0.2.

Protocol Templates

Protocols are defined as YAML templates in ~/.config/proxy-tui/protocols/:

# example: hysteria2.yaml
name: Hysteria2
core: sing-box
description: High-performance QUIC-based proxy
config_template: |
  {
    "inbounds": [{
      "type": "hysteria2",
      "tag": "hysteria2-in",
      "listen": ":${port}"
    }]
  }
install_steps:
  - download: https://github.com/SagerNet/sing-box/releases/latest
  - copy: config.json -> /etc/sing-box/
  - systemd: enable sing-box

Documentation

Roadmap

  • v0.1: Core TUI + server management + SSH connectivity test
  • v0.2: Protocol installation + edit server + SSH session
  • v0.3: Multi-server batch operations + custom protocols
  • v0.4: Traffic statistics + user management
  • v1.0: Stable release with full documentation

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Inspired by v2ray-agent and other proxy installation scripts. Built with Ratatui TUI framework.

About

Terminal TUI for managing proxy deployments across multiple VPS servers

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors