← Ко всем заметкам

Почему прод я держу на своём железе

Self-hosting для меня — не хобби и не ностальгия. Это рациональный выбор, который экономит деньги, даёт контроль и учит DevOps быстрее, чем любой курс. Почему — и как я это устроил.

  • devops
  • self-hosting
  • infrastructure

У меня дома стоит тихий Ryzen-сервер с ECC-памятью, NVMe-рейдом и резервным питанием. На нём живут GChat, dragekorn.online, несколько pet-проектов и бэкапы клиентских баз. В AWS и Vercel у меня аккаунтов нет.

Каждый раз, когда я это рассказываю, половина собеседников думает «дикарь», вторая половина — «красавчик». Правда обе реакции про эстетику, а не про инженерию. Поэтому давайте по делу.

Почему не AWS/Vercel/Netlify

Три причины, в порядке важности.

1. Экономика. Мой прод-стек на self-hosted сервере стоит ~$0 сверх капитальных затрат (которые окупились за шестнадцать месяцев по сравнению с VPS на hetzner, и за четыре месяца по сравнению с AWS на тех же объёмах трафика). Я не плачу за исходящий трафик, за CloudWatch-метрики, за per-invocation и прочие «да у нас же всё дёшево, пока ты не вырос».

2. Контроль данных. В криптопродукте это не опциональная фича. Я хочу знать, кто физически имеет доступ к диску, где крутится Postgres с метаданными. В облаке этот список у тебя просто отсутствует. Он у вендора.

3. Скорость мышления. Когда ты сам настроил systemd, nginx, backup’ы, мониторинг — ты не боишься производственных инцидентов. Ты знаешь, где искать. В облаке ты всегда на расстоянии консоли вендора, и всегда на расстоянии незнания от первопричины.

Что это не

Self-hosting — это не «поставил Ubuntu и забыл». Это не «Raspberry Pi под кроватью с торрентами». Это не «у меня Kubernetes дома и я теперь инженер».

Это дисциплина инфраструктуры, применённая в моей комнате. Конкретно:

  • UPS с автоматическим shutdown при падении питания больше минуты.
  • ECC-память и btrfs/zfs с scrub по расписанию.
  • Offsite-бэкапы в шифрованный rclone-мирор каждый день в 03:00 UTC.
  • Мониторинг (Prometheus + Grafana + Alertmanager) с Telegram-уведомлениями.
  • Два провайдера интернета с автопереключением через mwan3.
  • Wireguard VPN в единую L3-сеть со всеми моими устройствами.

Если снять какой-то пункт — это уже хобби, а не прод. Я честно об этом предупреждаю каждого, кто говорит «слушай, я тоже хочу».

Как это работает на практике

Front-door — Caddy с автоматическими Let’s Encrypt. За ним Coolify как UI для Docker Compose стеков. Каждый проект — это отдельный git-репозиторий с CI, который пушит образ в локальный Docker-registry, а Coolify подхватывает по webhook.

База — Postgres в отдельном контейнере, с WAL-архивированием в офсайт-хранилище. Redis — в памяти, с дампом каждые шесть часов (для рабочих очередей этого хватает). Для GChat дополнительно — ключевое хранилище на шифрованном loop-устройстве, которое монтируется только на время работы сервиса.

Мониторинг: Prometheus собирает метрики, Grafana рисует дашборды, Loki парсит логи, Alertmanager шлёт мне Telegram-сообщения. Пока сидишь, пьёшь кофе — всё видно.

Что я потерял, отказавшись от облака

Честный список, без подрисовок:

  • Я не могу взрывом масштабироваться с 1 req/s до 10k req/s за минуту. Если GChat внезапно станет хитом — я буду докупать железо, а не слайдить ползунок.
  • Мне нельзя умереть. Если меня сбила машина — через пять дней у меня не работает прод, потому что некому менять лента в UPS. Это решается инструкциями для близких + наследник через dead-man’s switch, но это работа.
  • Нет «отскока» на поддержку вендора. Когда что-то ломается — это ломается у меня.

По мне это честная сделка. Я торгую гипотетическое масштабирование и бесплатную страховку на реальные контроль, деньги и понимание.

Кому это подходит

Не всем. Если вы запускаете стартап, где через полгода может быть десять миллионов пользователей, — конечно, идите в облако. Вам надо экономить на человеко-часах, а не на аренде.

Но если вы:

  • Ведёте пет-проект, который может стать продуктом, и хотите всё понимать сами;
  • Работаете над чем-то, где контроль над данными важнее абстрактного uptime;
  • Хотите действительно понять DevOps, а не пройти сертификат, —

то self-hosted стек на своём железе окупится в человеческом понимании техники в десять раз быстрее, чем любой курс.

А если нужен человек, который соберёт всё это вам и не сбежит через три месяца — вы знаете, где меня найти.