Fast and simple to setup MTProto proxy written in Python.
git clone -b master https://github.com/toanalien/mtprotoproxy
- (optional, recommended) edit config.py, set PORT, USERS and AD_TAG
curl -o- https://get.docker.com | bash
docker compose up -d
(or justpython3 mtprotoproxy.py
if you don't like Docker)- (optional, get a link to share the proxy)
docker compose logs
The proxy comes with a command-line tool to easily manage users:
- Add a new user with auto-generated secret:
./manage_users.py add username
# Output: User username added successfully with secret: 1234567890abcdef1234567890abcdef
- Add a user with specific secret:
./manage_users.py add username 00000000000000000000000000000001
- List all users:
./manage_users.py list
- Remove a user:
./manage_users.py remove username
- For Docker installation, use the following command formats:
# Add a user
docker exec -u root -it mtprotoproxy /usr/bin/python3 manage_users.py add username
# List all users
docker exec -u root -it mtprotoproxy /usr/bin/python3 manage_users.py list
# Remove a user
docker exec -u root -it mtprotoproxy /usr/bin/python3 manage_users.py remove username
The changes are applied immediately thanks to the hot reload feature - no need to restart the proxy.
To advertise a channel get a tag from @MTProxybot and put it to config.py.
The proxy performance should be enough to comfortably serve about 4 000 simultaneous users on the VDS instance with 1 CPU core and 1024MB RAM.
The proxy can be launched:
- with a custom config:
python3 mtprotoproxy.py [configfile]
- several times, clients will be automaticaly balanced between instances
- with uvloop module to get an extra speed boost
- with runtime statistics exported to Prometheus