Wdróż aplikację Healthchecks na Pethost jednym kliknięciem
Monitorowanie zadań cron i zadań w tle: każde zadanie pinguje swój URL, a ty dowiadujesz się, gdy ping się spóźnia
Co się dzieje
- Logujesz się do Pethost albo zakładasz konto, kluczem dostępu, przez GitHub albo Google.
- Nie masz jeszcze maszyny? Wybierasz plan, a my ją dla ciebie przygotowujemy. Link czeka w twojej przeglądarce, aż będzie gotowa.
- Okno „Nowy projekt” otwiera się na tej aplikacji. Wypełniasz to, o co prosi, i klikasz „Utwórz projekt”: E-mail, Hasło administratora.
- Za minutę czy dwie aplikacja działa pod własnym adresem z HTTPS. Jej sekrety są tworzone losowo, a dane trafiają do nocnego backupu.
- To projekt jak każdy inny: jego compose.yaml, .env, logi i terminal są w panelu, a twój agent może go zmienić, cofnąć do wcześniejszej wersji albo przywrócić.
Pierwsze kroki
Zaloguj się adresem e-mail i hasłem administratora, które podano; rejestracja jest zamknięta, więc nikt inny nie dostanie konta. Dodaj check i niech twoje zadanie wywołuje jego URL pingu. Alerty trafiają do integracji dodanych w Integrations: e-mail wymaga najpierw serwera SMTP.
Co uruchamia
Szablon to ten compose.yaml i zmienne, które zapisuje do .env projektu. Pethost uruchamia plik dokładnie tak, jak jest napisany.
services:
healthchecks:
image: healthchecks/healthchecks:v4.4
restart: unless-stopped
environment:
DB: postgres
DB_HOST: postgres
DB_NAME: hc
DB_USER: hc
DB_PASSWORD: ${POSTGRES_PASSWORD}
SECRET_KEY: ${SECRET_KEY}
SITE_ROOT: ${URL}
PING_ENDPOINT: ${URL}/ping/
SITE_NAME: Healthchecks
DEBUG: "False"
# Only the account below signs in: nobody signs up by the address.
REGISTRATION_OPEN: "False"
ADMIN_EMAIL: ${ADMIN_EMAIL}
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
# The account is made before the server answers, the first time only.
command:
- sh
- -c
- |
./manage.py migrate || exit 1
./manage.py shell -c '
import os, sys
from django.contrib.auth.models import User
sys.exit(0 if User.objects.filter(email=os.environ["ADMIN_EMAIL"].lower()).exists() else 1)
' || ./manage.py createsuperuser --email "$$ADMIN_EMAIL" --password "$$ADMIN_PASSWORD" || exit 1
exec uwsgi /opt/healthchecks/docker/uwsgi.ini
depends_on:
postgres:
condition: service_healthy
postgres:
image: postgres:17-alpine
restart: unless-stopped
environment:
POSTGRES_DB: hc
POSTGRES_USER: hc
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U hc -d hc"]
interval: 5s
timeout: 5s
retries: 10
start_period: 30s
volumes:
db: