All Projects → wernight → Docker Ngrok

wernight / Docker Ngrok

Licence: mit
An Ngrok v2 container based on wizardapps/ngrok and fnichol/ngrok

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Docker Ngrok

Tun2socks
tun2socks - powered by gVisor TCP/IP stack
Stars: ✭ 123 (-66.58%)
Mutual labels:  tunnel, docker-image
Tcptunnel
将本地内网服务器映射到公网。
Stars: ✭ 72 (-80.43%)
Mutual labels:  tunnel, ngrok
Docker Ngrok Server
ngrok服务器的docker image,实现内网穿透。也可以下载附件中的ngrok客户端使用
Stars: ✭ 98 (-73.37%)
Mutual labels:  ngrok, docker-image
tnnlink
Simple HTTP tunnel using SSH remote port forwarding
Stars: ✭ 21 (-94.29%)
Mutual labels:  tunnel, ngrok
Ngrok
Expose your localhost to the web. Node wrapper for ngrok.
Stars: ✭ 1,897 (+415.49%)
Mutual labels:  tunnel, ngrok
Sish
HTTP(S)/WS(S)/TCP Tunnels to localhost using only SSH.
Stars: ✭ 2,087 (+467.12%)
Mutual labels:  tunnel, ngrok
Lanproxy
lanproxy是一个将局域网个人电脑、服务器代理到公网的内网穿透工具,支持tcp流量转发,可支持任何tcp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面、http代理、https代理、socks5代理...)。技术交流QQ群 678776401
Stars: ✭ 4,784 (+1200%)
Mutual labels:  tunnel, ngrok
Tunnel
Use Ngrok In Termux With Advanced Options
Stars: ✭ 133 (-63.86%)
Mutual labels:  tunnel, ngrok
Pyngrok
A Python wrapper for ngrok
Stars: ✭ 159 (-56.79%)
Mutual labels:  tunnel, ngrok
Lunnel
fast reverse-proxy
Stars: ✭ 293 (-20.38%)
Mutual labels:  tunnel, ngrok
Docker Alpine Java
Small Docker image with Java 8+ runtime (JRE ~119MB) and devkit (JDK ~167MB)
Stars: ✭ 330 (-10.33%)
Mutual labels:  docker-image
Swirl
A web UI for Docker, focused on swarm cluster.
Stars: ✭ 332 (-9.78%)
Mutual labels:  docker-image
Tunneller
Allow internal services, running on localhost, to be accessed over the internet..
Stars: ✭ 346 (-5.98%)
Mutual labels:  ngrok
Manifest Tool
Manifest tool for manifest list object creation/query
Stars: ✭ 355 (-3.53%)
Mutual labels:  docker-image
Nutzmore
让Nutz更好用
Stars: ✭ 328 (-10.87%)
Mutual labels:  ngrok
Docker Inbound Agent
Docker image for a Jenkins agent which can connect to Jenkins using TCP or Websocket protocols
Stars: ✭ 342 (-7.07%)
Mutual labels:  docker-image
Portainer
Making Docker and Kubernetes management easy.
Stars: ✭ 20,434 (+5452.72%)
Mutual labels:  docker-image
Wekan
The Open Source kanban (built with Meteor). Keep variable/table/field names camelCase. For translations, only add Pull Request changes to wekan/i18n/en.i18n.json , other translations are done at https://transifex.com/wekan/wekan only.
Stars: ✭ 17,648 (+4695.65%)
Mutual labels:  docker-image
Kube Ingress Aws Controller
Configures AWS Application Load Balancers according to Kubernetes Ingress resources
Stars: ✭ 326 (-11.41%)
Mutual labels:  docker-image
Appium Docker Android
Appium Server setup to automate android testing on real devices
Stars: ✭ 360 (-2.17%)
Mutual labels:  docker-image

Docker repository Build passing Codenvy badge

Supported tags and respective Dockerfile links

A Docker image for ngrok v2, introspected tunnels to localhost. It's based on the excellent work of wizardapps/ngrok and fnichol/ngrok.

Features

  • Small: Built using busybox.
  • Simple: Just link as http or https in most cases, see below; exposes ngrok server 4040 port.
  • Secure: Runs as non-root user with a random UID 6737 (to avoid mapping to an existing UID).

Configuration

To see command-line options, run docker run --rm wernight/ngrok ngrok --help.

Usage

Supposing you've an Apache or Nginx Docker container named web_service_container listening on port 80:

$ docker run --rm -it --link web_service_container wernight/ngrok ngrok http web_service_container:80

Environment variables

Please consider using directly the command-line arguments of Ngrok.

If you use the default CMD (i.e. don't specify the ngrok command-line but only wernight/ngrok), then you can use instead envrionment variables magic below.

You simply have to link the Ngrok container to the application under the app or http or https aliases, and all of the configuration will be done for you by default.

Additionally, you can specify one of several environment variable (via -e) to configure your Ngrok tunnel:

  • NGROK_AUTH - Authentication key for your Ngrok account. This is needed for custom subdomains, custom domains, and HTTP authentication.
  • NGROK_SUBDOMAIN - Name of the custom subdomain to use for your tunnel. You must also provide the authentication token.
  • NGROK_HOSTNAME - Paying Ngrok customers can specify a custom domain. Only one subdomain or domain can be specified, with the domain taking priority.
  • NGROK_REMOTE_ADDR - Name of the reserved TCP address to use for a TCP tunnel. You must also provide the authentication token.
  • NGROK_USERNAME - Username to use for HTTP authentication on the tunnel. You must also specify an authentication token.
  • NGROK_PASSWORD - Password to use for HTTP authentication on the tunnel. You must also specify an authentication token.
  • NGROK_PROTOCOL - Can either be HTTP or TCP, and it defaults to HTTP if not specified. If set to TCP, Ngrok will allocate a port instead of a subdomain and proxy TCP requests directly to your application.
  • NGROK_PORT - Port to expose (defaults to 80 for HTTP protocol). If the server is non-local, the hostname can also be specified, e.g. 192.168.0.102:80.
  • NGROK_REGION - Location of the ngrok tunnel server; can be us (United States, default), eu (Europe), ap (Asia/Pacific) or au (Australia)
  • NGROK_LOOK_DOMAIN - This is the domain name referred to by ngrok. (default: localhost).
  • NGROK_BINDTLS - Toggle tunneling only HTTP or HTTPS traffic. When true, Ngrok only opens the HTTPS endpoint. When false, Ngrok only opens the HTTP endpoint
  • NGROK_HEADER - Rewrites the Host header for incoming HTTP requests to determine which development site to display.
  • NGROK_DEBUG - Toggle output of logs. When true, Ngrok will output logs to stdout.

Full example

  1. We'll set up a simple example HTTP server in a docker container named www:

    $ docker run -v /usr/share/nginx/html --name www_data busybox true
    $ docker run --rm --volumes-from www_data busybox /bin/sh -c 'echo "<h1>Yo</h1>" > /usr/share/nginx/html/index.html'
    $ docker run -d -p 80 --volumes-from www_data --name www nginx
    $ curl $(docker port www 80)
    <h1>Yo</h1>
    
  2. Now we'll link that HTTP server into an ngrok container to expose it on the internet:

    $ docker run -d -p 4040 --link www:http --name www_ngrok wernight/ngrok
    
  3. You can now access the API to find the assigned domain:

    $ curl $(docker port www_ngrok 4040)/api/tunnels
    

    or access the web UI to see requests and responses:

    $ xdg-open http://$(docker port www_ngrok 4040)
    

Helper

For common cases you may want to create an alias in your ~/.profile (or ~/.bashrc, ~/.zshrc, or equivalent):

function docker-ngrok() {
  docker run --rm -it --link "$1":http wernight/ngrok ngrok http http:80
}
# For ZSH with Oh-My-Zsh! and 'docker' plugin enabled, you can also enable auto-completion:
#compdef __docker_containers docker-ngrok

Then to run the simple example just do docker-ngrok web_service_container.

For non dockerized http targets consider this helper function:

function expose-ngrok() {
  docker run --rm --net=host -e NGROK_PORT="$1" wernight/ngrok
}

and then visit localhost:4040 for receiving the links.

Feedbacks

Report issues/questions/feature requests on GitHub Issues.

Pull requests are very welcome!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].