close
The Wayback Machine - https://web.archive.org/web/20201017151035/https://github.com/marbleqi/kongui
Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
api
 
 
db
 
 
web
 
 
 
 

README.md

KONGUI

项目说明

本项目是基于KONGAPI,制作的管理控制台。

前端项目目录为web,使用Angular10版本的ng-alain框架开发。

后端项目目录为api使用Typescript语言的egg框架开发。

数据库使用Mysql,db目录下的kong.sql为数据库的初始化脚本。

用户登陆的初始用户名为:admin,密码为:kongui。

注:本项目为个人开发项目,非KONG官方项目。

项目支持多站点管理,站点信息保存在数据库中。

除站点管理外,还包括新增代理(一次性同时增加服务及关联服务的路由)、路由,服务,用户,证书,插件,上游,及目标的管理。

注:插件部分功能只做了访问IP限制,后续会根据反馈意见加入一些常用插件的管理。

示例网站

示例地址:https://kongui.marbleqi.top/

注:各个用户之间管理的站点做了逻辑隔离,只能看到自己管理的站点。

初始用户下,已有一个示例站点,该示例站点并未实际提供对外代理服务,搭建可随意配置管理。

界面右上角有个人设置,可以修改登录名和密码。

修改用户名和密码后,可以添加自行使用的真实KONGAPI地址试用。 注:真实的API地址会被我看到,所以建议获取源码后,私有化部署。

初始登陆名 初始密码
admin kongui
konguiuser2 kongui
konguiuser3 kongui
konguiuser4 kongui
konguiuser5 kongui
konguiuser6 kongui
konguiuser7 kongui
konguiuser8 kongui
konguiuser9 kongui
konguiuser10 kongui

项目运行

拉取项目

git clone https://github.com/marbleqi/kongui.git

环境配置

  1. 安装docker环境(以下以Linux操作系统为例)
# 下载安装包
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.13-3.2.el7.x86_64.rpm
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-19.03.12-3.el7.x86_64.rpm
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-19.03.12-3.el7.x86_64.rpm

# 安装docker
yum -y install containerd.io-1.2.13-3.2.el7.x86_64.rpm
yum -y install docker-ce-cli-19.03.12-3.el7.x86_64.rpm
yum -y install docker-ce-19.03.12-3.el7.x86_64.rpm

# 启动docker服务
systemctl start docker
  1. 安装nodejs环境(以下以Linux操作系统为例)
# 获取12版本系列最新安装配置
curl --silent --location https://rpm.nodesource.com/setup_12.x | bash

# 安装指定12版本的最新子版本nodejs
yum install -y nodejs

# 调整npm包源为淘宝源(国内服务器可考虑使用该配置)
npm config set registry https://registry.npm.taobao.org
npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass/

# 升级npm包到最新版本
npm -g i npm
  1. 准备Mysql数据库,并创建数据库,并配置用户名密码等权限,使用db目录下脚本初始化数据库。

  2. 配置后端项目中的数据库连接参数,配置文件路径/api/config/config.prod.ts

config.keys = appInfo.name + 'cookie签名密钥,请自行修改';

config.mysql = {
  clients: {
    kong: {
      host: '数据库地址',
      port: '端口号',
      database: '数据库名',
      user: '用户名',
      password: '密码',
    },
  },
  // 是否加载到 app 上,默认开启
  app: true,
  // 是否加载到 agent 上,默认开启
  agent: true,
};
  1. 配置前端项目连接的后端地址,配置文件路径/web/src/environments/environment.prod.ts
export const environment = {
  // 以下参数为后端地址,可使用相对地址,也可使用域名
  SERVER_URL: `http://kongui.domain.com:4000`,
  production: true,
  useHash: true,
  hmr: false,
  mock: false,
};

制作前端镜像

# 进入前端项目目录
cd web
# 安装nodejs依赖包
npm i
# 编译静态文件(输出目录为dist目录)
npm run build
# 将镜像配置文件移入编译后目录
mv Dockerfile dist/
mv nginx.conf dist/
# 制作镜像,镜像名konguiweb
docker build -t konguiweb ./dist

制作后端镜像(注:需修改配置文件后制作镜像)

# 从前面项目目录切换到后端项目目录
cd ../api
# 制作镜像,镜像名konguiapi
docker build -t konguiapi .

使用镜像启动服务

# 启动后端镜像
docker run \
-dit \
--name konguiapi \
--hostname konguiapi \
-p 4000:80 \
konguiapi

# 启动前端镜像
docker run \
-dit \
--name konguiweb \
--hostname konguiweb \
-p 4001:80 \
konguiweb

配置路由访问

如前后端容器都部署在一台服务器上,且配置了公网IP的解析域名为kongui.domain.com。

则访问前端地址:http://kongui.domain.com:4001

登陆后修改密码

登陆后,右上角的“个人设置”处,可弹出修改信息页面,可以修改密码。

You can’t perform that action at this time.