Register your VPS IP Address to this bot GegeVPS AutoScript. There is a plan for one day every day. You can use it to test the bot's connection to the server.
-
Install Docker Container on your server. Follow the tutorial here
-
Clone this Repository
git clone https://github.com/GegeDevs/vpnpanel-docs.git ./vpnpanel
-
Change to the config directory
cd ./vpnpanel/config -
Edit
docker-compose.yamlTAG Instruction YOUR_TELEGRAM_API_IDreplace with your bot token from Bot API Auth YOUR_TELEGRAM_API_HASHreplace with your bot token from Bot API Auth -
Edit
config.yamlTAG Instruction BOT_TOKENreplace with your bot token from botFather BOTNOTIF_TOKENreplace with your bot token from botFather -
Start Docker Compose
sudo docker compose up -d
-
Test
/starton your bot
-
Go to Docker Compose directory
cd ./vpnpanel/config -
Enter this Command
sudo docker compose down --rmi all && \ sudo docker compose up -d
- Admin Panel Dashboard for Centralize Configuration
- Auto Backup Bot Data to Google Drive
- Pluginable for Supporting many VPN Server Script
- Broadcast Message to All Client
- Whitelabel Changer Interface
- Channels List Interface Editor
- Check Version Update
- Notes for each Tunnel Menu
- Editable Start Notes
- Hashtag Notes
- Trial Accounts
- Supports Multiple tunnel types
- Tunnel Duration/Quota Based Plan
- Tunnel Transport Enabler/Disabler
- Add, Reduce, Check Balance Client
- Add, Delete, and List Server
- Add, Delete, Edit Tunnel Plan
- Add, Remove, and List Reseller
- Add, Remove, and List Admin
- Enable/Disable Server
- Enable/Disable Tunnel Plan
- Hide/Show Tunnel Type
- Hide/Show Payment Method
- Hide/Show Payment Gateway
- Hide/Show IP Server (Client Side)
- Interactive Payment Configuration
- Maintenance Mode Toggler
TODO...
- RESTful API Access
TODO...
TODO...
- Make a request in the Issues
| Tunnel | Code | Action Locally | Action Remotely |
|---|---|---|---|
| π‘ SSH/OpenVPN | sshovpn |
info |
create, extend,delete, checklogin,lock, unlock,trial |
| π°οΈ SoftetherVPN | sevpn |
info |
create, extend,delete, checklogin,lock, unlock,trial |
| π WireGuard | wireguard |
info |
create, extend,delete, checklogin,lock, unlock,trial |
| π¦ VMess | vmess |
info |
create, extend,delete, checklogin,lock, unlock,trial |
| π¬ VLess | vless |
info |
create, extend,delete, checklogin,lock, unlock,trial |
| π Trojan | trojan |
info |
create, extend,delete, checklogin,lock, unlock,trial |
| π₯·πΏ Shadowsocks | ssocks |
info |
create, extend,delete, checklogin,lock, unlock,trial |
| π¦ Trojan-Go | trojango |
info |
create, extend,delete, checklogin,lock, unlock |
| π‘οΈ Socks5 | socks5 |
info |
create, extend,delete, checklogin,lock, unlock |
| π§ͺ NoobzVPN | noobz |
info |
create, extend,delete, checklogin,lock, unlock,trial |
| πͺ½ Hysteria1 | hysteria1 |
info |
create, extend,delete, checklogin,lock, unlock,trial |
| β‘οΈ Hysteria2 | hysteria2 |
info |
create, extend,delete, checklogin,lock, unlock,trial |
| π‘ Noobz VPN | noobz |
info |
create, extend,delete, checklogin,lock, unlock,trial |
| π¨ UDP Custom | udpcustom |
info |
create, extend,delete, checklogin,lock, unlock,trial |
Command Format
/etc/gegevps/bin/telegram-<CODE>-<ACTION>.sh <USERNAME> <PASSWORD> <DAYS> <TRANSPORT> <EXPIRED_TIMESTAMP>example:
# VMess Create Account
/etc/gegevps/bin/telegram-vmess-create.sh gegeuser gegepass 30 ws 1756107420
# Username: gegeuser
# Password: gegepass
# Days: 30
# Transport: ws
# Expired Timestamp: 1756107420 (Mon Aug 25 02:37:00 PM WIB 2025)| Tunnel | Code | Action Locally | Action Remotely |
|---|---|---|---|
| π‘ SSH/OpenVPN | sshovpnqb |
info |
create, extend,delete, checklogin,lock, unlock,trial |
| π¦ VMess Quota-Based | vmessqb |
info |
create, extend,delete, checklogin,lock, unlock,trial |
| π¬ VLess Quota-Based | vlessqb |
info |
create, extend,delete, checklogin,lock, unlock,trial |
| π Trojan Quota-Based | trojanqb |
info |
create, extend,delete, checklogin,lock, unlock,trial |
| π§ͺ NoobzVPN Quota-Based | noobzqb |
info |
create, extend,delete, checklogin,lock, unlock |
| β‘οΈ Hysteria 2 Quota-Based | hysteria2qb |
info |
create, extend,delete, checklogin,lock, unlock,trial |
Command Format
/etc/gegevps/bin/telegram-<CODE>-<ACTION>.sh <USERNAME> <PASSWORD> <DAYS> <QUOTA> <CYCLE [daily|weekly|montly]> <TRANSPORT> <EXPIRED_TIMESTAMP>example:
# VMess Create Account
/etc/gegevps/bin/telegram-vmess-create.sh gegeuser gegepass 30 25 daily ws 1756107420
# Username: gegeuser
# Password: gegepass
# Days: 30
# Quota: 25 GB
# Cycle: daily
# Transport: ws
# Expired Timestamp: 1756107420 (Mon Aug 25 02:37:00 PM WIB 2025)| Action | Details |
|---|---|
**create |
Used to create tunnel accounts |
**extend |
Used to extend the active period of a tunnel account |
*info |
Check account details based on bot database |
**delete |
Delete user account on server |
**checklogin |
Check user login on server |
**lock |
Lock tunnel account |
**unlock |
Unlock tunnel account |
**trial |
Used to create tunnel trial accounts |
*Locally : No connection to server required
**Remotely : Requires connection to server
| Transport | Details |
|---|---|
tcp |
π― TCP |
ws |
π WebSocket |
grpc |
𧬠gRPC |
xhttp |
π¨ XHTTP |
httpupgrade |
π HTTPUpgrade |
The original API Endpoint URL from OrderKuota only allows connections from Indonesian IP addresses. However, this bot has been configured with an Indonesian IP Reverse Proxy, so it can still be used even if the bot is running on a server with an international IP. Still, if you intend to use OrderKuota Payment Gateway as the main payment method, it is recommended to host the bot server with an Indonesian IP. The Reverse Proxy embedded in the bot application is hosted on the developer's personal (home) server, so there is no guaranteed SLA uptime due to various factors such as power outages and others. Thank you.
root@serverbot:~/vpnpanel/config# docker compose up -d && docker compose logs -f
Attaching to api-1, bot-1, nginx-1
nginx-1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
nginx-1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
nginx-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
api-1 | telegram-bot-api --http-port 8081 --dir=/var/lib/telegram-bot-api --temp-dir=/tmp/telegram-bot-api --username=telegram-bot-api --groupname=telegram-bot-api --api-id=191xxx --api-hash=1586c21e3d9d8exxxxx
nginx-1 | 10-listen-on-ipv6-by-default.sh: info: can not modify /etc/nginx/conf.d/default.conf (read-only file system?)
nginx-1 | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
nginx-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
nginx-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
nginx-1 | /docker-entrypoint.sh: Configuration complete; ready for start up
api-1 | [ 0][t 9][1752819429.874213457][Status.h:256][!ClientManager] Unexpected Status [PosixError : Permission denied : 13 : File "/var/lib/telegram-bot-api/tqueue.binlog" can't be opened/created for reading and writing] in file /root/tdlib/telegram-bot-api/ClientManager.cpp at line 326
api-1 | [pid 1] [time 1752819429] ------- Log dump -------
..........
This is caused by a file permission issue. You can resolve it with the following command:
chmod -R 777 ./data # Grant more permissive access to data files
docker compose down && docker compose up -d


