Set up data store
Kong Gateway comes with a default configuration property file that can be found
/etc/kong/kong.conf.default. This configuration file is used for setting Kong Gateway’s
configuration properties at startup.
Kong Gateway offers two options for storing the configuration properties for all of
Kong Gateway’s configured entities: using a database (PostgreSQL), or using a
YAML declarative configuration file, also known as DB-less mode.
Before starting Kong Gateway, you must update the
property file with a reference to your data store.
Note: The following data store setup is only necessary if you installed Kong Gateway without a data store.
If you followed one of our Docker, Kubernetes, or quickstart guides, you should already have a data store configured.
Set up data store
To alter the default properties listed in the
kong.conf.default file and configure Kong Gateway,
make a copy of the file, rename it (for example
kong.conf), make your updates, and save it to the same location.
Then, choose one of the following options to set up your data store:
Using a database
Configure Kong Gateway using the
kong.conf.default file so it can connect to your database.
See the data store section of the Configuration Property Reference
for all relevant configuration parameters.
Provision a PostgreSQL database and a user before starting Kong Gateway:
CREATE USER kong WITH PASSWORD 'super_secret'; CREATE DATABASE kong OWNER kong;
Run one of the following Kong Gateway migrations:
Older versions of PostgreSQL use
ident authentication by default, newer versions (PSQL 10+)
scram-sha-256. To allow the
kong user to communicate with the database locally, change the
authentication method to
md5 by modifying the PostgreSQL configuration file.
Using a YAML declarative config file
Instead of using a database, you can also store the configuration properties for all of Kong Gateway’s
configured entities in a YAML declarative configuration file (also referred to as DB-less mode).
kong.yml file and update the
kong.conf configuration file to include the file path to the
kong.yml declarative configuration file in your current folder:
kong.yml file contains instructions for configuring Kong Gateway using the file.
kong.conf, set the
database option to
off, and set the
declarative_config directive to the
path to your
database = off
declarative_config = <KONG_DECLARATIVE_CONFIG_PATH>
Start Kong Gateway
Important: When you start Kong Gateway, the NGINX master process runs as
root, and the worker processes
kong by default. If this is not the desired behavior, you can switch the NGINX master process
to run on the built-in
kong user or to a custom non-root user before starting Kong Gateway.
For more information, see Running Kong as a Non-Root User.
Start Kong Gateway using the following command:
kong start -c <PATH_TO_KONG.CONF_FILE>
If everything went well, you should see a message (
Kong started) informing you that Kong Gateway is running.
You can also check using the Admin API:
curl -i http://localhost:8001
You should receive a
200 status code.
Depending on your desired environment, see the following guides:
You can also check out Kong Gateway’s series of
Getting Started guides to learn how
get the most out of Kong Gateway.