Show nav
Heroku Dev Center
    • Getting Started
    • Reference
    • Learning
  • By Language
    • Node.js
    • Ruby
    • Java
    • PHP
    • Python
    • Go
    • Scala
    • Clojure
  • Develop
    • Heroku Architecture
    • Command Line
    • Deployment
    • Security
    • Application Architecture
    • Extending Heroku
  • Support
  • More
    Additional Resources
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
  • Getting Started
  • Documentation
  • Changelog
  • Documentation

    • Heroku Architecture
    • Deployment
    • Monitoring & Metrics
    • Language Support
    • Command Line
    • Databases & Data Management
    • App Performance
    • Add-ons
    • Collaboration
    • Security
    • Heroku Labs
    • Extending Heroku
    • Accounts & Billing
    • Troubleshooting & Support

Stacks

Last updated 08 December 2017

Table of Contents

  • Viewing which stack your app is using
  • Migrating to a new stack

A stack is an operating system image that is curated and maintained by Heroku. Stacks are typically based on an existing open-source Linux distribution, such as Ubuntu. Heroku applications target a specific stack, and buildpacks are responsible for transforming an app’s source code into an executable package that is compatible with that stack.

Heroku currently provides two stacks: the Cedar-14 stack and the Heroku-16 stack.

Heroku’s officially supported buildpacks work with all current stacks. Custom buildpacks are not guaranteed to work with all stacks.

The default stack for all newly created Heroku apps is the Heroku-16 stack.

Stack Version Base Technology Supported through
Cedar-14 Ubuntu 14.04 April 2019 Learn more
Heroku-16 (default) Ubuntu 16.04 April 2021 Learn more

Ubuntu Packages on Heroku Stacks lists packages available on each stack.

Viewing which stack your app is using

You can determine which stack your app is using with the heroku apps:info CLI command:

$ heroku apps:info -a example
=== example
...
Stack:         cedar-14
...

Migrating to a new stack

You can view available stacks for an app with the heroku stack CLI command:

$ heroku stack

You might need to make code changes when you move an app to a different stack. The stack:set CLI command tells Heroku which stack to use, but it is your responsibility as the application developer to make any required changes to your code.

When migrating a production app to a new stack, you should first perform the migration work on a staging version of the app in a separate code branch. After you confirm that the staging app runs correctly on the new stack, you can merge your changes into the production branch, change the stack with stack:set, and deploy.

Keep reading

  • Stacks (operating system images)
  • Buildpacks
  • CLI Usage
  • Cedar-14 Stack

Feedback

Log in to submit feedback.

Heroku-16 StackUbuntu Packages on Heroku Stacks

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Blog
  • Podcasts
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing

Subscribe to our monthly newsletter

  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Facebook
  • Instagram
  • Github
  • LinkedIn
Heroku is acompany

© Salesforce.com

  • heroku.com
  • Terms of Service
  • Privacy
  • Cookies