Инфраструктура
Состояние проектов
Все проекты живут на одной машине, и любой из них может слечь незаметно. Здесь видно, что отвечает прямо сейчас — и как быстро.
Читаю снимок состояния…
Зачем эта страница
Zoo-Land пролежал с ошибкой 500 неизвестно сколько времени и нашёлся случайно — при обходе сайтов глазами по другой задаче. По кодам ответа страница выглядела целой, потому что никто их не смотрел. После этого появился deploy/check.sh: двадцать адресов за один прогон. Эта страница — его продолжение, чтобы результат был виден не только в терминале.
Почему это снимок, а не монитор
Опрашивать демо-сайты прямо из браузера не получится: запросы кросс-доменные, и CORS у них закрыт — первая попытка сделать страницу живой дала «Failed to fetch» на все адреса. Проверяет curl, результат сохраняется в status.json рядом с сайтом, страница его читает. Настоящий монитор — это служба с расписанием и историей; её здесь нет, и выдавать снимок за неё нечестно.
Откуда берётся версия
Только из того, что сайт объявляет о себе сам — тега <meta name="generator">. Пять WordPress-сайтов из шести его отдают; тема Melanj этот тег убирает, а Laravel, Angular, React и FastAPI своей версии наружу не сообщают вовсе. В таких строках стоит «не сообщает»: подставить версию из своих записей означало бы показывать не проверенное, а запомненное.
Что означает время ответа
Полное время запроса из Казахстана до сервера во Франкфурте, включая установку TLS-соединения, — а не время работы PHP. Отсюда секунда с лишним даже у статической страницы. WordPress-сайты медленнее не из-за тем: у всех шести общий MariaDB и общий PHP-FPM на двух ядрах ARM.