Despliega Healthchecks en Pethost con un clic
Monitorización de tareas cron y en segundo plano: cada tarea hace ping a su URL y te enteras cuando un ping se retrasa
Qué pasa
- Inicias sesión en Pethost o creas una cuenta, con una passkey, GitHub o Google.
- ¿Aún no tienes máquina? Eliges un plan y te preparamos una. El enlace espera en tu navegador hasta que esté lista.
- Nuevo proyecto se abre en la app. Rellenas lo que pide y haces clic en Crear proyecto: Correo electrónico, Contraseña de administrador.
- En un par de minutos la app está en marcha en su propia dirección con HTTPS. Sus secretos se generan al azar para ella, y sus datos entran en el backup de cada noche.
- Es un proyecto como cualquier otro: su compose.yaml, su .env, sus logs y un terminal están en el panel, y tu agente puede cambiarlo, volver a una versión anterior o restaurarlo.
Primeros pasos
Entra con el correo y la contraseña de administrador que indicaste; el registro está cerrado, así que nadie más obtiene una cuenta. Añade un check y haz que tu tarea llame a su URL de ping. Las alertas van a las integraciones que añadas en Integrations: el correo necesita antes un servidor SMTP.
Qué ejecuta
La plantilla es este compose.yaml y las variables que escribe en el .env del proyecto. Pethost ejecuta el archivo tal como está escrito.
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: