Русский | 中文 | فارسی | Türkmençe

A utility for automatically generating inbounds for the 3x-ui panel, creating unified subscriptions, managing multiple 3x-ui nodes, and configuring relay forwarding from intermediate servers to origin servers. Since version 2.0.0, the project has a graphical interface and simple user-facing settings.
Support the project
220432043631807753954522094745304100116897060652vasiljevdenisx@gmail.com0x6fe140040f6Cdc1E1Ff2136cd1d60C0165809463TEWxXmJxvkAmhshp7E61XJGHB3VyM9hNAbbc1qctntwncsv2yn02x2vgnkrqm00c4h04c0afkgplUQCZ3MiwyYHXftPItMMzJRYRiKHugr16jFMq2nfOQOOoemLy165292278The main goal of the utility is to make your traffic look less uniform. 3DP-MANAGER generates a set of connections at a configured interval with different parameters:
vless, vmess, shadowsocks, hysteria2, trojan;443, 8443, plus random ports from 10000-60000;tcp, websocket, grpc, xhttp;All connections are combined into one subscription with a static URL. 3DP-MANAGER works with the 3x-ui panel through its public API and does not directly interfere with the panel internals.
The secondary goal is connection stability: the client receives several connection options and can choose any of them. One subscription can contain inbounds from different nodes, relay servers, and your own external links as custom connections.
Additionally, 3DP-MANAGER can be used in a cascading setup. The forwarding service configures subscription and traffic forwarding to the selected node.
Recommendations:
3x-ui nodesrandomfullchain.pem and privkey.pem paths for Hysteria2 UDPwhitelist3x-ui panel v2.8.4 or newerThe 3x-ui control panel must already be installed. You can install it with: bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
Install the project on the server:
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/install.sh)
During installation, the script will:
postgres, backend, and frontend containers.After installation, the terminal will show the URL, login, and password. Change the password immediately in the 3DP-MANAGER settings.
Short description: runs the interactive installer, prepares the environment, and deploys the project containers.
Update to the latest version:
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/update.sh)
Short description: pulls the latest changes, applies compatible configuration fixes, updates containers, and restarts the service.
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.
The administrator login and password are printed at the end of installation. To view them again:
grep -E "ADMIN_LOGIN|ADMIN_PASSWORD" /opt/3dp-manager/docker-compose.yml | sed 's/^[ \t]*//; s/^- //'
The Web UI is available at the address shown by the installer, for example:
https://example.com:PORT for HTTPS;http://SERVER_IP:PORT for HTTP.If ufw is active, the installer opens the working inbound port ranges: 443, 8443, and 10000-60000 for TCP/UDP.
The Nodes section lets you connect one or more 3x-ui panels.
For each node, you specify:
3x-ui panel URL;password or token;After you enter the URL, the application tries to detect the node IP and country automatically. The flag is used in connection names inside the subscription so clients can distinguish servers more easily.
[!NOTE] The main node is used as the default value for subscriptions, inbounds, and relay servers.
The Subscriptions section manages static subscription URLs and inbound composition.
For each inbound, you can configure:
1-65535 or random;random;custom type.For hysteria2-udp, you can specify separate certificate and key paths:
certificateFile, for example /root/cert/example.com/fullchain.pem;keyFile, for example /root/cert/example.com/privkey.pem.If port or SNI is set to random, the value will be selected during rotation from the available range or domain whitelist.
[!WARNING] The forwarding service runs on an intermediate server
The forwarding service proxies incoming ports from an intermediate server to the selected node. In the Web UI, these servers are configured in Relay servers and can be linked to a specific node.
A relay server can be added by IP or domain. If a domain is provided, the backend will try to resolve its IP automatically.
For manual forwarding installation on the intermediate server, replace IP_ADDRESS with the origin node IP:
sudo ORIGIN_IP="IP_ADDRESS" bash -c "$(curl -sSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/forwarding_install.sh)"
Short description: adds forwarding rules.
bash <(curl -fsSL https://raw.githubusercontent.com/denpiligrim/3dp-manager/main/forwarding_delete.sh)
Short description: removes forwarding rules. After removal, reload the firewall with ufw reload and reboot the system with reboot for changes to take effect.
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 domain list. Node.js is required.
Contributions are welcome! Simple contributor workflow:
feature/add-README or fix/whitelist-load.Tips: describe your changes in the PR, include the goal and test steps. If the changes are large, split them into small commits.
$ claude mcp add 3dp-manager \
-- python -m otcore.mcp_server <graph>