{"id":15035503,"url":"https://github.com/trendev/ngrok-file-server","last_synced_at":"2025-04-10T00:06:44.459Z","repository":{"id":151533898,"uuid":"622896332","full_name":"trendev/ngrok-file-server","owner":"trendev","description":"fast as lightning, secure tiny file server, based on ngrok and golang","archived":false,"fork":false,"pushed_at":"2024-11-19T12:34:21.000Z","size":110,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-10T00:06:38.244Z","etag":null,"topics":["file-server","golang","golang-examples","ngrok-server","oauth2"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trendev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-03T09:31:20.000Z","updated_at":"2024-11-19T12:34:25.000Z","dependencies_parsed_at":"2023-12-05T17:25:44.185Z","dependency_job_id":"dd988ae4-4245-4bc2-9de0-5b6668958788","html_url":"https://github.com/trendev/ngrok-file-server","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trendev%2Fngrok-file-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trendev%2Fngrok-file-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trendev%2Fngrok-file-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trendev%2Fngrok-file-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trendev","download_url":"https://codeload.github.com/trendev/ngrok-file-server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248131317,"owners_count":21052819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["file-server","golang","golang-examples","ngrok-server","oauth2"],"created_at":"2024-09-24T20:28:49.194Z","updated_at":"2025-04-10T00:06:44.435Z","avatar_url":"https://github.com/trendev.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ngrok-file-server\n\n[![Test, Build and Save](https://github.com/trendev/ngrok-file-server/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/trendev/ngrok-file-server/actions/workflows/build.yml)\n\n[![codecov](https://codecov.io/gh/trendev/ngrok-file-server/branch/main/graph/badge.svg?token=YIWQFBITBF)](https://codecov.io/gh/trendev/ngrok-file-server)\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/trendev/ngrok-file-server.svg)](https://pkg.go.dev/github.com/trendev/ngrok-file-server)\n\n`ngrok-file-server` is a **tiny secured file server** :bowtie:\n\nYou can **quickly share any content** running a simple docker image !!!\n\nIt's **fast** :rocket:, **secured** :lock: and pretty **lite** :mouse2:\n\n## :point_right: Requirements\n\nWhat do you really need ?\n\n### ngrok token\n**https tunneling** (port-forwarding) is provided by [ngrok](https://ngrok.com/) go implementation. So, you **need a ngrok token** :key:\n\n... if don't have a ngrok account, don't worry, **it's free** :grimacing:\n\n### docker\nIf you're familiar with golang, you can build your own server but we recommand to **use our docker image** :whale:\n\nYou can download [docker desktop](https://www.docker.com/products/docker-desktop/) and use default settings.\n\n## :arrow_forward: Run\n\nOk, so now, you may have a **ngrok token** and **run docker** on your machine.\n\n### :one: Let's start the server.\n\nRun the following docker command in order to share the content of your local path.\n\n`docker run -it --rm -e NGROK_AUTHTOKEN=\"YOUR_TOKEN\" -v $(pwd):/shared ghcr.io/trendev/ngrok-file-server`\n\u003e 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...\n\n\u003e do not forget to replace \"YOUR_TOKEN\" by your ngrok token...\n\nIt will pull our docker image and then, build and start a new container :thumbsup:\n\nYou may see an output like this :\n\n`ngrok ingress url:  https://2927-90-22-212-26.eu.ngrok.io`\n\nCopy the URL :memo:\n\n#### ... or start the server with a static domain !\n\nAt first, you may claim a `static domain` (cf [ngrok static domain](https://ngrok.com/blog-post/free-static-domains-ngrok-users?utm_campaign=Monthly%20Newsletter\u0026utm_medium=email\u0026_hsmi=273371496\u0026_hsenc=p2ANqtz--jWYbTK8jp0_nOfOtdv6J-xx3yPPThs-yue05TvNqnWnV4cddDpbDVOBgfdT9o-xuo6-7UUEBImW1PlHTFoh3ZCmJCtw\u0026utm_content=273371496\u0026utm_source=hs_email))\n\n`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`\n\nThis URL is easier to remember, isn't it ?\n\n### :two: Visit the file server from anywhere\n\nPaste the previous URL in your favorite web browser.\n\u003e if you use a free ngrok account, please, just accept the disclaimer :kissing_cat:\n\nAnd here we are :white_check_mark:\n\nYou can browse your content and share the URL with anyone and access to your file server from anywhere :sunglasses:\n\n## :cop: OAuth2 Protection\n\nYou 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).\n\n\u003e you can find the supported list [here](https://ngrok.com/docs/cloud-edge/modules/oauth/#oauth-providers-supported-by-ngrok)\n\n### Enable oauth2 authentication\n`docker run -it --rm -e NGROK_AUTHTOKEN=$NGROK_AUTHTOKEN -v $(pwd):/shared ghcr.io/trendev/ngrok-file-server --provider=google`\n\n### Enable oauth2 authentication + oauth2_domain control\n`docker run -it --rm -e NGROK_AUTHTOKEN=$NGROK_AUTHTOKEN -v $(pwd):/shared ghcr.io/trendev/ngrok-file-server --provider=google --oauth2_domain=trendev.fr`\n\n## :hand: Something else ?\n\nIf you need more, you can open an issue and describe your requirement... and BTW, you can also star the repo :wink:\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrendev%2Fngrok-file-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrendev%2Fngrok-file-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrendev%2Fngrok-file-server/lists"}