Documentation versions (currently viewingVaadin 24)

Deploying a Hilla Application to Heroku

How to deploy your Hilla application to Heroku.

This tutorial shows you how to deploy a Hilla application to the Heroku cloud platform. Heroku has a free-tier offering that can be used for non-commercial applications. You can find details of their free offerings on the Heroku website.

Heroku account required
To complete this tutorial, you need a Heroku account. You can sign up at

Step 1: Install and Set Up the Heroku CLI

To begin, download and install the Heroku CLI.

When it has been installed, log in to your account from a terminal window using the following command:

heroku login

Next, install Heroku’s Java plugin by issuing the following command:

heroku plugins:install java

Step 2: Download a Starter App

Download a minimal Hilla project and unpack the downloaded zip into a folder on your computer.

npx @hilla/cli init --lit my-app

Step 3: Add Java 17 Support

The starter project is on Java 17, whereas, by default, Heroku expects Java 8 projects. To ensure that Heroku will run a Java 17 environment, create a file under the project root directory with the following content:


Step 4: Create a Production Build

Open the project directory from a terminal window, and enter the following command to generate a JAR file of your application:

mvn package -Pproduction

Step 5: Initialize a Heroku Application

From a terminal window, enter the following command to initialize a Heroku application:

heroku create --no-remote

This command will create an application with a randomly generated name. Take a note of the generated application name that appears in the logs. For example, in the following screenshot, the generated application name is blooming-beach-34155.

Heroku CLI log

Step 6: Deploy the Application

To deploy the application, run the following command from a terminal in your project’s root directory (replacing 'blooming-beach-34155' in the command with your application name, noted in the previous step):

heroku deploy:jar target/myapp-1.0-SNAPSHOT.jar --app blooming-beach-34155

When the deployment has completed, the application URL will be displayed in the logs.