You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

432 lines
22 KiB

10 years ago
10 years ago
7 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
9 years ago
10 years ago
9 years ago
10 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
  1. {% extends "base.html" %}
  2. {% load compress hc_extras humanize static %}
  3. {% block description %}
  4. <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.">
  5. {% endblock %}
  6. {% block containers %}
  7. <div class="index-bleed">
  8. <div class="container">
  9. <div class="row">
  10. <div class="col-sm-12">
  11. <h1 id="pitch">
  12. Monitoring for your nightly backups,
  13. weekly reports, cron jobs and background tasks.</h1>
  14. </div>
  15. </div>
  16. <div class="row">
  17. <div class="col-sm-6 col-sm-push-6">
  18. <p id="pitch-text">
  19. Make HTTP requests to the Ping URL at regular intervals.
  20. <strong>
  21. When the URL is not pinged on time,
  22. {% site_name %} will send you an alert.
  23. </strong>
  24. You can monitor any service that can make HTTP requests
  25. or send emails.
  26. </p>
  27. </div>
  28. <div class="col-sm-6 col-sm-pull-6">
  29. <h2 id="pitch-subtitle">
  30. {% site_name %} creates unique Ping URLs like this one:
  31. </h2>
  32. <div id="pitch-url">
  33. <input
  34. id="pitch-url-input"
  35. class="form-control"
  36. type="text"
  37. value="{{ ping_url }}"
  38. readonly />
  39. </div>
  40. </div>
  41. </div>
  42. <div class="row">
  43. <div class="col-sm-12">
  44. <ul class="nav nav-tabs" role="tablist">
  45. <li class="active">
  46. <a href="#crontab" data-toggle="tab">Crontab</a>
  47. </li>
  48. <li>
  49. <a href="#bash" data-toggle="tab">Bash</a>
  50. </li>
  51. <li>
  52. <a href="#python" data-toggle="tab">Python</a>
  53. </li>
  54. <li class="hidden-xs">
  55. <a href="#ruby" data-toggle="tab">Ruby</a>
  56. </li>
  57. <li class="hidden-xs">
  58. <a href="#node" data-toggle="tab">Node.js</a>
  59. </li>
  60. <li class="hidden-xs">
  61. <a href="#php" data-toggle="tab">PHP</a>
  62. </li>
  63. <li class="hidden-xs">
  64. <a href="#cs" data-toggle="tab">C#</a>
  65. </li>
  66. <li class="hidden-xs">
  67. <a href="#browser" data-toggle="tab">Browser</a>
  68. </li>
  69. <li class="hidden-xs">
  70. <a href="#powershell" data-toggle="tab">PowerShell</a>
  71. </li>
  72. <li class="hidden-xs">
  73. <a href="#email" data-toggle="tab">Email</a>
  74. </li>
  75. </ul>
  76. <div class="tab-content">
  77. <div role="tabpanel" class="tab-pane active" id="crontab">
  78. {% include "front/snippets/crontab.html" %}
  79. </div>
  80. <div role="tabpanel" class="tab-pane" id="bash">
  81. {% include "front/snippets/bash_curl.html" %}
  82. {% include "front/snippets/bash_wget.html" %}
  83. </div>
  84. <div role="tabpanel" class="tab-pane" id="python">
  85. {% include "front/snippets/python_urllib2.html" %}
  86. {% include "front/snippets/python_requests.html" %}
  87. </div>
  88. <div role="tabpanel" class="tab-pane" id="ruby">
  89. {% include "front/snippets/ruby.html" %}
  90. </div>
  91. <div role="tabpanel" class="tab-pane" id="node">
  92. {% include "front/snippets/node.html" %}
  93. </div>
  94. <div role="tabpanel" class="tab-pane" id="php">
  95. {% include "front/snippets/php.html" %}
  96. </div>
  97. <div role="tabpanel" class="tab-pane" id="cs">
  98. {% include "front/snippets/cs.html" %}
  99. </div>
  100. <div class="tab-pane" id="browser">
  101. {% include "front/snippets/browser.html" %}
  102. </div>
  103. <div class="tab-pane" id="powershell">
  104. {% include "front/snippets/powershell.html" %}
  105. {% include "front/snippets/powershell_inline.html" %}
  106. </div>
  107. <div class="tab-pane tab-pane-email" id="email">
  108. <p>
  109. As an alternative to HTTP and HTTPS requests,
  110. you can "ping" this check by sending an
  111. email message to
  112. <a href="mailto:{{ check.email }}">{{ check.email }}</a>
  113. </p>
  114. </div>
  115. </div>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. {% if registration_open %}
  121. <div class="get-started-bleed">
  122. <div class="container">
  123. <div class="row">
  124. <div id="get-started" class="col-sm-6 col-sm-offset-3">
  125. <h2>E-mail Address to Receive Alerts:</h2>
  126. <form action="{% url 'hc-login' %}" method="post">
  127. {% csrf_token %}
  128. <div class="form-group">
  129. <div class="input-group input-group-lg">
  130. <div class="input-group-addon">@</div>
  131. <input
  132. type="email"
  133. class="form-control"
  134. name="email"
  135. autocomplete="email"
  136. placeholder="Email">
  137. </div>
  138. </div>
  139. <div class="clearfix">
  140. <button type="submit" class="btn btn-lg btn-primary pull-right">
  141. Set up my Ping URLs…
  142. </button>
  143. </div>
  144. </form>
  145. </div>
  146. </div>
  147. </div>
  148. </div>
  149. {% endif %}
  150. <div class="container">
  151. <div class="row">
  152. <div class="col-sm-12">
  153. <h2 class="tour-title">A quick peek of what's inside:</h2>
  154. </div>
  155. </div>
  156. <div class="row tour-section">
  157. <div class="col-sm-8">
  158. <img
  159. class="img-responsive"
  160. src="{% static 'img/my_checks.png' %}"
  161. srcset="{% static 'img/my_checks.png'%} 1x, {% static 'img/[email protected]'%} 2x"
  162. alt="My Checks page" />
  163. </div>
  164. <div class="col-sm-4">
  165. <p>
  166. A list of your checks, one for each Cron job, daemon or
  167. periodically running task you want to monitor.
  168. </p>
  169. <p>
  170. Give names to your checks to easily recognize them
  171. later. Adjust Period and Grace time to match the periodicity
  172. and duration of your tasks.
  173. </p>
  174. </div>
  175. </div>
  176. <div class="row tour-section">
  177. <div class="col-sm-8">
  178. <img
  179. class="img-responsive"
  180. src="{% static 'img/period_grace.png' %}"
  181. srcset="{% static 'img/period_grace.png'%} 1x, {% static 'img/[email protected]'%} 2x"
  182. alt="Period/Grace Time dialog" />
  183. </div>
  184. <div class="col-sm-4">
  185. Each check has configurable <strong>Period</strong> and <strong>Grace Time</strong> parameters.
  186. Depending on these parameters and time since the last ping, the check is in one of the
  187. following states:
  188. <table class="table">
  189. <tr>
  190. <td>
  191. <span class="status icon-new"></span>
  192. </td>
  193. <td>
  194. New.
  195. A check that has been created, but has not received any pings yet.
  196. </td>
  197. </tr>
  198. <tr>
  199. <td>
  200. <span class="status icon-up"></span>
  201. </td>
  202. <td>
  203. Up.
  204. Time since last ping has not exceeded <strong>Period</strong>.
  205. </td>
  206. </tr>
  207. <tr>
  208. <td>
  209. <span class="status icon-grace"></span>
  210. </td>
  211. <td>
  212. Late.
  213. Time since last ping has exceeded <strong>Period</strong>,
  214. but has not yet exceeded <strong>Period</strong> + <strong>Grace</strong>.
  215. </td>
  216. </tr>
  217. <tr>
  218. <td>
  219. <span class="status icon-down"></span>
  220. </td>
  221. <td>
  222. Down.
  223. Time since last ping has exceeded <strong>Period</strong> + <strong>Grace</strong>.
  224. When check goes from "Late" to "Down", {% site_name %}
  225. sends you a notification.
  226. </td>
  227. </tr>
  228. </table>
  229. </div>
  230. </div>
  231. <div class="row tour-section">
  232. <div class="col-sm-8">
  233. <img
  234. class="img-responsive"
  235. src="{% static 'img/cron.png' %}"
  236. srcset="{% static 'img/cron.png'%} 1x, {% static 'img/[email protected]'%} 2x"
  237. alt="Cron dialog" />
  238. </div>
  239. <div class="col-sm-4">
  240. <p>
  241. Alternatively, you can define the expected ping dates and times
  242. using a cron expression. See
  243. <a href="{% url 'hc-docs-cron' %}">Cron Syntax Cheatsheet</a>
  244. for the supported syntax features.
  245. </p>
  246. <p>
  247. <strong>Grace Time</strong> specifies how "late" a ping can
  248. be before you will be alerted. Set it to be a little above
  249. the expected duration of your cron job.
  250. </p>
  251. </div>
  252. </div>
  253. <div class="row tour-section">
  254. <div class="col-sm-8">
  255. <img
  256. class="img-responsive"
  257. src="{% static 'img/channels.png' %}"
  258. srcset="{% static 'img/channels.png'%} 1x, {% static 'img/[email protected]'%} 2x"
  259. alt="Channels page" />
  260. </div>
  261. <div class="col-sm-4">
  262. <p>
  263. You can set up additional ways to get notified:
  264. </p>
  265. <table class="table welcome-integrations">
  266. <tr>
  267. <td><span class="icon-email"></span></td>
  268. <td>Good old email messages.</td>
  269. </tr>
  270. {% if enable_sms %}
  271. <tr>
  272. <td><span class="icon-sms"></span></td>
  273. <td>SMS text messages.</td>
  274. </tr>
  275. {% endif %}
  276. <tr>
  277. <td>
  278. <img width="22" height="22" alt="Webhook icon" src="data:image/gif;base64,R0lGODdhLAAsAOMQAEBCQEpMS8s8aF5gXmxubtRkhoWIhp2gnuGRqLi6uOm3yfHJ1tja2PHZ4+/s6/3//CwAAAAALAAsAAAE/vDJSau9OOvNu/+gtyBFWSBLGDqF4L5u0aidAt8vQmv23eK6ncUBKygoi5/LIawgXgXM0xVsPogxCcMQCBgYEuXM2hMcHQGAGhAAl6tC8cOwXg+uUOtDKRnU10x5VkpMfn8AgVlWUwIzdH93e4pNbw8MaXUHSGNWMDMMBJhsehdljRMMawakFkoCCGMEa2CsE1gvKVeqtRQNghIHs1YJtBOEFA6GAwwHBs4HxRsJaZoTlRXBh3bRF48ABBR8F4baaqsY5AADTA+MnBWpa12i5t2ZtL5UGnQEDAwODrZkqoBmTQJbcjIwu5CNDTtgBiUw0sfBgYEBAwgcfNCwmgRMtuAk3fCQDkA1WaMkOFijaQEOMxwzEnBG0xnKP0wasosH4KCpPAnKCe35IKiajTx9voxidOihg003rlSjKd+NFI8CHNjKtdmhNhyFfVQTaeIrXWpCWih5cg2FjhKSlDgyhyUGi2wGbGzq8YqovhMaBrjgj7C8hxDXaGTiIMFNANwspfmCiotdC96GnqPAU02AAfTUZWhYDrDKzNo2332sGLGFaeU2cmD2LIFrhTadyebFu7dvGhEAADs=" />
  279. </td>
  280. <td>HTTP webhooks.</td>
  281. </tr>
  282. <tr>
  283. <td>
  284. <img width="22" height="22" alt="Slack icon" src="data:image/jpeg;base64,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" />
  285. </td>
  286. <td>Notifications in <a href="https://slack.com/">Slack</a> channel.</td>
  287. </tr>
  288. {% if enable_pushover %}
  289. <tr>
  290. <td><span class="icon-po"></span></td>
  291. <td>Instant push notifications with <a href="https://pushover.net/">Pushover</a>.</td>
  292. </tr>
  293. {% endif %}
  294. {% if enable_pushbullet %}
  295. <tr>
  296. <td>
  297. <img width="22" height="22" alt="Pushbullet icon" src="data:image/png;base64,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" />
  298. </td>
  299. <td>Instant push notifications with <a href="https://www.pushbullet.com/">Pushbullet</a>.</td>
  300. </tr>
  301. {% endif %}
  302. {% if enable_telegram %}
  303. <tr>
  304. <td>
  305. <img width="22" height="22" alt="Telegram icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAAAwFBMVEUApN8ArOEAreIWp90AruMAr+QAsOYdqd8kq+Ilr98oseEVuOcrsuIvtOQauugeu+oytuY3uek3vOZHuuU6vudBw+1PwOtivOJXwOVTx+tgxetlyvBtyepxze100fF31PSC0u2A1fCL1vKzz+eH3Pev0+mW2/Ks2e291eeb3vWq4PPE3O6l5fav5fi35PnQ5PDB6vnS5vPI7fbZ6fDh6fLR7vjd7fTV8v3n8Pjb9Pjn+P7y+Prt+vv2+/75/v/+//ywoHJtAAACaElEQVQ4y4WV4XaiMBCFwyFHBZMsItgFwRW1VrRUEBE1Bt//rTYKmKhY7w8I3I+BkMwMON+pYPl3MHRs23GC75wV9y6QL1g+swkxTdOy+IEQe5azFzCLR38I54Q4P4pZE5wH1iXog4gV5M9w5DSgV9yJHuGZRV7Kmt3DAflVgQxPyBvNBBxZ72ArquHcJm9l5yXMxsZ7mPxjVzh+TXQNx64jxReY+d1m0kC9cXxcVnDXpxzOcCOKsb088lcvaxtnZ1BMkNEkP7tuOXazUVAAZuEnkFjzU7VoR6+2sclA3rrjMDYsPy534Z5/xUHEamUgRFgIof5wfijTgO4oP2WSGQIfSagziWn5erpLL6Mi0oTtA6eCkYb96FDlUbFPUlbOTxewA6wKNsPDLSdomqTlY9SVvtIEBroKi+TkYZNd/TNMJGTUMFoWRTWxdH1jzwdFgjEw9XIEyXjDV4zt1+tkf8u6JRSsboKBXo+h1p9kyTqR2PNYk2AbDDX9Jk1x+dSoVHMGsjsEIdQkoTRZS4EL2YNzkHXkG62vdLXYilqiSF4nA8yALUnedjWdrm/zU4QDDQaKkfy0hreL6eJjUG06T/pGZVTwzQ9l6V+r6V8IUXz9633JUTY8U06uIt3S3M+P63nOF7+QHMU9XRL2R7sLXUfzcr4kQq2oLAWeHBrWF0rfM8TdtkfLIpP1lEa1O2Lcy+ryFWrKG8FQFMbRO9iXS673O+vdF/ORpr4iVeg/tonQUNV2g1TVCJ8bUDbsqA3qDDdNrY3+uM+sG9EXTZPGfgsIEEA/pi877KUdbyZuX2+39b472Ty24/+iGdn8sw214gAAAABJRU5ErkJggg==" />
  306. </td>
  307. <td>Notifications to a <a href="https://telegram.org/">Telegram</a> group or user.</td>
  308. </tr>
  309. {% endif %}
  310. {% if enable_pd %}
  311. <tr>
  312. <td><span class="icon-pd"></span></td>
  313. <td>Open and resolve incidents in <a href="https://www.pagerduty.com/">PagerDuty</a>.</td>
  314. </tr>
  315. {% endif %}
  316. <tr>
  317. <td><span class="icon-pagertree"></span></td>
  318. <td>Open and resolve incidents in <a href="https://pagertree.com/">PagerTree</a>.</td>
  319. </tr>
  320. <tr>
  321. <td><span class="icon-hipchat"></span></td>
  322. <td>Notifications in <a href="https://hipchat.com/">HipChat</a> channel.</td>
  323. </tr>
  324. <tr>
  325. <td><span class="icon-victorops"></span></td>
  326. <td>Open and resolve incidents in <a href="https://victorops.com/">VictorOps</a>.</td>
  327. </tr>
  328. {% if enable_discord %}
  329. <tr>
  330. <td><span class="icon-discord"></span></td>
  331. <td>Notifications in <a href="https://discordapp.com/">Discord</a> channel.</td>
  332. </tr>
  333. {% endif %}
  334. <tr>
  335. <td><span class="icon-opsgenie"></span></td>
  336. <td>Open and resolve incidents in <a href="https://www.opsgenie.com/">OpsGenie</a>.</td>
  337. </tr>
  338. </table>
  339. </div>
  340. </div>
  341. <div class="row">
  342. {% if registration_open %}
  343. <div class="footer-jumbo-bleed">
  344. <div class="col-sm-12">
  345. <div class="jumbotron">
  346. <div class="row">
  347. <div class="col-sm-7">
  348. <p>{% site_name %} is a <strong>free</strong> and
  349. <a href="https://github.com/healthchecks/healthchecks">open source</a> service.
  350. Setting up monitoring for your cron jobs only takes minutes.
  351. Start sleeping better at nights!</p>
  352. </div>
  353. <div class="col-sm-1"></div>
  354. <div class="col-sm-4">
  355. <form action="{% url 'hc-login' %}" method="post">
  356. {% csrf_token %}
  357. <div class="form-group">
  358. <div class="input-group input-group-lg">
  359. <div class="input-group-addon">@</div>
  360. <input
  361. type="email"
  362. class="form-control"
  363. name="email"
  364. autocomplete="email"
  365. placeholder="Email">
  366. </div>
  367. </div>
  368. <div class="clearfix">
  369. <button type="submit" class="btn btn-lg btn-primary pull-right">
  370. Sign up for free
  371. </button>
  372. </div>
  373. </form>
  374. </div>
  375. </div>
  376. </div>
  377. </div>
  378. </div>
  379. {% endif %}
  380. </div>
  381. </div>
  382. {% endblock %}
  383. {% block scripts %}
  384. {% compress js %}
  385. <script src="{% static 'js/jquery-2.1.4.min.js' %}"></script>
  386. <script src="{% static 'js/bootstrap.min.js' %}"></script>
  387. <script src="{% static 'js/clipboard.min.js' %}"></script>
  388. <script src="{% static 'js/snippet-copy.js' %}"></script>
  389. {% endcompress %}
  390. {% endblock %}