How to Deploy OpenObserve on Heroku: A Complete Guide

Heroku is a cloud Platform-as-a-Service (PaaS) that enables developers to build, run, and scale applications entirely in the cloud. Founded in 2007 and now part of Salesforce, Heroku abstracts away infrastructure complexities, allowing you to focus on your application rather than server management.
Before starting, ensure you have:
First, create a new Heroku application:
heroku create openobserve
This command creates a new app named "openobserve" and sets up a Git remote automatically.
Clone the empty Heroku repository to your local machine:
git clone https://git.heroku.com/openobserve.git
cd openobserve
Set the Heroku stack to the latest version:
heroku stack:set heroku-24 -a openobserve
This ensures you're using the most recent runtime environment.
Download the OpenObserve Linux AMD64 binary:
curl -L https://github.com/openobserve/openobserve/releases/download/v0.14.7/openobserve-v0.14.7-linux-amd64.tar.gz -o openobserve.tar.gz
tar -xvf openobserve.tar.gz
rm openobserve.tar.gz
chmod +x openobserve
The Procfile tells Heroku how to run your application:
web: ZO_ROOT_USER_EMAIL="$ZO_ROOT_USER_EMAIL" ZO_ROOT_USER_PASSWORD="$ZO_ROOT_USER_PASSWORD" ZO_HTTP_PORT=$PORT ./openobserve
Save this as Procfile
(no file extension).
Create a minimal package.json to help Heroku detect the buildpack:
{
"name": "openobserve-heroku",
"version": "1.0.0",
"description": "OpenObserve deployment on Heroku",
"engines": {
"node": "20.x"
}
}
Set the required environment variables:
heroku config:set ZO_ROOT_USER_EMAIL="admin@example.com" -a openobserve
heroku config:set ZO_ROOT_USER_PASSWORD="SecurePassword123!" -a openobserve
heroku config:set ZO_DATA_DIR="/app/data" -a openobserve
Add all files to Git and deploy:
git add .
git commit -m "Deploy OpenObserve on Heroku"
git push
Check the logs to ensure everything is running correctly:
heroku logs --tail
You should see OpenObserve starting up and listening on the assigned port.
Visit your Heroku URL:
https://openobserve.herokuapp.com (you will get this as soon as deployment is successful)
Log in with the email and password you configured earlier.
Scale for better performance:
heroku ps:scale web=1:standard-2x -a openobserve
If you see "cannot execute binary file", ensure you're using the Linux AMD64 binary:
file openobserve # Should show: ELF 64-bit LSB executable, x86-64
For larger workloads, upgrade your dyno:
heroku ps:resize web=performance-m -a openobserve
OpenObserve automatically uses Heroku's PORT environment variable through our Procfile configuration.
You can monitor heroku through OpenObserve by following this blog.
Deploying OpenObserve on Heroku combines the power of a modern observability platform with the simplicity of cloud deployment. By following this guide, you can have a production-ready OpenObserve instance running in minutes, without the complexity of traditional infrastructure management.
Heroku's platform abstracts away the complexities of deployment, scaling, and maintenance, allowing you to focus on using OpenObserve for your observability needs. Whether you're monitoring applications, analyzing logs, or tracking metrics, this deployment method provides a reliable, scalable solution.
Get Started with OpenObserve Today!
Sign up for a free trial of OpenObserve on our website. Check out our GitHub repository for self-hosting and contribution opportunities.