ngrok-file-server
is a tiny secured file server
You can quickly share any content running a simple docker image !!!
It's fast 🚀, secured 🔒 and pretty lite 🐁
What do you really need ?
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 😬
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.
Ok, so now, you may have a ngrok token and run docker on your machine.
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 📝
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 ?
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 😎
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
docker run -it --rm -e NGROK_AUTHTOKEN=$NGROK_AUTHTOKEN -v $(pwd):/shared ghcr.io/trendev/ngrok-file-server --provider=google
docker run -it --rm -e NGROK_AUTHTOKEN=$NGROK_AUTHTOKEN -v $(pwd):/shared ghcr.io/trendev/ngrok-file-server --provider=google --oauth2_domain=trendev.fr
If you need more, you can open an issue and describe your requirement... and BTW, you can also star the repo 😉