Install Kong Server dan Konga UI
Step by step install Kong Server sebagai API Gateway dan menggunakan Admin dashboard Konga.
Outline dan Spesifikasi Server
- Siapkan Database Postgre
- Install Kong Server
- Install Konga Web UI
Kebutuhan server
- 1 x VM CentOS 7 untuk Kong Server
- 1 x Docker host untuk container Postgre dan Konga UI
Siapkan Database Postgre
Untuk database bisa install atau pakai yang sudah ada. Butuh 2 database untuk Kong Server dan Konga Web UI. Pada tutorial ini, saya gunakan database Postgre yang di build di Container Docker.
1. Buat volume di docker
docker volume create postgres_kong
2. Run container postgre
Berikut adalah keterangan dari database yang dibuat :
Keterangan mengenai container yang akan dibuat
Nama Container = postgres_kong
User database = kongdb
Port database = 54321
Password database = thisissecret
Host database = 10.10.10.131
docker run -d \
-e POSTGRES_PASSWORD=thisissecret \
-e POSTGRES_USER=kongdb \
-p 54321:5432 \
-v postgres_kong:/var/lib/postgresql/data \
-v ${PWD}/initdb:/docker-entrypoint-initdb.d \
--name postgres_kong postgres
3. Buat database untuk Kong dan Konga UI
- Masuk di container-nya dulu
docker exec -it postgres_kong bash
- Masuk ke db admin-nya
psql -h localhost -p 5432 -U kongdb
- Buat 2 database postgres_kong dan postgres_konga :
CREATE DATABASE postgres_kong OWNER kongdb;
CREATE DATABASE postgres_konga OWNER kongdb;
Beberapa command line postgre yang digunakan :
- Show database
\l
- Show user
\du
- Create user
CREATE USER namauser SUPERUSER CREATEDB;
Referensi
- Memasang PostgreSQL dengan Docker untuk Local Development
- Menjalankan PostgreSQL Database Dengan Docker
- 3 Easy Steps to Install Docker PostgreSQL Environment
- How To Install and Run PostgreSQL using Docker ?
Install Kong Server
Install Kong server dapat dilakukan dengan berbagai cara, seperti docker atau langsung di baremetal. Panduan ada di web dokumentasinya. Berikut tutorial install Kong server di CentOS.
1. Installing
curl -Lo kong-3.2.1.rpm $(rpm --eval "https://download.konghq.com/gateway-3.x-rhel-%{rhel}/Packages/k/kong-3.2.1.rhel%{rhel}.amd64.rpm")
rpm -iv kong-3.2.1.rpm
atau
yum install kong-3.2.1.rpm
Alternatif install
curl $(rpm --eval "https://download.konghq.com/gateway-3.x-rhel-%{rhel}/config.repo") | sudo tee /etc/yum.repos.d/kong.repo
yum install kong-3.2.1
2. Konfigurasi Kong Server
Konfigurasi ditujukan untuk kong server yang menggunakan database Postgre, selain itu ada juga yang menggunakan .yml (databaseless). Setelah install, konfigurasi file kong.conf
.
nano /etc/kong/kong.conf
Konfigurasi Database :
database = postgres
pg_host = 10.10.10.131
pg_port = 54321
pg_user = kongdb
pg_password = thisissecret
pg_database = postgres_kong
Enable Admin Listen untuk menghubungkan kong server dan konga (Web UI) nya. Perlu diperhatikan bahwa IP dan Port berikut tidak boleh di-publish di public.
admin_listen = 10.11.2.158:8001 reuseport backlog=16384, 10.11.2.158:8444 http2 ssl reuseport backlog=16384
Enable SSL
ssl_cert = /etc/ssl/certs/kong.crt
ssl_cert_key = /etc/ssl/certs/kong.key
Untuk mengaktifkan dashboard bawaan Kong di file kong.conf
Untuk alasan keamanan, disable saja baris berikut
admin_gui_url = http://localhost:8002
admin_gui_listen = 0.0.0.0:8002, 0.0.0.0:8445 ssl
Setup Kong agar connect ke database
kong migrations bootstrap -c /etc/kong/kong.conf
Start Kong server
kong start -c /etc/kong/kong.conf
3. Test Kong Server
Akses browser ke alamat ip kong server localhost:8001
atau melalui curl
curl localhost:8001
Untuk mengakses Kong Manager http://localhost:8002
Referensi
Install Web UI Konga
docker run -d -p 13372:1337 -e "TOKEN_SECRET=somerandomstring" -e "NODE_ENV=production" -v /etc/localtime:/etc/localtime:ro --restart=always -h konga-dev --name konga pantsel/konga
Kalau perintah yang ada di dokumentasi seperti dibawah ini :
docker run -p 13371:1337 -e "TOKEN_SECRET=somerandomstring" -e "NODE_ENV=production" --name konga pantsel/konga
Referensi