Table of Contents
Use the Homebrew package manager to add Kong as a tap and install it:
$ brew tap kong/kong $ brew install kong
Prepare your database or declarative configuration file
Kong can run either with or without a database.
When using a database, you will use the
kong.confconfiguration file for setting Kong’s configuration properties at start-up and the database as storage of all configured entities, such as the Routes and Services to which Kong proxies.
When not using a database, you will use
kong.conf’s configuration properties and a
kong.ymlfile for specifying the entities as a declarative configuration.
Using a database
If you are using Postgres, provision a database and a user before starting Kong:
CREATE USER kong; CREATE DATABASE kong OWNER kong;
Next, run the Kong migrations:
$ kong migrations bootstrap [-c /path/to/kong.conf]
By default, Kong is configured to communicate with a local Postgres instance. If you are using Cassandra, or need to modify any settings, download the
kong.conf.defaultfile and adjust it as necessary. Then, as root, add
$ sudo mkdir -p /etc/kong $ sudo cp kong.conf.default /etc/kong/kong.conf
Note for Kong < 0.15: with Kong versions below 0.15 (up to 0.14), use the
upsub-command instead of
bootstrap. Also note that with Kong < 0.15, migrations should never be run concurrently; only one Kong node should be performing migrations at a time. This limitation is lifted for Kong 0.15, 1.0, and above.
Without a database
If you are going to run Kong in DB-less mode, you should start by generating a declarative config file. The following command will generate a
kong.ymlfile in your current folder. It contains instructions about how to populate it.
$ kong config init
After populating the
kong.ymlfile, edit your
kong.conffile. Set the
declarative_configoption to the path of your
database = off declarative_config = /path/to/kong.yml
$ kong start [-c /path/to/kong.conf]
Verify that Kong is running:
$ curl -i http://localhost:8001/
Quickly learn how to use Kong with the 5-minute Quickstart.
Get future release notes emailed to you.