What's New

New updates and improvements to Hatchbox.io

Whenever Crontab Environment

Fix
Apps using the whenever gem to manage cron jobs will now respect the RAILS_ENV environment variable when installing cron jobs.

Previously, the environment was not set when running whenever which defaults to the "production" environment, regardless of the RAILS_ENV set in environment variables.

Bun

New
We're excited to announce Bun support on Hatchbox! If your repository contains a bun.lockb file, Hatchbox will install the latest bun or the version specified in .tool-versions.

Ruby 3.3 Support

New
Ruby 3.3 was released yesterday and is now precompiled for use on Hatchbox!

See What's New in Ruby 3.3 and the release notes.

Improved Akamai / Linode integration

Update
We have updated our Akamai / Linode integration to remove the need for personal access tokens. Using a different OAuth configuration we were able to remove the need for personal access tokens entirely which makes for a cleaner and simpler integration.

For Akamai / Linode users, you will be prompted to reconnect your account when viewing your clusters. This will reestablish the connect using our improved integration. 

🎉 Hatchbox Deploy GitHub Action v2 is out!

New
The Hatchbox Deploy GitHub Action got a new release today with version 2.

The new version deploys the specific commit sha that triggered the GitHub Action instead of the latest commit in the specified branch. This makes it easier to make sure the deployments made during CI/CD are the exact commits that you want.

Assets default Cache-Control header

New
Assets from the Rails asset pipeline or webpacker are compiled with a hash at the end of the filename which allows them to be cached indefinitely. Today, we rolled out an update so Caddy will automatically add the Cache-Control header.

To use this new feature, use the Update Caddy button on one of the apps in your cluster. This will write the new Caddy config and enable the Cache-Control header. If you've customized your Caddy configuration, make sure to add the new variable to your config first.

Elasticsearch & Memcached Support

New
We've added unmanaged Elasticsearch & Memcached support! You can add this role to servers when you're editing or creating them. This will install and configure Elasticsearch and/or memcached on your servers.

Elasticsearch
Once installed, you can add Elasticsearch to your applications. This will set the ELASTICSEARCH_URL env var to your server's IP address. Elasticsearch uses SSL, so Hatchbox will automatically install the self-signed SSL certificate on your application servers to allow HTTPS access.

Memcached
Memcached is an excellent choice as a cache store for your applications. While Redis defaults to persisting all keys, Memcached is built specifically for handling caches and clearing out least recently used cache keys as needed.

We've configured memcached with SASL2 authentication so attaching Memcached to your applications will setup several environment variables with the connection information.

Jump Server / Bastion Host Support

New
If your servers are protected behind a jump server or bastion host, you can now specify the username, host, and port in your cluster's SSH tab.

With jump server settings enabled, Hatchbox will first login to your jump server using the cluster's SSH key and then connect to the servers inside your private network instead.

GitHub Deployments

New
Applications deployed by Hatchbox using our GitHub App integration will now automatically have deployments recorded in their GitHub environments.

Firewall Rules By Private IP Address

Update
We've updated our firewall rule management to handle firewall rules by private IP addresses in your cluster instead of subnets by default. 

This provides some added protection for servers in datacenters that don't use virtual private networks to separate servers by customer.

New default versions of Ruby 3.1.4 and Node.js 18.16.0

Update
We've updated our deploy script to install Ruby 3.1.4 and Node.js 18.16.0 for default versions. These were minor updates including bugfixes and no breaking changes. 

As always, if you'd like to use other versions, you can specify them in your repository by adding a .tool-versions file or .ruby-version and .node-version files.

🎉 Firewall Rule Management

New
We've introduced a new Firewall Rules tab on servers that you can use to customize the firewall rules for your servers.


Hatchbox generates firewall rules automatically for your servers based upon their roles. For example, if you give a server the PostgreSQL role, we will automatically add a firewall rule to only allow port 5432 on the private subnet. This lets other servers in your cluster talk to Postgres, but nothing from the public internet to keep things secure. 

Firewall rules are handled by UFW on your servers which denies all incoming traffic by default.

Hetzner Cloud Integration

New
Hetzner provides cloud servers around the world. You can now use Hatchbox's integration to deploy servers with Hetzner Cloud!

For Hetzner's dedicated servers, you can create them and connect to Hatchbox using the Custom VPS option.

Ruby 3.2.2, 3.1.4, 3.0.6, and 2.7.8 support

New
New versions of Ruby were just released with a couple of security fixes. These are now available on Hatchbox and you can start using them today.

See the Ruby release page to learn more: https://www.ruby-lang.org/en/news/2023/03/30/ruby-3-2-2-released/

👨‍⚕️🩺 Introducing Application Health Checks!

New
For load balanced applications, you can now add a Health Check path to enable active health checks. 🎉

When enabled, Caddy will make an HTTP request every 30 seconds to determine if your application is healthy or not. If your application does not respond with a 200 OK, Caddy will remove the server from the load balancer until the next check that succeeds.

Plus, Rails 7.1 will ship with an /up route specifically for health checks like these out of the box!

GitHub Apps Integration

New
You now use our GitHub App for Hatchbox.io deployments! 🎉

This allows you to fine-tune access to your repositories that Hatchbox has access to and it can be configured separately for each organization.

To get started, click the "Connect GitHub" button on your App or Connected Accounts page. Install the Hatchbox GitHub App on your organization and update your app to use the GitHub app for deployments on the Repositories tab.

Existing applications will continue using GitHub OAuth for deployments, but we highly recommend switching to the GitHub Apps integration.

Caddy v2.6.3

Update
We've built the latest version of Caddy which includes a handful of bugfix improvements.

See the release for more details: https://github.com/caddyserver/caddy/releases/tag/v2.6.3

To update your server(s) to the latest Caddy, click the Configure button on your server.

Ruby 3.2.1 support

New
A new version of Ruby has shipped. Just bugfixes, no security vulnerabilities. See the release on Ruby's website: https://www.ruby-lang.org/en/news/2023/02/08/ruby-3-2-1-released/

Whenever cron job support

New
For Ruby apps, we now support managing cron jobs automatically during deploy using the whenever gem.

Ruby deployments are now slightly faster

Improvement
Hatchbox now runs "bundle check" before installing gems and if all the gems are installed, it will skip the "bundle install" command. Yay for speed improvements!