/docker-ngrokd

dockerized selfhosted ngrok deamon

Primary LanguageShell

This image aims to run a selfhosted ngrok daemon. For example when ngrok.com becomes unavailable, ot you want to use custom domain name feature for free.

running ngrok dameon

docker run -d --name ngrokd \
  --restart=always \
  -p 4480:4480 \
  -p 4444:4444 \
  -p 4443:4443 \
  sequenceiq/ngrokd \
    -httpAddr=:4480 \
    -httpsAddr=:4444 \
    -domain=ngrok.sequenceiq.com

client install

As you want to run ngrokd which is not distributed officially, we compiled it for linux and osx, but as the self hosting docs describes:

Since the client and server executables are paired, you won't be able to use any other ngrok to connect to this ngrokd, and vice versa.

You also need a new client. For that reason the version numbers is set to 1.7.2

OS X

There is a usual one-liner which does the client installation and configuration:

curl -Ls j.mp/ngrok-seq

For reference, or if you want to do only the install step:

brew cask install https://raw.githubusercontent.com/sequenceiq/docker-ngrokd/master/ngrok.rb

Linux

curl -o /usr/local/bin/ngrok https://s3-eu-west-1.amazonaws.com/sequenceiq/ngrok_linux
chmod +x /usr/local/bin/ngrok

checking ngrok version

You should see the 1.7.2 on client side:

> ngrok version

1.7.2

client config

cat > ~/.ngrok <<EOF
server_addr: server.ngrok.sequenceiq.com:4443
trust_host_root_certs: false
EOF

If you used the one-liner, you don't need this.

start client

as ususal

ngrok <port>

dns config

The server side will need an A record something like:

*.ngrok.sequenceiq.com 54.72.21.93