A multi-account Telegram management panel built with WTelegramClient, a .NET 8 backend, and a Vue 3 management UI.
- 📥 Account onboarding: Telethon, TData, and StringSession import; Telethon and TData export; phone-code, QR-code, and 2FA login.
- 🌐 Account-bound proxies: HTTP, SOCKS5, MTProxy, Resin sticky routes, and managed Cloudflare WARP, with per-account and batch binding, categories, used/unused filters, and egress IP, location, city, and ISP checks.
- 🔒 Safe first connection: import and login select and freeze the route before the first Telegram request instead of connecting directly and changing IP afterward.
- 🛡️ Account maintenance: status checks, transient-connection recovery, safe invalid-account cleanup, device logout, 2FA, and recovery-email management.
- 👥 Channels, groups, and bots: creation, sync, categories, invitations, admin changes, public conversion, leave/disband operations, and link export.
- 🤖 Automation: immediate and scheduled tasks, pause/edit/rerun controls, data dictionaries, templates, and optional OpenAI-compatible verification assistance.
- 🧩 Modules and APIs: installable
.tpmor.zipextensions for tasks, APIs, and management pages, with legacy Razor page compatibility.
Requirements: Docker Engine, or Docker Desktop with WSL2 on Windows.
git clone https://github.com/moeacgx/Telegram-Panel
cd Telegram-Panel
cp .env.example .env
docker compose pull
docker compose up -dOpen http://localhost:5000 and sign in with the initial credentials:
- Username:
tgpanel - Password: read
admin-bootstrap-password.txtin the private persistent credentials directory (Docker:docker-data). From v1.31.87, a random initial password replaces the shared default. Change it after signing in; existing credentials remain valid, but old browser sessions must sign in again.
Change the initial password after the first sign-in. Persistent data is stored in
./docker-data; back up that directory before updates or migrations.
Proxy, WARP, and Resin setup details live in Proxy management and account egress and Account import, not in this README.
- Docker image:
ghcr.io/moeacgx/telegram-panel:latest - Windows installer and Linux packages: latest GitHub Release
- In-app Docker update: version badge → Version info → Check for updates → Update and restart
Check the update guide before changing an existing deployment.
Install the .NET 8 SDK and use the repository-pinned pnpm version:
corepack enable
pnpm --dir frontend install --frozen-lockfile
pnpm --dir frontend run build
dotnet run --project src/TelegramPanel.WebOpen http://localhost:5000.
- Installation
- Account import
- Proxy management and account egress
- Configuration and persistent data
- Module development
- API reference
- Documentation site
More screenshots: screenshot/
![]() |
![]() |
![]() |



