Установка Coolify: Развёртывание приложений с Self-Hosted PaaS
Установка Coolify, интеграция Docker и Git, развёртывание приложений, управление базами данных, SSL-сертификаты, переменные окружения и self-hosted PaaS как альтернатива Heroku/Netlify.
Установка Uptime Kuma с Docker, мониторинг HTTP/TCP/DNS/ping, интеграции уведомлений (Telegram, Discord, email), создание страницы статуса и настройка оповещений.
Uptime Kuma — это self-hosted инструмент мониторинга доступности, отслеживающий работоспособность ваших сервисов и веб-сайтов. С красивым веб-интерфейсом, различными типами мониторов и богатыми интеграциями уведомлений он предлагает отличную альтернативу Uptime Robot.
Выдающиеся возможности Uptime Kuma:
docker run -d \
--name uptime-kuma \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
louislam/uptime-kuma:latest
После установки:
http://IP_СЕРВЕРА:3001
# docker-compose.yml
version: '3.8'
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- uptime-kuma:/app/data
security_opt:
- no-new-privileges:true
volumes:
uptime-kuma:
docker compose up -d
server {
listen 80;
server_name uptime.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name uptime.example.com;
ssl_certificate /etc/letsencrypt/live/uptime.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/uptime.example.com/privkey.pem;
location / {
proxy_pass http://localhost:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_cache_bypass $http_upgrade;
}
}
Monitor Type: HTTP(S)
Friendly Name: Главная страница
URL: https://example.com
Heartbeat Interval: 60 секунд
Retries: 3
Accepted Status Codes: 200-299
Расширенные настройки HTTP:
# Мониторинг ключевых слов (поиск текста на странице)
Monitor Type: HTTP(S) - Keyword
Keyword: "Добро пожаловать"
# Мониторинг JSON Query (проверка ответа API)
Monitor Type: HTTP(S) - JSON Query
JSON Path: $.status
Expected Value: ok
Monitor Type: TCP Port
Friendly Name: База данных MySQL
Hostname: db.example.com
Port: 3306
Heartbeat Interval: 120 секунд
Monitor Type: DNS
Friendly Name: Проверка DNS
Hostname: example.com
Resolver Server: 8.8.8.8
DNS Resolve Type: A
Expected Value: 1.2.3.4
Monitor Type: HTTP(S)
URL: https://example.com
# На вкладке SSL:
Enable SSL Certificate Expiry Notification: ВКЛ
Notify Before (days): 30
# 1. Создайте бота через BotFather
# Получите Bot Token: 1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ
# 2. Получите Chat ID
curl https://api.telegram.org/bot<TOKEN>/getUpdates
# Запишите значение "chat":{"id":123456789}
Notification Type: Telegram
Bot Token: 1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ
Chat ID: 123456789
# Создать Webhook в Discord:
# Настройки сервера → Интеграции → Вебхуки → Новый вебхук
# Скопировать URL вебхука
Notification Type: Discord
Discord Webhook URL: https://discord.com/api/webhooks/...
Username: Uptime Kuma
Notification Type: Email (SMTP)
From Email: alerts@example.com
To Email: admin@example.com
SMTP Host: smtp.gmail.com
SMTP Port: 587
SMTP Username: alerts@example.com
SMTP Password: пароль-приложения
Security: STARTTLS
status.example.com# Настройки страницы статуса:
Title: Статус сервисов
Description: Статус всех наших сервисов в реальном времени
Theme: Auto (Светлая/Тёмная)
Custom Domain: status.example.com
Maintenance → Add Maintenance
Title: Еженедельное обслуживание
Strategy: Recurring
Start Time: Воскресенье 02:00
End Time: Воскресенье 04:00
Timezone: Europe/Moscow
Affected Monitors: Все мониторы
docker stop uptime-kuma
docker rm uptime-kuma
docker pull louislam/uptime-kuma:latest
docker run -d \
--name uptime-kuma \
--restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
louislam/uptime-kuma:latest
# Резервное копирование данных Uptime Kuma
docker exec uptime-kuma tar -czf /tmp/backup.tar.gz /app/data
docker cp uptime-kuma:/tmp/backup.tar.gz ./uptime-kuma-backup-$(date +%Y%m%d).tar.gz
# Восстановление
docker cp ./uptime-kuma-backup.tar.gz uptime-kuma:/tmp/
docker exec uptime-kuma tar -xzf /tmp/backup.tar.gz -C /
Вы можете отслеживать все сервисы, работающие на серверах REXE, с помощью Uptime Kuma. Благодаря уведомлениям в Telegram вы будете мгновенно оповещены о любых сбоях.
Откройте порт 3001 в брандмауэре: 'ufw allow 3001/tcp'. Проверьте, что контейнер запущен: 'docker ps | grep uptime-kuma'. Если используете Nginx reverse proxy, проверьте настройки proxy_pass и SSL-сертификат.
Проверьте правильность токена бота. Выполните 'curl https://api.telegram.org/bot<TOKEN>/getUpdates' для проверки Chat ID. Вы должны были отправить боту хотя бы одно сообщение. Если используете группу, добавьте бота в группу и сделайте его администратором. Используйте кнопку 'Test' в настройках уведомлений.
Проверьте настройку 'Accepted Status Codes' (по умолчанию: 200-299). Если ваш сайт возвращает редиректы 301/302, добавьте их тоже. Если есть ошибка SSL-сертификата, включите опцию 'Ignore TLS/SSL error'. Увеличьте тайм-аут. Убедитесь, что сайт доступен с сервера, где запущен Uptime Kuma.
Введите имя домена в поле 'Custom Domain' в настройках страницы статуса (например, status.example.com). Создайте CNAME-запись в DNS: status.example.com → uptime.example.com. Если используете Nginx reverse proxy, добавьте новый server block. Получите SSL-сертификат с Let's Encrypt.
Увеличьте интервал heartbeat (120-300 секунд вместо 60). Отключите ненужные мониторы. Выделите больше ресурсов контейнеру Uptime Kuma. База данных SQLite может замедляться по мере роста; регулярно очищайте старые записи. Используйте опцию 'Settings → Database → Shrink Database'.
При создании или редактировании HTTP(S) монитора перейдите на вкладку 'SSL'. Включите опцию 'Enable SSL Certificate Expiry Notification'. Установите, за сколько дней вы хотите получать уведомление (например, 30 дней). Убедитесь, что ваш канал уведомлений (Telegram, email и т.д.) настроен.
Установка Coolify, интеграция Docker и Git, развёртывание приложений, управление базами данных, SSL-сертификаты, переменные окружения и self-hosted PaaS как альтернатива Heroku/Netlify.
Установка Nextcloud с Docker, настройка Apache/Nginx, установка базы данных, SSL-сертификат, синхронизация файлов, магазин приложений и оптимизация производительности.
Установка Portainer CE, управление Docker и Kubernetes, развёртывание стеков, управление томами/сетями, авторизация пользователей, вебхуки и интеграция GitOps.