Як самостійно розмістити Supabase на VPS

Опубліковано: від Dallas Kashuba
Як самостійно розмістити Supabase на VPS thumbnail

Ти вже кілька місяців користуєшся Supabase Cloud, і рахунок постійно зростає.

Кожен додатковий біт виходу з бази даних додає рядок в рахунок. Кожні 10,000 активних користувачів щомісяця наближають тебе до перевищення лімітів.

Тарифний план Pro, який раніше коштував 25 доларів на місяць, тепер виглядає як 70 доларів.

Десь між сторінкою цін та твоїм фактичним рахунком-фактурою економіка перестала здаватися вигідною.

Самостійний хостинг є очевидною альтернативою, але “очевидний” тут виконує багато роботи. Supabase — це не один бінарний файл, який ти кидаєш на сервер. Це повний backend стек — база даних Postgres, сервіс аутентифікації, REST API, реальні підписки, сховище, крайові функції та панель керування — все з’єднане разом і працює як мала флотилія Docker контейнерів.

Утримання цього флоту на власному сервері коштує від $12 до $25 на місяць за VPS з достатньою кількістю RAM для зберігання всього в пам’яті. Це дві підписки на стрімінг на місяць для backend, який не стягуватиме додаткові платежі, коли трафік зросте.

Що Таке Supabase, і Чому Люди Розміщують Його На Власних Серверах?

Supabase – це платформа Backend as a Service (BaaS) з відкритим вихідним кодом, яка поєднує базу даних Postgres, аутентифікацію, REST API, підписки в реальному часі, сховище та крайові функції в одному розгортанні.

Це альтернатива Firebase, яка працює на твоєму власному інфраструктурі, якщо ти цього захочеш. Репозиторій на GitHub перетнув позначку в 100,000 зірок станом на травень 2026 року, і платформа підтримує бекенди для таких корпорацій, як Mozilla, PwC, Johnson & Johnson та 1Password.

Питання в тому, чи хочеш ти взяти на себе операційну роботу, яку для тебе виконує Supabase Cloud, або заплатити комусь іншому, щоб зробити це. Ми говоримо про резервні копії, журнали, доставку електронної пошти та оновлення.

Люди самостійно розміщують Supabase з трьох причин:

  1. Вони хочуть передбачуваних витрат, які не зростають з використанням.
  2. Вони хочуть, щоб їхні дані зберігалися на інфраструктурі, яку вони контролюють. 
  3. Вони хочуть уникнути пастки залежності від постачальника, яка зробила вихід з Firebase таким болісним.

Supabase сам є відверто щирим щодо того, хто повинен і не повинен самостійно хостити. Офіційна документація про самостійне хостинг говорить чітко: “Самостійно розміщений Supabase підтримується спільнотою. Ти не отримаєш такого ж рівня офіційної підтримки, як клієнти Supabase Cloud.”

Переклад: Якщо щось зламається о 2 годині ночі, ти залишаєшся сам на сам.

Що Насправді Пропонує Supabase «З Коробки»

Стек Supabase, який показує основні сервіси: Postgres, REST API, авторизація, реальний час, зберігання, функції та API-шлюз.

Якщо ти думав, що Supabase – це просто “Postgres з REST API”, то це не так. Самостійно розміщений стек запускає близько 12 контейнерів паралельно.

Частини, з якими ти будеш контактувати найчастіше, досить прості:

  • Postgres. База даних у ядрі всього. Supabase використовує сучасну збірку PostgreSQL з розширеннями для авторизації, реального часу та повнотекстового пошуку.
  • PostgREST. Автоматично генерує REST API зі схеми Postgres. Таблиця перетворюється на кінцеву точку, і тобі не потрібно писати код для бекенду, щоб це сталося.
  • Auth (раніше GoTrue). Обробляє реєстрації, логіни, скидання паролів, OAuth та видачу JWT.
  • Realtime. Відправляє зміни в базі даних підключеним клієнтам через WebSockets.
  • Storage. Об’єктне сховище, сумісне з S3, з контролем доступу, пов’язаним з твоєю базою даних.
  • Edge Functions. Безсерверні функції на базі Deno, які працюють близько до твоїх користувачів.
  • Supabase Studio. Панель керування, де ти можеш переглядати таблиці, виконувати SQL-запити та керувати користувачами авторизації.

Ти також отримуєш Kong як API шлюз, imgproxy для обробки зображень, Supavisor для пулінгу з’єднань та Logflare для аналітики. Усе це разом складає повний backend стек, а не простий додаток.

Отримуйте вміст безпосередньо у свою скриньку

Підпишіться зараз, щоб отримувати всі останні оновлення безпосередньо у свою скриньку.

Скільки Коштує Самостійний Хостинг Supabase?

Самостійний хостинг Supabase на VPS коштує $12–$25 на місяць, включаючи сервер, сховище та пропускну здатність. Програмне забезпечення Supabase є безкоштовним.

Зайди на свій останній рахунок у Supabase Cloud на секунду. Пункт, який зазвичай несподівано збільшується, це не базові $25. Це вихідні дані бази даних та додаткове сховище, які в тарифному плані Pro нараховуються окремо (Розбір вартості Supascale на 2026 рік детально розходиться по пунктах).

Порівняйте це з Supabase Cloud:

ПланБазова ВартістьЩо Ти Отримуєш
Безкоштовно$0База даних 500 МБ
50 тис. активних користувачів щомісяця
1 ГБ сховища
Пауза після 7 днів неактивності
Про$25/місяцьБаза даних 8 ГБ
100 тис. активних користувачів щомісяця
100 ГБ сховища
250 ГБ вихідного трафіку
Команда$599/місяцьПріоритетна підтримка
Єдиний Вхід (SSO)
Журнали аудиту
Масштабування на основі використання
Самостійно розміщений VPS$12-$25/місяцьНеобмежено (обмежено лише місткістю сервера)

Базова ціна Pro виглядає порівняною, але реальне використання швидко її збільшує.

Аналіз Supascale показує, що більшість невеликих та середніх продуктивних додатків коштують від $100 до $200 на місяць на Pro після врахування додатків для обчислень та перевищення використання — тільки тарифи обчислень Supabase варіюються від $10 на місяць до $3,730 на місяць за інстанс 16XL. Додатки з 100K–200K активних користувачів на місяць можуть значно перевищити ці суми, а при 500K місячних активних користувачах рахунки можуть досягати $1,000–$2,000 на місяць.

Безкоштовний тариф є безкоштовним — поки ти не спробуєш використати його для виробництва.

Проекти автоматично призупиняються після семи днів неактивності, що означає, що твоє середовище підготовки “вмирає” щотижня, а твої побічні проекти ламаються кожного разу, коли ти йдеш у відпустку. Згідно з розкладом цін UI Bakery на 2026 рік, це найпоширеніша причина, чому люди залишають безкоштовний план швидше, ніж очікувалося.

Самостійний хостинг змінює рівняння. Твої витрати залишаються пов’язаними з твоєю інфраструктурою, а не з твоїм використанням. Обслуговування 50,000 MAUs коштує так само, як і 500,000, обмежене лише тим, що може витримати твій VPS. Без плати за вихідні дані, без перевищень за сховище, без додаткових обчислювальних можливостей.

Самостійний Хостинг — Це Не Просто Рахунок За VPS

Рахунок за VPS — це не єдина витрата на самостійний хостинг. Ти також витратиш гроші й іншими шляхами:

  • Твій час. Плануй одну-дві години на місяць на рутинне обслуговування, таке як оновлення безпеки, завантаження образів Docker, перевірка журналів та перевірка резервних копій. Залиш додатковий час, якщо додаєш функції чи масштабуєш.
  • Доставка електронної пошти. Supabase Cloud керує автентифікаційними електронними листами (наприклад, скидання паролів, магічні посилання, перевірка електронної адреси) як керована служба. Самостійне розміщення цього не робить. Тобі знадобиться SMTP-провайдер, як-от SendGrid, Mailgun або AWS SES. Плануй витрати $0–$30 на місяць залежно від обсягу.
  • Об’єктне сховище для файлів. Служба сховища за замовчуванням використовує локальну файлову систему, яка є доброю для тестування та критичною у виробництві. Тобі знадобиться сумісне з S3 об’єктне сховище — AWS S3, Backblaze B2, Wasabi або DreamObjects від DreamHost підійдуть. Бюджет $5–$20 на місяць для додатка малого або середнього розміру.
  • Інфраструктура резервного копіювання. Самостійне розміщення не включає автоматичні резервні копії, тому їх потрібно налаштувати самостійно. Напиши `простий pg_dump` Cron Job і збережи результат у надійному місці. Не ігноруй цю частину; твоє майбутнє я подякує тобі.

Які Технічні Характеристики Сервера Потрібні Supabase?

Supabase — зажерливий до пам’яті. Запуск 12 контейнерів одночасно, більшість з яких є прилеглими до бази даних, означає, що RAM має більше значення, ніж CPU. Практичний мінімум становить 4 GB для розробницького екземпляру з вимкненими необов’язковими сервісами. Для виробничих розгортань потрібно 8 GB або більше.

Причина полягає в кількості контейнерів, а не у якійсь одній послузі. Postgres потребує спільних буферів. PostgREST бажає пулу з’єднань. GoTrue потребує малого сліду для Go runtime. Realtime утримує відкриті з’єднання WebSocket. Edge Runtime запускає ізоляти V8.

Кожна послуга окремо є скромною. Разом вони швидко накопичуються.

Якщо ти раніше не налаштовував VPS, почни з нашого посібника для початківців по VPS перед тим, як визначити розмір свого сервера.

У DreamHost наш план Self-Managed VPS Stack 8 надає 8 GB RAM з NVMe SSD сховищем та повний доступ до Root, що є підходящим розміром для стандартного розгортання Supabase з усіма додатковими сервісами.

Якого Розміру VPS Потрібен Для Supabase?

НавантаженняRAMCPUПідходить Для
Розробка / легке4 GB2 ядраТестування, малі допоміжні проекти, аналітика та реальний час вимкнені
Стандарт виробництва8 GB4 ядраМалі SaaS-додатки, бекенди мобільних додатків, усі сервіси включені
Велике16 GB+4-8 ядерВисокий трафік, великі роботи з Postgres, Edge Functions на велику шкалу

Ти також можеш видалити необов’язкові сервіси з файлу Docker Compose, щоб зменшити його розмір.

Не потрібні підписки в реальному часі? Пропустіть контейнер Realtime.

Не використовуєш Edge Functions? Видали Edge Runtime.

Аналітика не критична? Відключіть Logflare.

Спрощений стек може більш комфортно розміститися на VPS з 4 GB.

Зберігання NVMe має більше значення, ніж можна було б подумати. Postgres постійно читає та записує, і затримка SSD безпосередньо впливає на швидкість виконання запитів. Старі диски SATA або обертові диски сповільнять тебе набагато раніше, ніж база даних стане цікавою.

Як Функціонує Налаштування Самостійно Розміщеного Supabase?

П'ятиетапний процес завантаження стеку: розгортання VPS, встановлення Docker, клонування репозиторію, генерація секретів, запуск Docker Compose.

Повне розгортання складається з п’яти кроків і займає від однієї до двох годин, якщо ти зручно почуваєшся в терміналі.

Ось що тобі потрібно зробити:

  1. Налаштуй VPS з Ubuntu 22.04 або новішою, 8 GB RAM і доступом SSH.
  2. Встанови Docker та Docker Compose на сервері.
  3. Клонуй репозиторій Supabase та скопіюй приклад файлу середовища: `git clone https://github.com/supabase/supabase && cp supabase/docker/.env.example supabase/docker/.env`
  4. Створи та встанови секрети. Запусти скрипт `generate-keys.sh` від Supabase для створення JWT_SECRET, ANON_KEY, і SERVICE_ROLE_KEY, потім встанови POSTGRES_PASSWORD та дані для входу в панель керування в файлі .env.
  5. Запусти `docker compose up -d` з директорії docker, і повний стек буде запущено.

Ти зрозумієш, що все спрацювало, коли `docker compose ps` покаже кожну службу у стані `running` або `healthy`, а `curl http://localhost:8000/rest/v1/` поверне JSON відповідь від PostgREST.

Якщо будь-який контейнер знаходиться в стані `restarting` або `exited`, спочатку перевір логи цього контейнера. Зазвичай проблема полягає в Postgres, і причиною зазвичай є відсутність або неправильне формування env var.

Офіційна документація Supabase Docker для самостійного хостингу проведе тебе через кожну змінну середовища.

Kong, шлюз API, знаходиться перед усім і обробляє маршрутизацію. У продакшені зазвичай встановлюють зворотній проксі-сервер (сервер, який розміщується між інтернетом та вашим додатком, обробляє SSL та маршрутизацію), такий як Caddy або Nginx перед Kong, щоб завершувати HTTPS та обмежувати доступ до панелі керування.

Збережи свої JWT_SECRET, ANON_KEY та SERVICE_ROLE_KEY у надійному місці відразу після їх генерації. Втрата їх не є катастрофічною, оскільки ти можеш їх згенерувати знову, але це змусить всі активні сесії користувачів завершитися і всім клієнтським додаткам отримати нові ключі.

Що Тобі Знадобиться Для Самостійного Хостингу Supabase

  • VPS, який працює на Ubuntu 22.04+ з щонайменше 8 GB RAM та доступом Root/SSH
  • Доменне ім’я, яке вказує на IP вашого сервера
  • Встановлені Docker та Docker Compose
  • Настроєний провайдер SMTP для автентифікації електронних листів (SendGrid, Mailgun, AWS SES)
  • Сумісне з S3 об’єктне сховище для завантаження файлів у продакшн (необов’язково, але рекомендується)
  • Базове розуміння роботи з терміналом та приблизно одна-дві години часу

Як Забезпечити Безпеку Самостійно Розміщеного Екземпляра Supabase?

Безпека саморозміщеного Supabase базується на трьох основних стовпах, специфічних для платформи, а також на стандартній гігієні VPS.

Три вразливості безпеки бази даних: відкритий секрет JWT, незахищені таблиці та компрометація контролю доступу ключем супер-адміністратора.

Секрет JWT

Кожен токен авторизації, що видає Supabase, підписується вашим JWT_SECRET. Якщо він потрапить у чужі руки, нападники можуть створювати токени, які імітують будь-якого користувача.

Документація Supabase про безпеку токенів пояснює, як це працює: “Спільний секрет, який потрапляє в руки шкідливого актора, може бути використаний для імітації ваших користувачів [та] надання їм доступу до привілейованих дій або даних, і важко виявити чи ідентифікувати, коли або як спільний секрет був переданий шкідливому актору.”

Ставтеся до JWT_SECRET як до пароля продакшн-бази даних, адже функціонально це саме те, що воно й є. Зберігайте його в менеджері секретів, а не у файлі `.env` у Git, і ніколи у вашому frontend пакеті.

Рекомендований шлях виробництва – це асиметричні ключі підпису (RS256 або ECC). Вони важче витекти випадково, ніж спільний секрет, і Supabase підтримує обидва.

Рівнева Безпека Рядків

Сервіс PostgREST від Supabase надає доступ до кожної таблиці у вашій базі даних як до REST кінцевої точки.

Без політик безпеки на рівні рядків у кожній таблиці кожен авторизований користувач може читати та записувати кожен рядок. Це найбільша помилка нових користувачів, які самостійно розміщують хостинг.

Активуй RLS на кожній таблиці з першого дня, включаючи таблиці, про які ти думаєш, що вони не потребують цього.

Ключ Ролі Сервісу

SERVICE_ROLE_KEY — це ключ суперадміністратора, який повністю обходить рівневу безпеку рядків.

Це призначено для викликів з backend у backend, коли тобі явно потрібно пропустити дозволи на рівні користувача. Ключ ніколи не повинен з’являтися у коді frontend, публічних репозиторіях або пакетах клієнтських додатків. Якщо він витече, твоя ціла база даних буде відкрита.

Крім занепокоєнь, специфічних для Supabase, застосовується стандартне посилення сервера. Вмикай файєрвол, який відкриває лише порти 22 (SSH), 80 (HTTP) і 443 (HTTPS). Запускай все за зворотнім проксі з HTTPS. Обмеж Supabase Studio відомими IP-адресами та тримай сервер оновленим. Наші поради щодо безпеки в хмарі охоплюють загальний перелік заходів посилення, тож тобі варто на них поглянути.

Останнє зауваження: обертання JWT секрету негайно анулює всі активні сеанси користувачів. Заплануйте вікно обслуговування та не робіть це в п’ятницю вдень — інакше у вас буде поганий день.

Які Компроміси Між Самостійним Хостингом та Supabase Cloud?

Саморозміщений Supabase та Supabase Cloud не є взаємозамінними. Кожен має переваги в різних аспектах.

ФункціональністьСамостійне РозміщенняSupabase Cloud
Місячна вартість$12-$25 VPS + доповнення$25 база + перевищення використання
Масштабування понад базуОбмежено вашим VPSАвтоматично (за ціною)
Автоматизовані резервні копіїЗроби це сам (pg_dump cron)Щоденне автоматизоване + PITR
Журнали (PostgREST, Edge Functions)Стек спостереження зроби самВбудовано в панель керування
Редагування Edge FunctionsЛише CLIРедактор в панелі
Доставка електронної поштиПровайдер SMTP зроби самКерований
ПідтримкаСпільнота (GitHub, Discord)Платні рівні з SLA
Розташування данихДе захочешХмарні регіони Supabase
ДотриманняТи володієш цимНеобхідний Pro+

Самостійний хостинг має сенс, коли передбачувані витрати мають більше значення, ніж керована зручність, коли тобі потрібно мати дані фізично на інфраструктурі, яку ти контролюєш, або коли ти ведеш кілька проєктів, кожен з яких коштував би більше ніж $25 на місяць у Хмарі.

Хмарні рішення перемагають, коли операційна потужність обмежена, а автоматизовані резервні копії та гарантія безвідмовної роботи з підтримкою SLA є обов’язковими. Це також хороший вибір, коли ваша команда мала і загальна вартість володіння реально вигідніша за керований хостинг.

Також існує проміжний варіант.

Інструменти як Coolify, Dokploy, і Railway можуть розгортати та керувати Supabase на вашому VPS, забезпечуючи оновлення, резервні копії та деяку обсерваційність без повного ручного підходу Docker Compose.

Простіше кажучи, ти отримуєш більшу частину економіки самостійного хостингу з меншими операційними витратами. Жоден з них не дотягує до поліровки панелі керування Cloud, але всі вони коштують менше, ніж Cloud на великому масштабі.

Чи Справді Варто Самостійно Розміщувати Supabase?

Самостійний хостинг Supabase – це не стільки фінансове рішення, скільки операційне.

VPS є дешевим. Ти фактично реєструєшся для володіння резервними копіями, журналами та системою управління автентифікаційними електронними листами. Для більшості малих команд цей обмін має сенс тільки тоді, коли ціни на хмарні сервіси починають бути високими або коли місце зберігання даних перестає бути додатковою перевагою та стає вимогою.

Якщо ти ще не готовий до повної ручної налаштування, інструменти на кшталт Coolify та Dokploy займають середину. Вони керуватимуть стеком на твоєму VPS з меншими накладними витратами, ніж чистий Docker Compose, і за нижчу вартість, ніж Cloud, коли ти збільшуєш масштаб.

Перший місяць самостійного хостингу – це важкий період. Ти змінюватимеш ліміти ресурсів, про які не знав, виявлятимеш режими збоїв, які ніхто не документував, і писатимеш посібник, який би хотів отримати від когось іншого.

Місяці з другого по дванадцятий стають тихими. Ти тягнеш оновлення за допомогою Docker Compose, виконуєш нічний pg_dump до S3, і твій рахунок залишається незмінним.

Найкращий спосіб дізнатися, на якій стороні ти знаходишся: запусти VPS за 12 доларів, використовуй непродуктивний екземпляр Supabase протягом тижня, і дозволь досвіду вирішити за тебе.

Економіка розповість тобі решту.

VPS

Володійте всім своїм стеком. Застосунки, ШІ, бази даних і не тільки.

Зберігайте всі облікові дані та листування на сервері, який контролюєте ви, — зі швидкістю NVMe та безлімітним трафіком із коробки.

Переглянути плани VPS-хостингу

Часті Запитання Про Самостійний Хостинг Supabase

Не впевнений, чи самостійний хостинг Supabase — це правильне рішення? Нижче наведено деякі запитання, які більшість людей ставлять перед тим, як зробити цей крок.

Чи дійсно самостійно розміщений Supabase безкоштовний?

Саморозміщений Supabase безкоштовний, програмне забезпечення з відкритим кодом, ліцензоване за Apache 2.0. Твої фактичні витрати – це VPS, необов’язковий постачальник SMTP для авторизаційних листів та необов’язкове сховище, сумісне з S3, для завантаження файлів у продакшн. Бюджет приблизно $15 до $50 на місяць загалом для маленького продакшн-розгортання.

Який сервер мені потрібен для самостійного хостингу Supabase?

Рекомендована продуктивна специфікація включає 8 ГБ RAM, 4 ядра CPU та сховище NVMe SSD. Повний стек Supabase запускає близько дюжини контейнерів, і більшість з них утримують робочу пам’ять.

Ти можеш запустити мінімальний розробницький екземпляр на 4 ГБ, якщо відключиш Analytics, Realtime та Edge Runtime у своєму файлі Docker Compose. VPS, що самостійно керується DreamHost, план Stack 8 забезпечує 8 ГБ RAM з повним доступом Root; переглянь наші плани VPS хостингу для повного асортименту.

Які функції відсутні у саморозміщеному Supabase?

Найбільші прогалини – це автоматизовані резервні копії баз даних, відновлення за конкретний момент часу, редагування функцій edge з панелі керування, уніфіковані журнали для PostgREST та Edge Functions та керована доставка електронної пошти. Ти можеш побудувати заміну для всіх їх (наприклад, `pg_dump` Cron Job, власний стек спостереження, провайдер SMTP), але нічого не є вбудованим. Панель керування Supabase Studio працює на саморозміщеному сервері, але панель Cloud має більше полірування та новіші функції спочатку.

Як оновити самостійно розміщений екземпляр Supabase?

Запусти `docker compose pull`, щоб завантажити останні зображення, потім `docker compose up -d`, щоб перезапустити з новими версіями. Весь оновлювальний процес займає близько п’яти хвилин на працюючому екземплярі.

Створіть резервну копію своєї бази даних Postgres за допомогою `pg_dump` перед будь-яким великим оновленням версії, закріпіть свої образи Docker за певними тегами версій у продакшені та читайте примітки до випуску Supabase для виявлення критичних змін. Послуги автентифікації та зберігання час від часу вимагають кроків міграції.

Чи можу я перейти з Supabase Cloud на самостійне розміщення?

Так, але це вимагає більше, ніж експорт бази даних. Дані Postgres мігрують за допомогою `pg_dump` з Cloud і `pg_restore` на самостійно розміщених. Користувачі автентифікації, об’єкти сховища та крайові функції мають свої власні шляхи міграції.

Плануй кілька годин роботи для маленького проекту та більше часу для складних схем.