Healthchecks - self-hosted dead man's switch monitoring cronów i harmonogramów, alarm gdy zadanie cykliczne się nie odpali.
Środowisko
| Runtime | Oficjalny obraz Docker healthchecks/healthchecks (Django), własna baza SQLite w wolumenie danych (bez dedykowanego kontenera bazy), nginx Boxa jako reverse proxy |
| Zalecany plan | Box S+ (Docker, jeden kontener, min 512 MB RAM) |
Przykładowy saplo.yaml
Plik saplo.yaml w katalogu głównym repozytorium opisuje, jak Saplo ma zbudować i uruchomić aplikację. Wygeneruje go też komenda saplo init.
version: 1
name: my-cronmonitor
stack: healthchecks
app_id: 1234
Pełny opis wszystkich pól znajdziesz na stronie Plik saplo.yaml.
Jak wdrożyć
Ten stack wdrożysz na trzy sposoby - wybierz wygodny dla siebie:
- Z panelu - tworzysz aplikację klikami, kod wgrywasz później przez CLI lub Git.
- Saplo CLI - z katalogu projektu:
saplo init, potemsaplo deploy. - Deploy z GitHub - podłączasz repo raz, każdy push wdraża się sam.
# Najszybsza droga - z katalogu projektu
$ npm install -g @saplo/cli
$ saplo login
$ saplo init
$ saplo deploy
Dobrze wiedzieć
- Stawiasz z panelu jednym kliknięciem - Saplo instaluje Docker CE, pobiera obraz healthchecks/healthchecks:latest i zakłada konto administratora automatycznie.
- Login i wygenerowane losowe hasło administratora znajdziesz w pliku HEALTHCHECKS-SETUP.txt w katalogu aplikacji zaraz po instalacji.
- Powiadomienia mailowe (alert przy braku pingu) wymagają własnego serwera SMTP - dopóki go nie podasz w zmiennych środowiskowych kontenera, alerty mailowe nie będą wysyłane. Integracje Slack, Discord i webhook działają od razu, bez SMTP.
- Każde monitorowane zadanie dostaje własny unikalny adres URL - dopisujesz do niego wywołanie curl na końcu swojego cronjoba albo skryptu backupu.
- Baza to plik SQLite w wolumenie kontenera - bez zewnętrznej bazy danych, bez dodatkowej konfiguracji.
- Kopia (automatyczna od Box L, ręcznie snapshotem na każdym planie) obejmuje cały wolumen z bazą.
Gotowy na deploy?
Wybierz plan Box i postaw aplikację Healthchecks jeszcze dziś.