Skip to content

Releases: healthchecks/healthchecks

v3.11.2

02 Sep 08:36
fc99eda

Choose a tag to compare

Bug Fixes

  • Update Docker image to handle legacy time zones (#1210)

v3.11.1

31 Aug 13:01
0c0592b

Choose a tag to compare

Improvements

  • Update Dockerfile to use Debian Trixie as the base

Bug Fixes

  • Update Docker image to listen on IPv6 only if LISTEN_IPV6 env var is set (#1207)

v3.11

28 Aug 09:58
e56a3ea

Choose a tag to compare

Improvements

  • Store project API keys in the database in a hashed form (#1167)
  • Use "hcw_" and "hcr_" prefixes in project API keys (#1148)
  • New integration: Google Chat (#423)
  • Fix the ping view to handle IPv4-mapped IPv6 addresses (#1169)
  • Update Dockerfile to listen on IPv6 as well (#1177)
  • Add "ping_key+slug@..." address support when pinging by email (#1009)
  • Add daily email report option (#1202)

v3.10

09 May 08:11
49b5fcd

Choose a tag to compare

Improvements

  • Add "badge_url" field in Check API responses (#1100)
  • Add support for Signal usernames
  • Update the "Currently running, started ... ago" template to use seconds precision
  • Implement S3 outage mitigation (don't attempt GetObject calls if many recent errors)
  • Add last ping body in MS Teams Workflows notifications (#1024)
  • Update "?rid=" handling to allow UUIDs with uppercase letters (#1116, @wie-niet)
  • New integration: GitHub issues (#671)
  • Add support for passing Authorization header to Prometheus metrics endpoints
  • Upgrade to Django 5.2

Bug Fixes

  • Fix incorrect status value in Webhook integration's $JSON placeholder

v3.9

20 Dec 09:44
2dd4994

Choose a tag to compare

This release changes the default value of the ALLOWED_HOSTS setting. Before, it was * (meaning, any host matches, host validation is disabled). Starting from v3.9, Healthchecks populates this setting automatically with the domain part of the SITE_ROOT setting. You do not need to set it unless you serve Healthchecks on more than one domain.

If you do serve the same Healthchecks instance on more than one domain, specify them all in ALLOWED_HOSTS, separated by commas:

ALLOWED_HOSTS=first.example.org,second.example.org

Improvements

  • Change the default value of ALLOWED_HOSTS from "*" to the domain part of SITE_ROOT

Bug Fixes

  • Fix fetchstatus.py (again) to handle SITE_ROOT with a path (#1108)

v3.8.2

19 Dec 07:36
0f6099b

Choose a tag to compare

Improvements

  • Update notification templates to include failure reason (#1069)

Bug Fixes

  • Fix fetchstatus.py to handle SITE_ROOT with a path (#1107)

v3.8.1

13 Dec 11:45
4a2775c

Choose a tag to compare

Improvements

  • Update Dockerfile to use Python 3.13.1 (#1101)
  • Improve Matrix notifications (include tags, period, last ping type etc.)

v3.8

09 Dec 13:20
04ebbeb

Choose a tag to compare

Improvements

  • Rewrite the docker/fetchstatus.py script to reduce Docker container CPU use (#1071)
  • Update Dockerfile to use Python 3.13
  • Update CustomHeaderMiddleware to normalize email addresses to lower case (#1074)
  • Add data migration to convert existing user account emails to lower case
  • Update email alerts to mention failure reason (#1069)
  • De-emphasize the unsubscribe link in email notifications
  • In the checks list, move the "Add Check" button to the top of the page
  • Implement filtering by status in the checks list page
  • Increase ntfy.sh topic max length to 64
  • Implement support for path in SITE_ROOT, e.g. SITE_ROOT=http://example.org/hc (#1091)

Bug Fixes

  • Improve recipient address validation in the smtp listener (#1077)

v3.7

21 Oct 10:00
bbd45f2

Choose a tag to compare

Improvements

  • Increase outgoing webhook timeout from 10 to 30 seconds
  • Remove pruneflips management command (now cleaned up automatically)
  • Remove prunenotifications management command (now cleaned up automatically)
  • Update settings.py to read SECURE_PROXY_SSL_HEADER from env vars
  • Remove LINE Notify onboarding form (as LINE Notify is shutting down on Apr 1, 2025)
  • Make slider labels clickable in the "Update Period & Grace" dialog (#1039)
  • Update the Signal integration to retry on network errors

Bug Fixes

  • Update sqlite settings to avoid "Database is locked" errors (#1057)
  • Fix API to gracefully handle too long slugs

v3.6

04 Sep 07:20
5a19f96

Choose a tag to compare

Security

  • Upgrade to Django 5.1.1 (it fixes a vulnerability in urlize which we do use)

Improvements

  • Implement concurrent sending and --num-workers argument in manage.py sendalerts
  • Upgrade from psycopg2 to psycopg 3.x