В каждой привычке self-hosting наступает момент, когда перестаёшь хотеть по серверу на каждую вещь. Есть приложение, его БД, может n8n для автоматизаций, дашборд статуса, небольшой API — и держать каждое на своём крошечном VPS значит пять IP, пять счетов, пять машин для патчей. Аккуратнее и дешевле — на одной машине за одним IP.
Приём, который это делает возможным — reverse proxy. Caddy, nginx или Traefik сидит на публичных портах 80/443 и роутит по хостнейму: app.you.com → приложение, n8n.you.com → n8n, db-admin.you.com → админка. Каждый сервис слушает только localhost; прокси — единственная публичная дверь, и он сам выдаёт каждому поддомену свой HTTPS-сертификат.
Тариф под это
Medium-IP ($20/мес) — естественный выбор: 6 vCPU, 6 ГБ RAM, 45 ГБ NVMe, выделенный IPv4 со всеми открытыми портами. Место для горстки небольших сервисов с их БД, не дерущихся за ресурсы.
Две честные границы:
- Если реально гоняете одно приложение плюс БД, Medium не нужен — Small-IP ($16) справится.
- Если сервисы требовательны к памяти — большая БД, крупное векторное хранилище, in-memory — упрётесь в потолок RAM быстро, и там high-memory Pro разумнее, чем стек на 6-гиговой машине.
Форма настройки
# Ubuntu 24.04, Medium-IP — Docker + Compose, Caddy как парадная дверь
curl -fsSL https://get.docker.com | sh
# docker-compose.yml: сервисы на localhost, Caddy роутит по поддоменам
# Caddy авто-выдаёт HTTPS для каждого хостнейма, направленного на IP
docker compose up -d
Направьте A-записи поддоменов на один IP, перечислите в Caddyfile, и каждый сервис поднимается на своём чистом HTTPS-URL. Добавьте reverse DNS из кабинета, если что-то из них шлёт почту.
Почему здесь
Один выделенный IP под вашим контролем, всё за ним, оплата единым фиксированным крипто-счётом без KYC. Это паттерн homelab-на-VPS: ваш стек, ваша машина, одно предсказуемое месячное число. Когда одной машины перестаёт хватать — выносите самый тяжёлый сервис на отдельную, но большинство долго живут на одной. Medium-IP — с чего это начинается.
Комментарии
Пока нет комментариев. Будьте первым.