Add production environment configuration for Docker publish workflow
Русский | 中文 | فارسی | Türkmençe
3DP-MANAGER
A utility for auto-generating inbound connections for the 3x-ui panel, creating a single subscription URL, and configuring traffic forwarding from an intermediate server to the main server.
Support the project
- Donation / payment details:
- MIR card:
2204320436318077 - MasterCard:
5395452209474530 - PayPal:
vasiljevdenisx@gmail.com - USDT | ETH (ERC20 | BEP20):
0x6fe140040f6Cdc1E1Ff2136cd1d60C0165809463 - USDT | TRX (TRC20):
TEWxXmJxvkAmhshp7E61XJGHB3VyM9hNAb - Bitcoin:
bc1qctntwncsv2yn02x2vgnkrqm00c4h04c0afkgpl - TON:
UQCZ3MiwyYHXftPItMMzJRYRiKHugr16jFMq2nfOQOOoemLy - Bybit ID:
165292278
- MIR card:
Description
The main goal of the utility is to make your traffic appear non-uniform. The bot generates 10 connection entries at a configured interval with varying parameters:
- Protocols:
vless,vmess,shadowsocks,trojan; - Ports:
443,8443(fixed) and random ports from the range10000-60000; - Transport:
tcp,websocket,grpc,xhttp; - SNI values are taken from a whitelist of domains (
whitelist); you can use your own list.
All generated connections are combined into a single subscription with a static URL. The bot works with the 3x-ui panel using its public API and does not directly modify the panel internals.
The secondary goal is connection stability: the client receives 10 alternate connection options and can choose any of them.
Additionally, the bot can be used in a cascading setup. The forwarding service will automatically configure the subscription and traffic redirection to the main server.
Recommendations:
- Use HTTPS for the subscription (domain + SSL certificate).
- Set the generation interval to ≥ 10 minutes; for stability, once per day (1440 minutes) is recommended.
- Configure the client to check for updates more frequently (for example, hourly) to stay synchronized with the server.
Features
- Generates 10 diverse connection entries
- Creates a single subscription with a static URL
- Supports custom
whitelistdomains - Optional automatic configuration of traffic forwarding
Requirements
- Ubuntu 20.04 or newer
3x-uipanel- Domain + SSL certificate (optional)
Installation
Install the project on your server with:
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/install.sh)
Short description: runs the installer script and deploys containers and services.
Update
Update to the latest version:
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/update.sh)
Short description: pulls the latest changes and restarts containers.
Removal
Remove the service completely:
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/delete.sh)
Short description: removes containers and configuration files, restoring the system to the pre-install state.
Install forwarding service
The forwarding service allows proxying incoming ports from the intermediate server to the main server.
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/forwarding_install.sh)
Short description: adds forwarding rules and creates a service to update the subscription.
Remove forwarding
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/forwarding_delete.sh)
Short description: removes rules and disables the forwarding service.
Show subscription URL
Command to print the current subscription URL from the container environment:
cd /opt/3dp-manager && docker compose exec node env | grep SUB_URL | cut -d'=' -f2
Short description: prints the static subscription URL that can be used in clients. Works on both main and intermediate servers.
Collect domains from multi-subscriptions
The utility extracts domains from subscriptions and builds a whitelist for the generator.
node get_domains.js
Short description: add a multi-subscription link to the script and run the command — the output will be a list of domains. Node.js is required to run the script.
Use your own whitelist
- Prepare a file in the format of
whitelist.txt. - Rename it to
my_whitelist.txtand copy it into/opt/3dp-manager/app.
cd /opt/3dp-manager && docker cp ./app/my_whitelist.txt node:/app/my_whitelist.txt
Short description: adds your domain file into the application container.
Notes and current limitations
- The shared domain list may not work with all providers; it is recommended to prepare and use your own
whitelist.
Contributing
Contributions are welcome! Simple contributor workflow:
- Fork the repository on GitHub.
- Create a branch with a meaningful name, e.g.
feature/add-READMEorfix/whitelist-load. - Make changes and add a short commit message.
- Run local checks if available.
- Push the branch to your fork and create a Pull Request to the main repository.
Tips: describe changes and testing steps in the PR. For large changes, split into smaller commits.
Discussion
- Telegram: @denpiligrim_web
- Issues
