Files
homelab-docs/docs/vps/healthchecks-miran-setup.md
Andrey 53769e6832 Update architecture and backup documentation to include Healthchecks integration
Add Healthchecks service details to architecture and backup documentation, including its role as a Dead man's switch for backups. Update backup scripts to utilize systemd timers instead of cron for improved scheduling. Enhance network topology documentation to reflect Healthchecks integration in the VPS Miran setup. This update clarifies backup processes and enhances overall system reliability.
2026-02-28 15:43:39 +03:00

3.6 KiB
Raw Blame History

Healthchecks на VPS Миран

Self-hosted Healthchecks.io на VPS 185.147.80.190 — Dead man's switch для homelab. Если Proxmox не отправляет ping после окна бэкапов, Healthchecks шлёт алерт в Telegram.


Доступ

Параметр Значение
URL https://healthchecks.katykhin.ru/healthchecks/
Логин admin@katykhin.ru
Пароль в Vaultwarden (Healthchecks admin)

Доступ настроен по домену. Telegram webhook требует валидный SSL — без домена с Let's Encrypt бот не отвечает на /start.


Развёртывание (для переустановки)

1. Подготовка

ssh -p 15722 deploy@185.147.80.190
mkdir -p /home/prod/healthchecks
cd /home/prod/healthchecks

Скопировать из репозитория: scripts/healthchecks-docker/docker-compose.yml, scripts/healthchecks-docker/.env.example.env

2. Конфигурация .env

SITE_ROOT=https://healthchecks.katykhin.ru/healthchecks
SECRET_KEY=<openssl rand -hex 32>
ALLOWED_HOSTS=healthchecks.katykhin.ru,185.147.80.190,localhost

DB_HOST=db
DB_NAME=hc
DB_USER=postgres
DB_PASSWORD=<надёжный пароль>

TELEGRAM_TOKEN=<токен из Vaultwarden: HOME_BOT_TOKEN>
TELEGRAM_BOT_NAME=<username бота из @BotFather, напр. Katykhinhomebot>

REGISTRATION_OPEN=False
DEFAULT_FROM_EMAIL=healthchecks@katykhin.ru

3. Запуск

docker-compose up -d
docker-compose run web /opt/healthchecks/manage.py createsuperuser --email admin@katykhin.ru --password <password>
docker-compose run web python /opt/healthchecks/manage.py settelegramwebhook

4. Nginx

Отдельный server block для healthchecks.katykhin.ru с Let's Encrypt. Референс: scripts/healthchecks-nginx-server.conf. Proxy на 127.0.0.1:8000; нужны location для /healthchecks/, /static/, /projects/, /accounts/, /integrations/, /ping/ и др. (Django редиректы без префикса).

5. DNS

A-запись: healthchecks.katykhin.ru185.147.80.190. Сертификат: certbot --nginx -d healthchecks.katykhin.ru.


Привязка Telegram к check

  1. Войти в Healthchecks → IntegrationsAdd IntegrationTelegram
  2. Писать своему боту (из TELEGRAM_TOKEN), не @HealthchecksBot
  3. В Telegram: /start боту → перейти по ссылке → Connect в веб-интерфейсе

Check homelab-backups (UUID: 9451b52b-89f5-4a6c-b922-247a775bbf45).


Ping с Proxmox

Скрипт /root/scripts/healthcheck-ping.sh, таймер backup-healthcheck-ping.timer — 04:35 ежедневно.

Конфиг /root/.healthchecks.env:

HEALTHCHECKS_URL=https://healthchecks.katykhin.ru/healthchecks
HEALTHCHECKS_HOMELAB_UUID=<uuid из Healthchecks>

Смена пароля без SMTP

Healthchecks требует SMTP для смены пароля через веб. Без SMTP — через Django:

cd /home/prod/healthchecks
docker-compose run web python /opt/healthchecks/manage.py shell -c "
from django.contrib.auth import get_user_model
User = get_user_model()
u = User.objects.get(email='admin@katykhin.ru')
u.set_password('NEW_PASSWORD')
u.save()
print('OK')
"

Связанные документы