Coder Social home page Coder Social logo

docker-ngrok's Introduction

ngrok Community Discussions

In this repository, you will find discussions for all things ngrok. Feel free to share feedback, discuss topics with other community members, or ask questions.

Product Feedback / New Feature Ideas

We encourage you to open a discussion if you have suggestions for how we can improve our products. You don't need to have a solution to the problem you are facing to kick off a discussion.

Prior to creating a new discussion, please take a look at previous discussions to see if someone else has already shared your suggestion(s). If you find a similar discussion, reply with additional details or upvote the discussion to signal your support rather than creating a new one.

Once you kick off a new feature discussion, the ngrok Product team will evaluate the feedback but may not be able to respond to every submission. From there, we will work with you, and the entire community, to ensure we understand the current capabilities ngrok doesn’t have and explore the space for potential solutions to your problem statement. If the product team determines that we will not be working to solve the problem you have identified, we may comment on the discussion describing our reasoning so our decisions can remain transparent.

Product Bug Reports

If you think you've found an bug in one of our products, the best place to report them is in the Bug Reports Discussion. This category is regularly monitored by the ngrok Product team who will triage and respond. If the issue is with an open source ngrok product, we encourage you to open public issues directly in those repositories.

Disclaimer

Any statement in this repository that is not purely historical is considered a forward-looking statement. Forward-looking statements included in this repository are based on information available to ngrok as of the date they are made, and ngrok assumes no obligation to update any forward-looking statements. The forward-looking comments in the public feedback discussions do not represent a commitment, guarantee, obligation or promise to deliver any product or feature, or to deliver any product and feature by any particular date, and are intended to outline the general development plans. Customers should not rely on these public feedback discussions to make any purchasing decision.

This repo was inspired by the Github Community Discussions Repo.

docker-ngrok's People

Contributors

abdiramen avatar ck-ward avatar euank avatar hoonti06 avatar inconshreveable avatar jrobsonchase avatar krwenholz avatar natasha-jarus avatar ngrok-bors-ng[bot] avatar nikolay-ngrok avatar zach-sherman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

docker-ngrok's Issues

Container Does Not Work For Scenarios Where The Container Is Not Started From Command Line

Set it up as indicated using the NGROK_CONFIG environment variable and it stops immediately with this:

Incorrect Usage: flag provided but not defined: -config

I took both environment variables out entirely NGROK_AUTHTOKEN and NGROK_CONFIG and the same error appears.

Basically entrypoint.sh is broken for ngrok/ngrok:latest (debian).

Just tried it alpine, same thing.

failed to check for update

I noticed this in the error log while running :latest

t=2022-04-19T08:52:17+0000 lvl=warn msg="failed to check for update" obj=updater err="Post \"https://update.equinox.io/check\": x509: certificate signed by unknown authority"

No longer works

Today's update completely broke me, the container won't even run to allow me to update the config file.

Environment variables needed

Hello
One should not need to write some distinct YAML to configure a simple docker service.

That's why I like the wernight/ngrok image; it provides all the env variables I needed to configure an ngrok v2 directly from my compose stack config file.
As I need to move to ngrok v3, I'd like to get at least the same level of functionality from the official image.
The easisest path to do so would be to map each global parameter to an environment variable.

Thanks!

Entrypoint script doesn't work well with additional arguments

Running this image with additional arguments seems to cause an error. for example:

docker run -it ngrok/ngrok http --region=us --hostname=jjurlcbx.ngrok.io --authtoken=<TOKEN> 80

returns the non-intuitive error:

ERROR:  You must specify a single argument: a port or address to tunnel to.
ERROR:  You specified 2 arguments: [80 --config=/var/lib/ngrok/ngrok.yml]
ERROR:  For example, to expose port 80, run 'ngrok http 80'.

This command fails because the entrypoint.sh is attempting to append a --config to the end of the command and is failing.

We should be able to update the entrypoint.sh script to know where to add the additional --config should be appended to the args list.

Suggestion for v3 ngrok container

I run ngrok (2.x at the moment) in docker on a Synology NAS. I do not have easy command line access to docker as Synology has it's own web GUI for it.

So running the ngrok config upgrade can become a 'chicken & egg' problem for some people.

What might be useful is to be able to add an environment variable to the container that would instruct it to start, perform an upgrade of the config and either continue running with the upgraded config or stop (instead of just stopping with an error). (A lot of us in simple environments also have containers set to auto-restart which was quite ugly when Watchtower upgraded my ngrok 2 to ngrok 3 at 4am a few days ago).

Between portainer and setting up SSH access, I can technically get to a docker command prompt to maybe get it to run on a command but I don't have any command line docker experience so it's not something I'm in a rush to do and I figure some other users may be in the same boat, so some kind of method to get the container to do the upgrade for us would be nice to have.

Just a thought, thanks for reading.

add env var flag to disable `web_addr: 0.0.0.0:4040` config

There's a security concern of the web addr being 0.0.0.0 when used with docker run --net=host .... Instead we should provide an environment variable that lets you disable the 0.0.0.0 config when using --net=host. Something like docker run --net=host -e "NGROK_INTROSPECT_ADDR=localhost".

Broken Docker images: zipped binaries and confused versions

The Docker images currently on Docker Hub are broken and contain zipped files in place of binaries. Looks like it's been fixed in #12 but not released. Do you know if new images will be released soon?

I've also noticed that the images pushed seem to have confused versions, e.g. if I run the current ngrok/ngrok:2 image, and unzip the zipfile that's included at /bin/ngrok, it's actually version 3.0.2 rather than the expected version 2.x.

root@084ea878ed74:/# ./ngrok --version
ngrok version 3.0.2

Unable to hit /api/tunnels when running using a configuration file

I am trying to start-up an ngrok instance and query the /api/tunnels endpoint to fetch settings for downstream services.
When running docker-ngrok using a configuration file, the /api/tunnels endpoint as well as the webUI are not visible/usable on the exposed port on the host.

Example:

  • docker-compose.yaml proxying requests to services running in docker
version: "3"
services:
  ngrok:
    image: ngrok/ngrok
    environment:
      - NGROK_CONFIG=/etc/ngrok.yml
      - NGROK_AUTHTOKEN=<token-here>
    volumes:
      - ./ngrok.yml:/etc/ngrok.yml
    ports:
      - 4056:4040
  • ngrok.yml
version: "2"
tunnels:
    service1:
        addr: service1:5000
        proto: http
        schemes:
            - https
    service2:
        addr: service2:8030
        proto: http
        schemes:
            - https

In the folder where the above docker-compose.yaml and ngrok.yml are located, open a shell and execute docker compose up -d.

The container will start, no logs will be visible. Going to http://localhost:4056 will return a connection error, same when querying the /api/tunnels endpoint.

Using a slightly modified image (to add curl, see following Dockerfile) the result is the same, however attaching a terminal to the container and executing curl http://localhost:4040/api/tunnels returns the correct payload.

FROM ngrok/ngrok:debian

USER root

RUN apt-get -y update; apt-get -y install curl

USER ngrok

Using the following docker-compose.yaml that instead starts ngrok using a command-line argument works as expected (UI exposed to http://localhost:4056 and configuration available via API at /api/tunnels:

version: "3"
services:
  ngrok:
    image: ngrok/ngrok
    command: http 1080
    ports:
      - 4056:4040

Starting the image with a configuration file using an interactive terminal ( such as with docker run -it -p 4056:4040 -v /$(pwd)/ngrok/ngrok.yml:/etc/ngrok.yml -e NGROK_CONFIG=/etc/ngrok.yml ngrok/ngrok) still returns a connection error, however the ngrok endpoints listed in the terminal seem to work correctly (in the example above they would throw a bad gateway error if no services are running with that name/port combination).

`ngrok api` subcommand certificate error

Reproducing it is easy enough:

$ docker run -it ngrok/ngrok:3 api --api-key=$NGROK_API_KEY edges https list

ERROR:  Get "https://api.ngrok.com/edges/https": x509: certificate signed by unknown authority

Presumably we just need to include ca certificates at an appropriate path in the image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.