Danger
PAGE NOT FINISHED: TEMPORARY PLACEHOLDER PAGE. INSTRUCTIONS MAY BE WRONG!!!
Providing for URnetwork with Docker
This guide explains how to deploy a URnetwork Provider using Docker.
Prerequisites
- Docker installed on your host machine.
- A URnetwork Account. Register at https://ur.io/
1. Get Your Credentials
To run the container, you must authenticate using one of the following methods:
Option A: Account Credentials
- Email or Mobile Phone: The email address or mobile number linked to your URnetwork account
- Password: Your URnetwork account password
Option B: JWT Authentication
- Auth Code: A valid JSON Web Token (JWT) issued for your URnetwork account. Generate one here: https://ur.io/, https://app.ur.network/ or inside the app (see screenshots). Auth Codes expire after a set time and are usually one time use unless set otherwise.
2. Proxy Setup (Optional)
URnetwork supports only SOCKS5 proxies. To use proxies, create a proxy.txt file on your host machine. (
- Format:
ip:port:username:password(One proxy per line).
Example:
123.456.789.012:55555:myproxyusername:myproxypassword
234.567.890.123:44444:myproxyusername:myproxypassword
345.678.901.234:33333:myproxyusername:myproxypassword
456.789.012.345:22222:myproxyusername:myproxypassword
567.890.123.456:11111:myproxyusername:myproxypassword
- You will link this file to the container using the
-vflag in the commands below.
3. Deployment Options
Identifying your Architecture
Before starting, identify which architecture line to use. Run uname -m in your terminal:
- If it returns
x86_64, use Option 1 (amd64). - If it returns
aarch64, use Option 2 (arm64).
Run with username/password
Option 1: amd64 build (Standard Intel or AMD PC/VPS)
docker run -d --platform linux/amd64 \
--name=urnetwork \
--pull=always --restart=always \
--log-driver=json-file --log-opt max-size=1m --log-opt max-file=1 \
--cap-add=NET_ADMIN --cap-add=NET_RAW --sysctl net.ipv4.ip_forward=1 \
-e BUILD='stable' \
-e USER_AUTH='example@gmail.com' \
-e PASSWORD='mYv3rYsEcUr3dP@sSw0rD' \
-e ENABLE_IP_CHECKER=false \
-v /path/to/your/proxy.txt:/app/proxy.txt \
-e ENABLE_VNSTAT=true \
-v vnstat_data:/var/lib/vnstat \
-p 8080:8080 \
techroy23/docker-urnetwork:latestOption 2: arm64 build (ARM Server / Raspberry Pi)
docker run -d --platform linux/arm64 \
--name=urnetwork \
--pull=always --restart=always \
--log-driver=json-file --log-opt max-size=1m --log-opt max-file=1 \
--cap-add=NET_ADMIN --cap-add=NET_RAW --sysctl net.ipv4.ip_forward=1 \
-e BUILD='stable' \
-e USER_AUTH='example@gmail.com' \
-e PASSWORD='mYv3rYsEcUr3dP@sSw0rD' \
-e ENABLE_IP_CHECKER=false \
-v /path/to/your/proxy.txt:/app/proxy.txt \
-e ENABLE_VNSTAT=true \
-v vnstat_data:/var/lib/vnstat \
-p 8080:8080 \
techroy23/docker-urnetwork:latestRun with JWT
- Do not set
restarttoalways, as this may cause account lockouts. - Replace
<AUTH-CODE>with the code you generated from https://ur.io/
Option 1: amd64 build (Standard Intel or AMD PC/VPS)
docker run -d --platform linux/amd64 \
--name=urnetwork --pull=always \
--log-driver=json-file --log-opt max-size=1m --log-opt max-file=1 \
--cap-add=NET_ADMIN --cap-add=NET_RAW --sysctl net.ipv4.ip_forward=1 \
-e BUILD='jwt' \
-e ENABLE_IP_CHECKER=false \
-v /path/to/your/proxy.txt:/app/proxy.txt \
-e ENABLE_VNSTAT=true \
-v vnstat_data:/var/lib/vnstat \
-p 8080:8080 \
techroy23/docker-urnetwork:latest <AUTH-CODE>Option 2: arm64 build (ARM Server / Raspberry Pi)
docker run -d --platform linux/arm64 \
--name=urnetwork --pull=always \
--log-driver=json-file --log-opt max-size=1m --log-opt max-file=1 \
--cap-add=NET_ADMIN --cap-add=NET_RAW --sysctl net.ipv4.ip_forward=1 \
-e BUILD='jwt' \
-e ENABLE_IP_CHECKER=false \
-v /path/to/your/proxy.txt:/app/proxy.txt \
-e ENABLE_VNSTAT=true \
-v vnstat_data:/var/lib/vnstat \
-p 8080:8080 \
techroy23/docker-urnetwork:latest <AUTH-CODE>4. Configuration Details
| Variable | Requirement | Description |
|---|---|---|
-e BUILD='stable'-e BUILD='nightly'-e BUILD='jwt' | Optional | stable The latest officially tested release. Prioritized for reliability and long-term use. nightly The most recent development snapshot. Includes new features and fixes but may be unstable. Default is stable |
-e USER_AUTH <EMAIL>and -e PASSWORD <PASSWORD> | Required for stable/nightly build | Your Email and Password. The container will exit if not provided. |
<AUTH-CODE> | Required for jwt build | Your authentication code. The container will exit if not provided. Generate one here: https://ur.io/ |
-e ENABLE_IP_CHECKER | Optional | Boolean true/false Checks and prints your public IPv4 address to stdout visible directly in Docker logs for easy monitoring. Default is False. |
-v /path/to/your/proxy.txt:/app/proxy.txt | Optional | Mount a proxy configuration file from host to container. Omit this line entirely if you don't want to use a proxy. The proxy inside the proxy.txt should have this format ip:port:username:password. See the sample below. one proxy per line. |
| Optional | 123.456.789.012:55555:myproxyusername:myproxypassword234.567.890.123:44444:myproxyusername:myproxypassword345.678.901.234:33333:myproxyusername:myproxypassword456.789.012.345:22222:myproxyusername:myproxypassword567.890.123.456:11111:myproxyusername:myproxypassword | |
-e ENABLE_VNSTAT | Optional | Boolean true/false A lightweight tool that logs and reports network bandwidth usage. Default is True. |
-v vnstat_data:/var/lib/vnstat-p 8080:8080 | Optional | Stats JSON Portal = http://localhost:port/cgi-bin/stats Mounts a docker volume vnstat_data to /var/lib/vnstat. Mounting it ensures data history persists across restarts or image updates. Each instance needs its own volume and port to avoid overwriting each other’s data. See the sample below. |
| Optional | -v vnstat_data1:/var/lib/vnstat # for first container -p 9001:8080 # Host port 9001 # for first container -v vnstat_data2:/var/lib/vnstat # for second container -p 9002:8080 # Host port 9002 # for second container |
5. Monitoring & Maintenance
Check Status
Check if your provider is running and authenticated correctly:
docker logs -f urnetworkUpdates
-
Nightly builds
Updates are handled automatically. No manual action is required. -
Stable builds
To manually refresh the image:docker pull techroy23/docker-urnetwork:stable docker stop urnetwork && docker rm urnetwork # Re-run your chosen Docker Run command from Step 3