不只是另一个用于 Kong Admin API 的 GUI
Konga is not an official app. No affiliation with Kong.
If you need to discuss anything Konga related, we have a chatroom on Gitter:
From 0.14.0 onwards, Konga is ONLY compatible with Kong 1.x
If you're on an older Kong version , use this branch
or konga:legacy from docker hub instead.
Install npm and node.js. Instructions can be found here.
Install bower, ad gulp packages.
$ git clone https://github.com/pantsel/konga.git
$ cd konga
$ npm iYou can configure your application to use your environment specified settings.
There is an example configuration file on the root folder.
.env_exampleJust copy this to .env and make necessary changes to it. Note that this
.env file is in .gitignore so it won't go to VCS at any point.
These are the general environment variables Konga uses.
| VAR | DESCRIPTION | VALUES | DEFAULT |
|---|---|---|---|
| HOST | The IP address that will be bind by Konga's server | - | '0.0.0.0' |
| PORT | The port that will be used by Konga's server | - | 1337 |
| NODE_ENV | The environment | production,development |
development |
| SSL_KEY_PATH | If you want to use SSL, this will be the absolute path to the .key file. Both SSL_KEY_PATH & SSL_CRT_PATH must be set. |
- | null |
| SSL_CRT_PATH | If you want to use SSL, this will be the absolute path to the .crt file. Both SSL_KEY_PATH & SSL_CRT_PATH must be set. |
- | null |
| KONGA_HOOK_TIMEOUT | The time in ms that Konga will wait for startup tasks to finish before exiting the process. | - | 60000 |
| DB_ADAPTER | The database that Konga will use. If not set, the localDisk db will be used. | mongo,mysql,postgres |
- |
| DB_URI | The full db connection string. Depends on DB_ADAPTER. If this is set, no other DB related var is needed. |
- | - |
| DB_HOST | If DB_URI is not specified, this is the database host. Depends on DB_ADAPTER. |
- | localhost |
| DB_PORT | If DB_URI is not specified, this is the database port. Depends on DB_ADAPTER. |
- | DB default. |
| DB_USER | If DB_URI is not specified, this is the database user. Depends on DB_ADAPTER. |
- | - |
| DB_PASSWORD | If DB_URI is not specified, this is the database user's password. Depends on DB_ADAPTER. |
- | - |
| DB_DATABASE | If DB_URI is not specified, this is the name of Konga's db. Depends on DB_ADAPTER. |
- | konga_database |
| DB_PG_SCHEMA | If using postgres as a database, this is the schema that will be used. | - | public |
| KONGA_LOG_LEVEL | The logging level | silly,debug,info,warn,error |
debug on dev environment & warn on prod. |
| TOKEN_SECRET | The secret that will be used to sign JWT tokens issued by Konga | - | - |
| NO_AUTH | Run Konga without Authentication | true/false | - |
| BASE_URL | Define a base URL or relative path that Konga will be loaded from. Ex: www.example.com/konga | - | |
| KONGA_SEED_USER_DATA_SOURCE_FILE | Seed default users on first run. Docs. | - | |
| KONGA_SEED_KONG_NODE_DATA_SOURCE_FILE | Seed default Kong Admin API connections on first run Docs | - |
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:
In order to use them, set the appropriate env vars in your .env file.
$ npm startKonga GUI will be available at http://localhost:1337
In case of MySQL or PostgresSQL adapters, Konga will not perform db migrations when running in production mode.
You can manually perform the migrations by calling $ node ./bin/konga.js prepare
, passing the args needed for the database connectivity.
For example:
$ node ./bin/konga.js prepare --adapter postgres --uri postgresql://localhost:5432/kongaThe process will exit after all migrations are completed.
Finally:
$ npm run productionKonga GUI will be available at http://localhost:1337
The following instructions assume that you have a running Kong instance following the instructions from Kong's docker hub
$ docker pull pantsel/konga
$ docker run -p 1337:1337 \
--network {{kong-network}} \ // optional
--name konga \
-e "NODE_ENV=production" \ // or "development" | defaults to 'development'
-e "TOKEN_SECRET={{somerandomstring}}" \
pantsel/kongaNote: You can skip this step if using the
mongoadapter.
You can prepare the database using an ephemeral container that runs the prepare command.
Args
| argument | description | default |
|---|---|---|
| -c | command | - |
| -a | adapter (can be postgres or mysql) |
- |
| -u | full database connection url | - |
$ docker run --rm pantsel/konga:latest -c prepare -a {{adapter}} -u {{connection-uri}}…The GUI will be available at http://{your server's public ip}:1337
It is possible to seed default users on first install.
You may also configure Konga to authenticate via LDAP.
In some cases a newer version of Konga may introduce changes in database schemas. The only thing you need to do is to start Konga in dev mode once so that the migrations will be applied. Then stop the app and run it again in production mode.
if you're using docker, you can lift an ephemeral container, as stated before:
$ docker run --rm pantsel/konga:latest -c prepare -a {{adapter}} -u {{connection-uri}}Uncaught ReferenceError: angular is not definedIn some cases when running npm install, the bower dependencies are not installed properly.
You will need to cd into your project's root directory and install them manually by typing
$ npm run bower-depsWhen a plugin property is an array, the input is handled by a chip component.
You will need to press enter after every value you type in
so that the component assigns it to an array index.
See issue #48 for reference.
If you see this error while trying to run Konga, it means that konga has no write permissions to
it's default data dir /kongadata. You will just have to define the storage path yourself to
a directory Konga will have access permissions via the env var STORAGE_PATH.
grunt is taking too long to loadThe default timeout for the sails hooks to load is 60000. In some cases, depending on
the memory the host machine has available, startup tasks like code minification and uglyfication
may take longer to complete. You can fix that by setting then env var KONGA_HOOK_TIMEOUT to something
greater than 60000, like 120000.
Panagis Tselentis
The MIT License (MIT)
=====================
THE SOF暂无开放 Issues,或尚未同步最近议题。