1. Install the dependencies:

    (Optional) Dnsmasq if you wish to enable it for Kong's runtime DNS resolutions.

    OpenResty 1.9.15.1. Kong being an OpenResty application, you must follow the OpenResty installation instructions. You will need OpenSSL and PCRE to compile OpenResty, and to at least use the following compilation options:

    $ ./configure \
      --with-pcre-jit \
      --with-ipv6 \
      --with-http_realip_module \
      --with-http_ssl_module \
      --with-http_stub_status_module
    

    You might have to specify --with-openssl and you can add any other option you'd like, such as additional Nginx modules or a custom --prefix directory.

    OpenResty conveniently bundles LuaJIT and resty-cli which are essential to Kong. Add the nginx and resty executables to your $PATH:

    $ export PATH="$PATH:/usr/local/openresty/bin"
    

    Luarocks 2.3.0, compiled with the LuaJIT version bundled with OpenResty (See the --with-lua and --with-lua-include configure options). Example:

    ./configure \
      --lua-suffix=jit \
      --with-lua=/usr/local/openresty/luajit \
      --with-lua-include=/usr/local/openresty/luajit/include/luajit-2.1
    

    Finally, the Serf v0.7 executable should be available in your $PATH. You can also use it from a custom location assuming you configure Kong's serf_path property accordingly (or use the KONG_SERF_PATH environment variable). This property should specify the absolute path to the serf executable.

    Consulting the setup_env.sh CI script is a good resource for a concrete example of those instructions. Notice how Serf is used from a custom location which is specified using the environment variable in run_tests.sh.

  2. Install Kong:

    Now that OpenResty and other third-party dependencies are installed, we can use Luarocks to install Kong's Lua sources:

    $ luarocks install kong 0.9.5-0
    

    Or:

    $ git clone [email protected]:Mashape/kong.git
    $ [sudo] make install # this simply runs the `luarocks make kong-*.rockspec` command
    

    Finally, place the bin/kong script in your $PATH.

  3. Configure your database

    Configure Kong so it can connect to your database. Kong supports both PostgreSQL 9.4+ and Cassandra 2.2.x as its datastore.

  4. Start Kong:

    $ kong start
    
    # Kong is running
    $ curl 127.0.0.1:8001
    
  5. Use Kong:

    Quickly learn how to use Kong with the 5-minute Quickstart.


Having Trouble? We're Here to Help!