{"id":16767852,"url":"https://github.com/eolinker/apinto-dashboard","last_synced_at":"2025-04-09T06:11:51.964Z","repository":{"id":38620297,"uuid":"478391794","full_name":"eolinker/apinto-dashboard","owner":"eolinker","description":"Dashboard for Apinto","archived":false,"fork":false,"pushed_at":"2025-04-01T07:25:21.000Z","size":50664,"stargazers_count":109,"open_issues_count":13,"forks_count":36,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-01T08:32:40.394Z","etag":null,"topics":["api","api-gateway","apinto","dashboard","devops","gateway","goku","json-scheme","microservice"],"latest_commit_sha":null,"homepage":"https://www.apinto.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eolinker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-06T03:42:04.000Z","updated_at":"2025-04-01T07:25:27.000Z","dependencies_parsed_at":"2023-09-22T14:17:10.585Z","dependency_job_id":"26239287-2718-4923-865b-082cc24f2530","html_url":"https://github.com/eolinker/apinto-dashboard","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eolinker%2Fapinto-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eolinker%2Fapinto-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eolinker%2Fapinto-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eolinker%2Fapinto-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eolinker","download_url":"https://codeload.github.com/eolinker/apinto-dashboard/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247987285,"owners_count":21028895,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","api-gateway","apinto","dashboard","devops","gateway","goku","json-scheme","microservice"],"created_at":"2024-10-13T06:10:07.909Z","updated_at":"2025-04-09T06:11:51.958Z","avatar_url":"https://github.com/eolinker.png","language":"Go","readme":"# Apinto Dashboard\n\n\n![](http://data.eolinker.com/course/eaC48Js3400ffd03c21e36b3eea434dce22d7877a3194f6.png)\n\n## Demo \n体验地址：[demo-dashboard.apinto.com](https://demo-dashboard.apinto.com/)\n\n提供6个体验账号：apinto-1、apinto-2、apinto-3、apinto-4、apinto-5、apinto-6\n\n密码均为：12345678\n\n\n## 什么是Apinto Dashboad V3.x\n\nApinto Dashboard V3.x 是一个可视化控制台项目，基于开源网关 Apinto，并满足企业级 API 网关需求场景。通过 Dashboard，可以管理集群、上游、应用和 API 等模块，并以集群维度管理各个模块的生命周期。该项目具有出色的用户操作体验，配置流程简短，上手难度低。\n\nApinto Dashboard与Apinto交互流程如下图所示：\n\u003cimg width=\"1664\" alt=\"img_v2_22590d84-f8a4-4d3a-9c67-b481ecfdf1fg\" src=\"https://user-images.githubusercontent.com/18322454/228448391-160153ff-86b8-494c-9a1d-00afb34876a1.png\"\u003e\n\n\n集群管理：管理各个环境的集群，给集群配置证书、配置并发布该集群下的环境变量、监控并管理集群下各个网关节点、配置管理等。\n\n上游服务：上游管理和服务发现。服务发现支持consul、eureka、nacos注册中心；上游管理是管理所有提供API调用的后端系统，都需要上线到指定的集群才生效；\n\nAPI管理：支持业务域分组，管理所有后端系统提供的API及其生命周期，根据业务上下线到相应的集群。\n\n应用管理：管理所有调用方，配置请求网关的鉴权，以及支持转发后端的额外参数鉴权，上下线到指定集群生效。\n\n服务治理：针对不同集群配置并上线限流、访问、熔断、灰度、缓存等策略，保障网关集群以及后端系统稳定工作。\n\n网关插件：即将开放，管理Apinto插件，Apinto内置几十个插件，同时支持自定义添加插件。\n\n企业插件：即将提供并支持自定义业务型企业插件，供用户安装使用，业务型企业插件如：用户角色、监控告警、日志、API文档、开放平台、安全防护、数据分析、调用链、mock、在线调测、安全测试、国密、多协议……\n\n系统管理：配置邮箱，配置告警模板等。\n\n## 迭代计划\n![image](https://user-images.githubusercontent.com/18322454/226301033-c270f690-4c50-4841-b919-a2f2655d9ed7.png)\n\n如果您是个人开发者，可基于API网关相关的业务场景开发有价值的网关插件或企业级插件，并且愿意分享给Apinto，您将会成为Apinto的杰出贡献者或得到一定的收益。\n如果您是企业，可基于Apinto网关开发企业级插件，成为Apinto的合作伙伴。\n\n### 部署\n\n\u003cdetails\u003e\n\u003csummary\u003e安装包部署\u003c/summary\u003e\n\u003cbr\u003e\n安装前，需要确保已经安装了Mysql 5.7.x或以上版本、Redis 5.0-6.2.7，并且Redis使用Cluster模式启动。若未安装，可参考下文的`安装Redis及Mysql`教程\n\u003cbr\u003e\n\u003cbr\u003e\n1、下载最新版本`apinto-dashboard`\n\n以`apinto-dashboard v3.0.1`版本示例\n\n```\nwget https://github.com/eolinker/apinto-dashboard/releases/download/v3.0.1/apserver_v3.0.1_linux_amd64.tar.gz\n```\n\n安装包支持Linux、Darwin系统，AMD64、ARM64架构，使用者可以按需到[Release页面](https://github.com/eolinker/apinto-dashboard/releases/tag)进行下载。\n\n2、解压安装包，并进入对应目录\n\n```\ntar -zxvf apserver_v3.0.1_linux_amd64.tar.gz \u0026\u0026 cd apserver_v3.0.1\n```\n\n3、安装程序\n\n```\n./install.sh\n```\n\n执行过程中，我们可以选择安装的目录，若无需更改，输入`y`即可\n\n![](http://data.eolinker.com/course/d6WQ1Kka72b01f32dd0fb930264706eed96a11631b197d7.png)\n\n4、编辑配置文件`config.yml`\n\n```\nport: 服务监听的端口号\nmysql:\n  user_name: \"数据库用户名\"\n  password: \"数据库密码\"\n  ip: \"数据库IP地址\"\n  port: 端口号\n  db: \"数据库DB\"\nerror_log:\n  dir: work/logs               # 日志放置目录, 仅支持绝对路径, 不填则默认为执行程序上一层目录的work/logs. 若填写的值不为绝对路径，则以上一层目录为相对路径的根目录，比如填写 work/test/logs， 则目录为可执行程序所在目录的 ../work/test/logs\n  file_name: error.log         # 错误日志文件名\n  log_level: warning            # 错误日志等级,可选:panic,fatal,error,warning,info,debug,trace 不填或者非法则为info\n  log_expire: 7d                # 错误日志过期时间，默认单位为天，d|天，h|小时, 不合法配置默认为7d\n  log_period: day               # 错误日志切割周期，仅支持day、hour\nredis:\n  user_name: \"redis集群密码\"\n  password: \"redis集群密码\"\n  addr:\n   - 192.168.128.198:7201\n   - 192.168.128.198:7202\n```\n\n示例配置\n\n```\nport: 18080\nmysql:\n  user_name: \"root\"\n  password: \"123456\"\n  ip: \"127.0.0.1\"\n  port: 33306\n  db: \"apinto\"\nerror_log:\n  dir: work/logs               # 日志放置目录, 仅支持绝对路径, 不填则默认为执行程序上一层目录的work/logs. 若填写的值不为绝对路径，则以\u003e上一层目录为相对路径的根目录，比如填写 work/test/logs， 则目录为可执行程序所在目录的 ../work/test/logs\n  file_name: error.log         # 错误日志文件名\n  log_level: warning            # 错误日志等级,可选:panic,fatal,error,warning,info,debug,trace 不填或者非法则为info\n  log_expire: 7d                # 错误日志过期时间，默认单位为天，d|天，h|小时, 不合法配置默认为7d\n  log_period: day               # 错误日志切割周期，仅支持day、hour\nredis:\n  user_name: \"\"\n  password: \"123456\"\n  addr:\n   - 172.100.0.1:7201\n   - 172.100.0.1:7202\n```\n\n5、启动控制台\n\n```\n./run.sh start\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDocker部署\u003c/summary\u003e\n\u003cbr\u003e\n安装前，需要确保已经安装了Mysql 5.7.x或以上版本、Redis 5.0-6.2.7，并且Redis使用Cluster模式启动。若未安装，可参考下文的`安装Redis及Mysql`教程\n\u003cbr\u003e\n\u003cbr\u003e\n1、安装`Apinto-Dashboard`\n\n```shell\ndocker run -dt --name apinto-dashboard --restart=always \\\n-p 18080:8080 -v /var/log/apinto/apinto-dashboard/work:/apinto-dashboard/work \\\n--network=apinto --privileged=true \\\n-e MYSQL_USER_NAME=root -e MYSQL_IP=apinto_mysql \\\n-e MYSQL_PWD={MYSQL_PWD} -e MYSQL_PORT=3306 -e MYSQL_DB=apinto \\\n-e REDIS_ADDR=172.100.0.1:7201,172.100.0.1:7202,172.100.0.1:7203 \\\n-e REDIS_PWD={REDIS_PWD} eolinker/apinto-dashboard\n```\n\n上述配置中，使用 \"{}\" 包裹的均为变量，相关变量说明如下：\n\n- MYSQL_PWD：Mysql数据库root用户的密码\n- REDIS_PWD：Redis数据库密码\n\n示例命令：\n\n```shell\ndocker run -dt --name apinto-dashboard --restart=always \\\n-p 18080:8080 -v /var/log/apinto/apinto-dashboard/work:/apinto-dashboard/work \\\n--network=apinto --privileged=true \\\n-e MYSQL_USER_NAME=root -e MYSQL_IP=apinto_mysql \\\n-e MYSQL_PWD=123456 -e MYSQL_PORT=3306 -e MYSQL_DB=apinto \\\n-e REDIS_ADDR=172.100.0.1:7201,172.100.0.1:7202,172.100.0.1:7203 \\\n-e REDIS_PWD=123456 eolinker/apinto-dashboard\n```\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e安装Redis及Mysql\u003c/summary\u003e\n\u003cbr\u003e\n1、新建docker网段\n\n```shell\ndocker network create --driver bridge --subnet=172.100.0.0/24 --gateway=172.100.0.1 apinto\n```\n\n2、安装`Mysql`\n\n```shell\ndocker run -dt --name apinto_mysql -p {PORT}:3306 \\\n-v /var/lib/apinto/mysql:/var/lib/mysql \\\n--network=apinto --privileged=true --restart=always \\\n-e MYSQL_ROOT_PASSWORD={PASSWORD} -e MYSQL_DATABASE=apinto \\\nmysql:5.7.34 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci\n```\n\n上述命令中，使用`{}`包裹的为可修改变量，变量说明如下\n\n* PORT：宿主机映射端口号\n* PASSWORD：Mysql数据库root用户的密码\n\n示例命令：\n\n```shell\ndocker run -dt --name apinto_mysql -p 33306:3306 \\\n-v /var/lib/apinto/mysql:/var/lib/mysql \\\n--network=apinto --privileged=true \\\n-e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=apinto \\\nmysql:5.7.34 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci\n```\n\n3、安装`Redis`\n\n```shell\ndocker run -dt --name redis_cluster --restart=always \\\n-v /var/lib/apinto/redis-cluster/data:/usr/local/cluster_redis/data \\\n-e REDIS_PWD={PASSWORD} -e HOST={HOST} -e PORT=7201 \\\n--net=host eolinker/cluster-redis:6.2.7\n```\n\n上述命令中，使用`{}`包裹的为可修改变量，变量说明如下\n\n* PASSWORD：Redis数据库密码\n* HOST：Redis广播IP，可设置宿主机的局域网IP/外网IP，建议此处设置宿主机的局域网IP。\n\n查看宿主机IP方法如下：\n\n```Shell\nip route\n```\n\n执行后得到下列IP列表，从下表可以看到，宿主机默认局域网`ip`是`172.18.31.253`\n\n![](http://data.eolinker.com/course/RaGBZly2702d3bae33e4b66eed674ce65d0e4b0dbf27ab0.png)\n\n示例命令：\n\n```shell\ndocker run -dt --name redis_cluster --restart=always \\\n-v /var/lib/apinto/redis-cluster/data:/usr/local/cluster_redis/data \\\n-e REDIS_PWD=123456 -e HOST=172.18.31.253 -e PORT=7201 \\\n--net=host eolinker/cluster-redis:6.2.7\n```\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eDocker-Compose一键部署\u003c/summary\u003e\n\u003cbr\u003e\n使用该方式部署，会将Mysql、Redis也一并安装启动。\n\u003cbr\u003e\n\u003cbr\u003e\n1、编辑`docker-compose.yml`文件\n\n```Shell\nvi docker-compose.yml\n```\n\n2、修改文件配置\n\n```Shell\nversion: '3'\nservices:\n  mysql:\n    image: mysql:5.7.34\n    privileged: true\n    restart: always\n    container_name: apinto_mysql\n    hostname: apinto_mysql\n    command:\n      - \"--character-set-server=utf8mb4\"\n      - \"--collation-server=utf8mb4_unicode_ci\"\n    ports:\n      - \"33306:3306\"\n    environment:\n      - MYSQL_ROOT_PASSWORD={MYSQL_PWD}\n      - MYSQL_DATABASE=apinto\n    volumes:\n      - /var/lib/apinto/mysql:/var/lib/mysql\n    networks:\n      - apinto\n  apinto-dashboard:\n    image: eolinker/apinto-dashboard\n    container_name: apinto-dashboard\n    privileged: true\n    restart: always\n    networks:\n      - apinto\n    ports:\n      - \"18080:8080\"\n    depends_on:\n      - mysql\n      - redis_cluster\n    environment:\n      - MYSQL_USER_NAME=root\n      - MYSQL_PWD={MYSQL_PWD}\n      - MYSQL_IP=apinto_mysql\n      - MYSQL_PORT=3306                 #mysql端口\n      - MYSQL_DB=\"apinto\"\n      - ERROR_DIR=/apinto-dashboard/work/logs  # 日志放置目录\n      - ERROR_FILE_NAME=error.log          # 错误日志文件名\n      - ERROR_LOG_LEVEL=info               # 错误日志等级,可选:panic,fatal,error,warning,info,debug,trace 不填或者非法则为info\n      - ERROR_EXPIRE=7d                    # 错误日志过期时间，默认单位为天，d|天，h|小时, 不合法配置默认为7d\n      - ERROR_PERIOD=day                  # 错误日志切割周期，仅支持day、hour\n      - REDIS_ADDR=172.100.0.1:7201,172.100.0.1:7202,172.100.0.1:7203,172.100.0.1:7204,172.100.0.1:7205,172.100.0.1:7206 #Redis集群地址 多个用,隔开\n      - REDIS_PWD={REDIS_PWD}                         # Redis密码\n    volumes:\n      - /var/log/apinto/apinto-dashboard/work:/apinto-dashboard/work   #挂载log到主机目录\n  redis_cluster:\n    container_name: redis_cluster\n    image: eolinker/cluster-redis:6.2.7\n    hostname: redis_cluster\n    privileged: true\n    restart: always\n    environment:\n      - REDIS_PWD={REDIS_PWD}\n      - PORT=7201\n      - HOST={HOST}\n    volumes: \n      - /var/lib/apinto/redis-cluster/data:/usr/local/cluster_redis/data\n    network_mode: host\nnetworks:\n  apinto:\n    driver: bridge\n    ipam:\n      driver: default\n      config:\n        - subnet: 172.100.0.0/24\n```\n\n上述配置中，使用 \"{}\" 包裹的均为变量，相关变量说明如下：\n\n- MYSQL_PWD：mysql数据库root用户初始化密码\n- REDIS_PWD：redis密码\n- HOST：Redis广播IP，可设置宿主机的局域网IP/外网IP，建议此处设置宿主机的局域网IP。\n\n查看宿主机IP方法如下：\n\n```Shell\nip route\n```\n\n执行后得到下列IP列表，从下表可以看到，宿主机默认局域网`ip`是`172.18.31.251`\n\n![](http://data.eolinker.com/course/RaGBZly2702d3bae33e4b66eed674ce65d0e4b0dbf27ab0.png)\n\n替换后配置示例如下：\n\n```Shell\nversion: '3'\nservices:\n  mysql:\n    image: mysql:5.7.34\n    privileged: true\n    restart: always\n    container_name: apinto_mysql\n    hostname: apinto_mysql\n    command:\n      - \"--character-set-server=utf8mb4\"\n      - \"--collation-server=utf8mb4_unicode_ci\"\n    ports:\n      - \"33306:3306\"\n    environment:\n      - MYSQL_ROOT_PASSWORD=123456\n      - MYSQL_DATABASE=apinto\n    volumes:\n      - /var/lib/apinto/mysql:/var/lib/mysql\n    networks:\n      - apinto\n  apinto-dashboard:\n    image: eolinker/apinto-dashboard\n    container_name: apinto-dashboard\n    privileged: true\n    restart: always\n    networks:\n      - apinto\n    ports:\n      - \"18080:8080\"\n    depends_on:\n      - mysql\n      - redis_cluster\n    environment:\n      - MYSQL_USER_NAME=root\n      - MYSQL_PWD=123456\n      - MYSQL_IP=apinto_mysql\n      - MYSQL_PORT=3306                 #mysql端口\n      - MYSQL_DB=\"apinto\"\n      - ERROR_DIR=/apinto-dashboard/work/logs  # 日志放置目录\n      - ERROR_FILE_NAME=error.log          # 错误日志文件名\n      - ERROR_LOG_LEVEL=info               # 错误日志等级,可选:panic,fatal,error,warning,info,debug,trace 不填或者非法则为info\n      - ERROR_EXPIRE=7d                    # 错误日志过期时间，默认单位为天，d|天，h|小时, 不合法配置默认为7d\n      - ERROR_PERIOD=day                  # 错误日志切割周期，仅支持day、hour\n      - REDIS_ADDR=172.100.0.1:7201,172.100.0.1:7202,172.100.0.1:7203,172.100.0.1:7204,172.100.0.1:7205,172.100.0.1:7206 #Redis集群地址 多个用,隔开\n      - REDIS_PWD=123456                         # Redis密码\n    volumes:\n      - /var/log/apinto/apinto-dashboard/work:/apinto-dashboard/work   #挂载log到主机目录\n  redis_cluster:\n    container_name: redis_cluster\n    image: eolinker/cluster-redis:6.2.7\n    hostname: redis_cluster\n    privileged: true\n    restart: always\n    environment:\n      - REDIS_PWD=123456\n      - PORT=7201\n      - HOST=172.18.31.251\n    volumes: \n      - /var/lib/apinto/redis-cluster/data:/usr/local/cluster_redis/data\n    network_mode: host\nnetworks:\n  apinto:\n    driver: bridge\n    ipam:\n      driver: default\n      config:\n        - subnet: 172.100.0.0/24\n```\n\n3、启动程序\n\n在`docker-compose.yml`文件所在目录下执行下列命令，即可一键完成部署。\n\n```Shell\ndocker-compose up -d\n```\n\n部署完成结果如下图\n\n![](http://data.eolinker.com/course/gqrr8iz6b7b95319074a48041548c59f786a853804b9e6b.png)\n\u003c/details\u003e\n\n### 浏览器访问\n\n部署完成后，在浏览器输入地址：http://{ip或域名}:{端口号}，访问控制台页面\n\n![](http://data.eolinker.com/course/5rrURpNe2b7d3861f173f1e0072ce74f9ee40728f74c912.png)\n\n初始账号：admin ，初始密码：12345678 ，部署完成后，建议修改密码。\n\n\n![](http://data.eolinker.com/course/fILkh1527d0a901f66468d4a0c423eb2dbcbb06ad439b83.png)\n\n- ### **联系我们**\n\n\n* **帮助文档**：[https://help.eolink.com/tutorial/Apinto](https://help.eolink.com/tutorial/Apinto)\n\n- **QQ群**: 725853895\n\n- **Slack**：[加入我们](https://join.slack.com/t/slack-zer6755/shared_invite/zt-u7wzqp1u-aNA0XK9Bdb3kOpN03jRmYQ)\n\n- **官网**：[https://www.apinto.com](https://www.apinto.com/)\n- **论坛**：[https://community.apinto.com](https://community.apinto.com/)\n- **微信群**：\u003cimg src=\"http://data.eolinker.com/course/2HdT4zd10b670318462bec90f0f390bef896c21cad66172.png\" style=\"width:150px\" /\u003e\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feolinker%2Fapinto-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feolinker%2Fapinto-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feolinker%2Fapinto-dashboard/lists"}