Що встановлено на вашому сервері Supabase?
- Офіційне налаштування Supabase на Docker, зафіксоване на тегу релізу v1.26.08
- PostgreSQL 17 і екран адміністратора Studio
- Служби Auth, PostgREST, Realtime, Storage та Edge Runtime в наборі
- Пул підключень Supavisor з відкритими портами 5432 і 6543
- SUPABASE_PUBLISHABLE_KEY, SUPABASE_SECRET_KEY, ANON_KEY, SERVICE_ROLE_KEY і POSTGRES_PASSWORD, згенеровані офіційними скриптами
- HTTPS через Caddy на адресі sslip.io, створеній на основі вашої IP-адреси, тож домен необов’язковий
- Налаштування в /opt/seturack/supabase/.env
- Брандмауер із відкритими лише портами 22, 80, 443, 5432 і 6543
Який розмір потрібен для Supabase?
Документація Supabase з Docker встановлює мінімум 4 ГБ RAM, 2 ядра і 40 ГБ диска, а радить 8 ГБ RAM і більше, 4 ядра і більше та 80 ГБ диска й більше. Для розробки й невеликих проєктів починайте з 4 ГБ, а для проєкту зі справжніми користувачами розгляньте 8 ГБ. Якщо прибрати з файлу Compose служби, які ви не використовуєте, як-от Realtime чи Storage, вимоги знизяться. Якщо цього замало, збільшуйте RAM, CPU і диск окремо з панелі, а дані та IP-адреса лишатимуться тими самими.
| Використання | Розмір | Ціна | Обрати |
|---|---|---|---|
| Стартовий | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/міс. | |
| Середній | 8 GB RAM · 4 vCore · 120 GB NVMe | $13.62/міс. | |
| Потужний | 16 GB RAM · 8 vCore · 200 GB NVMe | $25.15/міс. |
Кому підійде?
- Ті, хто переносить проєкт Supabase на власний сервер
- Ті, хто створив застосунок за допомогою ШІ-інструментів і хоче мати його базу даних та вхід на власному сервері
- Розробники, які налаштовують власне середовище розробки й тестування
Що буде після замовлення?
- Задайте розмір і завершіть оплату.
- Ваш сервер запускається, і Supabase встановлюється сам. У наших тестах на реальних серверах це зайняло близько 8 хвилин. На вкладці «Огляд» дочекайтеся, поки в рядку «Застосунок» з’явиться, що Supabase готовий.
- Відкрийте посилання в рядку «Адреса панелі». Браузер запитає «Логін» і «Пароль», після чого відкриється Studio.
- Підключіться через SSH і прочитайте ключі: grep -E '^(SUPABASE_PUBLISHABLE_KEY|SUPABASE_SECRET_KEY|POSTGRES_PASSWORD)=' /opt/seturack/supabase/.env
- Передайте застосунку «Адреса панелі» та публічний (publishable) ключ, а секретний ключ тримайте лише на стороні сервера.
- Задайте в .env значення SITE_URL і ADDITIONAL_REDIRECT_URLS рівними адресі свого застосунку, а потім виконайте docker compose up -d.
З кожним сервером
- Щоденне резервне копіювання входить у ціну
- Необмежений трафік
- Повний доступ root
- Пізніше можна збільшувати чи зменшувати RAM і CPU, а також збільшувати диск
- Розташування: Istanbul · IST-1.
Корисно знати
- Самостійно розміщений Supabase запускає один проєкт. В офіційній документації сказано, що гілкування, PITR, Management API і бакети аналітики в такому налаштуванні недоступні.
- Після налаштування SITE_URL у Auth — це адреса Studio під паролем, тож посилання з листів ведуть туди. Укажіть адресу свого застосунку в SITE_URL і ADDITIONAL_REDIRECT_URLS.
- Порти 5432 і 6543 відкриті в інтернет, і ufw не може їх закрити, бо їх публікує Docker. Щоб обмежити, додайте 127.0.0.1: на початок рядків портів Supavisor у docker-compose.yml і користуйтеся SSH-тунелем.
- Оновлення — ваша відповідальність. Supabase публікує своє налаштування Compose приблизно раз на місяць, а скрипт update.sh у теці зливає зміни у ваше встановлення.
Supabase: запитання й відповіді
Скільки RAM потрібно самостійно розміщеному Supabase?
Документація Supabase просить для встановлення на власному сервері щонайменше 4 ГБ RAM, 2 ядра і 40 ГБ диска, а радить 8 ГБ RAM і більше. Якщо прибрати з файлу Compose служби, які ви не використовуєте, вимоги знизяться.
Де знайти ключі API Supabase?
Підключіться через SSH і подивіться в /opt/seturack/supabase/.env. SUPABASE_PUBLISHABLE_KEY призначений для клієнтського коду. SUPABASE_SECRET_KEY має повні права й має лишатися лише на стороні сервера. Старіші ANON_KEY і SERVICE_ROLE_KEY працюють і надалі.
Як підключити застосунок до самостійно розміщеного Supabase?
У supabase-js передайте в createClient «Адреса панелі» та значення SUPABASE_PUBLISHABLE_KEY. REST, Auth, Storage і Realtime працюють за цією адресою. Логін і пароль, які просить браузер, потрібні лише для Studio, а запити до API перевіряються за ключем.
Як підключитися до бази даних Supabase ззовні?
Підключення йдуть через Supavisor: postgres://postgres.your-tenant-id:POSTGRES_PASSWORD@ADDRESS:5432/postgres. Порт 5432 — це режим сесії, а 6543 — режим транзакцій. your-tenant-id — це значення POOLER_TENANT_ID в .env. Сам Postgres назовні не публікується.
Чому не приходять листи реєстрації Supabase?
Під час встановлення справжній сервер SMTP не налаштовано, тож реєстрації з підтвердженням поштою завершитися не можуть. Заповніть значення, що починаються з SMTP_, у /opt/seturack/supabase/.env для свого поштового провайдера, а потім виконайте в цій теці docker compose up -d. Щоб дозволити реєстрації без підтвердження, погляньте на параметр ENABLE_EMAIL_AUTOCONFIRM.
Чи можна запустити кілька проєктів Supabase?
Одне встановлення запускає один проєкт, а Studio не підтримує кілька організацій чи проєктів. Для кожного проєкту використовуйте окремий сервер.
Чи створюються резервні копії моїх даних Supabase?
Резервна копія вашого сервера створюється щоночі, зберігаються останні 7 днів, і це входить у ціну. Керовані резервні копії Supabase та PITR не входять у самостійне розміщення. Щоб повернутися до певного моменту, зберігайте також власні файли pg_dump.