Skip to content

A lightweight, self-hosted Ngrok alternative for secure HTTP tunneling using your own VPS + domain. Fast, unlimited, and developer-friendly.

Notifications You must be signed in to change notification settings

ibrahimpelumi6142/liptunnel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

30 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

LIPTunnel Banner

LIPTunnel

Your Tunnel. Your Domain. Your Control.

🌐 LIPTunnel β€” Self-Hosted Ngrok Alternative

LIPTunnel is a fast, lightweight, self-hosted tunneling system that exposes your local server to the internet using your own VPS + domain.

No subscriptions.
No limits.
No tracking.
Just a simple Node.js tunnel that YOU control.

Created by Lasisi Ibrahim Pelumi (Full-Stack Engineer).


⚑ What's New in v1.1.0

πŸš€ Multi-Tunnel Support

Run multiple tunnels with a single command!

Before:

# Need 3 terminal windows
liptunnel http 3000 --server yourdomain.com
liptunnel http 8080 --server yourdomain.com
liptunnel http 5000 --server yourdomain.com

Now:

# Just one command!
liptunnel http 3000,8080,5000 --multi --server yourdomain.com

Output:

Multi-Tunnel Mode: Active

Forwarding 1: http://tunnel1-abc.yourdomain.com β†’ http://localhost:3000
Forwarding 2: http://tunnel2-def.yourdomain.com β†’ http://localhost:8080
Forwarding 3: http://tunnel3-ghi.yourdomain.com β†’ http://localhost:5000

Perfect for:

  • πŸ”§ Microservices development
  • 🌐 Full-stack projects (frontend + backend)
  • πŸ”Œ Webhook testing (API + webhook receiver)
  • πŸ“± Mobile app development

πŸ“ Repository Folder Structure

liptunnel/
 β”œβ”€ bin/
 β”‚   └─ liptunnel.js        # CLI client (runs on user machine)
 β”œβ”€ server/
 β”‚   └─ server.js           # Tunnel server (runs on VPS)
 β”œβ”€ docs/
 β”‚   β”œβ”€ architecture.md
 β”‚   └─ multi-tunnel.md
 β”œβ”€ assets/
 β”‚   β”œβ”€ liptunnel-banner.gif
 β”‚   β”œβ”€ liptunnel-demo.png
 β”‚   └─ server-pm2.png
 β”œβ”€ package.json
 β”œβ”€ README.md
 └─ LICENSE

πŸš€ Features

  • πŸ”₯ Expose any local port over HTTP
  • 🌍 Generates public URLs like: http://abcd12.yourdomain.com
  • πŸš€ NEW: Multi-tunnel support - run multiple ports simultaneously
  • 🎯 NEW: --multi flag for numbered forwarding display
  • πŸ›° Works with ANY VPS (even old VPN servers)
  • ⚑ Real-time request forwarding
  • πŸ–₯ Local dashboard: http://127.0.0.1:4040
  • πŸ” No third-party services (no Ngrok, no Cloudflare Tunnels)
  • πŸ’» Works on Windows, macOS, Linux
  • πŸ›  Zero configuration required
  • 🧩 Full open-source control
  • βœ… Fully backward compatible

πŸ“Έ Demo Screenshot

Below is an actual output of LIPTunnel running live:

Screenshot 1 β†’ Client side (your CMD window)

LIPTunnel CLI Screenshot

Screenshot 2 β†’ Server side (PM2)

LIPTunnel Server PM2 Screenshot

This shows:

βœ” Tunnel status
βœ” Forwarding URL
βœ” Live request logs
βœ” Dashboard URL
βœ” Version + region
βœ” Successful POST requests


🧠 How It Works

  1. You run the tunnel server on your VPS.
  2. You run the LIPTunnel client on your computer:
   liptunnel http 5000 --server yourdomain.com
  1. The client opens a WebSocket connection to your VPS.

  2. Your VPS assigns a random subdomain, e.g.:

   http://u8smnt.yourdomain.com
  1. Incoming HTTP requests are forwarded directly to your local machine.

πŸ— Architecture

User β†’ yourdomain.com β†’ LIPTunnel VPS β†’ WebSocket β†’ your computer β†’ localhost:5000

Reverse tunneling, simple and fast.


βš™ Requirements

  • Node.js 18+
  • A domain you control
  • A VPS (1 CPU / 512MB RAM is enough β€” even old servers work)
  • Port 80 available (or use Nginx reverse proxy)

πŸ“₯ Installation

  1. Clone the project
git clone https://github.com/ibrahimpelumi6142/liptunnel.git
cd liptunnel
npm install
  1. Configure your domain (Optional)

    Edit bin/liptunnel.js line 50:

   let serverHost = "your-actual-domain.com";  // Replace with your domain

Or use the --server flag when running (see usage below).


πŸš€ Start the VPS Tunnel Server

On your VPS:

npm run start:server

This starts the server on port 80.

DNS Setup (recommended)

Create this DNS record:

*.yourdomain.com   A   <your-vps-ip>

πŸ’» Usage

Single Tunnel (Normal Mode)

On your local machine:

liptunnel http 5000 --server yourdomain.com

Output:

Status: Online
Forwarding: http://abcd12.yourdomain.com β†’ http://localhost:5000

Visit this URL from anywhere in the world β€” it hits your local machine.


Multiple Tunnels (Multi Mode)

Run multiple services at once:

liptunnel http 3000,8080,5000 --multi --server yourdomain.com

Output:

Multi-Tunnel Mode: Active

Forwarding 1: http://tunnel1-abc.yourdomain.com β†’ http://localhost:3000
Forwarding 2: http://tunnel2-def.yourdomain.com β†’ http://localhost:8080
Forwarding 3: http://tunnel3-ghi.yourdomain.com β†’ http://localhost:5000

Use Cases:

Microservices Development:

liptunnel http 3000,4000,5000 --multi --server yourdomain.com
# 3000 β†’ User Service
# 4000 β†’ Auth Service  
# 5000 β†’ Payment Service

Full-Stack Development:

liptunnel http 3000,8080 --multi --server yourdomain.com
# 3000 β†’ React frontend
# 8080 β†’ Express API

API + Webhook Testing:

liptunnel http 8000,8001 --multi --server yourdomain.com
# 8000 β†’ Main API
# 8001 β†’ Webhook receiver (Stripe, GitHub, etc.)

πŸ”§ Local Dashboard

Open:

http://127.0.0.1:4040

It shows:

  • Recent requests
  • HTTP status
  • Tunnel info
  • Multi-tunnel view (when using --multi)

πŸ›‘ Why LIPTunnel?

Feature LIPTunnel Ngrok Cloudflare Tunnel
Free βœ… Limited βœ…
Unlimited tunnels βœ… ❌ βœ…
Use your own domain βœ… Paid only βœ…
Self-hosted βœ… ❌ ❌
Logs stored locally βœ… ❌ ❌
No tracking βœ… ❌ ❌
Identity branding You Ngrok Cloudflare
Multi-tunnel βœ… ❌ βœ…
Setup time 5 min 2 min 10 min

LIPTunnel gives you full control, privacy, and freedom.


πŸ“š Documentation


🧱 Roadmap

  • Multi-tunnel support βœ… v1.1.0
  • HTTPS support (Let's Encrypt)
  • Named fixed subdomains
  • Authentication tokens
  • Configuration file support
  • Web-based management UI
  • Docker containers

🀝 Contributing

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

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ‘¨β€πŸ’» Author

Lasisi Ibrahim Pelumi
Full-Stack Engineer β€’ Automation Developer

If you like this project, please ⭐ star the repo.


πŸ“ Changelog

v1.1.0 (2026-01-22)

  • ✨ Added multi-tunnel support with comma-separated ports
  • ✨ Added --multi flag for numbered forwarding display
  • ✨ Enhanced dashboard for multiple tunnels
  • ✨ Per-tunnel logging in multi mode
  • βœ… Fully backward compatible with v1.0.x

v1.0.1

  • πŸ› Bug fixes and improvements

v1.0.0

  • πŸŽ‰ Initial release

πŸ“œ License

MIT License β€” free to use, modify, and distribute.


Made with ❀️ for developers who value privacy and control

About

A lightweight, self-hosted Ngrok alternative for secure HTTP tunneling using your own VPS + domain. Fast, unlimited, and developer-friendly.

Topics

Resources

Stars

Watchers

Forks