Как установить и настроить статус-страницу на VPS
Статус-страница — это публичная витрина здоровья ваших сервисов: адрес, где пользователи сами видят, что работает, а что временно недоступно, и не заваливают поддержку вопросами «у вас всё упало?». Во время инцидента она снимает панику и показывает, что вы в курсе и чините. Сделать такую страницу на своём VPS просто и бесплатно. Разберём два подхода — через Uptime Kuma и через легковесный Gatus — с доменом и HTTPS.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Зачем нужна статус-страница
Когда сервис падает, происходит две вещи: пользователи не понимают, что случилось, и поддержку заваливают одинаковыми обращениями. Статус-страница решает обе. На публичном адресе видно состояние каждого компонента — сайт, API, база, оплата — с историей аптайма и текущими инцидентами. Пользователь заходит, видит «известная проблема, работаем над этим», и не пишет в поддержку.
Для бизнеса это ещё и вопрос доверия. Открытая статус-страница показывает зрелость: вы не прячете проблемы, а честно сообщаете о них и об их решении. Крупные сервисы давно держат такие страницы на отдельном домене (status.вашсайт.ру), причём намеренно вне основной инфраструктуры — чтобы страница оставалась доступной, даже когда лежит всё остальное.
Отсюда главное правило: статус-страница должна жить на отдельном сервере, независимом от того, что она мониторит. Если разместить её на той же машине, при падении сервера ляжет и страница — ровно тогда, когда она нужнее всего. Поэтому под неё берут отдельный недорогой VPS, желательно в другой сети.
Требования и выбор сервера
Статус-страница нетребовательна: 1 ядро, 512 МБ–1 ГБ RAM и немного диска. Ключевое требование — независимость от мониторимой инфраструктуры и стабильная связность до проверяемых сервисов.
Локацию выбирайте так, чтобы страница проверяла ваши сервисы из релевантной сети и была доступна вашей аудитории. Для российских пользователей подойдёт RU-локация, для международного проекта — US или UK. Отдельный сервер под статус-страницу — недорогая страховка. MAATRIX даёт VPS в нужной локации с оплатой картами российских банков, СБП, криптовалютой или токеном MAAT — иностранная карта не нужна, а второй независимый сервер поднимается за пару минут. Обновите систему:
apt update && apt upgrade -y
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS под статус-страницуСпособ первый: статус-страница на Uptime Kuma
Если вам нужен и мониторинг, и статус-страница в одном, проще всего взять Uptime Kuma — он совмещает то и другое. Установите его через Docker:
curl -fsSL https://get.docker.com | sh
docker volume create uptime-kuma
docker run -d --restart=always -p 3001:3001 \
-v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
Откройте панель на порту 3001, создайте администратора и добавьте мониторы для ваших сервисов (HTTP-проверки сайтов и API). Затем перейдите в раздел Status Pages → New Status Page. Задайте название, адрес (slug) и добавьте на страницу нужные мониторы, сгруппировав их по смыслу — например, «Сайт», «API», «Оплата».
Uptime Kuma сгенерирует публичную страницу, доступную без пароля, где посетители видят статус каждого компонента, процент аптайма и график за период. Вы можете добавить логотип, описание и вручную публиковать инциденты — заметки о текущих проблемах и ходе их решения. Это самый быстрый путь: и мониторинг, и публичная страница из одной панели.
Продумайте, как группировать компоненты на странице, — от этого зависит, насколько она понятна пользователю. Не вываливайте два десятка технических мониторов списком; объедините их в осмысленные блоки, которые говорят на языке клиента: «Сайт», «Мобильное приложение», «Оплата», «API для партнёров». Внутренние проверки вроде состояния отдельной базы или очереди держите в мониторинге для себя, а на публичную страницу выносите только то, что важно пользователю и что он способен понять. Хорошая статус-страница отвечает на один вопрос — «работает ли то, чем я пользуюсь», — а не демонстрирует всю внутреннюю кухню инфраструктуры.
Способ второй: легковесный Gatus на конфиге
Если хочется, чтобы вся конфигурация лежала в одном файле и версионировалась в git, возьмите Gatus — минималистичный сервис статус-страниц, который настраивается одним YAML. Запустите через Docker с монтированием конфига:
mkdir -p /etc/gatus
docker run -d --restart=always -p 8080:8080 \
-v /etc/gatus/config.yaml:/config/config.yaml \
--name gatus twinproduction/gatus
Создайте /etc/gatus/config.yaml с описанием проверок:
endpoints:
- name: Сайт
url: "https://example.com"
interval: 60s
conditions:
- "[STATUS] == 200"
- "[RESPONSE_TIME] < 1000"
- name: API
url: "https://api.example.com/health"
interval: 30s
conditions:
- "[STATUS] == 200"
- "[BODY].status == ok"
Каждый endpoint — это проверяемый сервис с условиями: код ответа, время отклика, содержимое тела. Gatus сразу отдаёт готовую статус-страницу на порту 8080 с историей и графиками. Плюс подхода — вся настройка в одном файле, который легко хранить в репозитории и переносить. Перезапуск после правки: docker restart gatus.
Сила Gatus именно в условиях (conditions): вы описываете не просто «сайт открылся», а что именно означает «здоров» для каждого сервиса. Условие [STATUS] == 200 проверяет код ответа, [RESPONSE_TIME] < 1000 — что ответ пришёл быстрее секунды, а [BODY].status == ok заглядывает в JSON-ответ health-эндпоинта и убеждается, что приложение само считает себя работоспособным. Такой подход ловит тонкие поломки, которые простой пинг пропустит: сервер отвечает, но база отвалилась, и health-эндпоинт вернул status: degraded. Описав условия точно, вы получаете статус-страницу, которой можно доверять, а не формальную «зелёную галочку» при наполовину сломанном сервисе.
Домен, HTTPS и reverse-proxy
Публичная страница должна жить на нормальном домене с HTTPS, а не на «голом» IP с портом. Направьте поддомен (status.вашсайт.ру) на IP сервера и поставьте перед приложением Nginx с сертификатом Let's Encrypt.
Установите Nginx и certbot, настройте проксирование на локальный порт приложения (3001 для Uptime Kuma или 8080 для Gatus):
apt install -y nginx certbot python3-certbot-nginx
В конфиге сайта пропишите proxy_pass http://127.0.0.1:3001; для нужного домена, затем выпустите сертификат:
certbot --nginx -d status.вашсайт.ру
Откройте в firewall только 80/443 и SSH, а порт приложения наружу закройте — на него ходит только Nginx локально:
ufw allow 22/tcp
ufw allow 'Nginx Full'
ufw enable
Теперь страница доступна по красивому адресу с шифрованием. Настройте уведомления (Telegram) в самом приложении, чтобы одновременно со статусом получать личные алерты о падениях.
Чтобы поднять независимую статус-страницу, нужен отдельный VPS в нужной локации. У MAATRIX сервер готов за пару минут, с оплатой картой РФ, СБП или криптой — иностранная карта не требуется, и ваша страница остаётся онлайн, даже когда основная инфраструктура недоступна.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS под статус-страницуОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Чем статус-страница отличается от мониторинга?
Мониторинг — для вас (алерты, метрики), статус-страница — для пользователей (публичное состояние сервисов). Uptime Kuma совмещает оба, Gatus заточен именно под публичную страницу на конфиге.
Почему её нельзя ставить на основной сервер?
При падении основного сервера ляжет и страница — ровно когда она нужнее всего. Статус-страницу держат на отдельном независимом VPS, желательно в другой сети.
Uptime Kuma или Gatus?
Uptime Kuma — если нужен графический интерфейс и мониторинг со статус-страницей в одном. Gatus — если хотите всю конфигурацию в одном YAML-файле, который версионируется в git.
Как оплатить VPS под статус-страницу из России?
Картой РФ, по СБП, криптовалютой или токеном MAAT. Иностранная карта не нужна, отдельный сервер поднимается за пару минут.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.