An open-source, self-hosted admin console for operating JuggleIM.
Manage apps, users, groups, messages, bots, integrations, monitoring, and analytics from one web UI.
简体中文 · Website · Documentation · IM Server · Gitee
IMServer Console is the operations layer for JuggleIM, a self-hosted instant messaging platform. It packages a Vue 3 admin UI, Go management APIs, and an API gateway into one deployable service—so teams can operate an IM system without building an admin backend from scratch.
If this project saves you time, please give it a ⭐ Star. It helps more developers discover the project and supports continued maintenance.
- One place for daily operations — apps, accounts, users, groups, bots, conversations, and historical messages.
- Production-oriented controls — sensitive words, message interceptors, webhooks, client logs, and role-based accounts.
- Integrations without scattered config — iOS/Android push, object storage, RTC, SMS, email, and translation providers.
- Built-in visibility — user activity, message statistics, connection counts, and node performance metrics.
- Simple deployment — the compiled frontend is embedded in the Go service; no separate web server is required.
- Open and extensible — Apache-2.0 licensed, with clear API, service, and data-access layers.
| Area | Capabilities |
|---|---|
| Application management | Create/import apps, configure service switches, callbacks, and app credentials |
| Users and accounts | Admin accounts, app permissions, user search, ban/unban, groups, and bots |
| Message operations | Conversation inspection, history search, recall/delete, sensitive words, and custom interceptors |
| Push and storage | APNs, FCM/Android push, file storage providers, and client log collection |
| Communication services | RTC providers (Agora, ZEGO, LiveKit), SMS, email, and translation |
| Analytics and monitoring | User activity, private/group/chatroom messages, connections, and node performance |
| Developer tools | IM API debugging and connection inspection from the console |
| Internationalization | Built-in English and Simplified Chinese UI |
- Go 1.25+
- MySQL
- A running JuggleIM server (see the deployment guide)
git clone https://github.com/juggleim/imserver-console.git
cd imserver-consoleFor users in mainland China:
git clone https://gitee.com/juggleim/imserver-console.git
cd imserver-consoleCREATE DATABASE jim_db
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;Tables are migrated automatically when the service starts.
Edit conf/config.yml:
port: 8091
adminSecret: "replace-with-a-strong-random-secret"
log:
logPath: ./logs
logName: imserver-console
mysql:
user: root
password: your_mysql_password
address: 127.0.0.1:3306
name: jim_db
imApiDomain: http://127.0.0.1:9001
imAdminDomain: http://127.0.0.1:8090imApiDomain is the IM service API address; imAdminDomain is the JuggleIM admin API address.
go run .Open http://127.0.0.1:8091 and sign in with:
Username: admin
Password: 123456
For any non-local deployment, set
adminSecretand change the default password immediately after the first login. Do not commit production credentials toconf/config.yml.
The production frontend is already embedded in the Go binary. Run the Vue app separately only when working on the web UI:
cd webconsole/web
npm ci
npm run devThe Vite dev server proxies /admingateway to http://127.0.0.1:8090 by default. To rebuild the embedded frontend:
npm run buildBrowser
│
▼
Vue 3 Admin UI (embedded)
│ /admingateway
▼
Gin API + Auth + API Gateway
├── MySQL (console configuration and statistics)
└── JuggleIM APIs (IM operations and runtime data)
.
├── apis/ # HTTP handlers and request models
├── services/ # Business logic
├── dbs/ # GORM data-access layer
├── commons/ # Config, auth, logging, migrations, and utilities
├── routers/ # Gin routes and compiled admin assets
├── webconsole/ # Vue 3 + Vite admin console and Go embed loader
├── conf/ # Runtime configuration
└── main.go # Application entry point
- im-server — high-performance, self-hosted IM server
- Official documentation — deployment, integration, SDK, and server API guides
- Server API reference — integrate users, groups, messages, chatrooms, and more
Issues and pull requests are welcome. Good first contributions include bug fixes, documentation improvements, new integration providers, tests, and UI refinements.
- Fork the repository.
- Create a feature branch.
- Add tests where appropriate and verify the web/backend build.
- Open a pull request with a clear description and screenshots for UI changes.
Released under the Apache License 2.0.
If IMServer Console is useful to you, a ⭐ Star is the simplest way to support it.