From e477db3f938d9ddb0655162b6e1c8cfa6ea52ed4 Mon Sep 17 00:00:00 2001 From: RipleyBooya Date: Fri, 21 Feb 2025 01:34:56 +0100 Subject: [PATCH] Update README.md --- README.md | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 116 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f92511b..26b18c2 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,116 @@ -# ssh-tunnel -Securely expose remote services via SSH tunnels inside Docker. Lightweight, multiarch & easy to use! +# 🛡️ SSH Tunnel - Secure Remote Access via SSH Tunnels +

+ SSH Tunnel Logo +

+ +## 🚀 **Quick Start** +For a fast setup, run: +```sh +docker run -d -e SSH_HOST=your-server -e SSH_USER=user \ + -v ~/.ssh/id_rsa:/tmp/id_rsa:ro ripleybooya/ssh-tunnel +``` + +## 📌 Why this image? +This container was created to **securely expose remote services via SSH tunnels**. +Instead of exposing databases or other services to the public internet, this container allows you to **create secure SSH tunnels** inside a Docker network. + +### 🔥 **Use Cases:** +- Securely connect to **remote databases** (PostgreSQL, MySQL, MariaDB). +- Access **internal services** (Redis, Elasticsearch, APIs) via SSH. +- Securely tunnel any service **without exposing it publicly**. + +--- + +## 🚀 How to Use + +### **1️⃣ Run with `docker run`** +```sh +docker run -d --name ssh-tunnel \ + -e SSH_HOST="your-server.com" \ + -e SSH_USER="your-username" \ + -e REMOTE_PORTS="127.0.0.1:5432 127.0.0.1:443" \ + -e LOCAL_PORTS="15432 8443" \ + -v /path/to/id_rsa:/tmp/id_rsa:ro \ + --network=my_docker_network \ + ripleybooya/ssh-tunnel +``` + +📌 **Explanation:** +- `SSH_HOST`: The remote server where SSH tunnels will be established. +- `SSH_USER`: The SSH user on the remote server. +- `REMOTE_PORTS`: Ports from the remote server (format: `127.0.0.1:PORT`). +- `LOCAL_PORTS`: Ports inside the Docker network (mapped to `REMOTE_PORTS`). +- `-v /path/to/id_rsa:/tmp/id_rsa:ro`: **Mounts your SSH key securely** (using `/tmp/id_rsa` for better permissions). + +--- + +### **2️⃣ Using `docker-compose.yml`** +For easier management, use **Docker Compose**: +```yaml +version: '3.8' + +services: + ssh-tunnel: + image: ripleybooya/ssh-tunnel + container_name: ssh-tunnel + restart: always + networks: + - internal + environment: + SSH_HOST: "your-server.com" + SSH_USER: "your-username" + REMOTE_PORTS: "127.0.0.1:5432 127.0.0.1:443" + LOCAL_PORTS: "15432 8443" + volumes: + - /path/to/id_rsa:/tmp/id_rsa:ro + +networks: + internal: + driver: bridge +``` + +--- + +## 📌 **Why use this image?** +✅ **Secure**: No need to expose services publicly. +✅ **Simple**: Just set environment variables and run. +✅ **Multi-Arch**: Works on **x86_64 (Intel/AMD)** and **ARM64 (Oracle Cloud, Raspberry Pi, etc.)**. +✅ **Lightweight**: Uses **Alpine Linux** for minimal resource usage. + +--- + +## 📦 Pull & Run +```sh +docker pull ripleybooya/ssh-tunnel +docker run --rm -it ripleybooya/ssh-tunnel uname -m +``` + +🚀 **Now your remote services are accessible through secure SSH tunnels!** + +--- + +## 🔖 Tags & Keywords +This image can be used for: +- 🛡️ **SSH Tunneling** +- 🔌 **Networking & Proxy** +- 🔒 **Security & Encryption** +- 🗄️ **Database Access (PostgreSQL, MySQL, MariaDB, etc.)** +- 🏗️ **Remote Service Exposure in Docker** + +--- + +## 📜 Third-Party Licenses +This project is based on: +- [Alpine Linux](https://www.alpinelinux.org/) - MIT License +- [OpenSSH](https://www.openssh.com/) - BSD License +- [Docker](https://www.docker.com/) - Apache 2.0 License + +## 📜 License +This project is licensed under the **MIT License**. +You are free to use, modify, and distribute it. +Read the full license [here](https://opensource.org/licenses/MIT). + +--- + +## 🤖 AI Assistance & Acknowledgment +This project was built with the help of an **AI-powered assistant (LLM)** to improve structure, efficiency, and documentation clarity.