Português
Começar
← Todos os templates

Faça o deploy de Healthchecks no Pethost com um clique

Monitoramento de tarefas cron e em segundo plano: cada tarefa faz ping na sua URL, e você fica sabendo quando um ping atrasa

O que acontece

  1. Você entra no Pethost ou cria uma conta, com uma passkey, GitHub ou Google.
  2. Ainda não tem máquina? Você escolhe um plano, e nós preparamos uma para você. O link espera no seu navegador até ela ficar pronta.
  3. Novo projeto abre no app. Você preenche o que ele pede e clica em Criar projeto: E-mail, Senha do administrador.
  4. Em um ou dois minutos o app está no ar no próprio endereço com HTTPS. Os segredos dele são gerados ao acaso, e os dados vão para o backup noturno.
  5. É um projeto como qualquer outro: o compose.yaml, o .env, os logs e um terminal ficam no painel, e seu agente pode alterá-lo, fazer rollback ou restaurá-lo.

Primeiros passos

Entre com o e-mail e a senha de administrador que você informou; o cadastro está fechado, então ninguém mais obtém uma conta. Adicione um check e faça sua tarefa chamar a URL de ping dele. Os alertas vão para as integrações que você adicionar em Integrations: o e-mail precisa antes de um servidor SMTP.

O que roda

O template é este compose.yaml e as variáveis que ele grava no .env do projeto. O Pethost roda o arquivo exatamente 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: