What's New

New updates and improvements to Hatchbox.io

Custom SSL Certificates

You can now upload custom SSL certificates for your applications. We'll upload these to your web servers & load balancers and configure Caddy to use them for serving requests to your app. If you don't want to use LetsEncrypt for some reason, this will make it easy for you to still use SSL. 

Dynamic AWS Regions & Instance Types

We now use the AWS API to look up Regions and Instance Types available to your account. The regions and instance types will always be accurate and list what's available for you to use.

Hatchbox Environment Variables

We've just updated deployments to set a few environment variables on each deploy.

  • HATCHBOX_BRANCH - The branch that was deployed
  • HATCHBOX_RELEASE - The release number
  • HATCHBOX_REVISION - The git commit sha that was deployed

We also now write a REVISION file with the git commit sha as well for easy access.

Unmanaged Redis Database Backups

You can now backup your unmanaged (local) Redis database with Hatchbox. Just like PostgreSQL and MySQL backups, you can configure how often they run and where they get uploaded by visiting the database backup settings.

This will backup the entire Redis instance, so you will only need to enable backups on one Redis database in Hatchbox. Redis doesn't treat database separately like other databases.

Socket Activation

You can now enable socket activation for processes like Puma.

Why is this important? When HTTP requests hit a server, Caddy will forward the request along to your web server like Puma. Puma is listening on socket and that's how Caddy talks to Puma. During a restart, Puma will stop listening to the socket for a short period of time. Caddy will not receive a response from Puma and will render a 500 error.

With Socket Activation, Systemd will keep the socket open and buffer requests while Puma restarts. During a restart, no requests will be dropped and will simply pause until Puma is ready to start handling requests again. 

AWS IP Address Changes

AWS changes EC2 instance IP addresses anytime the server is stopped. Originally, we solved this by adding Elastic IPs to the servers, but AWS limits the amount of Elastic IPs you can have.

We've replaced this with a script that hits Hatchbox's API with the current IP address each time your EC2 instance boots. This solves the problem elegantly and allows us to remove the need for Elastic IPs. 

Hatchbox v2 is now available!

We've rewritten Hatchbox from scratch to bring you a huge amount of improvements. 

Here's a quick list of some major improvements:
  • Switched from NGINX + acme.sh to Caddy for seamless SSL certificates and API configuration.
  • We've dropped Passenger and now reverse proxy requests for applications to provide consistent logging and configuration.
  • You can now create databases (unmanaged or managed!) at any time and easily attach them to apps.
  • We're now using ASDF for language version management which makes it easier for you to choose Ruby, Node.js, and even other programming languages when deploying.
  • Connections to hosting and Git providers is also much easier to manage.
  • Pricing has switched to metered billing so you only pay for what you use. No more dealing with tiers.

Plus, there's more improvements than we can even remember. It's been a long time coming.

What about Hatchbox Classic?
Don't worry! Hatchbox Classic isn't going anywhere. We'll keep it running and do routine maintenance so your applications are safe and sound. However, we won't be adding features to it anymore. For example, we won't be adding support for Ubuntu 22.04 Jammy on Classic.

You can login to Hatchbox Classic at https://classic.hatchbox.io

If you'd like to upgrade to the new Hatchbox, we recommend the following steps:
  1. Sign up for Hatchbox v2 (they're separate accounts)
  2. Create a new cluster
  3. Deploy your app
  4. Copy your database to the new cluster
  5. Test everything and make sure it all works
  6. Change your DNS
  7. Shut down your Hatchbox Classic cluster

This will provide you a smooth upgrade process with minimal downtime. Since we've upgraded all the underlying tools in Hatchbox, it's not possible to upgrade Classic servers to the new configuration easily. Plus, this way you'll be able to keep the old version running while you test out the new version.

Trigger backups from the web

You can now start a backup manually for an unmanaged database on the Web. Just click "Start Backup" on the database page and it will kick off a job to start a manual database backup whenever you want.

Deploy App From Subfolder

We now support deploying App from a subfolder. This is useful if your app codebase resides in your repository's subfolder.

You can find the setting under App > Repository. 

Ability to rename Apps

You can now rename* Apps from the settings page to better suit your needs. 

renaming an app may result in temporary downtime

Upgraded SSH Keys

We've upgraded Hatchbox to use ed25519 SSH keys by default. SSH RSA is no longer accepted by default in Ubuntu 22.04 and we've adjusted accordingly to support them.

For clusters created before April 2022, we've generated new SSH keys and have added them to your servers. There's nothing you need to do on your end. 🎉

To connect to your servers over SSH, make sure you're using a compatible SSH key for Ubuntu 22.04. If you don't, SSH will refuse the connection.

Ubuntu 22.04 Support

You can now deploy to Ubuntu 22.04 LTS Jammy Jellyfish servers. 22.04 is also the new default version used for any new servers that are created. 

Long term support means this server version is supported for 5 years and is the best version to use for production servers.

Bundler Version

Hatchbox will now detect the Bundler version from your application's Gemfile.lock and install that during deploy. This will make it easier to deploy older Ruby applications that use Bundler 1.x.

Ruby 3.1.2, 3.0.4, 2.7.6, and 2.6.10 support

New versions of Ruby have just dropped with important security updates. Check out the release for more details: https://www.ruby-lang.org/en/news/2022/04/12/ruby-3-1-2-released/

AWS VPCs Ingress Changes

We've updated our AWS VPC creation to only allow ingress on ports 22, 80, and 443 by default. 

Previously, we allowed all ports which is a less secure default. If you created a VPC with Hatchbox v2 before April 10th, we encourage you to update your VPC's ingress ports and restrict them.

Domains API

You can now add domains to an App through the API. This will add the domain and update Caddy to route the domain to your app. It will also automatically provision SSL certificates with LetsEncrypt when the first request comes in using the domain.

Ruby 3.1.1 is now available


Cluster Transfer Support

You can now transfer your cluster to another user. 

Go to the settings page of your cluster. 

Amazon EC2 Support

You can now provision and deploy to Amazon EC2 instances! 

We're working on Amazon RDS and ElastiCache integrations for provisioning AWS managed databases next.

GitLab & BitBucket support

You can now deploy apps from GitLab or BitBucket by connecting your account and selecting it as the git host for your application.