Skip to content

juggleim/imserver-console

JuggleIM

IMServer Console

An open-source, self-hosted admin console for operating JuggleIM.

Manage apps, users, groups, messages, bots, integrations, monitoring, and analytics from one web UI.

GitHub Stars Latest release License Go 1.25+ Vue 3

简体中文 · 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.

Why IMServer Console?

  • 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.

Features

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

Quick Start

Prerequisites

1. Clone the repository

git clone https://github.com/juggleim/imserver-console.git
cd imserver-console

For users in mainland China:

git clone https://gitee.com/juggleim/imserver-console.git
cd imserver-console

2. Create the database

CREATE DATABASE jim_db
  CHARACTER SET utf8mb4
  COLLATE utf8mb4_general_ci;

Tables are migrated automatically when the service starts.

3. Configure the console

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:8090

imApiDomain is the IM service API address; imAdminDomain is the JuggleIM admin API address.

4. Run

go run .

Open http://127.0.0.1:8091 and sign in with:

Username: admin
Password: 123456

For any non-local deployment, set adminSecret and change the default password immediately after the first login. Do not commit production credentials to conf/config.yml.

Frontend Development

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 dev

The Vite dev server proxies /admingateway to http://127.0.0.1:8090 by default. To rebuild the embedded frontend:

npm run build

Architecture

Browser
   │
   ▼
Vue 3 Admin UI (embedded)
   │  /admingateway
   ▼
Gin API + Auth + API Gateway
   ├── MySQL (console configuration and statistics)
   └── JuggleIM APIs (IM operations and runtime data)

Project Structure

.
├── 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

JuggleIM Ecosystem

Contributing

Issues and pull requests are welcome. Good first contributions include bug fixes, documentation improvements, new integration providers, tests, and UI refinements.

  1. Fork the repository.
  2. Create a feature branch.
  3. Add tests where appropriate and verify the web/backend build.
  4. Open a pull request with a clear description and screenshots for UI changes.

License

Released under the Apache License 2.0.


Build and operate your own IM platform with confidence.
If IMServer Console is useful to you, a ⭐ Star is the simplest way to support it.

About

Self-hosted JuggleIM admin console — manage apps, users, groups, messages, bots, integrations, monitoring, and analytics.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors