SkillAgentSearch skills...

Admin.IM

Admin.IM is an open source NetOps system. It uses the PHP Hyperf framework driven by Swoole, full coroutine scheduling + asynchronous I/O implementation, and the system performance is excellent.

Install / Use

/learn @AdmUU/Admin.IM
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

中文 | English

Admin.IM

<div align="center"> <img alt="Admin.IM LOGO" src="./public/static/assets/images/logo.svg" width="120"> </div> <div align="center">

PHP MineAdmin License

</div>

📖 项目介绍

Admin.IM 是开源的网络检测和服务器管理系统。后台及接口基于 MineAdmin 开发, 使用由 Swoole 驱动的 PHP Hyperf 框架,全协程调度 + 异步 I/O 实现,系统性能非常出色,轻松处理大量并发请求。

前端使用 Vue3 + Vite5 + TypeScript + Pinia + Arco Design 开发,自适应多终端。客户端Agent使用 Golang 1.22 开发,支持Linux、Windows、MacOS等多平台运行。

✨ 系统特点

  • 🔥 高性能架构: 基于 Swoole 的 Hyperf 框架,全协程异步实现
  • 🎨 现代化界面: Vue3 + Arco Design,自适应多终端展示
  • 🧩 插件化设计: ICMP Ping、TCPing,更多插件开发中
  • 🌐 多语言支持: 内置多语言功能,支持英文、简体中文、繁体中文切换
  • ⏺️ 日志审计: 用户登录、系统操作记录随时查询
  • 🛡️ 稳定可靠: 经过严格测试,适合生产环境部署
  • 🖥️ 跨平台支持: Agent 支持 Linux、Windows、MacOS

📦 仓库地址

🚀 源码安装

环境需求

  • Swoole >= 5.0 ,关闭 Short Name
  • PHP >= 8.1 并开启以下扩展:
    • curl
    • fileinfo
    • mbstring
    • json
    • pdo
    • openssl
    • redis
    • pcntl
  • MySQL >= 5.7
  • Redis >= 6.2.0
  • Composer >= 2.x
  • Git >= 2.x

下载项目及依赖

# 克隆项目
git clone https://github.com/AdmUU/Admin.IM.git

# 安装依赖
cd Admin.IM
composer install

# 复制配置文件
cp .env.example .env

配置安装

配置 .env ,填写MySQL数据库、Redis连接等信息,执行安装命令:

#安装数据库和插件
php bin/hyperf.php mine:install

启动服务

php bin/hyperf.php start

🐳 Docker部署

线上环境推荐使用 docker compose 方式一键部署。

前置条件

  • 系统内存 1G 以上。如果与数据库安装在同一个服务器上,则至少 2G 内存。
  • 安装 Docker 和 Docker Compose 插件。
  • 安装MySQL、Redis。(也可以使用内置的MySQL和Redis)

快速部署

  1. 创建部署目录并进入:
mkdir admin-im && cd admin-im
  1. 创建并编辑环境配置文件 .env:
vim .env
#.env
ADM_DB_HOST=mysql                    #MySQL地址
ADM_DB_PORT=3306                     #MySQL端口
ADM_DB_USERNAME=user                 #MySQL用户名
ADM_DB_PASSWORD=password             #MySQL密码
ADM_DB_DATABASE=db_name              #MySQL数据库名
ADM_REDIS_HOST=redis                 #Redis地址
ADM_REDIS_PORT=6379                  #Redis端口
ADM_REDIS_PASSWORD=redis_password    #Redis密码
ADM_PORT_HTTP=8090                   #访问的端口号

# ADM_DB_ROOT_PASSWORD=admmysqlrootpwd  #内置MySQL的Root密码

如果没有事先安装MySQL和Redis,将上面的 ADM_DB_ROOT_PASSWORD 配置项取消注释,设置好MySQL Root密码,部署时由docker自动安装。内置数据库的数据已经持久化,可直接使用。

  1. 创建并编辑容器编排文件 docker-compose.yml:
vim docker-compose.yml
#docker-compose.yml
x-common-vars: &common-vars
  APP_VERSION: ${APP_VERSION:-latest}
  TZ: ${TIMEZONE:-Asia/Shanghai}

services:
  admin-im:
    image: ${DOCKER_REGISTRY:-docker.io}/admuu/admin.im:1
    container_name: admin-im
    working_dir: /opt/www
    volumes:
      - ./data:/data
      - ./data/upload:/opt/www/public/upload
      - ./data/logs:/opt/www/runtime/logs/debug
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    networks:
      - server
    restart: unless-stopped
    depends_on:
      mysql:
        condition: service_healthy
        required: false
      redis:
        condition: service_healthy
        required: false
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:9501/adm/health"]
      interval: 5s
      timeout: 5s
      retries: 5
      start_period: 30s
  adm-frontend:
    image: ${DOCKER_REGISTRY:-docker.io}/admuu/adm-frontend:1
    container_name: adm-frontend
    volumes:
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "${ADM_PORT_HTTP:-8090}:8090"
    networks:
      - server
    depends_on:
      - admin-im
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8090/"]
      interval: 5s
      timeout: 5s
      retries: 5
      start_period: 30s
  mysql:
    image: bitnami/mysql:8.4
    container_name: adm-mysql
    volumes:
      - mysql:/bitnami/mysql/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    environment:
      <<: *common-vars
      MYSQL_ROOT_PASSWORD: ${ADM_DB_ROOT_PASSWORD:-admmysqlrootpwd}
      MYSQL_USER: ${ADM_DB_USERNAME}
      MYSQL_PASSWORD: ${ADM_DB_PASSWORD}
      MYSQL_DATABASE: ${ADM_DB_DATABASE}
    networks:
      - server
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${ADM_DB_ROOT_PASSWORD:-admmysqlrootpwd}"]
      interval: 5s
      timeout: 5s
      retries: 5
      start_period: 30s
    restart: unless-stopped
    profiles:
      - mysql
  redis:
    image: bitnami/redis
    container_name: adm-redis
    volumes:
      - redis:/bitnami/redis/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    environment:
      <<: *common-vars
      REDIS_PASSWORD: ${ADM_REDIS_PASSWORD}
      REDIS_AOF_ENABLED: yes
      REDIS_RDB_POLICY_DISABLED: no
      REDIS_RDB_POLICY: 900#1 600#5 300#10 120#50 60#1000 30#10000
    command: /opt/bitnami/scripts/redis/run.sh --maxmemory ${ADM_REDIS_MAX_MEMORY:-512mb} --maxmemory-policy allkeys-lru
    sysctls:
      net.core.somaxconn: 1024
    networks:
      - server
    healthcheck:
      test: ["CMD", "redis-cli", "-a", "${ADM_REDIS_PASSWORD}", "ping"]
      interval: 5s
      timeout: 3s
      retries: 3
      start_period: 10s
    restart: unless-stopped
    profiles:
      - redis
name: admuu
networks:
  server:
    driver: bridge
volumes:
  mysql:
    driver: local
  redis:
    driver: local
  1. 启动服务:

方式一

# 使用外部数据库,直接启动
docker compose up -d

方式二

# 使用内置数据库,自动安装Mysql和Redis
docker compose --profile mysql --profile redis up -d
  1. 查看安装进度:

系统安装需要等待1至2分钟的时间。安装成功后,默认用户名是 admin,默认密码需从安装日志中查看。

#监视安装进度
docker logs -f -n 20 admin-im

#查看默认密码
docker logs admin-im | grep "Default password"
  1. 访问系统:
#前台
http://localhost:8090

#后台
http://localhost:8090/manage/

📚 文档

详细系统说明请访问 项目文档

📝 开源协议

本项目采用 Apache License Version 2.0 协议,详情请参阅 LICENSE 文件。

🙏 致谢

MineAdmin

ljk123/captcha

Hyperf

Swoole

Vue

Arco

Vite

📸 系统截图

<img alt="Admin.IM Screenshot" src="https://get.admin.im/screenshot/01.png" width="100%" /> <img alt="Admin.IM Screenshot" src="https://get.admin.im/screenshot/02.png" width="100%" /> <img alt="Admin.IM Screenshot" src="https://get.admin.im/screenshot/03.png" width="100%" />
View on GitHub
GitHub Stars117
CategoryDevelopment
Updated1d ago
Forks11

Languages

PHP

Security Score

95/100

Audited on Apr 6, 2026

No findings