Deployment Overview
Our deployment strategy uses Kamal v2.7.0 for containerized application deployment. Kamal provides zero-downtime deployments with automatic rollbacks and health checks.
Usage
API
At the root of the api repo, do bin/deploy
Python
At the root of the api repo, cd app/python, then do bin/deploy
Web
At the root of the web repo, do bin/deploy
Options
A simple command line which lets you choose what kamal destination and what branch do you want to use for deployment.
bin/deploy main production # Will deploy using `deploy.production.yml` the `main` branch.
bin/deploy feature-branch staging # Will deploy using `deploy.staging.yml` the `feature-branch` branch
bin/deploy other-branch # Will deploy `other-branch` using the default deploy config (should be `deploy.staging.yml` but read the `bin/pullChages` script to confirm)
bin/deploy # Will deploy the default deployment branch `main` using the default config
Logs and Monitoring
We have a dedicated documentation page for logging and monitoring with sentry you can search for. To see the raw app logs, do the following.
# Follow application logs
kamal app logs --follow -d staging # or production, this is based on the kamal deployment config
# Get logs from specific time
kamal app logs --since 1h
# Search logs for errors
kamal app logs --grep "ERROR"
kamal app logs --grep -i "exception"