Browse Source

Experimental L10N support in base and welcome templates. cc: #404

pull/406/head
Pēteris Caune 4 years ago
parent
commit
fd14e0e03b
No known key found for this signature in database GPG Key ID: E28D7679E9A9EDE2
5 changed files with 738 additions and 97 deletions
  1. +2
    -0
      hc/settings.py
  2. BIN
      locale/lv/LC_MESSAGES/django.mo
  3. +466
    -0
      locale/lv/LC_MESSAGES/django.po
  4. +46
    -18
      templates/base.html
  5. +224
    -79
      templates/front/welcome.html

+ 2
- 0
hc/settings.py View File

@ -66,6 +66,7 @@ MIDDLEWARE = (
"django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware", "django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware",
"django.middleware.locale.LocaleMiddleware",
"hc.accounts.middleware.TeamAccessMiddleware", "hc.accounts.middleware.TeamAccessMiddleware",
) )
@ -146,6 +147,7 @@ USE_TZ = True
TIME_ZONE = "UTC" TIME_ZONE = "UTC"
USE_I18N = True USE_I18N = True
USE_L10N = True USE_L10N = True
LOCALE_PATHS = (os.path.join(BASE_DIR, "locale"),)
SITE_ROOT = os.getenv("SITE_ROOT", "http://localhost:8000") SITE_ROOT = os.getenv("SITE_ROOT", "http://localhost:8000")
SITE_NAME = os.getenv("SITE_NAME", "Mychecks") SITE_NAME = os.getenv("SITE_NAME", "Mychecks")


BIN
locale/lv/LC_MESSAGES/django.mo View File


+ 466
- 0
locale/lv/LC_MESSAGES/django.po View File

@ -0,0 +1,466 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# FULL NAME <EMAIL@ADDRESS>, 2020.
# Pēteris Caune <[email protected]>, 2020.
#
msgid ""
msgstr ""
"Project-Id-Version: 1.16-dev\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-07-21 19:32+0000\n"
"PO-Revision-Date: 2020-07-21 22:55+0300\n"
"Last-Translator: Pēteris Caune <[email protected]>\n"
"Language-Team: lv <>\n"
"Language: lv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
"2);\n"
"X-Generator: Gtranslator 3.36.0\n"
#: templates/base.html:5
#, python-format
msgid ""
"%(site_name)s - Monitor Cron Jobs. Get Notified When Your Cron Jobs Fail"
msgstr ""
"%(site_name)s - uzrauga cron darbus. Sūta brīdinājumus, kad tie nenotiek "
"laikā"
#: templates/base.html:65
msgid "Toggle navigation"
msgstr "Pārslēgt navigāciju"
#: templates/base.html:99
msgid "Checks"
msgstr "Detektori"
#: templates/base.html:106 templates/front/welcome.html:368
msgid "Integrations"
msgstr "Integrācijas"
#: templates/base.html:114
msgid "Badges"
msgstr "Nozīmītes"
#: templates/base.html:120
msgid "Settings"
msgstr "Iestatījumi"
#: templates/base.html:131 templates/base.html:135
msgid "Pricing"
msgstr "Cenas"
#: templates/base.html:143
msgid "Docs"
msgstr "Dokumentācija"
#: templates/base.html:150
msgid "Account"
msgstr "Konts"
#: templates/base.html:156
#| msgid "Simple Configuration"
msgid "Site Administration"
msgstr "Administrācija"
#: templates/base.html:162
msgid "Projects"
msgstr "Projekti"
#: templates/base.html:182
msgid "Account Settings"
msgstr "Konta iestatījumi"
#: templates/base.html:187
msgid "Log Out"
msgstr "Atteikties"
#: templates/base.html:195
#| msgid "Sign Up"
msgid "Sign In"
msgstr "Pierakstīties"
#: templates/base.html:204 templates/front/welcome.html:710
msgid "Sign Up"
msgstr "Reģistrēties"
#: templates/base.html:225
msgid "Powered by Healthchecks open-source project"
msgstr "Healthchecks atvērtā koda projekts"
#: templates/front/welcome.html:5
msgid ""
"Cron Monitoring. Monitor nightly backups, weekly reports, cron jobs and "
"background tasks. Receive alerts when your tasks don't run on time."
msgstr ""
"Cron darbu pārraudzība. Uzraugi rezerves kopiju veidošanu, iknedēļas "
"atskaišu ģenerēšanu, cron darbus, fona darbus. Saņem brīdinājumus, kad tie "
"nenotiek laikā."
#: templates/front/welcome.html:19
msgid ""
"Monitoring for your nightly backups, weekly reports, cron jobs and "
"background tasks."
msgstr "Rezerves kopiju, iknedēļas atskaišu, cron darbu uzraudzība."
#: templates/front/welcome.html:27
msgid "Make HTTP requests to the Ping URL at regular intervals."
msgstr "Ar regulāru intervālu sūti HTTP pieprasījumus uz ping adresi."
#: templates/front/welcome.html:29
#, python-format
msgid ""
"When the URL is not pinged on time, %(site_name)s will send you an alert."
msgstr "Kad pieprasījums netiek saņemts laikā, %(site_name)s ceļ trauksmi."
#: templates/front/welcome.html:35
msgid "You can monitor any service that can make HTTP requests or send emails."
msgstr ""
"Šādi iespējams pārraudzīt jebkuru servisu, kurš ir spējīgs sūtīt HTTP "
"pieprasījumus vai epastus."
#: templates/front/welcome.html:40
#, python-format
msgid ""
"For each of your periodic tasks, %(site_name)s provides an unique URL "
"similar to this one:"
msgstr ""
"Katram pārraugāmajam servisam %(site_name)s sagatavo unikālu ping adresi, "
"līdzīgu šai:"
#: templates/front/welcome.html:79
msgid "Browser"
msgstr "Pārlūkprogramma"
#: templates/front/welcome.html:85 templates/front/welcome.html:378
msgid "Email"
msgstr "E-pasts"
#: templates/front/welcome.html:124
msgid ""
"As an alternative to HTTP requests, you can also report \"liveness\" by "
"<strong>sending email messages</strong>."
msgstr ""
"Papildus HTTP pieprasījumiem, servisi par sevi var ziņot sūtot "
"<strong>epastu</strong>."
#: templates/front/welcome.html:131
#, python-format
msgid ""
"You can instruct %(site_name)s to look for a particular keyword in the "
"subject line. This is handy when your backup software sends an email after "
"every run, and uses a different subject line depending on success or failure."
msgstr ""
"Iespējams norādīt atslēgvārdu, kuru %(site_name)s meklēs epasta tematā. Tas "
"ir parocīgi, piemēram, ja dublējumu programmatūra pēc katra dublējuma "
"izveidošanas sūta epastu ar rezultātu epasta tematā."
#: templates/front/welcome.html:151
#, python-format
msgid ""
"%(site_name)s monitors the heartbeat messages sent by your cron jobs, "
"services and APIs. Get immediate alerts when they don't arrive on schedule."
msgstr ""
"%(site_name)s seko ping signāliem no pārraugāmajiem cron darbiem un "
"servisiem, un izsūta brīdinājumus tiklīdz kāds no signāliem neierodas laikā."
#: templates/front/welcome.html:158
msgid "Sign Up – It's Free"
msgstr "Reģistrējies (bezmaksas)"
#: templates/front/welcome.html:170
msgid "A quick peek of what's inside:"
msgstr "Ieskatam:"
#: templates/front/welcome.html:185
msgid "Live-updating Dashboard"
msgstr "Informācijas panelis"
#: templates/front/welcome.html:188
msgid ""
"A list of your checks, one for each Cron job, daemon or scheduled task you "
"want to monitor."
msgstr ""
"Detektoru saraksts. Katram cron darbam vai servisam, ko nepieciešams "
"uzraudzīt, atbilst viens detektors."
#: templates/front/welcome.html:194
msgid ""
"Give names and assign tags to your checks to easily recognize them later."
msgstr ""
"Detektoriem var piešķirt nosaukumus un birkas, lai tos būtu viegli atpazīt "
"un atšķirt."
#: templates/front/welcome.html:200
msgid "Tap on the integration icons to toggle them on and off."
msgstr "Uz integrāciju ikonām var klikšķināt lai tās ieslēgtu un izslēgtu."
#: templates/front/welcome.html:205
msgid ""
"Adjust Period and Grace time to match the periodicity and duration of your "
"tasks."
msgstr ""
"Periodu un pagarinājuma laiku jānorāda tā, lai tie atbilstu uzraugāmo darbu "
"biežumam un ilgumam."
#: templates/front/welcome.html:222
msgid "Simple Configuration"
msgstr "Vienkārša konfigurācija"
#: templates/front/welcome.html:223
msgid ""
"Each check has configurable <strong>Period</strong> and <strong>Grace Time</"
"strong> parameters. Depending on these parameters and time since the last "
"ping, the check is in one of the following states:"
msgstr ""
"Katram detektoram var iestatīt <strong>periodu</strong> un "
"<strong>pagarinājuma laiku</strong>. Atkarībā no šo parametru vērtībām un "
"saņemtajiem ping signāliem, detektors atrodas vienā no stāvokļiem:"
#: templates/front/welcome.html:235
msgid "New. A check that has been created, but has not received any pings yet."
msgstr "Jauns. Vēl nav saņēmis nevienu ping signālu."
#: templates/front/welcome.html:246
msgid "Up. Time since last ping has not exceeded <strong>Period</strong>."
msgstr ""
"Viss kārtībā. Laika intervāls kopš pēdējā saņemtā ping signāla nav "
"pārniedzis iestatīto <strong>periodu</strong>."
#: templates/front/welcome.html:257
msgid ""
"Late. Time since last ping has exceeded <strong>Period</strong>, but has not "
"yet exceeded <strong>Period</strong> + <strong>Grace</strong>."
msgstr ""
"Kavējas. Laika intervāls kopš pēdējā saņemtā signāla ir pārsniedzis "
"<strong>periodu</strong>, bet vēl nav pārsniedzis <strong>periodu</strong> + "
"<strong>pagarinājuma laiku</strong>."
#: templates/front/welcome.html:269
#, python-format
msgid ""
"Down. Time since last ping has exceeded <strong>Period</strong> + "
"<strong>Grace</strong>. When check goes from \"Late\" to \"Down\", "
"%(site_name)s sends you a notification."
msgstr ""
"Trauksme. Laika intervāls kopš pēdējā saņemtā signāla ir pārsniedzis "
"<strong>periodu</strong> + <strong>pagarinājuma laiku</strong>. Kad "
"detektora statuss izmainās no \"Kavējas\" uz \"Trauksme\", %(site_name)s "
"izsūta brīdinājumus."
#: templates/front/welcome.html:291
msgid "Cron Expression Support"
msgstr "Cron izteiksmes"
#: templates/front/welcome.html:293
msgid ""
"Alternatively, you can define the expected ping dates and times using a cron "
"expression. See"
msgstr ""
"Sagaidāmos signālu laikus iespējams norādīt arī lietojot cron izteiksmes. "
"Skatiet"
#: templates/front/welcome.html:298
msgid "Cron Syntax Cheatsheet"
msgstr "cron sintakses paraugus,"
#: templates/front/welcome.html:300
msgid "for the supported syntax features."
msgstr "lai iepazītos ar iespējām."
#: templates/front/welcome.html:305
msgid ""
"<strong>Grace Time</strong> specifies how \"late\" a ping can be before you "
"will be alerted. Set it to be a little above the expected duration of your "
"cron job."
msgstr ""
"<strong>Pagarinājuma laiks</strong> norāda, cik ilgi ping signālam "
"pieļaujams kavēties. Ieteicams norādīt laika intervālu, kas nedaudz "
"pārsniedz cron darba tipisko izpildes ilgumu."
#: templates/front/welcome.html:323
msgid "Details and Event Log"
msgstr "Apraksts un notikumu žurnāls"
#: templates/front/welcome.html:325
msgid ""
"You can add a longer, free-form description to each check. Leave notes and "
"pointers for yourself and for your team."
msgstr ""
"Katram detektoram iespējams pievienot garāku aprakstu brīvā formātā. Tajā "
"var iekļaut sev un kolēģiem noderīgas piezīmes."
#: templates/front/welcome.html:332
msgid ""
"You can also see the log of received pings and sent \"Down\" notifications."
msgstr "Tiek uzturēts saņemto ping signālu un izsūtīto brīdinājumu žurnāls."
#: templates/front/welcome.html:349
msgid "Public Status Badges"
msgstr "Publiskas statusa nozīmītes"
#: templates/front/welcome.html:351
#, python-format
msgid ""
"%(site_name)s provides status badges for each of the tags you have used. "
"Additionally, the \"%(site_name)s\" badge shows the overall status of all "
"checks in your account."
msgstr ""
"Katrai detektoru birkai atbilst statusa nozīmīte. Pieejama arī kopējā "
"%(site_name)s statusa nozīmīte, kas rāda visu detektoru kopējo statusu."
#: templates/front/welcome.html:358
msgid ""
"The badges have public, but hard-to-guess URLs. You can use them in your "
"READMEs, dashboards or status pages."
msgstr ""
"Statusa nozīmītēm ir publiskas, bet grūti uzminamas adreses. Tās var lietot "
"README dokumentos, informācijas paneļos un statusa lapās."
#: templates/front/welcome.html:370
msgid "Set up multiple ways to get notified:"
msgstr "Dažādas iespējas, kā saņemt brīdinājumus:"
#: templates/front/welcome.html:400 templates/front/welcome.html:408
#: templates/front/welcome.html:432 templates/front/welcome.html:444
#: templates/front/welcome.html:455 templates/front/welcome.html:465
#: templates/front/welcome.html:584 templates/front/welcome.html:618
#: templates/front/welcome.html:629
msgid "Chat"
msgstr "Tērzēšana"
#: templates/front/welcome.html:420 templates/front/welcome.html:526
#: templates/front/welcome.html:538
msgid "Push Notifications"
msgstr "Pašpiegādes paziņojumi"
#: templates/front/welcome.html:475 templates/front/welcome.html:486
#: templates/front/welcome.html:494 templates/front/welcome.html:505
#: templates/front/welcome.html:573 templates/front/welcome.html:607
msgid "Incident Management"
msgstr "Incidentu pārvaldība"
#: templates/front/welcome.html:515
msgid "Event Monitoring"
msgstr "Sistēmu uzraudzība"
#: templates/front/welcome.html:549
msgid "Shell Commands"
msgstr "Shell komandas"
#: templates/front/welcome.html:561
msgid "SMS"
msgstr "SMS"
#: templates/front/welcome.html:596
msgid "Project Management"
msgstr "Projektu vadība"
#: templates/front/welcome.html:638
#, python-format
msgid "What Can I Monitor With %(site_name)s?"
msgstr "Kur var pielietot %(site_name)s?"
#: templates/front/welcome.html:644
msgid "Cron Jobs"
msgstr "Cron darbi"
#: templates/front/welcome.html:646
#, python-format
msgid ""
"%(site_name)s monitoring is a great fit for cron jobs and cron-like systems "
"(systemd timers, Jenkins build jobs, Windows Scheduled Tasks, wp-cron, uwsgi "
"cron-like interface, Heroku Scheduler, ...). A failed cron job often has no "
"immediate visible consequences, and can go unnoticed for a long time."
msgstr ""
"%(site_name)s ir īpaši pielāgots cron darbu un līdzīgu uzdevumu (systemd "
"taimeri, Jenkins būvējumi, Windows Scheduled Tasks, wp-cron, uwsgi cron "
"funkcionalitāte, Heroku Scheduler, ...) pārraudzībai. Cron darbu avārijām "
"bieži nav redzamu seku, un tās var ilgi palikt nepamanītas."
#: templates/front/welcome.html:655 templates/front/welcome.html:679
msgid "Specific examples:"
msgstr "Piemēri:"
#: templates/front/welcome.html:657
msgid "Filesystem backups"
msgstr "Failu sistēmu dublējumi"
#: templates/front/welcome.html:658
msgid "Database backups"
msgstr "Datubāzu dublējumi"
#: templates/front/welcome.html:659
msgid "Daily, weekly, monthly report emails"
msgstr "Ikdienas, iknedēļas vai ikmēneša atskaišu epasti"
#: templates/front/welcome.html:660
msgid "SSL renewals"
msgstr "SSL sertifikātu atjaunošana"
#: templates/front/welcome.html:661
msgid "Business data import and sync"
msgstr "Biznesa datu imports un sinhronizācija"
#: templates/front/welcome.html:662
msgid "Antivirus scans"
msgstr "Antivīrusa darbība"
#: templates/front/welcome.html:663
msgid "Dynamic DNS updates"
msgstr "DDNS klienta darbība"
#: templates/front/welcome.html:667
msgid "Processes, Services, Servers"
msgstr "Procesu, servisu, serveru uzraudzība"
#: templates/front/welcome.html:670
#, python-format
msgid ""
"%(site_name)s monitoring can be used for lightweight server monitoring: "
"ensuring a particular system service, or the server as a whole is alive and "
"healthy. Write a shell script that checks for a specific condition, and "
"pings %(site_name)s if successful. Run the shell script regularly."
msgstr ""
"%(site_name)s var pielieot vienkāršai serveru un atsevišķu procesu "
"uzraudzībai. To dara, izveidojot shell skriptu, kas pārbauda kādu sistēmas "
"parametru un nosūta ping signālu %(site_name)s, un pievienojot šo skriptu "
"sistēmas cron darbiem."
#: templates/front/welcome.html:681
msgid "Check a specific docker container is running"
msgstr "Pārbaude, vai kāds noteikts Docker konteiners strādā"
#: templates/front/welcome.html:682
msgid "Check a specific application process is running"
msgstr "Pārbaude, vai kāda noteikta aplikācija strādā"
#: templates/front/welcome.html:683
msgid "Check database replication lag"
msgstr "Datubāzes replikācijas aiztures pārbaude"
#: templates/front/welcome.html:684
msgid "Check system resources: free disk, free RAM, ..."
msgstr "Sistēmas resursu (brīvā atmiņa, ...) pārbaude"
#: templates/front/welcome.html:686
msgid ""
"Send simple, unconditional \"I'm alive\" messages from your server (or your "
"NAS, router, Raspberry Pi, ...)"
msgstr ""
"Regulāri beznosacījuma signāli no servera (vai NAS, vai maršrutētāja, vai "
"Raspberry Pi, ...)"
#: templates/front/welcome.html:702
#, python-format
msgid ""
"%(site_name)s is a <strong>free</strong> and <a href=\"https://github.com/"
"healthchecks/healthchecks\">open source</a> service. Setting up monitoring "
"for your cron jobs only takes minutes. Start sleeping better at nights!"
msgstr ""
"%(site_name)s ir <strong>bezmaksas</strong> un <a href=\"https://github.com/"
"healthchecks/healthchecks\">atvērta koda</a> serviss. Tā ieviešana prasa "
"tikai dažas minūtes. Ar %(site_name)s naktīs labāk nāk miegs!"

+ 46
- 18
templates/base.html View File

@ -1,8 +1,8 @@
<!DOCTYPE html>{% load compress static hc_extras %}
<!DOCTYPE html>{% load compress i18n static hc_extras %}
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>{% block title %}{{ site_name }} - Monitor Cron Jobs. Get Notified When Your Cron Jobs Fail{% endblock %}</title>
<title>{% block title %}{% blocktrans trimmed %}{{ site_name }} - Monitor Cron Jobs. Get Notified When Your Cron Jobs Fail{% endblocktrans %}{% endblock %}</title>
{% block description %} {% block description %}
<meta name="description" content="Monitor and Get Notified When Your Cron Jobs Fail. Free alternative to Cronitor and Dead Man's Snitch."> <meta name="description" content="Monitor and Get Notified When Your Cron Jobs Fail. Free alternative to Cronitor and Dead Man's Snitch.">
{% endblock %} {% endblock %}
@ -62,7 +62,7 @@
data-target="#navbar" data-target="#navbar"
aria-expanded="false" aria-expanded="false"
aria-controls="navbar"> aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="sr-only">{% trans "Toggle navigation" %}</span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
@ -95,24 +95,30 @@
{% if project %} {% if project %}
<ul id="nav-main-sections" class="nav navbar-nav"> <ul id="nav-main-sections" class="nav navbar-nav">
<li {% if page == 'checks' %} class="active" {% endif %}> <li {% if page == 'checks' %} class="active" {% endif %}>
<a href="{% url 'hc-checks' project.code %}">Checks</a>
<a href="{% url 'hc-checks' project.code %}">
{% trans "Checks" %}
</a>
</li> </li>
{% with b=project.have_channel_issues %} {% with b=project.have_channel_issues %}
<li {% if b %}id="broken-channels"{% endif %} {% if page == 'channels' %}class="active"{% endif %}> <li {% if b %}id="broken-channels"{% endif %} {% if page == 'channels' %}class="active"{% endif %}>
<a href="{% url 'hc-p-channels' project.code %}"> <a href="{% url 'hc-p-channels' project.code %}">
Integrations
{% trans "Integrations" %}
{% if b %}<span class="icon-grace"></span>{% endif %} {% if b %}<span class="icon-grace"></span>{% endif %}
</a> </a>
</li> </li>
{% endwith %} {% endwith %}
<li {% if page == 'badges' %} class="active" {% endif %}> <li {% if page == 'badges' %} class="active" {% endif %}>
<a href="{% url 'hc-badges' project.code %}">Badges</a>
<a href="{% url 'hc-badges' project.code %}">
{% trans "Badges" %}
</a>
</li> </li>
<li {% if page == 'project' %} class="active" {% endif %}> <li {% if page == 'project' %} class="active" {% endif %}>
<a href="{% url 'hc-project-settings' project.code %}">Settings</a>
<a href="{% url 'hc-project-settings' project.code %}">
{% trans "Settings" %}
</a>
</li> </li>
</ul> </ul>
{% endif %} {% endif %}
@ -121,30 +127,40 @@
{% if show_pricing %} {% if show_pricing %}
<li {% if page == 'pricing' %} class="active" {% endif %}> <li {% if page == 'pricing' %} class="active" {% endif %}>
{% if project %} {% if project %}
<a href="{% url 'hc-p-pricing' project.code %}">Pricing</a>
<a href="{% url 'hc-p-pricing' project.code %}">
{% trans "Pricing" %}
</a>
{% else %} {% else %}
<a href="{% url 'hc-pricing' %}">Pricing</a>
<a href="{% url 'hc-pricing' %}">
{% trans "Pricing" %}
</a>
{% endif %} {% endif %}
</li> </li>
{% endif %} {% endif %}
<li {% if page == 'docs' %} class="active" {% endif %}> <li {% if page == 'docs' %} class="active" {% endif %}>
<a href="{% url 'hc-docs' %}">Docs</a>
<a href="{% url 'hc-docs' %}">
{% trans "Docs" %}
</a>
</li> </li>
{% if request.user.is_authenticated %} {% if request.user.is_authenticated %}
<li class="dropdown"> <li class="dropdown">
<a id="nav-email" href="#" class="dropdown-toggle" data-toggle="dropdown" role="button"> <a id="nav-email" href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">
Account
{% trans "Account" %}
<span class="caret"></span> <span class="caret"></span>
</a> </a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
{% if request.user.is_superuser %} {% if request.user.is_superuser %}
<li><a href="{% url 'admin:index' %}">Site Administration</a></li>
<li><a href="{% url 'admin:index' %}">
{% trans "Site Administration" %}
</a></li>
<li role="separator" class="divider"></li> <li role="separator" class="divider"></li>
{% endif %} {% endif %}
<li class="dropdown-header">Projects</li>
<li class="dropdown-header">
{% trans "Projects" %}
</li>
{% for project in request.profile.annotated_projects %} {% for project in request.profile.annotated_projects %}
<li class="project-item"> <li class="project-item">
<a href="{% url 'hc-checks' project.code %}"> <a href="{% url 'hc-checks' project.code %}">
@ -161,19 +177,31 @@
<li role="separator" class="divider"></li> <li role="separator" class="divider"></li>
<li class="dropdown-header">{{ request.user.email }}</li> <li class="dropdown-header">{{ request.user.email }}</li>
<li><a href="{% url 'hc-profile' %}">Account Settings</a></li>
<li><a href="{% url 'hc-logout' %}">Log Out</a></li>
<li>
<a href="{% url 'hc-profile' %}">
{% trans "Account Settings" %}
</a>
</li>
<li>
<a href="{% url 'hc-logout' %}">
{% trans "Log Out" %}
</a>
</li>
</ul> </ul>
</li> </li>
{% elif page != "login" %} {% elif page != "login" %}
<li><a href="{% url 'hc-login' %}">Sign In</a></li>
<li>
<a href="{% url 'hc-login' %}">
{% trans "Sign In" %}
</a>
</li>
{% endif %} {% endif %}
{% if registration_open %} {% if registration_open %}
{% if page == "welcome" or page == "login" %} {% if page == "welcome" or page == "login" %}
<li> <li>
<a id="nav-sign-up" href="#" data-toggle="modal" data-target="#signup-modal"> <a id="nav-sign-up" href="#" data-toggle="modal" data-target="#signup-modal">
<span>Sign Up</span>
<span>{% trans "Sign Up" %}</span>
</a> </a>
</li> </li>
{% endif %} {% endif %}
@ -194,7 +222,7 @@
<div class="container{% if page == "checks" or page == "details" %}-fluid{% endif %}"> <div class="container{% if page == "checks" or page == "details" %}-fluid{% endif %}">
<ul> <ul>
<li> <li>
Powered by Healthchecks open-source project
{% trans "Powered by Healthchecks open-source project" %}
(<a href="https://github.com/healthchecks/healthchecks">github</a>, (<a href="https://github.com/healthchecks/healthchecks">github</a>,
<a href="https://healthchecks.io">healthchecks.io</a>) <a href="https://healthchecks.io">healthchecks.io</a>)
</li> </li>


+ 224
- 79
templates/front/welcome.html View File

@ -1,8 +1,8 @@
{% extends "base.html" %} {% extends "base.html" %}
{% load compress humanize static %}
{% load compress humanize i18n static %}
{% block description %} {% block description %}
<meta name="description" content="Cron Monitoring. Monitor nightly backups, weekly reports, cron jobs and background tasks. Receive alerts when your tasks don't run on time.">
<meta name="description" content="{% blocktrans %}Cron Monitoring. Monitor nightly backups, weekly reports, cron jobs and background tasks. Receive alerts when your tasks don't run on time.{% endblocktrans %}">
{% endblock %} {% endblock %}
@ -16,28 +16,31 @@
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">
<h1 id="pitch"> <h1 id="pitch">
Monitoring for your nightly backups,
weekly reports, cron jobs and background tasks.</h1>
{% trans "Monitoring for your nightly backups, weekly reports, cron jobs and background tasks." %}
</h1>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-sm-6 col-sm-push-6"> <div class="col-sm-6 col-sm-push-6">
<p id="pitch-text"> <p id="pitch-text">
Make HTTP requests to the Ping URL at regular intervals.
{% trans "Make HTTP requests to the Ping URL at regular intervals." %}
<strong> <strong>
{% blocktrans trimmed %}
When the URL is not pinged on time, When the URL is not pinged on time,
{{ site_name }} will send you an alert. {{ site_name }} will send you an alert.
{% endblocktrans %}
</strong> </strong>
You can monitor any service that can make HTTP requests
or send emails.
{% trans "You can monitor any service that can make HTTP requests or send emails." %}
</p> </p>
</div> </div>
<div class="col-sm-6 col-sm-pull-6"> <div class="col-sm-6 col-sm-pull-6">
<h2 id="pitch-subtitle"> <h2 id="pitch-subtitle">
{% blocktrans trimmed %}
For each of your periodic tasks, For each of your periodic tasks,
{{ site_name }} provides an unique URL similar to this one: {{ site_name }} provides an unique URL similar to this one:
{% endblocktrans %}
</h2> </h2>
<div id="pitch-url"> <div id="pitch-url">
<code>{{ ping_url }}</code> <code>{{ ping_url }}</code>
@ -73,13 +76,13 @@
<a href="#cs" data-toggle="tab">C#</a> <a href="#cs" data-toggle="tab">C#</a>
</li> </li>
<li class="hidden-xs"> <li class="hidden-xs">
<a href="#browser" data-toggle="tab">Browser</a>
<a href="#browser" data-toggle="tab">{% trans "Browser" %}</a>
</li> </li>
<li class="hidden-xs"> <li class="hidden-xs">
<a href="#powershell" data-toggle="tab">PowerShell</a> <a href="#powershell" data-toggle="tab">PowerShell</a>
</li> </li>
<li class="hidden-xs"> <li class="hidden-xs">
<a href="#email" data-toggle="tab">Email</a>
<a href="#email" data-toggle="tab">{% trans "Email" %}</a>
</li> </li>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
@ -118,15 +121,19 @@
</div> </div>
<div class="tab-pane tab-pane-email" id="email"> <div class="tab-pane tab-pane-email" id="email">
<p> <p>
{% blocktrans trimmed %}
As an alternative to HTTP requests, As an alternative to HTTP requests,
you can also report "liveness" by you can also report "liveness" by
<strong>sending email messages</strong>. <strong>sending email messages</strong>.
{% endblocktrans %}
</p> </p>
<p> <p>
{% blocktrans trimmed %}
You can instruct {{ site_name }} to look for a particular You can instruct {{ site_name }} to look for a particular
keyword in the subject line. This is handy when your backup keyword in the subject line. This is handy when your backup
software sends an email after every run, and uses a different software sends an email after every run, and uses a different
subject line depending on success or failure. subject line depending on success or failure.
{% endblocktrans %}
</p> </p>
</div> </div>
</div> </div>
@ -140,10 +147,15 @@
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div id="get-started" class="col-sm-8 col-sm-offset-2 text-center"> <div id="get-started" class="col-sm-8 col-sm-offset-2 text-center">
<h1>{{ site_name }} monitors the heartbeat messages sent by your cron jobs, services and APIs.
Get immediate alerts when they don't arrive on schedule. </h1>
<h1>
{% blocktrans trimmed %}
{{ site_name }} monitors the heartbeat messages sent by your cron
jobs, services and APIs. Get immediate alerts when they don't
arrive on schedule.
{% endblocktrans %}
</h1>
<a href="#" data-toggle="modal" data-target="#signup-modal" class="btn btn-lg btn-primary"> <a href="#" data-toggle="modal" data-target="#signup-modal" class="btn btn-lg btn-primary">
Sign Up – It's Free
{% trans "Sign Up – It's Free" %}
</a> </a>
</div> </div>
</div> </div>
@ -154,7 +166,9 @@
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">
<h2 class="tour-title">A quick peek of what's inside:</h2>
<h2 class="tour-title">
{% trans "A quick peek of what's inside:" %}
</h2>
</div> </div>
</div> </div>
@ -167,21 +181,31 @@
alt="My Checks page" /> alt="My Checks page" />
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4">
<h3>Live-updating Dashboard</h3>
<h3>
{% trans "Live-updating Dashboard" %}
</h3>
<p> <p>
{% blocktrans trimmed %}
A list of your checks, one for each Cron job, daemon or A list of your checks, one for each Cron job, daemon or
scheduled task you want to monitor. scheduled task you want to monitor.
{% endblocktrans %}
</p> </p>
<p> <p>
{% blocktrans trimmed %}
Give names and assign tags to your checks to easily recognize Give names and assign tags to your checks to easily recognize
them later. them later.
{% endblocktrans %}
</p> </p>
<p> <p>
{% blocktrans trimmed %}
Tap on the integration icons to toggle them on and off. Tap on the integration icons to toggle them on and off.
{% endblocktrans %}
</p> </p>
<p> <p>
{% blocktrans trimmed %}
Adjust Period and Grace time to match the Adjust Period and Grace time to match the
periodicity and duration of your tasks. periodicity and duration of your tasks.
{% endblocktrans %}
</p> </p>
</div> </div>
</div> </div>
@ -195,10 +219,12 @@
alt="Period/Grace Time dialog" /> alt="Period/Grace Time dialog" />
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4">
<h3>Simple Configuration</h3>
<h3>{% trans "Simple Configuration" %}</h3>
{% blocktrans trimmed %}
Each check has configurable <strong>Period</strong> and <strong>Grace Time</strong> parameters. Each check has configurable <strong>Period</strong> and <strong>Grace Time</strong> parameters.
Depending on these parameters and time since the last ping, the check is in one of the Depending on these parameters and time since the last ping, the check is in one of the
following states: following states:
{% endblocktrans %}
<table class="table"> <table class="table">
<tr> <tr>
@ -206,8 +232,10 @@
<span class="status icon-new"></span> <span class="status icon-new"></span>
</td> </td>
<td> <td>
{% blocktrans trimmed %}
New. New.
A check that has been created, but has not received any pings yet. A check that has been created, but has not received any pings yet.
{% endblocktrans %}
</td> </td>
</tr> </tr>
<tr> <tr>
@ -215,8 +243,10 @@
<span class="status icon-up"></span> <span class="status icon-up"></span>
</td> </td>
<td> <td>
{% blocktrans trimmed %}
Up. Up.
Time since last ping has not exceeded <strong>Period</strong>. Time since last ping has not exceeded <strong>Period</strong>.
{% endblocktrans %}
</td> </td>
</tr> </tr>
<tr> <tr>
@ -224,9 +254,11 @@
<span class="status icon-grace"></span> <span class="status icon-grace"></span>
</td> </td>
<td> <td>
{% blocktrans trimmed %}
Late. Late.
Time since last ping has exceeded <strong>Period</strong>, Time since last ping has exceeded <strong>Period</strong>,
but has not yet exceeded <strong>Period</strong> + <strong>Grace</strong>. but has not yet exceeded <strong>Period</strong> + <strong>Grace</strong>.
{% endblocktrans %}
</td> </td>
</tr> </tr>
<tr> <tr>
@ -234,10 +266,12 @@
<span class="status icon-down"></span> <span class="status icon-down"></span>
</td> </td>
<td> <td>
{% blocktrans trimmed %}
Down. Down.
Time since last ping has exceeded <strong>Period</strong> + <strong>Grace</strong>. Time since last ping has exceeded <strong>Period</strong> + <strong>Grace</strong>.
When check goes from "Late" to "Down", {{ site_name }} When check goes from "Late" to "Down", {{ site_name }}
sends you a notification. sends you a notification.
{% endblocktrans %}
</td> </td>
</tr> </tr>
</table> </table>
@ -254,17 +288,25 @@
alt="Cron dialog" /> alt="Cron dialog" />
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4">
<h3>Cron Expression Support</h3>
<h3>{% trans "Cron Expression Support" %}</h3>
<p> <p>
{% blocktrans trimmed %}
Alternatively, you can define the expected ping dates and times Alternatively, you can define the expected ping dates and times
using a cron expression. See using a cron expression. See
<a href="{% url 'hc-docs-cron' %}">Cron Syntax Cheatsheet</a>
{% endblocktrans %}
<a href="{% url 'hc-docs-cron' %}">
{% trans "Cron Syntax Cheatsheet" %}
</a>
{% blocktrans trimmed %}
for the supported syntax features. for the supported syntax features.
{% endblocktrans %}
</p> </p>
<p> <p>
{% blocktrans trimmed %}
<strong>Grace Time</strong> specifies how "late" a ping can <strong>Grace Time</strong> specifies how "late" a ping can
be before you will be alerted. Set it to be a little above be before you will be alerted. Set it to be a little above
the expected duration of your cron job. the expected duration of your cron job.
{% endblocktrans %}
</p> </p>
</div> </div>
</div> </div>
@ -278,15 +320,19 @@
alt="Details Page" /> alt="Details Page" />
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4">
<h3>Details and Event Log</h3>
<h3>{% trans "Details and Event Log" %}</h3>
<p> <p>
{% blocktrans trimmed %}
You can add a longer, free-form description to each You can add a longer, free-form description to each
check. Leave notes and pointers for yourself and check. Leave notes and pointers for yourself and
for your team. for your team.
{% endblocktrans %}
</p> </p>
<p> <p>
{% blocktrans trimmed %}
You can also see the log of received pings and You can also see the log of received pings and
sent "Down" notifications. sent "Down" notifications.
{% endblocktrans %}
</p> </p>
</div> </div>
</div> </div>
@ -300,29 +346,37 @@
alt="Details Page" /> alt="Details Page" />
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4">
<h3>Public Status Badges</h3>
<h3>{% trans "Public Status Badges" %}</h3>
<p> <p>
{% blocktrans trimmed %}
{{ site_name }} provides status badges for each of the tags {{ site_name }} provides status badges for each of the tags
you have used. Additionally, the "{{ site_name }}" badge you have used. Additionally, the "{{ site_name }}" badge
shows the overall status of all checks in your account. shows the overall status of all checks in your account.
{% endblocktrans %}
</p> </p>
<p> <p>
{% blocktrans trimmed %}
The badges have public, but hard-to-guess URLs. The badges have public, but hard-to-guess URLs.
You can use them in your READMEs, dashboards or status pages. You can use them in your READMEs, dashboards or status pages.
{% endblocktrans %}
</p> </p>
</div> </div>
</div> </div>
<div id="welcome-integrations" class="row"> <div id="welcome-integrations" class="row">
<div class="col-sm-12"> <div class="col-sm-12">
<h1>Integrations<br>
<small>Set up multiple ways to get notified:</small>
<h1>{% trans "Integrations" %}<br>
<small>
{% trans "Set up multiple ways to get notified:" %}
</small>
</h1> </h1>
</div> </div>
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/email.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/email.png' %}" class="icon" alt="" />
<h3>Email<br><small>&nbsp;</small>
<h3>
{% trans "Email" %}<br>
<small>&nbsp;</small>
</h3> </h3>
</div> </div>
</div> </div>
@ -330,7 +384,10 @@
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/webhook.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/webhook.png' %}" class="icon" alt="" />
<h3>Webhooks<br><small>&nbsp;</small></h3>
<h3>
Webhooks<br>
<small>&nbsp;</small>
</h3>
</div> </div>
</div> </div>
@ -338,12 +395,18 @@
{% if enable_slack_btn %} {% if enable_slack_btn %}
<a href="{% url 'hc-slack-help' %}" class="integration"> <a href="{% url 'hc-slack-help' %}" class="integration">
<img src="{% static 'img/integrations/slack.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/slack.png' %}" class="icon" alt="" />
<h3>Slack<br><small>Chat</small></h3>
<h3>
Slack<br>
<small>{% trans "Chat" %}</small>
</h3>
</a> </a>
{% else %} {% else %}
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/slack.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/slack.png' %}" class="icon" alt="" />
<h3>Slack<br><small>Chat</small></h3>
<h3>
Slack<br>
<small>{% trans "Chat" %}</small>
</h3>
</div> </div>
{% endif %} {% endif %}
</div> </div>
@ -352,7 +415,10 @@
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/apprise.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/apprise.png' %}" class="icon" alt="" />
<h3>Apprise<br><small>Push Notifications</small></h3>
<h3>
Apprise<br>
<small>{% trans "Push Notifications" %}</small>
</h3>
</div> </div>
</div> </div>
{% endif %} {% endif %}
@ -361,7 +427,10 @@
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/discord.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/discord.png' %}" class="icon" alt="" />
<h3>Discord<br><small>Chat</small></h3>
<h3>
Discord<br>
<small>{% trans "Chat" %}</small>
</h3>
</div> </div>
</div> </div>
{% endif %} {% endif %}
@ -370,7 +439,10 @@
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/matrix.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/matrix.png' %}" class="icon" alt="" />
<h3>Matrix<br><small>Chat</small></h3>
<h3>
Matrix<br>
<small>{% trans "Chat" %}</small>
</h3>
</div> </div>
</div> </div>
{% endif %} {% endif %}
@ -378,21 +450,30 @@
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/mattermost.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/mattermost.png' %}" class="icon" alt="" />
<h3>Mattermost<br><small>Chat</small></h3>
<h3>
Mattermost<br>
<small>{% trans "Chat" %}</small>
</h3>
</div> </div>
</div> </div>
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/msteams.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/msteams.png' %}" class="icon" alt="" />
<h3>Microsoft Teams<br><small>Chat</small></h3>
<h3>
Microsoft Teams<br>
<small>{% trans "Chat" %}</small>
</h3>
</div> </div>
</div> </div>
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/opsgenie.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/opsgenie.png' %}" class="icon" alt="" />
<h3>OpsGenie<br><small>Incident Management</small></h3>
<h3>
OpsGenie<br>
<small>{% trans "Incident Management" %}</small>
</h3>
</div> </div>
</div> </div>
@ -400,12 +481,18 @@
{% if enable_pdc %} {% if enable_pdc %}
<a href="{% url 'hc-pdc-help' %}" class="integration"> <a href="{% url 'hc-pdc-help' %}" class="integration">
<img src="{% static 'img/integrations/pd.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/pd.png' %}" class="icon" alt="" />
<h3>PagerDuty<br><small>Incident Management</small></h3>
<h3>
PagerDuty<br>
<small>{% trans "Incident Management" %}</small>
</h3>
</a> </a>
{% else %} {% else %}
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/pd.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/pd.png' %}" class="icon" alt="" />
<h3>PagerDuty<br><small>Incident Management</small></h3>
<h3>
PagerDuty<br>
<small>{% trans "Incident Management" %}</small>
</h3>
</div> </div>
{% endif %} {% endif %}
</div> </div>
@ -413,14 +500,20 @@
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/pagertree.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/pagertree.png' %}" class="icon" alt="" />
<h3>PagerTree<br><small>Incident Management</small></h3>
<h3>
PagerTree<br>
<small>{% trans "Incident Management" %}</small>
</h3>
</div> </div>
</div> </div>
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<a href="{% url 'hc-serve-doc' 'configuring_prometheus' %}" class="integration"> <a href="{% url 'hc-serve-doc' 'configuring_prometheus' %}" class="integration">
<img src="{% static 'img/integrations/prometheus.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/prometheus.png' %}" class="icon" alt="" />
<h3>Prometheus<br><small>Event Monitoring</small></h3>
<h3>
Prometheus<br>
<small>{% trans "Event Monitoring" %}</small>
</h3>
</a> </a>
</div> </div>
@ -428,7 +521,10 @@
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/pushbullet.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/pushbullet.png' %}" class="icon" alt="" />
<h3>Pushbullet<br><small>Push Notifications</small></h3>
<h3>
Pushbullet<br>
<small>{% trans "Push Notifications" %}</small>
</h3>
</div> </div>
</div> </div>
{% endif %} {% endif %}
@ -437,7 +533,10 @@
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<a href="{% url 'hc-pushover-help' %}" class="integration"> <a href="{% url 'hc-pushover-help' %}" class="integration">
<img src="{% static 'img/integrations/po.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/po.png' %}" class="icon" alt="" />
<h3>Pushover<br><small>Push Notifications</small></h3>
<h3>
Pushover<br>
<small>{% trans "Push Notifications" %}</small>
</h3>
</a> </a>
</div> </div>
{% endif %} {% endif %}
@ -446,7 +545,10 @@
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/shell.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/shell.png' %}" class="icon" alt="" />
<h3>Shell Commands<br><small>&nbsp;</small></h3>
<h3>
{% trans "Shell Commands" %}<br>
<small>&nbsp;</small>
</h3>
</div> </div>
</div> </div>
{% endif %} {% endif %}
@ -455,7 +557,10 @@
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/sms.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/sms.png' %}" class="icon" alt="" />
<h3>SMS<br><small>&nbsp;</small></h3>
<h3>
{% trans "SMS" %}<br>
<small>&nbsp;</small>
</h3>
</div> </div>
</div> </div>
{% endif %} {% endif %}
@ -463,7 +568,10 @@
<div class="col-md-2 col-sm-4 col-xs-6"> <div class="col-md-2 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/spike.png' %}" class="icon" alt="Spike.sh icon" /> <img src="{% static 'img/integrations/spike.png' %}" class="icon" alt="Spike.sh icon" />
<h3>Spike.sh <br><small>Incident Management</small></h3>
<h3>
Spike.sh<br>
<small>{% trans "Incident Management" %}</small>
</h3>
</div> </div>
</div> </div>
@ -471,7 +579,10 @@
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<a href="{% url 'hc-telegram-help' %}" class="integration"> <a href="{% url 'hc-telegram-help' %}" class="integration">
<img src="{% static 'img/integrations/telegram.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/telegram.png' %}" class="icon" alt="" />
<h3>Telegram<br><small>Chat</small></h3>
<h3>
Telegram<br>
<small>{% trans "Chat" %}</small>
</h3>
</a> </a>
</div> </div>
{% endif %} {% endif %}
@ -480,7 +591,10 @@
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/trello.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/trello.png' %}" class="icon" alt="" />
<h3>Trello<br><small>Project Management</small></h3>
<h3>
Trello<br>
<small>{% trans "Project Management" %}</small>
</h3>
</div> </div>
</div> </div>
{% endif %} {% endif %}
@ -488,7 +602,10 @@
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/victorops.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/victorops.png' %}" class="icon" alt="" />
<h3>VictorOps<br><small>Incident Management</small></h3>
<h3>
VictorOps<br>
<small>{% trans "Incident Management" %}</small>
</h3>
</div> </div>
</div> </div>
@ -496,7 +613,10 @@
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/whatsapp.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/whatsapp.png' %}" class="icon" alt="" />
<h3>WhatsApp<br><small>Chat</small></h3>
<h3>
WhatsApp<br>
<small>{% trans "Chat" %}</small>
</h3>
</div> </div>
</div> </div>
{% endif %} {% endif %}
@ -504,49 +624,70 @@
<div class="col-lg-2 col-md-3 col-sm-4 col-xs-6"> <div class="col-lg-2 col-md-3 col-sm-4 col-xs-6">
<div class="integration"> <div class="integration">
<img src="{% static 'img/integrations/zulip.png' %}" class="icon" alt="" /> <img src="{% static 'img/integrations/zulip.png' %}" class="icon" alt="" />
<h3>Zulip<br><small>Chat</small></h3>
<h3>
Zulip<br>
<small>{% trans "Chat" %}</small>
</h3>
</div> </div>
</div> </div>
</div> </div>
<div class="row tour-section"> <div class="row tour-section">
<div class="col-sm-12"> <div class="col-sm-12">
<h1 class="text-center">What Can I Monitor With {{ site_name }}?</h1>
<h1 class="text-center">
{% blocktrans trimmed %}
What Can I Monitor With {{ site_name }}?
{% endblocktrans %}
</h1>
</div> </div>
<div class="col-sm-6 use-cases"> <div class="col-sm-6 use-cases">
<h2>Cron Jobs</h2>
<p>{{ site_name }} monitoring is a great fit for cron jobs and cron-like systems
(systemd timers, Jenkins build jobs, Windows Scheduled Tasks, wp-cron, uwsgi cron-like
interface, Heroku Scheduler, ...). A failed cron job often has no immediate visible
consequences, and can go unnoticed for a long time.</p>
<p>Specific examples:</p>
<h2>{% trans "Cron Jobs" %}</h2>
<p>
{% blocktrans trimmed %}
{{ site_name }} monitoring is a great fit for cron jobs and cron-like
systems (systemd timers, Jenkins build jobs, Windows Scheduled Tasks,
wp-cron, uwsgi cron-like interface, Heroku Scheduler, ...). A failed
cron job often has no immediate visible consequences, and can go
unnoticed for a long time.
{% endblocktrans %}
</p>
<p>{% trans "Specific examples:" %}</p>
<ul> <ul>
<li>Filesystem backups</li>
<li>Database backups</li>
<li>Daily, weekly, monthly report emails</li>
<li>SSL renewals</li>
<li>Business data import and sync</li>
<li>Antivirus scans</li>
<li>Dynamic DNS updates</li>
<li>{% trans "Filesystem backups" %}</li>
<li>{% trans "Database backups" %}</li>
<li>{% trans "Daily, weekly, monthly report emails" %}</li>
<li>{% trans "SSL renewals" %}</li>
<li>{% trans "Business data import and sync" %}</li>
<li>{% trans "Antivirus scans" %}</li>
<li>{% trans "Dynamic DNS updates" %}</li>
</ul> </ul>
</div> </div>
<div class="col-sm-6 use-cases"> <div class="col-sm-6 use-cases">
<h2>Processes, Services, Servers</h2>
<p>{{ site_name }} monitoring can be used for lightweight server monitoring:
ensuring a particular system service, or the server as a whole is alive and healthy.
Write a shell script that checks for a specific condition, and pings {{ site_name }}
if successful. Run the shell script regularly.</p>
<p>Specific examples:</p>
<h2>{% trans "Processes, Services, Servers" %}</h2>
<p>
{% blocktrans trimmed %}
{{ site_name }} monitoring can be used for lightweight server
monitoring: ensuring a particular system service, or the server as a
whole is alive and healthy. Write a shell script that checks for a
specific condition, and pings {{ site_name }} if successful. Run the
shell script regularly.
{% endblocktrans %}
</p>
<p>{% trans "Specific examples:" %}</p>
<ul> <ul>
<li>Check a specific docker container is running</li>
<li>Check a specific application process is running</li>
<li>Check database replication lag</li>
<li>Check system resources: free disk, free RAM, ...</li>
<li>Send simple, unconditional "I'm alive" messages from your server (or your NAS,
router, Raspberry Pi, ...)</li>
<li>{% trans "Check a specific docker container is running" %}</li>
<li>{% trans "Check a specific application process is running" %}</li>
<li>{% trans "Check database replication lag" %}</li>
<li>{% trans "Check system resources: free disk, free RAM, ..." %}</li>
<li>
{% blocktrans trimmed %}
Send simple, unconditional "I'm alive" messages from your server
(or your NAS, router, Raspberry Pi, ...)
{% endblocktrans %}
</li>
</ul> </ul>
</div> </div>
</div> </div>
@ -557,12 +698,16 @@
<div class="footer-jumbo-bleed"> <div class="footer-jumbo-bleed">
<div class="col-sm-10 col-sm-offset-1"> <div class="col-sm-10 col-sm-offset-1">
<div id="footer-cta" class="jumbotron text-center"> <div id="footer-cta" class="jumbotron text-center">
<p>{{ site_name }} is a <strong>free</strong> and
<a href="https://github.com/healthchecks/healthchecks">open source</a> service.
Setting up monitoring for your cron jobs only takes minutes.
Start sleeping better at nights!</p>
<p>
{% blocktrans trimmed %}
{{ site_name }} is a <strong>free</strong> and
<a href="https://github.com/healthchecks/healthchecks">open source</a>
service. Setting up monitoring for your cron jobs only takes minutes.
Start sleeping better at nights!
{% endblocktrans %}
</p>
<a href="#" data-toggle="modal" data-target="#signup-modal" class="btn btn-lg btn-primary"> <a href="#" data-toggle="modal" data-target="#signup-modal" class="btn btn-lg btn-primary">
Sign Up
{% trans "Sign Up" %}
</a> </a>
</div> </div>
</div> </div>


Loading…
Cancel
Save