TGViewer
MetaLamp | CIS MetaLamp | CIS @metalampru · 1.6K subscribers
Post #695 679
Coolify теперь чуть менее клевый, но это не его вина

Решил я в понедельник развернуть на тестовом стенде один из внутренних проектов. Сейчас это по сути набор сверстанных страниц на react/nextjs.

Разворачивать решил на хостинге timeweb.cloud с помощью Coolify. Вы сразу спросите (или не спросите): а зачем timeweb, он ведь не самый стабильный хостинг в ру-сегменте? Все в порядке, там крутятся либо тестовые стенды либо внутренние проекты. Проще оплачивать через СБП. Остальные его плюшки и проблемы заслуживают отдельного поста.

Про Coolify мы уже писали, вот тут, с ним задеплоить приложение суперпросто и быстро, особенно frontend. Если Coolify уже развернут, достаточно подключить по ssh новый сервер, добавить нужный репозиторий, прописать DNS записи для какого-нибудь домена/поддомена и указать переменные окружения. Все остальное Coolify сделает сам:

• нет docker — ну не беда, сам посмотрит что за приложение, и скорее всего поймет как его деплоить, какие скрипты запускать;
• сам настроит traefik, выпустит сертификаты и тд;

Но в этот раз что-то пошло не так. Сборка проходит, контейнер запускается, Next.js слушает 0.0.0.0:3000 — а сайт не открывается. ERR_TIMED_OUT.

Что только не проверяли: сети docker, labels для traefik, порты, DNS. Всё на месте. Traefik работает, контейнер работает, друг друга видят. Но сайт — нет.

Копнули глубже — проблема в SSL. Let's Encrypt не мог выдать сертификат, Traefik редиректил HTTP → HTTPS, HTTPS без сертификата — таймаут. Замкнутый круг.

Почему не выдавал сертификат? Запустили letsdebug.net и увидели:

«A timeout was experienced while communicating with 37.252.21.88 over port 80»


Серверы Let's Encrypt просто не могут достучаться до российских IP. Порт 80 снаружи — недоступен.

Вот и весь детектив. Решили переехать на хостер вне России. Hetzner, DigitalOcean и всё заработало бы с первого раза без танцев с бубном.

Coolify тут ни при чём. Но магия, к которой я привык — «подключил репо, всё само заработало», немного угасла. Потому что теперь появился ещё один шаг: думать про сертификаты отдельно. И это на внутреннем проекте, где я сам волен выбирать где хоститься.

В продакшене всё сложнее, т.к. условия диктует бизнес. Где хоститься, какие требования к инфраструктуре. И если придётся получать сертификаты через какую-нибудь минцифру — это уже совсем другая история.

P. S. Раз уж заговорили о сертификатах: если у вас есть скрипты с автообновлением, срочно проверьте их. Убедитесь что в очередной период обновления всё не сломается тихо и незаметно.

#михаил_дашкевич

🤟 Сайт | ТГ-канал | Наш чат
More from @metalampru
  1. Sep 17, 2026Uniswap v4 hooks were a mistake Это всего лишь громкий заголовок в статье от 0x. Моя лента…
  2. Sep 15, 2026Post #706
  3. Aug 31, 2026❣️ Tenderly: история верификации от первого лица Когда постоянно пользуешься Tenderly для…
  4. Aug 13, 2026🔐 Опенсорс как бизнес, что нужно институционалам и про безопасность DeFi: разговор с Ники…
  5. Aug 6, 2026Сказ о том как я ИИ-сотрудника искал Обложку для поста я видел несколько месяцев назад, до…
  6. Aug 3, 2026Post #702
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →