Deploy Kong 0.14 Community Edition as a Heroku app.
🔬👩💻 This software is a community proof-of-concept: MIT license
⏩ Deploy the heroku-kong app to get started.
While it's possible to use this buildpack directly, you'll be giving up quite a few features of the heroku-kong app:
heroku runwill require manual setup
Create a new git repo and Heroku app:
APP_NAME=my-kong-gateway # name this something unique for your app mkdir $APP_NAME cd $APP_NAME git init heroku create $APP_NAME heroku buildpacks:set https://github.com/heroku/heroku-buildpack-kong.git heroku addons:create heroku-postgresql:hobby-dev
Create the file
config/kong.conf.etlua based on the sample config file. This is a config template which generates
config/kong.conf at runtime.
git add config/kong.conf.etlua echo '# Kong Proxy' > README.md git add README.md git commit -m '🐒' git push heroku master
heroku logs and
heroku open to verify Kong launches.
PORTexposed on the app/dyno
KONG_GIT_URLgit repo URL for Kong source
KONG_GIT_COMMITISHgit branch/tag/commit for Kong source
To use env vars within your own code.
os.getenv('MY_VARIABLE')to retrieve the value.
This buildpack installs a release phase script to automatically run Kong's database migrations for each deployment.
Apps can define a custom pre-release script which will be automatically invoked before the built-in release phase script.
Simply commit your executable script to the app's repo as
bin/prerelease, and then that script will be run for every release. The release will fail if the script exits with non-zero status.
This buildpack supports Heroku CI to automate test runs and integrate with deployment workflow.
Tests should follow the Kong plugin testing guide.
spec/kong_tests.confmust contain the Kong configuration for running tests
See: sample Heroku Kong app which contains a complete test suite.
The first time this buildpack builds an app, the build time will be significantly longer as Kong and its dependencies are compiled from source. The compiled artifacts are cached to speed up subsequent builds.
We vendor the sources for Lua, LuaRocks, & OpenResty/Nginx and compile them with a writable
/app/.heroku prefix. Attempts to bootstrap Kong on Heroku using existing Lua & apt buildpacks failed due to their compile-time prefixes of
/usr/local which is read-only in a dyno.
OpenSSL 1.0.2 (required by OpenResty) is also compiled from source.
This buildpack caches its compilation artifacts from the sources in
vendor/. Changes to the sources in
vendor/ will be detected and the cache ignored.
If you need to trigger a full rebuild without changing the source, use the Heroku Repo CLI plugin to purge the cache:
Copy the snippet above into CLI.