Configure the Kong Gateway datastore on Linux

Uses: Kong Gateway
Incompatible with
konnect
Related Documentation
Minimum Version
Kong Gateway - 3.4
TL;DR

After installing the database, configure kong.conf to connect to PostgreSQL, run kong migrations bootstrap to initialize the schema, then start Kong Gateway.

Prerequisites

Install PostgreSQL using the following steps:

On Red Hat–based distributions, PostgreSQL defaults to ident or peer authentication. Kong Gateway requires password-based authentication.

Edit the active pg_hba.conf file and update local and localhost rules to use md5, then restart PostgreSQL:

sudo systemctl restart postgresql

By default, the pg_hba.conf file is located at /var/lib/pgsql/data/pg_hba.conf.

Set the following variables so that kong.conf can interact with the datastore:

  export KONG_DATABASE=postgres
  export KONG_PG_HOST=127.0.0.1
  export KONG_PG_PORT=5432
  export KONG_PG_USER=kong
  export KONG_PG_PASSWORD=super_secret
  export KONG_PG_DATABASE=kong

Configure PostgreSQL

  1. Switch to the default PostgreSQL user:

     sudo -i -u postgres
    
  2. Start the PostgreSQL shell:

     psql
    
  3. Create a kong user and password:

     CREATE USER kong WITH PASSWORD 'super_secret';
    
  4. Create a database titled kong and assign the user as an owner:

     CREATE DATABASE kong OWNER kong;
    
  5. Exit PostgreSQL:

     \quit
    
  6. Exit the PostgreSQL shell:

     exit
    

Run a Kong Gateway database migration

kong migrations is used to configure the database for the first time. Running bootstrap forces Kong Gateway to bootstrap the database set up in the previous step and run all of the migrations:

sudo -E kong migrations bootstrap

This command must be run as the root user.

This command must be run with sudo -E to preserve the environment variables set in the prerequisites. If the kong command is not found when running with sudo, you can create a symlink so it is available from the default PATH: sudo ln -s /usr/local/bin/kong /usr/bin/kong

Validate

You can validate that the datastore was configured correctly by starting Kong Gateway.

  1. Start Kong Gateway:

     sudo -E kong start
    
  2. Verify the installation:

     curl -i http://localhost:8001
    

    If you receive a 200 status code, Kong Gateway was configured correctly. You can now start to configure your API gateway with plugins and other entities.

Something wrong?

Help us make these docs great!

Kong Developer docs are open source. If you find these useful and want to make them better, contribute today!