The API backend for Kerckhoff.. Check out the project's documentation.
Make sure your .env
file is correct
PYTHONPATH="./:$PYTHONPATH"
OAUTHLIB_RELAX_TOKEN_SCOPE=notnull
DATABASE_URL=postgres://postgres:example@postgres:5432/postgres
DJANGO_SECRET_KEY=password
Make sure your .secrets
file is correct as well
Start the dev server for local development:
docker-compose up
Run a command inside the docker container:
docker-compose run --rm web [command]
Deployment is automated via Travis. When builds pass on the master or qa branch, Travis will deploy that branch to Heroku. Follow these steps to enable this feature.
Initialize the production server:
heroku create kerckhoff-api-prod --remote prod && \
heroku addons:create newrelic:wayne --app kerckhoff-api-prod && \
heroku addons:create heroku-postgresql:hobby-dev --app kerckhoff-api-prod && \
heroku config:set DJANGO_SECRET_KEY=`openssl rand -base64 32` \
DJANGO_AWS_ACCESS_KEY_ID="Add your id" \
DJANGO_AWS_SECRET_ACCESS_KEY="Add your key" \
DJANGO_AWS_STORAGE_BUCKET_NAME="kerckhoff-api-prod" \
DJANGO_CONFIGURATION="Production" \
DJANGO_SETTINGS_MODULE="kerckhoff-api.config" \
--app kerckhoff-api-prod
Initialize the qa server:
heroku create kerckhoff-api-qa --remote qa && \
heroku addons:create newrelic:wayne --app kerckhoff-api-qa && \
heroku addons:create heroku-postgresql:hobby-dev --app kerckhoff-api-qa && \
heroku config:set DJANGO_SECRET_KEY=`openssl rand -base64 32` \
DJANGO_AWS_ACCESS_KEY_ID="Add your id" \
DJANGO_AWS_SECRET_ACCESS_KEY="Add your key" \
DJANGO_AWS_STORAGE_BUCKET_NAME="kerckhoff-api-qa" \
DJANGO_CONFIGURATION="Production" \
DJANGO_SETTINGS_MODULE="kerckhoff-api.config" \
--app kerckhoff-api-qa
Securely add your Heroku credentials to Travis so that it can automatically deploy your changes:
travis encrypt HEROKU_AUTH_TOKEN="$(heroku auth:token)" --add
Commit your changes and push to master and qa to trigger your first deploys:
git commit -a -m "ci(travis): add Heroku credentials" && \
git push origin master:qa && \
git push origin master
You're now ready to continuously ship! ✨ 💅 🛳
If you get this error: /usr/bin/env: ‘python\r’: No such file or directory
, try changing the manage.py
file to use LF line endings instead of CRLF.