Mais do que apenas outra GUI para KONG Admin API
Konga não é um aplicativo oficial. Sem afiliação com Kong.
Se você acha que o Konga é útil, você pode mostrar o seu apoio e me ajudar a continuar mantendo o projeto me comprando um café ou se tornando um Patrão. Saudações!
Agradecimentos especiais aos nossos apoiadores que nos ajudam a manter o projeto em andamento e a motivação viva.
- Discussões e suporte
- Recursos
- Compatibilidade
- Pré-requisitos
- Bibliotecas utilizadas
- Instalação
- Configuração
- Variáveis de ambiente
- Executando o Konga
- Atualizando
- Perguntas e Respostas
- Mais coisas relacionadas ao Kong
- Licença
Se você precisar discutir qualquer coisa relacionada ao Konga, temos uma sala de bate-papo no Gitter:
- Gerenciar todos os objetos Kong Admin API.
- Importar consumidores de fontes remotas (bancos de dados, arquivos, APIs, etc.).
- Gerenciar várias instâncias Kong.
- Faça backup, restaure e migre instâncias Kong usando Snapshots.
- Monitore os estados da instância e da API usando verificações de saúde.
- Notificações por email e Slack.
- Vários usuários.
- Fácil integração de banco de dados (MySQL, PostgreSQL, MongoDB).
De 0.14.0 em diante, Konga SOMENTE é compatível com Kong 1.x
Se você estiver em uma versão mais antiga do Kong, use essa branch ou konga:legacy
do docker hub.
- Uma instalação do Kong em execução
- Nodejs >= 8, <= 12.x (12.16 LTS é o recomendado)
- Npm
Instale o npm
e o node.js
. Instruções podem ser encontradas aqui.
Instale os pacotes bower
, e o gulp
.
$ git clone https://github.com/pantsel/konga.git
$ cd konga
$ npm i
Você pode configurar seu aplicativo para usar as configurações específicas do ambiente.
Existe um arquivo de configuração de exemplo na pasta raiz.
.env_example
Basta copiar para .env
e fazer as alterações necessárias. Observe que este arquivo .env
está em .gitignore, portanto, não irá para o VCS em nenhum momento.
Estas são as variáveis de ambiente gerais que Konga usa.
VARIÁVEL | DESCRIÇÃO | VALORES | PADRÃO |
---|---|---|---|
HOST | O endereço IP que será vinculado ao servidor do Konga | - | '0.0.0.0' |
PORT | A porta que será usada pelo servidor do Konga | - | 1337 |
NODE_ENV | O Ambiente | production ,development |
development |
SSL_KEY_PATH | Se você quiser usar SSL, este será o caminho absoluto para o arquivo .key. Ambos SSL_KEY_PATH e SSL_CRT_PATH devem ser configurados. |
- | null |
SSL_CRT_PATH | Se você quiser usar SSL, este será o caminho absoluto para o arquivo .crt. Ambos SSL_KEY_PATH e SSL_CRT_PATH devem ser configurados. |
- | null |
KONGA_HOOK_TIMEOUT | O tempo em ms que Konga aguardará pela conclusão das tarefas de inicialização antes de sair do processo. | - | 60000 |
DB_ADAPTER | O banco de dados que Konga usará. Se não for definido, o db localDisk será usado. | mongo ,mysql ,postgres |
- |
DB_URI | A string de conexão db completa. Depende de DB_ADAPTER . Se for definido, nenhuma outra var relacionada ao banco de dados será necessária. |
- | - |
DB_HOST | Se DB_URI não for especificado, este é o host do banco de dados. Depende de DB_ADAPTER . |
- | localhost |
DB_PORT | Se DB_URI não for especificado, esta é a porta do banco de dados. Depende de DB_ADAPTER . |
- | DB default. |
DB_USER | Se DB_URI não for especificado, este é o usuário do banco de dados. Depende de DB_ADAPTER . |
- | - |
DB_PASSWORD | Se DB_URI não for especificado, esta é a senha do usuário do banco de dados. Depende de DB_ADAPTER . |
- | - |
DB_DATABASE | Se DB_URI não for especificado, este é o nome do banco de dados do Konga. Depende de DB_ADAPTER . |
- | konga_database |
DB_PG_SCHEMA | Se estiver usando o postgres como banco de dados, este é o esquema que será usado. | - | public |
KONGA_LOG_LEVEL | O nível de registro | silly ,debug ,info ,warn ,error |
debug no ambiente dev & warn no prod. |
TOKEN_SECRET | O segredo que será usado para assinar tokens JWT emitidos pelo Konga | - | - |
NO_AUTH | Execute o Konga sem autenticação | true/false | - |
BASE_URL | Defina uma URL base ou caminho relativo de onde o Konga será carregado. Ex: www.exemplo.com/konga | - | |
KONGA_SEED_USER_DATA_SOURCE_FILE | Semeie usuários padrão na primeira execução. Docs. | - | |
KONGA_SEED_KONG_NODE_DATA_SOURCE_FILE | Semear instâncias padrão da API Kong Admin na primeira execução Docs | - |
Konga vem com seu próprio mecanismo de persistência para armazenar usuários e configurações.
A persistência local do objeto de armazenamento é usado por padrão, que funciona muito bem como um banco de dados inicial ( com estrita ressalva de que é apenas para uso fora da produção).
O aplicativo também oferece suporte a alguns dos bancos de dados mais populares prontos para uso:
- MySQL
- MongoDB
- PostgreSQL
Para usá-los, defina as variáveis de ambiente apropriadas em seu arquivo .env
.
$ npm start
Konga GUI estará disponível em http://localhost:1337
No caso de adaptadores MySQL
ou PostgreSQL
, Konga não realizará migrações de banco de dados quando executado em modo de produção.
Você pode realizar manualmente as migrações chamando node ./bin/konga.js prepare
, passando os argumentos necessários para a conectividade do banco de dados.
Por exemplo:
node ./bin/konga.js prepare --adapter postgres --uri postgresql://localhost:5432/konga
O processo será encerrado após a conclusão de todas as migrações.
Finalmente:
$ npm run production
Konga GUI estará disponível em http://localhost:1337
As instruções a seguir pressupõem que você tenha uma instância do Kong em execução seguindo as instruções do docker hub do Kong
$ docker pull pantsel/konga
$ docker run -p 1337:1337 \
--network {{kong-network}} \ // opcional
--name konga \
-e "NODE_ENV=production" \ // ou "development" | o padrão é 'development'
-e "TOKEN_SECRET={{somerandomstring}}" \
pantsel/konga
Atenção: Você pode pular esta etapa se estiver usando o adaptador
mongo
.
Você pode preparar o banco de dados usando um contêiner efêmero que executa o comando prepare.
Argumentos
argumento | descrição | padrão |
---|---|---|
-c | comando | - |
-a | adaptador (pode ser postgres ou mysql ) |
- |
-u | url de conexão com o banco de dados completa | - |
$ docker run --rm pantsel/konga:latest -c prepare -a {{adaptador}} -u {{url-de-conexão-com-o-bd}}
$ docker run -p 1337:1337
--network {{kong-network}} \ // opcional
-e "TOKEN_SECRET={{uma_string_qualquer}}" \
-e "DB_ADAPTER=o-nome-do-adaptador" \ // 'mongo','postgres','sqlserver' ou 'mysql'
-e "DB_HOST=host-do-seu-db" \
-e "DB_PORT=porta-do-seu-db" \ // O padrão é a porta padrão do DB
-e "DB_USER=usuário-do-seu-db" \ // Omita se não for relevante
-e "DB_PASSWORD=senha-do-seu-db" \ // Omita se não for relevante
-e "DB_DATABASE=nome-do-seu-db" \ // o padrão é 'konga_database'
-e "DB_PG_SCHEMA=seu-schema"\ // Opcionalmente, defina um esquema ao integrar com postgres
-e "NODE_ENV=production" \ // ou 'development' | o padrão é 'development'
--name konga \
pantsel/konga
// Alternativamente, você pode usar a string de conexão completa para se conectar a um banco de dados
$ docker run -p 1337:1337
--network {{kong-network}} \ // opcional
-e "TOKEN_SECRET={{uma-string-qualquer}}" \
-e "DB_ADAPTER=nome-do-adaptador" \ // 'mongo','postgres','sqlserver' ou 'mysql'
-e "DB_URI=string-de-conexao-com-o-bd-completa" \
-e "NODE_ENV=production" \ // ou 'development' | o padrão é 'development'
--name konga \
pantsel/konga
A GUI estará disponível em http://{seu ip público}:1337
É possível semear usuários padrão na primeira instalação.
Você também pode configurar o Konga para autenticar via LDAP.
Em alguns casos, uma versão mais recente do Konga pode introduzir mudanças nos esquemas do banco de dados. A única coisa que você precisa fazer é iniciar o Konga no modo dev uma vez para que as migrações sejam aplicadas. Em seguida, pare o aplicativo e execute-o novamente no modo de produção.
se estiver usando o docker, você pode levantar um contêiner efêmero, conforme declarado antes:
$ docker run --rm pantsel/konga:latest -c prepare -a {{adaptador}} -u {{url-de-conexão-com-o-bd}}
Em alguns casos, ao rodar npm install
, as dependências do bower não são instaladas corretamente.
Você precisará fazer o cd no diretório raiz do seu projeto e instalá-los manualmente digitando
$ npm run bower-deps
Quando uma propriedade de plugin é uma matriz, a entrada é tratada por um componente de chip.
Você precisará pressionar enter
após cada valor que digitar
para que o componente o atribua a um índice do array.
Veja o problema #48 para referência.
Se você vir este erro ao tentar executar o Konga, significa que o konga não tem permissão de gravação para o diretório de dados padrão /kongadata
. Você só terá que definir o caminho de armazenamento para um diretório em que o Konga terá permissões de acesso via variável de ambiente STORAGE_PATH
.
O tempo limite padrão para que os ganchos carreguem é 60000. Em alguns casos, dependendo da memória que a máquina host tem disponível, tarefas de inicialização como minificação e uglicificação de código podem demorar mais para ser concluídas. Você pode corrigir isso definindo então a variável de ambiente KONGA_HOOK_TIMEOUT
para algo maior que 60000 como 120000.
Panagis Tselentis
The MIT License (MIT)
=====================
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.