Healthchecks на Pethost в один клік
Моніторинг cron-задач і фонових завдань: кожне завдання пінгує свій URL, і ви дізнаєтеся, коли пінг запізнюється
Що відбудеться
- Ви входите в Pethost або створюєте акаунт — з ключем доступу, через GitHub або Google.
- Машини ще немає? Ви обираєте тариф, і ми готуємо машину для вас. Посилання чекає у вашому браузері, доки машина не буде готова.
- Вікно «Новий проєкт» відкривається на цьому застосунку. Ви заповнюєте те, що він просить, і натискаєте «Створити проєкт»: Електронна пошта, Пароль адміністратора.
- За хвилину-дві застосунок працює за власною адресою з HTTPS. Його секрети створюються випадково, а дані потрапляють у щонічний бекап.
- Це проєкт як будь-який інший: його compose.yaml, .env, логи й термінал — у панелі, а ваш агент може його змінити, відкотити або відновити.
Перші кроки
Увійдіть із поштою й паролем адміністратора, які ви вказали; реєстрацію закрито, тож більше ніхто акаунт не отримає. Додайте check і нехай завдання викликає його URL пінгу. Сповіщення йдуть в інтеграції, додані в Integrations: для пошти спершу потрібен SMTP-сервер.
Що запускається
Шаблон — це цей compose.yaml і змінні, які він записує в .env проєкту. Pethost запускає файл так, як його написано.
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: