# Healthchecks на VPS Миран Self-hosted [Healthchecks.io](https://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. Подготовка ```bash 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 ```env SITE_ROOT=https://healthchecks.katykhin.ru/healthchecks SECRET_KEY= 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= REGISTRATION_OPEN=False DEFAULT_FROM_EMAIL=healthchecks@katykhin.ru ``` ### 3. Запуск ```bash docker-compose up -d docker-compose run web /opt/healthchecks/manage.py createsuperuser --email admin@katykhin.ru --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.ru` → `185.147.80.190`. Сертификат: `certbot --nginx -d healthchecks.katykhin.ru`. --- ## Привязка Telegram к check 1. Войти в Healthchecks → **Integrations** → **Add Integration** → **Telegram** 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`: ```env HEALTHCHECKS_URL=https://healthchecks.katykhin.ru/healthchecks HEALTHCHECKS_HOMELAB_UUID= ``` --- ## Смена пароля без SMTP Healthchecks требует SMTP для смены пароля через веб. Без SMTP — через Django: ```bash 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') " ``` --- ## Связанные документы - [vps-miran-bots](vps-miran-bots.md) — VPS Миран, порты - [backup-howto](../backup/backup-howto.md) — бэкапы, расписание