«У мене ноутбук M3 Pro на 16 ГБ оперативки, навіщо мені сервер усього на 4 ядра та 8 ГБ?»

На сабредіті r/indiehackers це одне з найчастіших питань від новачків. У часи, коли правлять Serverless (на кшталт Vercel) та PaaS (як-от Supabase), VPS (Virtual Private Server, віртуальний виділений сервер) може здаватися чимось трохи «олдскульним».

Але реальність така: розробники-одинаки, які справді зуміли замкнути бізнес-цикл і вийти на стабільний прибуток, обов’язково мають під рукою кілька VPS.

Ця стаття відштовхується від 7 ключових больових точок інді-розробки. Ми детально розберемо, чому VPS — це твій обов’язковий крок до професіоналізму та шлях відмовитися від статусу «тільки іграшки з кодом».


1. Позбавляємось «локальної тривожності»: вирішуємо проблему чорної діри для місця від node_modules та Docker

Найдорожчий актив інді-розробника — це його ноутбук, а найдешевший ресурс у нього — жорсткий диск. Ця хвиля AI-програмування переважно крутиться навколо NextJS, що, своєю чергою, тягне за собою справжню катастрофу з node_modules. До речі, cc теж чомусь любить підтягувати bb. Якщо придивитися до того, як виконується cc, можна помітити, що воно постійно щось пише до директорії /tmp.

  • Біль: подвійне висушування диска та продуктивності

    • Вибух node_modules: тримаєш одразу 10 проєктів — node_modules з’їдає 50+ ГБ твого SSD.
    • Навали Docker-образів: запуск контейнерів локально робить систему млявою, а кулери вять на повних.
    • Навантаження на процесор: локальний запуск middleware на кшталт PostgreSQL чи Redis суттєво гальмує відгук IDE.
  • Рішення: VPS як «важкий обчислювальний хаб»
    Ти залишаєш на ноуті лише легенький VS Code + Cursor і підключаєшся до VPS через Remote SSH. Усі важкі залежності та середовища крутяться у хмарі, а ноут бере на себе лише відмальовування UI.

Node Model

2. Кажемо «ні» «вимаганню рахунків за SaaS»: контролюємо витрати через призму бізнес-логіки

Найбільший страх інді-розробника — це не відсутність юзерів. Найстрашніше, коли клієнти ще не заплатили, а рахунок за SaaS вже прилетів. За останні кілька років, роблячи AI-проєкти, неможливо не натрапити на інструменти на кшталт supabase чи clerk. Та й Vercel, якщо чесно, так само: на старті все виглядає супер, кайфуєш від процесу, а потім — бац, і рахунок вибухає. У Vercel є одна дуже кумедна пастка — їхній Image-компонент. Під час білду він люб’язно підказує: “а краще юзайте <Image”. Звучить турботливо, правда? Але фішка в тому, що цей компонент по дефолту ганяє трафік через сервіс оптимізації зображень Vercel — і за кожну оптимізовану картинку з тебе знімають гроші. На сайтах з великим трафіком одні лише витрати на оптимізацію картинок можуть легко перевищити вартість самого хостингу.

Безкоштовний план Vercel Hobby виглядає дуже заманливо — деплой, CDN та SSL вже включені. Але як тільки твій проєкт отримує реальний трафік, починається кошмар.

Ось як виглядає їхня тарифікація за перевищення лімітів:

Ресурс У плані Pro Ціна за перевищення
Пропускна здатність 1 TB/міс $0.15/GB (тобто $150/TB)
Edge-запити 10 млн/міс $2/млн
Час виконання Serverless 40 годин/міс $5/годину
Оптимізація зображень 5000 шт/міс $5/1000 шт
  • Біль: ціна розширення, яка бере в заручники

    • Пастка PaaS: у Firebase щедрий безкоштовний ліміт, але щойно заходять у складні бекапи або високий паралелізм — ціна злітає експоненційно.
    • Плата за авторизацію: сервіси на кшталт Clerk беруть гроші за щомісячних активних користувачів, що стає кошмаром для проєктів із високою частотою звернень і низьким чеком.
  • Рішення: повноцінний self-hosting усього стеку
    На VPS за $5/місяць можна витиснути максимум продуктивності через Docker і одночасно крутити: базу даних (PostgreSQL), систему авторизації (PocketBase) та аналітику (Umami).

图 2:SaaS 订阅 vs. VPS 固定成本曲线对比

💡 Чесно кажучи: self-hosting таки вимагає певних навичок DevOps. Але нещодавно багато закордонних розробників поділилися досвідом підтримки власного PostgreSQL — це набагато простіше, ніж здається, особливо з Docker і скриптами автобекапу. Далі я детально розповім, як це зробити.

3. Справжній CI/CD: будуємо автоматичний пайплайн для «IT-відділу з одного человека»

Головна суперсила соло-розробника — це швидкість ітерацій. На ранніх етапах, коли треба швидко перевірити попит на ідею, деплоїти на serverless-платформи типу Vercel, Cloudflare чи Netlify — просто топ. Але в них є один мінус: їхня реалізація Node.js не завжди повна, тож довгі задачі там просто не запустяться. Раніше від такого локальна машина починала ревіти, як турбіна, але завдяки GitHub Actions про це можна більше не паритись. На виході ти просто отримуєш готовий Docker-образ, а далі — поїхали, злітаємо!

  • Ліміт часу виконання: У serverless-функцій зазвичай є тайм-аут від 10 до 60 секунд (часто за замовчуванням стоїть рівно 10с)

  • Немає постійних процесів: WebSocket, довгі з’єднання та фонові задачі там — суцільний біль

  • Затримка холодного старту: Перший запит може зависнути на кілька секунд

  • Біль: ручне розгортання — це неефективно й помилково
    Якщо ви досі вручну запускаєте git pull, то не просто марнуєте час, а ще й підвищуєте ризик продакшн-аварій.

  • Рішення: легковісна автоматизація на базі VPS
    Запускаємо GitHub Actions Runner на VPS:

    1. Git Push тригерить пайплайн.
    2. VPS автоматично підтягує код і збирає Docker-образ.
    3. Docker Compose автоматично перезапускає контейнери, забезпечуючи оновлення без даунтайму.

图 3:基于 VPS 的自动化 CI/CD 流水线示意图

Не знаю, чи через це, але зараз cloudflare теж не особливо просуває pages, знову повернулися до worker — якось не дуже зручно, як гадаєш?

4. Подолання “мережевих бар’єрів”: від тихого скрейпінгу до доступу з-за кордону

Багато проєктів не запускаються локально не через код, а через мережеве середовище. Різні npm-пакети чи інші ресурси, потрібні для розробки, часто через мережу змушують вас нервувати, виснажуватися, мучитися та злитися до стану.

  • Біль: мінливі IP та обмежений вихід у мережу

    • Потреба у фіксованому IP: коли інтегруєшся зі Stripe, PayPal чи банківськими API, зазвичай треба вносити постійний публічний IP у білий список. Динамічний IP домашнього інтернету тут просто не працює.
    • Проблеми з мережею: багато npm-пакетів, Docker-образів та ресурсів з GitHub, потрібних під час розробки, часто зводять з розуму через мережеві швидкості чи блокування.
    • Бани від анти-скрейпінгу: якщо робиш проєкт, пов’язаний зі збором даних, домашній IP дуже швидко ловить бан від анти-ботових захистів.
  • Рішення: VPS як глобальний мережевий хаб

    • Постійна ідентифікація: дає твоєму бізнесу постійний публічний IP, тож Stripe Webhook та OAuth-колбеки працюватимуть стабільно.
    • Центр зворотного проксі: один VPS разом із Nginx або Caddy дозволяє керувати 10+ доменами та проксувати їх на різні локальні порти.
    • Прискорення середовища розробки: npm install та docker pull запускаються на VPS — завантаження літає, і ти більше не залежиш від обмежень локальної мережі.

image.png

Маю особисту ворожнечу з nginx proxy manager — вже кілька разів таке було: його Docker-образ розгортається десь на 10 ГБ простору. В голові не вкладається, навіщо стільки, коли Caddy набагато компактніший і легший.

5. Оберігаємо «пасивний дохід»: моніторинг 24/7 і відмовостійкість

Найбільший біль інді-розробника — прокинутись вранці й зрозуміти, що сервіс лежав цілу ніч, а ти навіть не здогадувався. (Сподіваюсь, для вас це лише теорія: до проєктів, що реально приносять гроші, ставишся зовсім інакше і тримаєш усе під контролем!)

Проблема: немає вартового

  • Локальний комп’ютер засинає, тож не годиться для постійного моніторингу
  • Безкоштовні зовнішні сервіси моніторингу рідко перевіряють стан (наприклад, раз на 5 хвилин) — до моменту виявлення збою юзери вже розбіглися
  • Багато проблем мають «епізодичний» характер: поки ви вручну перевіряєте, все вже знову працює як треба

Рішення: власна станція моніторингу

Розгортаємо Uptime Kuma (чи щось подібне) на VPS, щоб перевіряти доступність з різних куточків світу кожні 30-60 секунд. Щойно сервіс лягає, ви миттєво отримуєте сповіщення в Telegram, Discord або на пошту.

Рекомендований чек-лист для моніторингу:

Що моніторимо Частота перевірки Як сповіщає
HTTP статус-код 60 секунд Миттєве сповіщення в Telegram
Закінчення SSL-сертифіката Щодня Попередження за 14 днів до кінця терміну
Ресурси сервера 5 хвилин Алер при перевищенні CPU/RAM на 80%
Підключення до БД 60 секунд Миттєвий алер при збої підключення

Просунуті фішки:

  • Uptime Kuma для моніторингу аптайму
  • Bezel або Netdata для моніторингу ресурсів сервера — Bezel реально крутий у використанні. Netdata трохи важкуватіший.
  • Якщо поєднати обидва інструменти, отримаєте повноцінний замкнений цикл моніторингу.

image.png

image.png

image.png

6. Суверенітет даних: «остання лінія оборони» інді-розробника

  • Біль: ризик залежності від платформи

    Якщо всі ваші дані лежать у Firebase, а одного разу акаунт банять через якісь комплаєнс-питання — уесь ваш важкий труд миттєво обнулиться.

  • Рішення: локальне зберігання на VPS + офсайт-бекапи

    • Ізоляція даних: файли бази даних повністю належать вам.
    • Автоматизовані бекапи: напишіть простий Cron-таск, який щодня за розкладом шифрує дані та синхронізує їх у S3 або на ваш локальний диск.

image.png

7. Планування ресурсів інді-розробника: стратегія «1 + N»

Для типових сценаріїв розробки у 2026 році радимо зібрати таку конфігурацію:

Тип Рекомендовані характеристики Головна роль
1 головний сервер 2 ядра 4 ГБ або 4 ядра 8 ГБ Запуск Nginx, основної бази даних, ключових продуктів.
N серверів-ворожих 1 ядро 1 ГБ або менше Запуск Uptime Kuma для моніторингу, невеликих скрейперів, тестового середовища.

Навіщо розділяти?

  • Сервіси моніторингу не повинні крутитися на тій самій машині, що й сервіси, які ви моніторите — інакше, коли сервер ляже, ви просто не отримаєте сповіщення.
  • Тестове та продакшн-середовища мають бути ізольовані, щоб уникнути випадкових багів через людський фактор.
  • Кілька маленьких серверів дають набагато більше гнучкості, ніж один великий.

image.png

На Reddit Hetzner раз у раз називають «королем співвідношення ціни до якості»: за ті самі гроші ви зазвичай отримуєте конфігурацію в 2-3 рази потужнішу, ніж у американських хмарних провайдерів. Мінус лише в тому, що їхні дата-центри переважно в Європі, тому для азійських користувачів затримка буде вищою.

Як то кажуть? База даних — то річ потрібна. Якщо часу обмало, краще брати щось на кшталт neon чи supabase.

Підсумок: квиток у професійну лігу

З того моменту, як у тебе з’явився власний VPS, ти перестаєш бути просто «тим, хто пише код», і стаєш справжнім «господарем системи». Він дає тобі:

  • Визначеність: локальне середовище більше не буде вносити хаос у твою роботу.
  • Безперервність: твій продукт працює цілодобово, самостійно і без перебоїв.
  • Комерційність: масштабувати бізнес можна з мінімальними витратами на кожен новий крок.

Як кажуть у колах інді-розробників: «Перша IP-адреса твого сервера — це перша візитка твого продукту.» (Я сам це вигадав, але звучить солідно!)