ngrok-file-server



ngrok-file-server is a tiny secured file server :bowtie:
You can quickly share any content running a simple docker image !!!
It's fast ๐, secured ๐ and pretty lite ๐
๐ Requirements
What do you really need ?
ngrok token
https tunneling (port-forwarding) is provided by ngrok go implementation. So, you need a ngrok token ๐
... if don't have a ngrok account, don't worry, it's free ๐ฌ
docker
If you're familiar with golang, you can build your own server but we recommand to use our docker image ๐ณ
You can download docker desktop and use default settings.
โถ Run
Ok, so now, you may have a ngrok token and run docker on your machine.
1โฃ Let's start the server.
Run the following docker command in order to share the content of your local path.
docker run -it --rm -e NGROK_AUTHTOKEN="YOUR_TOKEN" -v $(pwd):/shared ghcr.io/trendev/ngrok-file-server
this example is based on Linux/MacOS usage. If you run ngrok-file-server on Windows, you may change local path command $(pwd) by something like %cd% or direcly set the path...
do not forget to replace "YOUR_TOKEN" by your ngrok token...
It will pull our docker image and then, build and start a new container ๐
You may see an output like this :
ngrok ingress url: https://2927-90-22-212-26.eu.ngrok.io
Copy the URL ๐
... or start the server with a static domain !
At first, you may claim a static domain (cf ngrok static domain)
docker run -it --rm -e NGROK_AUTHTOKEN="YOUR_TOKEN" -v $(pwd):/shared ghcr.io/trendev/ngrok-file-server --static_domain={your_static_domain}.ngrok-free.app
This URL is easier to remember, isn't it ?
2โฃ Visit the file server from anywhere
Paste the previous URL in your favorite web browser.
if you use a free ngrok account, please, just accept the disclaimer ๐ฝ
And here we are โ
You can browse your content and share the URL with anyone and access to your file server from anywhere ๐
๐ฎ OAuth2 Protection
You can also control access using an oauth2 provider (like Google, Facebook, Github, Linkedin, etc) and setting an authorized oauth2_domain (for eg, only trendev.fr users).
you can find the supported list here
Enable oauth2 authentication
docker run -it --rm -e NGROK_AUTHTOKEN=$NGROK_AUTHTOKEN -v $(pwd):/shared ghcr.io/trendev/ngrok-file-server --provider=google
Enable oauth2 authentication + oauth2_domain control
docker run -it --rm -e NGROK_AUTHTOKEN=$NGROK_AUTHTOKEN -v $(pwd):/shared ghcr.io/trendev/ngrok-file-server --provider=google --oauth2_domain=trendev.fr
โ Something else ?
If you need more, you can open an issue and describe your requirement... and BTW, you can also star the repo ๐