Admin.IM 一个开源的ping工具

58次阅读
没有评论

共计 4247 个字符,预计需要花费 11 分钟才能阅读完成。

📖 项目介绍

 

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/

系统截图

 

Admin.IM  一个开源的 ping 工具

Admin.IM  一个开源的 ping 工具

Admin.IM  一个开源的 ping 工具

正文完
 0
水东柳
版权声明:本文于2025-04-13转载自GITHUB,共计4247字。
转载提示:此文章非本站原创文章,若需转载请联系原作者获得转载授权。
评论(没有评论)