Announcing Heroku Free SSL Beta and Flexible Dyno Hours

At Heroku, we want to make it easy for everyone to be able to learn and explore our service, and the related ecosystem of technologies, for free - be it student, professional developer, hobbyist or just curious individual. We view this as both part of our mission and our business model; it has never been a more interesting - or important - time to be a developer, and we want to help everyone become one.

Today we are announcing two important updates to help bring us closer to that goal: a new and free SSL service and a more flexible way to use free dyno hours. Heroku SSL is being introduced as beta today, and will be rolled out over the coming weeks and months; flexible dyno hours roll out is scheduled to begin on June 1st.

Heroku SSL: Encryption as the Default

Encrypted communication has gradually become a default requirement for all web applications on the Internet. Since our inception, Heroku has made it easy to add SSL encryption to web applications, and today we’re announcing that SSL encryption on custom domains is available (as a beta feature) at no additional charge on Hobby and Professional dynos. All you need is a registered domain name and a valid SSL certificate for the domain.

The new SSL service relies on the SNI (“Server Name Indication”) extension to SSL which is now supported by the vast majority of browsers and client libraries. The existing Heroku SSL Endpoint add-on will remain available and supported for users wanting compatibility with non-SNI clients.

To begin using the Heroku SSL beta, first ensure that you are running a Hobby or Professional Dyno.

Enable the labs flag on your application and install the beta CLI plug-in:

$ heroku labs:enable http-sni --app <your app>
$ heroku plugins:install heroku-certs

This beta is being rolled out gradually on a first-come, first-served basis in order to ensure platform stability. If you get an error when enabling the http-sni flag, please try again at a later time.

And then you can add an SSL certificate to your application by running:

$ heroku _certs:add example.crt example.key --app <your app>
# Use the --type sni flag if you have an SSL Endpoint add-on on your application already.

As part of this new feature, we’re happy to introduce a brand new Dashboard interface for adding certificates:

SSL certificate interface

For more information on the Heroku SSL beta, have a look at our Dev Center documentation.

Note that as always, your applications can also serve encrypted traffic on the domain with no configuration, custom domain or certificate required. This option is available to all dyno types, including free dynos.

Flexible Free Dyno Hours

Today we are also announcing a change to how free dyno hours work, one that we hope better accommodates the ways in which developers learn and explore on Heroku. With this new, more flexible model, free dyno hours are now allocated and managed on a per account, instead of a per app, basis. And these hours can be applied across your apps however you choose; run a single app (like a chat bot) 24/7, or allow many apps to work on a more occasional basis. When your app is not receiving traffic we will put it to sleep so it doesn’t consume any free dyno hours. When a user again visits the app, we will automatically wake it up.

Starting June 1st, when you sign up for a Heroku account you will immediately get 550 free dyno hours. In addition, we add another 450 dyno hours for a total of 1,000 free dyno hours if you verify your identity by providing us with a valid credit card. We do not charge this card unless you use paid services, and ask for this information as an identity confirmation step. (Alternative identity confirmation methods will be introduced in the future.)

Free dyno hours are replenished automatically at the start of every month, with utilization information available in Dashboard:

Free Dyno quota

The heroku command line tool will show the total remaining free hours when you run the heroku ps command:

Free dyno hours quota remaining this month: 350 hrs (35%)   

=== web (Free): bundle exec puma -C config/puma.rb (1)
web.1: idle 2016/05/01 16:43:50 -0500

We also help you keep an eye on your consumption by sending an email notification if you consume more than 80% of the free hours in a month. Should you reach 100%, we will notify again and all free dynos will stop running until the end of the month. At the beginning of the new month, your free dyno hours are replenished and we spin the dynos back up. You can avoid running out of free dyno hours by upgrading your most successful apps to Hobby dynos.

Existing accounts are scheduled to be migrated on June 1st, and you will receive a dashboard and email notification when your account is converted. Users who are already consuming more than 1,000 hours / month will be grandfathered via additional hours automatically added to their quota, up to 2,500 hours / month. Read more about the changes in the FAQ.


We hope these changes make Heroku simpler and more enjoyable. Feedback on both our new SSL and dyno hours features are welcome and appreciated. Please reach out to our support team and we will be happy to help out.

Browse the blog archives, subscribe to the full-text feed, or visit the engineering blog.