Echogy

Echogy

Echogy

A lightweight and efficient SSH reverse proxy tool implemented in Go, featuring a beautiful Terminal User Interface (TUI).

Features

Terminal User Interface (TUI)

  • Modern and responsive terminal interface
  • SSH session management
  • Real-time connection status monitoring
  • User-friendly interface for managing SSH connections

Core Features

  • SSH reverse proxy functionality
  • Multiple concurrent SSH connections support
  • TCP port forwarding
  • Secure session management
  • Built-in logging system

Quick Start

  1. Clone the repository:
1
2
git clone https://github.com/echogy-io/echogy.git
cd echogy
  1. Install dependencies:
1
go mod download
  1. Configure your settings in config.json:
1
2
3
4
5
6
7
{
  "addr": ":443",
  "ssh_addr": ":22",
  "domain": "your-domain.com",
  "idle_timeout": 300,
  "key": "YOUR_SSH_KEY"
}
  1. Build and run:
1
2
make build
./echogy

Project Structure

.
├── cmd/           # Command line tools
├── logger/        # Logging framework
├── tui/          # Terminal User Interface components
├── pprof/        # Performance profiling
├── echogy.go     # Core SSH implementation
├── conn.go       # Connection management
├── facade.go     # Facade pattern implementation
├── forward.go    # Port forwarding logic
└── util.go       # Utility functions

Key Components

  • SSH Server: Handles SSH connections and session management
  • Forward Proxy: Manages TCP port forwarding
  • TUI: Provides an interactive terminal interface
  • Logger: Structured logging with multiple output formats

Configuration

SSH Key Setup

1
2
ssh-keygen -b 2048 -f echogy_rsa
# Copy the private key content to config.json

Domain Configuration

1
2
3
# DNS A records
A your-domain.com YOUR_SERVER_IP
A *.your-domain.com YOUR_SERVER_IP

License

This project is licensed under the BSD-3-Clause License.

Contributing

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