Skip to main content

Heroku Deployment

KoreShield can run on Heroku using the Heroku Container Registry. This approach keeps configuration in environment variables and avoids managing a VM.

Use Cases

  • Rapid deployment for small teams
  • Managed TLS and simple config via Heroku
  • Prototyping or staging environments

Prerequisites

  • Heroku CLI installed and authenticated
  • A KoreShield Docker image provided for your account

Build and Push the Image

heroku create your-koreshield-app

heroku container:login
heroku container:push web --app your-koreshield-app
heroku container:release web --app your-koreshield-app

Configure Environment Variables

heroku config:set OPENAI_API_KEY=your-api-key --app your-koreshield-app

If you need other providers:

heroku config:set ANTHROPIC_API_KEY=your-api-key --app your-koreshield-app
heroku config:set GOOGLE_API_KEY=your-api-key --app your-koreshield-app
heroku config:set AZURE_OPENAI_API_KEY=your-api-key --app your-koreshield-app

Configuration

Use Heroku config vars for JWT, database, Redis, and provider keys.

Verify Health

curl https://your-koreshield-app.herokuapp.com/health

Scaling and Performance

  • Use Standard or Performance dynos for production traffic
  • Scale horizontally with heroku ps:scale web=2
  • Increase request timeout for streaming workloads

Observability

  • Enable json_logs: true and forward logs to your monitoring stack
  • Use the Heroku log drains for Datadog, Splunk, or Grafana Cloud
  • Scrape /metrics from a private endpoint if supported

Security Notes

  • Use json_logs: true in config for production.
  • Keep provider keys in Heroku config vars, not in source control.
  • Restrict inbound access to trusted networks when possible.

Troubleshooting

  • 401 responses: confirm KORESHIELD_API_KEY header from clients
  • App crashes: inspect logs with heroku logs --tail
  • Provider errors: confirm provider keys are set in config vars

Next Steps