Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/origamiofficial/docker-ngrok-plex
Run Plex Through Ngrok to Bypass CGNAT or Double-NAT Scenario
https://github.com/origamiofficial/docker-ngrok-plex
bypass bypass-cgnat cgnat docker docker-container docker-image docker-plex double-nat nat ngrok ngrok-script plex plex-api plex-docker plex-media-server plex-server plexmediaserver port-forward port-forwarding script
Last synced: about 2 months ago
JSON representation
Run Plex Through Ngrok to Bypass CGNAT or Double-NAT Scenario
- Host: GitHub
- URL: https://github.com/origamiofficial/docker-ngrok-plex
- Owner: origamiofficial
- License: mit
- Created: 2022-08-13T02:46:30.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-13T00:56:31.000Z (about 2 months ago)
- Last Synced: 2024-11-13T01:32:49.862Z (about 2 months ago)
- Topics: bypass, bypass-cgnat, cgnat, docker, docker-container, docker-image, docker-plex, double-nat, nat, ngrok, ngrok-script, plex, plex-api, plex-docker, plex-media-server, plex-server, plexmediaserver, port-forward, port-forwarding, script
- Language: Python
- Homepage: https://hub.docker.com/r/rlabinc/ngrok-plex
- Size: 85.9 KB
- Stars: 6
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ngrok-plex
![Docker Pulls](https://img.shields.io/docker/pulls/rlabinc/ngrok-plex.svg?style=flat&label=pulls&logo=docker) ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/rlabinc/ngrok-plex/latest.svg?style=flat&label=image&logo=docker) [![Latest Build & Push](https://github.com/origamiofficial/docker-ngrok-plex/actions/workflows/build-and-push.yaml/badge.svg)](https://github.com/origamiofficial/docker-ngrok-plex/actions/workflows/build-and-push.yaml) ![GitHub Repo stars](https://img.shields.io/github/stars/origamiofficial/ngrok-plex?style=social) ![We Support](https://img.shields.io/badge/we%20stand%20with-%F0%9F%87%B5%F0%9F%87%B8%20palestine-white.svg)[ngrok-plex](https://gist.github.com/nagleaidan/dcc132c16d15565d88bf2d9200351c6e) is a command line utility to run Plex through ngrok to bypass CGNAT or Double-NAT scenario.
> [!NOTE]
> ngrok free accounts are [bandwidth-limited](https://github.com/origamiofficial/docker-ngrok-plex/issues/33) to 1GB per month. You need to have a Pay-as-you-go plan for this project, see pricing [here](https://ngrok.com/pricing).## Supported Architectures
We utilise the docker buildx for multi-platform awareness. More information is available from docker [here](https://docs.docker.com/buildx/working-with-buildx/).
Simply pulling `rlabinc/ngrok-plex:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are:
| Architecture | Available | Platform |
| :----: | :----: | :----: |
| x86-64 | ✅ | linux/amd64 |
| arm64 | ✅ | linux/arm64 |
| armhf | ✅ | linux/arm/v7 |
| i386 | ✅ | linux/386|## Usage
You will have to extract the Plex token sets for you and provide it to the CLI. But don't worry, I'll guide you through the entire process.The `Enable Relay` must needs to be DISABLED from `Settings` > `Server` > `Network` > `Show Advanced` > `Enable Relay`
## Extracting the Plex token
- Go to any media in your Plex library.
- Go to the Kebab Menu (⋮)
- Click on `Get Info`
- Click on `View XML` — a new tab should open up.
- Go to the very end of the URL. You should see a 20 character string after `X-Plex-Token=`. Copy this string.Here are the commands you'll need:
```bash
docker run -d --network host \
--name=ngrok-plex \
-e TZ=Europe/London `#optional` \
-e PLEX_BaseURL='http://172.17.0.1:32400' `#better to use single quotes` \
-e PLEX_Token='XXXXXXXXXX' `#better to use single quotes` \
-e NGROK_Token='XXXXXXXXXX' `#better to use single quotes` \
rlabinc/ngrok-plex:latest
```A cronjob will update new ngrok URL every 2 hours.
## Parameters
Container images are configured using parameters passed at runtime (such as those above).
| Parameter | Function |
| :----: | --- |
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London. |
| `-e PLEX_BaseURL='http://172.17.0.1:32400'` | Specify Plex URL to use. |
| `-e PLEX_Token='XXXXXXXXXX'` | Specify Plex token to use. |
| `-e NGROK_Token='XXXXXXXXXX'` | Specify ngrok token to use. |## Cons
* Client IP will always show as `localhost`.
* No bandwidth guarantees.## Contribution
There is no need to update the script version if you have made changes – it will be updated automatically.## Github Repository
https://github.com/origamiofficial/ngrok-plex## Docker Hub
https://hub.docker.com/r/rlabinc/ngrok-plex## Acknowledgements
Script credit goes to [@nagleaidan](https://github.com/nagleaidan). Special thanks to [@Rihcus](https://github.com/Rihcus) for fixing many issues.## Warning
Use of this software may constitute a breach in the [ngrok Terms of Service](https://ngrok.com/tos). Use at your own risk.[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https://github.com/origamiofficial/docker-ngrok-plex&icon=github.svg&icon_color=%23FFFFFF&title=hits&edge_flat=false)](https://github.com/origamiofficial/docker-ngrok-plex)