Skip to content

Add Tunnelmole as an open source alternative to ngrok #475

Open
@robbie-cahill

Description

@robbie-cahill

I've noticed you have ngrok as the suggested tunnelling solution in your README and you also have a script in package.json. However, it has a few issues

  • Its closed source and proprietary. Because you can't review the source code, you can never be 100% sure what you are really installing
  • You can't self host ngrok
  • Its not part of the NodeJS ecosystem, you have to install it separately. There is an NPM wrapper package but it just wraps around the ngrok binary.

So, i'd like to update your docs to add tunnelmole. It has the following advantages

  • Its fully open source with a permissive MIT license
  • Optionally, Tunnelmole can be self hosted with the Tunnelmole Service. Otherwise it will use the default service at tunnelmole.com.
  • Its on NPM. You can run npx tmole 3000 without installing anything and it will work.

Here's the difference in terms of set up and usage

Ngrok

First download and install from ngrok.com

ngrok http 3000
Tunnelmole

Various installation options including npm, copy and paste shell one liner, building from source etc available in the README

For example, you can install with curl -O https://install.tunnelmole.com/2334d/install && sudo bash install then run

tunnelmole 3000

There are a few options here

  • Do nothing, keeping ngrok as the only tunnelling option
  • Replace ngrok with Tunnelmole
  • Add Tunnelmole as an additional option

I'm also interested in improving upon your current ngrok script in package.json.

I could add something like

  "scripts": {
    "start": "node --max-old-space-size=4096 app.js",
     .....
    "ngrok": "./node_modules/ngrok/bin/ngrok http 3000",
    "tunnelmole": "npx tmole 3000"
  },

This will work as is. Unlike ngrok it won't require installing anything.

Let me know your preference and if you'd like me to make a PR with the changes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions