У меня дома стоит тихий 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 стек на своём железе окупится в человеческом понимании техники в десять раз быстрее, чем любой курс.
А если нужен человек, который соберёт всё это вам и не сбежит через три месяца — вы знаете, где меня найти.