node package manager

kongadmin

More than just another GUI to KONG Admin API Build Status Gitter chat

konga-logo.png

Dashboard

Konga is not an official app. No affiliation with Mashape.

Site and working demo here

Konga 0.7.0 is underway and introduces new cool features like consumers exporting, Node and API health checks as well as Email notifications. Whoever wants to test it and drop some feedback is most welcome to do so. Don't forget to run Konga in dev mode once so that the db changes will be applied.

Summary

Discussions & Support

If you need to discuss anything Konga related, we have a chatroom on Gitter:

Gitter chat

Features

  • Manage all Kong Admin API Objects
  • Manage SSL credentials
  • Mass import consumers from :
    • CSV document
    • Google Spreadsheets
    • MySQL
    • MongoDB
    • APIs
  • Manage multiple Gateways
  • Multiple users
  • Easy database integration (MySQL, postgresSQL, MongoDB, SQL Server)

Compatibility

Konga is compatible with Kong 0.9.x,0.10.x

Prerequisites

Used libraries

Installation

Install npm and node.js. Instructions can be found here.

Install bower, gulp and sails packages.

$ npm install bower gulp sails -g
$ git clone https://github.com/pantsel/konga.git
$ cd konga
$ npm install

Configuration

You can configure your application to use your environment specified settings.

There is an example configuration file on following path.

/config/local_example.js

Just copy this to /config/local.js and make necessary changes to it. Note that this local.js file is in .gitignore so it won't go to VCS at any point.

Databases Integration

Konga is bundled with It's own persistence mechanism for storing users and configuration.

A local persistent object store is used by default, which works great as a bundled, starter database (with the strict caveat that it is for non-production use only).

The application also supports some of the most popular databases out of the box:

  1. MySQL
  2. MongoDB
  3. PostgresSQL
  4. SQL Server

In order to use them, in your /config/local.js replace

models: {
    connection: process.env.DB_ADAPTER || 'localDiskDb',
}

with

models: {
    connection: process.env.DB_ADAPTER || 'the-name-of-adapter-you-wish-to-use', // 'mysql', 'mongo', 'sqlserver' or 'postgres'
}

See Sails adapters for further configuration


Note :

In case of MySQL, PostgresSQL or SQL Server adapters, you will need to create a database named konga_database manually and run the app in development mode the first time.

npm start

Then kill the process and start Konga as you would in production mode. Konga will not create the database or tables in production mode.


Running Konga

Development

$ npm start

Konga GUI will be available at http://localhost:1337

Production

$ npm run production

Konga GUI will be available at http://localhost:1338

Production Docker Image

The following instructions assume that you have a running Kong instance following the instructions from Kong's docker hub

$ docker run -p 1337:1337 \
             --link kong:kong \
             --name konga \
             pantsel/konga

To use one of the supported databases

// As stated before, in case of 'postgres','sqlserver'  or 'mysql' adapters,
// the database defined in DB_DATABASE must be created manually and the app must 
// start in development mode the first time in order to be able to create the tables.
// You can do that by bashing into Konga's container and running 'node app.js --dev'.
// You may also need to add an extra link that points to your database container.
$ docker run -p 1337:1337 
             --link kong:kong \
             -e "DB_ADAPTER=the-name-of-the-adapter" \ // 'mongo','postgres','sqlserver'  or 'mysql'
             -e "DB_HOST=your-db-hostname" \
             -e "DB_PORT=your-db-port" \ // Defaults to the default db port
             -e "DB_USER=your-db-user" \ // Omit if not relevant
             -e "DB_PASSWORD=your-db-password" \ // Omit if not relevant
             -e "DB_DATABASE=your-db-name" \ // Defaults to 'konga_database'
             --name konga \
             pantsel/konga

The GUI will be available at http://{your server's public ip}:1338 Login, go to settings -> new node and add http://kong:8001 for Kong Admin URL.

Login

Admin login: admin | password: adminadminadmin

Demo user login: demo | password: demodemodemo

More Kong related stuff

Author

Panagis Tselentis

License

The MIT License (MIT)

Copyright (c) 2015 Panagis Tselentis

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.