diff --git a/hc/front/urls.py b/hc/front/urls.py index 5cfee8aa..c2aac38d 100644 --- a/hc/front/urls.py +++ b/hc/front/urls.py @@ -75,6 +75,5 @@ urlpatterns = [ path("docs/", views.serve_doc, name="hc-docs"), path("docs/api/", views.docs_api, name="hc-docs-api"), path("docs/cron/", views.docs_cron, name="hc-docs-cron"), - path("docs/resources/", views.docs_resources, name="hc-docs-resources"), path("docs//", views.serve_doc, name="hc-serve-doc"), ] diff --git a/hc/front/views.py b/hc/front/views.py index 2027daf5..fc748050 100644 --- a/hc/front/views.py +++ b/hc/front/views.py @@ -272,6 +272,7 @@ def serve_doc(request, doc="introduction"): content = open(path, "r", encoding="utf-8").read() content = content.replace("SITE_NAME", settings.SITE_NAME) content = content.replace("PING_URL", settings.PING_ENDPOINT + "your-uuid-here") + content = content.replace("IMG_URL", os.path.join(settings.STATIC_URL, "img/docs")) content = content.replace( "PING_EMAIL", "your-uuid-here@%s" % settings.PING_EMAIL_DOMAIN ) @@ -303,11 +304,6 @@ def docs_cron(request): return render(request, "front/docs_cron.html", {}) -def docs_resources(request): - ctx = {"page": "docs", "section": "resources"} - return render(request, "front/docs_resources.html", ctx) - - @require_POST @login_required def add_check(request, code): diff --git a/static/css/docs.css b/static/css/docs.css index 0cbf9752..76285632 100644 --- a/static/css/docs.css +++ b/static/css/docs.css @@ -83,11 +83,31 @@ a.section:hover { border-radius: 4px; } -.docs-content li { +.docs-content { line-height: 2; } +.docs-content h1 { + font-size: 24px; + font-weight: bold; +} + +.docs-content h2 { + margin-top: 30px; + font-weight: bold; +} + +.docs-content ul { + padding-left: 15px; +} + +.docs-content li { + margin-left: 0; +} + .docs-content img { - max-width: 100%; + max-width: 66%; border: 6px solid #DDD; } + + diff --git a/static/img/docs/edit_cron_schedule.png b/static/img/docs/edit_cron_schedule.png new file mode 100644 index 00000000..0fe0b442 Binary files /dev/null and b/static/img/docs/edit_cron_schedule.png differ diff --git a/static/img/docs/edit_name.png b/static/img/docs/edit_name.png new file mode 100644 index 00000000..492871f9 Binary files /dev/null and b/static/img/docs/edit_name.png differ diff --git a/static/img/docs/edit_simple_schedule.png b/static/img/docs/edit_simple_schedule.png new file mode 100644 index 00000000..a0a47980 Binary files /dev/null and b/static/img/docs/edit_simple_schedule.png differ diff --git a/static/img/docs/emails.png b/static/img/docs/emails.png new file mode 100644 index 00000000..7b94cd8c Binary files /dev/null and b/static/img/docs/emails.png differ diff --git a/static/img/docs/filtering_rules.png b/static/img/docs/filtering_rules.png new file mode 100644 index 00000000..a4460291 Binary files /dev/null and b/static/img/docs/filtering_rules.png differ diff --git a/templates/docs/attaching_logs.html b/templates/docs/attaching_logs.html index 01d1e72f..fc03692c 100644 --- a/templates/docs/attaching_logs.html +++ b/templates/docs/attaching_logs.html @@ -27,7 +27,7 @@ curl -fsS --retry 3 -X POST --data-raw & -

As One-Liner

+

All in One Line

Finally, all of the above can be packaged in a single line. The one-line version can be put directly in crontab, without using a wrapper script.

m=$(/usr/bin/certbot renew 2>&1); curl -fsS -X POST --data-raw "$m" "PING_URL$([ $? -ne 0 ] && echo -n /fail)"
diff --git a/templates/docs/attaching_logs.md b/templates/docs/attaching_logs.md
index 71dcf440..dd134eae 100644
--- a/templates/docs/attaching_logs.md
+++ b/templates/docs/attaching_logs.md
@@ -34,7 +34,7 @@ if [ $? -ne 0 ]; then url=$url/fail; fi
 curl -fsS --retry 3 -X POST --data-raw "$m" $url
 ```
 
-## As One-Liner
+## All in One Line
 
 Finally, all of the above can be packaged in a single line. The one-line
 version can be put directly in crontab, without using a wrapper script.
diff --git a/templates/docs/configuring_checks.html b/templates/docs/configuring_checks.html
new file mode 100644
index 00000000..4e5e3c30
--- /dev/null
+++ b/templates/docs/configuring_checks.html
@@ -0,0 +1,58 @@
+

Configuring Checks

+

In SITE_NAME, a Check represents a single service you want to +monitor. For example, when monitoring cron jobs, you would create a separate check for +each cron job to be monitored. SITE_NAME pricing plans are structured primarily +around how many checks you can have in your account. You can create checks +either in SITE_NAME web interface or by calling API.

+

Name, Tags, Description

+

Describe each check using optional name, tags and description fields.

+

Editing name, tags and description

+
    +
  • Name: names are optional, but it is a good idea to set them. +Good naming becomes especially important as you add more checks in the +account. Names are displayed in the web interface, in email reports and in the +notifications that SITE_NAME sends out.
  • +
  • Tags: a space-separated list of optional labels. Use tags to organize and group +checks within a project. You can tag checks by environment +(prod, staging, dev, ...) or by role (www, db, worker, ...) or using +any other system.
  • +
  • Description: a free-form text field with any related information for your team +or for your future self: what is being monitored, who set it up, +what to do in case of failures, where to look for additional information.
  • +
+

Simple Schedules

+

SITE_NAME supports two types of schedules: "simple" and "cron". Use "Simple" schedules +for monitoring processes that are expected to run at relatively regular time +intervals: once an hour, once a day, once a week.

+

Editing the period and grace time

+

For simple schedules you configure two time durations, Period and Grace Time.

+
    +
  • Period: the expected time between pings
  • +
  • Grace Time: when a check is late, how long to wait before sending an alert. +Use this variable to account for small, expected deviations in job execution times.
  • +
+

Cron Schedules

+

Use "cron" for monitoring processes with more complex schedules, and to ensure +jobs run at the correct time (not just at correct intervals).

+

Editing cron schedule

+

You will need to specify Cron Expression, Server's Time Zone and Grace Time.

+
    +
  • Cron Expression: enter the same expression you've used in the crontab.
  • +
  • Server's Time Zone: cron daemon typically uses the local time of the machine it is +running on. If the machine is not using UTC timezone, you need to tell SITE_NAME +what timezone to use.
  • +
  • Grace Time: same as for simple schedules, how long to wait before sending an alert +for a late check.
  • +
+

Filtering Rules

+

Setting filtering rules

+
    +
  • Allowed request methods for HTTP requests: optionally require the HTTP ping +requests to use HTTP POST. Use this if you run into issues of bots hitting the ping +URLs when you send them in email or post them in chat.
  • +
  • Subject must contain: when pinging via email, require a particular +keyword in the subject line. SITE_NAME will ignore any email messages with the +keyword missing. This is useful, for example, when backup software sends +emails with "Backup Successful" or "Backup Failed" subject lines after each run, +and you want SITE_NAME to ignore the "Backup Failed" messages.
  • +
\ No newline at end of file diff --git a/templates/docs/configuring_checks.md b/templates/docs/configuring_checks.md new file mode 100644 index 00000000..aa1d973c --- /dev/null +++ b/templates/docs/configuring_checks.md @@ -0,0 +1,68 @@ +# Configuring Checks + +In SITE_NAME, a **Check** represents a single service you want to +monitor. For example, when monitoring cron jobs, you would create a separate check for +each cron job to be monitored. SITE_NAME pricing plans are structured primarily +around how many checks you can have in your account. You can create checks +either in SITE_NAME web interface or by calling [API](../api/). + +## Name, Tags, Description + +Describe each check using optional name, tags and description fields. + +![Editing name, tags and description](IMG_URL/edit_name.png) + +* **Name**: names are optional, but it is a good idea to set them. +Good naming becomes especially important as you add more checks in the +account. Names are displayed in the web interface, in email reports and in the +notifications that SITE_NAME sends out. +* **Tags**: a space-separated list of optional labels. Use tags to organize and group +checks within a project. You can tag checks by environment +(`prod`, `staging`, `dev`, ...) or by role (`www`, `db`, `worker`, ...) or using +any other system. +* **Description**: a free-form text field with any related information for your team +or for your future self: what is being monitored, who set it up, +what to do in case of failures, where to look for additional information. + +## Simple Schedules + +SITE_NAME supports two types of schedules: "simple" and "cron". Use "Simple" schedules +for monitoring processes that are expected to run at relatively regular time +intervals: once an hour, once a day, once a week. + +![Editing the period and grace time](IMG_URL/edit_simple_schedule.png) + +For simple schedules you configure two time durations, **Period** and **Grace Time**. + +* **Period**: the expected time between pings +* **Grace Time**: when a check is late, how long to wait before sending an alert. +Use this variable to account for small, expected deviations in job execution times. + +## Cron Schedules + +Use "cron" for monitoring processes with more complex schedules, and to ensure +jobs run **at the correct time** (not just at correct intervals). + +![Editing cron schedule](IMG_URL/edit_cron_schedule.png) + +You will need to specify Cron Expression, Server's Time Zone and Grace Time. + +* **Cron Expression**: enter the same expression you've used in the crontab. +* **Server's Time Zone**: cron daemon typically uses the local time of the machine it is +running on. If the machine is not using UTC timezone, you need to tell SITE_NAME +what timezone to use. +* **Grace Time**: same as for simple schedules, how long to wait before sending an alert +for a late check. + +## Filtering Rules + +![Setting filtering rules](IMG_URL/filtering_rules.png) + +* **Allowed request methods for HTTP requests**: optionally require the HTTP ping +requests to use HTTP POST. Use this if you run into issues of bots hitting the ping +URLs when you send them in email or post them in chat. +* **Subject must contain**: when pinging via [email](../email/), require a particular +keyword in the subject line. SITE_NAME will ignore any email messages with the +keyword missing. This is useful, for example, when backup software sends +emails with "Backup Successful" or "Backup Failed" subject lines after each run, +and you want SITE_NAME to ignore the "Backup Failed" messages. diff --git a/templates/docs/email.html b/templates/docs/email.html index 1d1aab8b..1555d0f7 100644 --- a/templates/docs/email.html +++ b/templates/docs/email.html @@ -1,9 +1,10 @@

Email

As an alternative to HTTP/HTTPS requests, you can "ping" checks by sending an emails to special email addresses.

-

Use Case: Email Delivery Monitoring

-

Consider a cron job which runs weekly and sends weekly email -reports to a list of e-mail addresses. You have already set up a check to get alerted +

Email address for pinging via email

+

Use Case: Newsletter Delivery Monitoring

+

Consider a cron job which runs weekly and sends weekly newsletters +to a list of e-mail addresses. You have already set up a check to get alerted when your cron job fails to run. But what you ultimately want to check is if your emails are getting sent and delivered.

The solution: set up another check, and add its email address to your list of diff --git a/templates/docs/email.md b/templates/docs/email.md index 352787c8..93254bd7 100644 --- a/templates/docs/email.md +++ b/templates/docs/email.md @@ -3,10 +3,12 @@ As an alternative to HTTP/HTTPS requests, you can "ping" checks by sending an emails to special email addresses. -## Use Case: Email Delivery Monitoring +![Email address for pinging via email](IMG_URL/emails.png) -Consider a cron job which runs weekly and sends weekly email -reports to a list of e-mail addresses. You have already set up a check to get alerted +## Use Case: Newsletter Delivery Monitoring + +Consider a cron job which runs weekly and sends weekly newsletters +to a list of e-mail addresses. You have already set up a check to get alerted when your cron job fails to run. But what you ultimately want to check is if **your emails are getting sent and delivered**. diff --git a/templates/docs/introduction.html b/templates/docs/introduction.html index 869f03f0..22cbb40b 100644 --- a/templates/docs/introduction.html +++ b/templates/docs/introduction.html @@ -1,14 +1,14 @@ -

SITE_NAME

+

SITE_NAME

SITE_NAME is a service for monitoring cron jobs and similar periodic processes:

    -
  • SITE_NAME listens for pings from services being monitored.
  • +
  • SITE_NAME listens for HTTP requests ("pings") from services being monitored.
  • It keeps silent as long as pings arrive on time.
  • It raises an alert as soon as a ping does not arrive on time.

SITE_NAME works as a dead man's switch for processes that need to -run continuously or on regular, known schedule:

+run continuously or on regular, known schedule. For example:

    -
  • filesystem, database backups
  • +
  • filesystem backups, database backups
  • task queues
  • database replication status
  • report generation scripts
  • diff --git a/templates/docs/introduction.md b/templates/docs/introduction.md index 0b362572..1cf35585 100644 --- a/templates/docs/introduction.md +++ b/templates/docs/introduction.md @@ -1,15 +1,15 @@ -## SITE_NAME +# SITE_NAME SITE_NAME is a service for monitoring cron jobs and similar periodic processes: -* SITE_NAME **listens for pings** from services being monitored. +* SITE_NAME **listens for HTTP requests ("pings")** from services being monitored. * It **keeps silent** as long as pings arrive on time. * It **raises an alert** as soon as a ping does not arrive on time. SITE_NAME works as a [dead man's switch](https://en.wikipedia.org/wiki/Dead_man%27s_switch) for processes that need to -run continuously or on regular, known schedule: +run continuously or on regular, known schedule. For example: -* filesystem, database backups +* filesystem backups, database backups * task queues * database replication status * report generation scripts diff --git a/templates/docs/monitoring_cron_jobs.html b/templates/docs/monitoring_cron_jobs.html index eef612db..9eb56dca 100644 --- a/templates/docs/monitoring_cron_jobs.html +++ b/templates/docs/monitoring_cron_jobs.html @@ -1,24 +1,26 @@ -

    Monitoring Cron Jobs

    -

    SITE_NAME is perfectly suited for monitoring cron jobs. -Let's look at an example: a machine with the following cron job:

    +

    Monitoring Cron Jobs

    +

    SITE_NAME is perfectly suited for monitoring cron jobs. All you have to do is +update your cron job command to send a HTTP request to SITE_NAME +after a job completes.

    +

    Let's look at an example:

    $ crontab -l
     # m h dom mon dow command
       8 6 * * * /home/user/backup.sh
     
    -

    You can use SITE_NAME to get a notification whenever the backup.sh script does not -complete successfully. Here is how to set that up.

    +

    The above job runs /home/user/backup.sh every day at 6:08. The backup +script is presumably a headless, background process. Even if it works +correctly currently, it can start silently failing in future, without +anyone noticing.

    +

    You can set up SITE_NAME to notify you whenever the backup script doesn't +run on time and complete successfully. Here are the steps to do that.

    1. If you have not already, sign up for a free SITE_NAME account.

    2. In your SITE_NAME account, add a new check.

      -

      Note: in SITE_NAME, a check represents a single service you want to -monitor. For example, a single cron job. For each additional cron job you will -create another check. SITE_NAME pricing plans are structured primarily -around how many checks you can have in the account.

    3. Give the check a meaningful name. Good naming will become diff --git a/templates/docs/monitoring_cron_jobs.md b/templates/docs/monitoring_cron_jobs.md index a286e378..8d691c34 100644 --- a/templates/docs/monitoring_cron_jobs.md +++ b/templates/docs/monitoring_cron_jobs.md @@ -1,7 +1,10 @@ -## Monitoring Cron Jobs +# Monitoring Cron Jobs -SITE_NAME is perfectly suited for monitoring cron jobs. -Let's look at an example: a machine with the following cron job: +SITE_NAME is perfectly suited for monitoring cron jobs. All you have to do is +update your cron job command to send a HTTP request to SITE_NAME +after a job completes. + +Let's look at an example: ```bash $ crontab -l @@ -9,18 +12,18 @@ $ crontab -l 8 6 * * * /home/user/backup.sh ``` -You can use SITE_NAME to get a notification whenever the `backup.sh` script does not -complete successfully. Here is how to set that up. +The above job runs `/home/user/backup.sh` every day at 6:08. The backup +script is presumably a headless, background process. Even if it works +correctly currently, it can start silently failing in future, without +anyone noticing. + +You can set up SITE_NAME to notify you whenever the backup script doesn't +run on time and complete successfully. Here are the steps to do that. 1. If you have not already, sign up for a free SITE_NAME account. 1. In your SITE_NAME account, **add a new check**. - Note: in SITE_NAME, a **check** represents a single service you want to - monitor. For example, a single cron job. For each additional cron job you will - create another check. SITE_NAME pricing plans are structured primarily - around how many checks you can have in the account. - 1. Give the check **a meaningful name**. Good naming will become increasingly important as you add more checks to your account. diff --git a/templates/docs/resources.html b/templates/docs/resources.html new file mode 100644 index 00000000..5d9f36c3 --- /dev/null +++ b/templates/docs/resources.html @@ -0,0 +1,35 @@ +

      Third-Party Resources

      +

      A collection of third-party software projects that integrate with SITE_NAME. +Please submit additions and corrections +on GitHub.

      +

      Deployment Tools

      + +

      API Wrappers

      + +

      Plugins & Integrations

      + +

      Other

      +
        +
      • HealthTray – Watch your healthchecks in Windows system tray.
      • +
      • healthchecks/dashboard – A standalone HTML page showing the status of the checks in your account.
      • +
      \ No newline at end of file diff --git a/templates/docs/resources.md b/templates/docs/resources.md new file mode 100644 index 00000000..1362be65 --- /dev/null +++ b/templates/docs/resources.md @@ -0,0 +1,36 @@ +# Third-Party Resources + +A collection of third-party software projects that integrate with SITE_NAME. +Please submit additions and corrections +[on GitHub](https://github.com/healthchecks/healthchecks/issues). + +## Deployment Tools + +* [iphoting/healthchecks](https://github.com/iphoting/healthchecks/) – Deploy Healthchecks to Heroku +* [haswalt/docker-healthchecks](https://github.com/haswalt/docker-healthchecks) – Docker image +* [galexrt/docker-healthchecks](https://github.com/galexrt/docker-healthchecks) – Docker image +* [linuxserver/docker-healthchecks](https://github.com/linuxserver/docker-healthchecks) – Docker image +* [coaxial/healthchecks](https://galaxy.ansible.com/coaxial/healthchecks) – Ansible role for deploying Healthchecks + +## API Wrappers + +* [jwulf/healthchecks.io](https://github.com/jwulf/healthchecks.io) – API wrapper in Javascript. Supports pinging. +* [MyPropertyOffice/node-hchk](https://github.com/MyPropertyOffice/node-hchk) – API wrapper in Javascript. Supports listing, creating, updating, deleting, pausing and pinging checks. Supports listing integrations. +* [gyde-tv/checks](https://github.com/gyde-tv/checks) – API wrapper in Ruby. Supports pinging. +* [kristofferahl/go-healthchecksio](https://github.com/kristofferahl/go-healthchecksio) – API wrapper in Go. Supports listing, creating, updating, deleting, pausing, pinging. +* [frozzare/go-healthchecks](https://github.com/frozzare/go-healthchecks) – API wrapper in Go. Supports pinging and failing. +* [healthchecks/hchk](https://github.com/healthchecks/hchk) – API wrapper & CLI in Python. Supports creating, pinging. +* [crontask.sh](https://github.com/pforret/crontask) – bash wrapper to use in crontab. Supports pinging. + +## Plugins & Integrations + +* [terraform-provider-healthchecksio](https://github.com/kristofferahl/terraform-provider-healthchecksio) – Terraform Provider for Healthchecks.io. +* [prgTW/healthchecks-bundle](https://github.com/prgTW/healthchecks-bundle) – Symfony bundle. Supports listing, creating, pinging, pausing. +* [janiscaunecm/Healthchecks_Magento](https://github.com/janiscaunecm/Healthchecks_Magento) – Magento module for Healthchecks.io. +* [binarybucks/restic-tools](https://github.com/binarybucks/restic-tools) – Wrapper around restic backup, with Healthchecks.io support. +* [borgmatic](https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#healthchecks-hook) – backup software for servers and workstations, includes Healthchecks.io support. + +## Other + +* [HealthTray](https://github.com/taylus/HealthTray) – Watch your healthchecks in Windows system tray. +* [healthchecks/dashboard](https://github.com/healthchecks/dashboard) – A standalone HTML page showing the status of the checks in your account. diff --git a/templates/front/base_docs.html b/templates/front/base_docs.html index fe4645d1..36552c4c 100644 --- a/templates/front/base_docs.html +++ b/templates/front/base_docs.html @@ -12,6 +12,7 @@ Introduction
    4. {% include "front/docs_nav_item.html" with slug="monitoring_cron_jobs" title="Monitoring cron jobs" %} + {% include "front/docs_nav_item.html" with slug="configuring_checks" title="Configuring checks" %} {% include "front/docs_nav_item.html" with slug="signalling_failures" title="Signalling failures" %} {% include "front/docs_nav_item.html" with slug="measuring_script_run_time" title="Measuring script run time" %} {% include "front/docs_nav_item.html" with slug="attaching_logs" title="Attaching logs" %} @@ -30,9 +31,7 @@ API -
    5. - Third-party resources -
    6. + {% include "front/docs_nav_item.html" with slug="resources" title="Third-party resources" %}
    7. Cron Syntax Cheatsheet
    8. diff --git a/templates/front/docs_resources.html b/templates/front/docs_resources.html deleted file mode 100644 index 6a1a3cda..00000000 --- a/templates/front/docs_resources.html +++ /dev/null @@ -1,56 +0,0 @@ -{% extends "front/base_docs.html" %} -{% load compress static hc_extras %} - -{% block title %}Third-Party Resources - {% site_name %}{% endblock %} - -{% block description %} - -{% endblock %} - -{% block docs_content %} -

      Third-Party Resources

      - -

      A collection of third-party software projects that integrate - with Healthchecks. Please submit additions and corrections - on GitHub. -

      - -

      Deployment Tools

      - -
        - {% include "front/single_resource.html" with url="https://github.com/iphoting/healthchecks/" name="iphoting/healthchecks" desc="Deploy Healthchecks to Heroku" %} - {% include "front/single_resource.html" with url="https://github.com/haswalt/docker-healthchecks" name="haswalt/docker-healthchecks" desc="Docker image" %} - {% include "front/single_resource.html" with url="https://github.com/galexrt/docker-healthchecks" name="galexrt/docker-healthchecks" desc="Docker image" %} - {% include "front/single_resource.html" with url="https://github.com/linuxserver/docker-healthchecks" name="linuxserver/docker-healthchecks" desc="Docker image" %} - {% include "front/single_resource.html" with url="https://galaxy.ansible.com/coaxial/healthchecks" name="coaxial/healthchecks" desc="Ansible role for deploying Healthchecks" %} -
      - -

      API Wrappers

      - -
        - {% include "front/single_resource.html" with url="https://github.com/jwulf/healthchecks.io" name="jwulf/healthchecks.io" desc="API wrapper in Javascript. Supports pinging." %} - {% include "front/single_resource.html" with url="https://github.com/MyPropertyOffice/node-hchk" name="MyPropertyOffice/node-hchk" desc="API wrapper in Javascript. Supports listing, creating, updating, deleting, pausing and pinging checks. Supports listing integrations." %} - {% include "front/single_resource.html" with url="https://github.com/gyde-tv/checks" name="gyde-tv/checks" desc="API wrapper in Ruby. Supports pinging." %} - {% include "front/single_resource.html" with url="https://github.com/kristofferahl/go-healthchecksio" name="kristofferahl/go-healthchecksio" desc="API wrapper in Go. Supports listing, creating, updating, deleting, pausing, pinging." %} - {% include "front/single_resource.html" with url="https://github.com/frozzare/go-healthchecks" name="frozzare/go-healthchecks" desc="API wrapper in Go. Supports pinging and failing." %} - {% include "front/single_resource.html" with url="https://github.com/healthchecks/hchk" name="healthchecks/hchk" desc="API wrapper & CLI in Python. Supports creating, pinging." %} - {% include "front/single_resource.html" with url="https://github.com/pforret/crontask" name="crontask.sh" desc="bash wrapper to use in crontab. Supports pinging." %} -
      - -

      Plugins & Integrations

      - -
        - {% include "front/single_resource.html" with url="https://github.com/kristofferahl/terraform-provider-healthchecksio" name="terraform-provider-healthchecksio" desc="Terraform Provider for Healthchecks.io." %} - {% include "front/single_resource.html" with url="https://github.com/prgTW/healthchecks-bundle" name="prgTW/healthchecks-bundle" desc="Symfony bundle. Supports listing, creating, pinging, pausing." %} - {% include "front/single_resource.html" with url="https://github.com/janiscaunecm/Healthchecks_Magento" name="janiscaunecm/Healthchecks_Magento" desc="Magento module for Healthchecks.io" %} - {% include "front/single_resource.html" with url="https://github.com/binarybucks/restic-tools" name="binarybucks/restic-tools" desc="Wrapper around restic backup, with Healthchecks.io support." %} - {% include "front/single_resource.html" with url="https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/#healthchecks-hook" name="borgmatic" desc="backup software for servers and workstations, includes Healthchecks.io support." %} -
      - -

      Other

      - -
        - {% include "front/single_resource.html" with url="https://github.com/taylus/HealthTray" name="HealthTray" desc="Watch your healthchecks in Windows system tray" %} - {% include "front/single_resource.html" with url="https://github.com/healthchecks/dashboard" name="healthchecks/dashboard" desc="A standalone HTML page showing the status of the checks in your account. " %} -
      -{% endblock %} \ No newline at end of file diff --git a/templates/front/single_resource.html b/templates/front/single_resource.html deleted file mode 100644 index fec44546..00000000 --- a/templates/front/single_resource.html +++ /dev/null @@ -1,3 +0,0 @@ -
    9. - {{ name }} – {{ desc }} -