bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward

Supabase на VPS: встановлення, налаштування та обслуговування

calendar_month June 10, 2026 schedule 18 хв. читання visibility 23 переглядів
person
Valebyte Team
Supabase на VPS: встановлення, налаштування та обслуговування

Що таке Supabase і чому варто розглянути встановлення на VPS?

Встановлення та налаштування Supabase на VPS надає розробникам повну гнучкість і контроль над їхніми бекенд-сервісами, дозволяючи розгорнути потужну open-source альтернативу Firebase на власному сервері для масштабованих, безпечних і повністю керованих застосунків.

Supabase — це комплексна платформа з відкритим вихідним кодом, яка позиціонується як "альтернатива Firebase з відкритим вихідним кодом". Вона надає набір інструментів і сервісів, необхідних для швидкого створення бекенду сучасних веб- та мобільних застосунків. В основі Supabase лежить потужна реляційна база даних PostgreSQL, доповнена низкою критично важливих функцій:

  • Postgres Database: Високопродуктивна та надійна база даних, сумісна з усіма існуючими інструментами PostgreSQL.
  • Authentication: Повна система автентифікації користувачів з підтримкою електронної пошти, пароля, соціальних провайдерів (Google, GitHub та ін.) та SMS.
  • Realtime: Можливість отримувати оновлення бази даних у реальному часі через WebSockets, ідеально підходить для чатів, сповіщень та інтерактивних застосунків.
  • Storage: Сховище файлів для користувацьких даних, зображень та інших медіафайлів, з можливістю керування доступом.
  • Edge Functions: Serverless-функції на базі Deno, що дозволяють виконувати бекенд-логіку без керування серверами.
  • PostgREST: Автоматично генерований RESTful API для вашої бази даних, який дозволяє взаємодіяти з нею без написання серверного коду.
  • Dashboard: Зручний веб-інтерфейс для керування базою даних, користувачами, файлами та налаштуваннями проєкту.

Хоча Supabase пропонує хмарну версію, багато розробників і компаній обирають Supabase self-hosted на власному VPS. Це рішення зумовлене низкою значних переваг:

  • Повний контроль над даними: Ви повністю контролюєте свої дані, їх розташування та безпеку, що є критично важливим для дотримання регуляторних вимог (GDPR, HIPAA) та корпоративних політик.
  • Економічна ефективність при масштабуванні: На певному етапі розвитку проєкту власний VPS із Supabase може виявитися значно дешевшим, ніж хмарні тарифи, особливо при високих навантаженнях або великих обсягах даних. Ви платите лише за ресурси сервера, а не за використання кожного сервісу окремо.
  • Гнучкість та кастомізація: Ви можете налаштовувати кожен компонент Supabase під свої потреби, встановлювати додаткові розширення PostgreSQL, оптимізувати продуктивність на рівні операційної системи та бази даних.
  • Відсутність прив'язки до вендора (Vendor Lock-in): Ваш бекенд не прив'язаний до конкретного хмарного провайдера Supabase, що дає свободу міграції та вибору хостингу.
  • Безпека: Можливість побудувати ізольовану та захищену інфраструктуру, що відповідає вашим стандартам безпеки.

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

Системні вимоги для Supabase на VPS: який сервер обрати?

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

Обов'язкові компоненти та їх споживання

  • PostgreSQL: Ядро Supabase. Споживає значні обсяги ОЗП для кешування даних та CPU для обробки запитів. Чим більше даних, активних з'єднань та складних запитів, тим більше ресурсів знадобиться.
  • PostgREST: Проксі-сервер для PostgreSQL, відносно легкий, але вимагає CPU для обробки HTTP-запитів та невелику кількість ОЗП.
  • GoTrue (Authentication): Сервіс автентифікації. Вимагає CPU для криптографічних операцій та невелику кількість ОЗП для зберігання сесій.
  • Realtime: Сервіс для обробки WebSockets. Може споживати значні ресурси ОЗП та CPU при великій кількості активних з'єднань та частих оновленнях.
  • Storage: Сховище файлів на базі S3-сумісного MinIO. Споживає дисковий простір та деяку кількість ОЗП/CPU для обробки завантажень/вивантажень.
  • Kong (API Gateway): Виступає в ролі шлюзу API, маршрутизуючи запити до відповідних сервісів Supabase. Споживає ОЗП та CPU для обробки трафіку.
  • Docker та Docker Compose: Сама платформа контейнеризації вимагає певні ресурси для запуску та керування контейнерами.

Рекомендації щодо конфігурації VPS

Для Supabase на сервері критично важливі три параметри: процесор (CPU), оперативна пам'ять (RAM) та дискова підсистема. Мережа також важлива, але більшість сучасних VPS-провайдерів пропонують досить широкі канали.

Мінімальна конфігурація (для розробки та невеликих проєктів)

  • CPU: 2 vCPU. Один для PostgreSQL, інший для решти сервісів.
  • RAM: 4 GB. PostgreSQL може використовувати до 2 GB, решта сервісів — 1-1.5 GB, плюс залишок для ОС та Docker.
  • Disk: 50 GB NVMe SSD. NVMe критично важливий для продуктивності бази даних. HDD або звичайні SSD будуть значно повільнішими.
  • OS: Ubuntu 22.04 LTS або Debian 12.
  • Вартість: Від $10-15 на місяць (наприклад, тарифи Valebyte з NVMe).

Середня конфігурація (для продакшн-застосунків із середнім навантаженням)

  • CPU: 4 vCPU. Розподілене навантаження між PostgreSQL та іншими сервісами Supabase.
  • RAM: 8-16 GB. Чим більше RAM, тим ефективніше PostgreSQL кешує дані, що знижує звернення до диска.
  • Disk: 100-200 GB NVMe SSD. Достатньо для зростаючої бази даних та файлів.
  • OS: Ubuntu 22.04 LTS або Debian 12.
  • Вартість: Від $25-50 на місяць.

Високонавантажена конфігурація (для великих проєктів та високої відвідуваності)

  • CPU: 6-8+ vCPU. Для максимальної продуктивності та паралельної обробки запитів.
  • RAM: 32 GB+. Дозволяє PostgreSQL утримувати більшу частину активних даних у пам'яті.
  • Disk: 500 GB+ NVMe SSD. З високими показниками IOPS. Можливо, варто розглянути RAID10 або виділені блокові сховища.
  • OS: Ubuntu 22.04 LTS або Debian 12.
  • Вартість: Від $80-150+ на місяць.

Важливе зауваження: завжди обирайте VPS з віртуалізацією KVM, оскільки вона надає повну ізоляцію ресурсів та гарантовану продуктивність, на відміну від OpenVZ.

Шукаєте надійний сервер для ваших проєктів?

VPS від $10/міс та виділені сервери від $9/міс з NVMe, DDoS-захистом та підтримкою 24/7.

Переглянути пропозиції →

Покрокове встановлення Supabase на VPS з використанням Docker та Docker Compose

Встановлення Supabase на VPS через Docker та Docker Compose — це найбільш рекомендований та гнучкий підхід. Він дозволяє легко керувати всіма компонентами, оновлювати їх та забезпечувати переносимість. Дотримуйтесь цих кроків, щоб розгорнути Supabase Docker на вашому сервері.

Підготовка VPS до встановлення

  1. Оновлення системи:

    Підключіться до вашого VPS по SSH та оновіть пакети системи:

    sudo apt update && sudo apt upgrade -y
  2. Встановлення Docker та Docker Compose:

    Якщо Docker ще не встановлено, виконайте наступні команди. Docker Compose v2 тепер є частиною Docker CLI.

    # Установка необходимых пакетов
    sudo apt install ca-certificates curl gnupg lsb-release -y
    
    # Добавление GPG-ключа Docker
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    
    # Добавление репозитория Docker
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    # Обновление индекса пакетов и установка Docker Engine
    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
    
    # Добавление вашего пользователя в группу docker (чтобы не использовать sudo с docker-командами)
    sudo usermod -aG docker $USER
    # Выйдите из SSH и войдите снова, чтобы изменения вступили в силу, или выполните:
    # newgrp docker
    
    # Проверка установки
    docker run hello-world
    docker compose version
  3. Встановлення Git:
    sudo apt install git -y

Розгортання Supabase

  1. Клонування репозиторію Supabase:

    Перейдіть до домашньої директорії або будь-якої іншої, де хочете зберігати файли Supabase, та клонуйте офіційний репозиторій:

    cd ~
    git clone --depth 1 https://github.com/supabase/supabase
    cd supabase
  2. Налаштування змінних оточення:

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

    cp .env.example .env
    nano .env

    У файлі .env вам потрібно буде налаштувати кілька ключових параметрів. Ось найважливіші:

    • POSTGRES_PASSWORD: Встановіть дуже складний пароль для користувача PostgreSQL.
    • JWT_SECRET: Генеруйте довгий, випадковий секретний ключ (наприклад, за допомогою openssl rand -base64 32).
    • ANON_KEY та SERVICE_KEY: Ці ключі також повинні бути згенеровані. Можете використовувати openssl rand -base64 32 для кожного.
    • SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS: Налаштуйте параметри вашого SMTP-сервера для надсилання листів автентифікації (підтвердження email, скидання пароля). Якщо не налаштуєте, функції автентифікації за email працювати не будуть.
    • AUTH_EXTERNAL_URL: Встановіть зовнішній URL вашого Supabase-інстансу, наприклад, https://supabase.yourdomain.com. Це важливо для коректної роботи посилань у листах автентифікації.
    • STORAGE_URL, REALTIME_URL та інші URL: Вони повинні відповідати вашому домену.

    Приклад генерації JWT_SECRET:

    openssl rand -base64 32

    Збережіть зміни у файлі .env.

  3. Запуск Supabase:

    Тепер, коли все налаштовано, запустіть усі сервіси Supabase за допомогою Docker Compose:

    docker compose up -d

    Прапор -d запускає контейнери у фоновому режимі. Процес може зайняти кілька хвилин, оскільки Docker завантажуватиме всі необхідні образи.

  4. Перевірка стану:

    Переконайтеся, що всі контейнери запущені та працюють:

    docker compose ps

    Ви повинні побачити список усіх сервісів Supabase зі статусом running.

На цьому етапі Supabase запущено на вашому сервері, але доступний лише за внутрішніми IP-адресами контейнерів. Для доступу ззовні та роботи з HTTPS потрібно налаштувати reverse proxy.

rocket_launch Швидкий вибір

Шукаєте сервер, який просто працює?

Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.

Переглянути тарифи VPS arrow_forward

Налаштування Reverse Proxy (Nginx/Caddy) та HTTPS для Supabase на сервері

Після встановлення Supabase через Docker Compose, всі його компоненти працюють на різних портах всередині Docker-мережі. Щоб зробити їх доступними ззовні за доменним ім'ям та забезпечити безпечне з'єднання за допомогою HTTPS, необхідно налаштувати reverse proxy. Ми розглянемо два популярні варіанти: Nginx та Caddy.

Загальні попередні кроки

  1. Прив'язка домену: Переконайтеся, що ваш домен або піддомен (наприклад, supabase.yourdomain.com) вказує на IP-адресу вашого VPS у DNS-записах (тип A-запису).
  2. Відкриття портів фаєрволу: Переконайтеся, що порти 80 (HTTP) та 443 (HTTPS) відкриті на вашому VPS. Якщо ви використовуєте UFW (Uncomplicated Firewall), виконайте:
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw enable # якщо фаєрвол не був увімкнений

Варіант 1: Nginx з Certbot (рекомендується для досвідчених користувачів)

Nginx — це потужний і широко використовуваний веб-сервер, який чудово підходить для ролі reverse proxy.

  1. Встановлення Nginx:
    sudo apt install nginx -y
  2. Створення конфігураційного файлу Nginx:

    Створіть новий файл конфігурації для вашого домену:

    sudo nano /etc/nginx/sites-available/supabase.conf

    Вставте наступну конфігурацію, замінивши supabase.yourdomain.com на ваш домен:

    server {
        listen 80;
        server_name supabase.yourdomain.com;
    
        location / {
            proxy_pass http://localhost:8000; # Порт Kong API Gateway
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_redirect off;
    
            # Для WebSockets (Realtime)
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    
        # Для панелі керування Supabase (Dashboard)
        location /dashboard {
            proxy_pass http://localhost:3000; # Порт Supabase Studio
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    
        # Інші сервіси Supabase (приклад)
        # location /auth {
        #     proxy_pass http://localhost:9999; # GoTrue (Authentication)
        #     proxy_set_header Host $host;
        #     proxy_set_header X-Real-IP $remote_addr;
        #     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #     proxy_set_header X-Forwarded-Proto $scheme;
        # }
    
        # location /storage {
        #     proxy_pass http://localhost:5000; # Storage (MinIO)
        #     proxy_set_header Host $host;
        #     proxy_set_header X-Real-IP $remote_addr;
        #     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #     proxy_set_header X-Forwarded-Proto $scheme;
        # }
    
        # location /realtime {
        #     proxy_pass http://localhost:54321; # Realtime
        #     proxy_set_header Host $host;
        #     proxy_set_header X-Real-IP $remote_addr;
        #     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #     proxy_set_header X-Forwarded-Proto $scheme;
        #     proxy_http_version 1.1;
        #     proxy_set_header Upgrade $http_upgrade;
        #     proxy_set_header Connection "upgrade";
        # }
    }

    Важливе примітка: Порти 8000 (Kong), 3000 (Studio), 9999 (GoTrue), 5000 (Storage), 54321 (Realtime) — це порти, які Supabase надає *всередині* Docker-мережі. Nginx звертатиметься до них як до localhost:порт, тому що Nginx також запущений на хост-машині VPS. Переконайтеся, що ці порти не зайняті іншими застосунками на хості.

  3. Активація конфігурації та перезапуск Nginx:
    sudo ln -s /etc/nginx/sites-available/supabase.conf /etc/nginx/sites-enabled/
    sudo nginx -t # Перевірка синтаксису
    sudo systemctl restart nginx
  4. Встановлення Certbot для HTTPS:
    sudo apt install certbot python3-certbot-nginx -y
    sudo certbot --nginx -d supabase.yourdomain.com

    Дотримуйтесь інструкцій Certbot. Він автоматично налаштує Nginx для HTTPS та додасть перенаправлення з HTTP на HTTPS.

Варіант 2: Caddy (простіше для новачків)

Caddy — це сучасний веб-сервер, який автоматично керує сертифікатами HTTPS за допомогою Let's Encrypt. Це робить його дуже простим у налаштуванні.

  1. Встановлення Caddy:
    sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
    curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
    curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
    sudo apt update
    sudo apt install caddy -y
  2. Створення конфігураційного файлу Caddyfile:
    sudo nano /etc/caddy/Caddyfile

    Замініть існуючий вміст на наступний, вказавши ваш домен:

    supabase.yourdomain.com {
        reverse_proxy /dashboard/* localhost:3000
        reverse_proxy /auth/* localhost:9999
        reverse_proxy /storage/* localhost:5000
        reverse_proxy /realtime/* localhost:54321 {
            header_up Upgrade {http.request.header.Upgrade}
            header_up Connection {http.request.header.Connection}
        }
        reverse_proxy /graphql/* localhost:8000
        reverse_proxy /rest/* localhost:8000
        reverse_proxy localhost:8000 {
            header_up Upgrade {http.request.header.Upgrade}
            header_up Connection {http.request.header.Connection}
        }
    }

    Caddy автоматично отримає та оновить сертифікати Let's Encrypt.

  3. Перезапуск Caddy:
    sudo systemctl reload caddy

Тепер ваш Supabase має бути доступний за адресою https://supabase.yourdomain.com, а панель керування — за https://supabase.yourdomain.com/dashboard.

Хостинг-провайдери, такі як Valebyte, надають високопродуктивні VPS, які ідеально підходять для таких розгортань, забезпечуючи стабільність та швидкість доступу до вашого Supabase-інстансу. Для більш глибокого розуміння різних типів хостингу, ви можете ознайомитися зі статтею Контейнери vs ВМ vs Bare-metal: хостинг-картина 2026.

Забезпечення надійності: бекапи та стратегії відновлення Supabase

Бекапи — це наріжний камінь будь-якої продакшн-системи. Для Supabase self-hosted на VPS вам необхідно розробити стратегію резервного копіювання, яка охоплює як базу даних PostgreSQL, так і конфігураційні файли.

Резервне копіювання бази даних PostgreSQL

База даних PostgreSQL — це серце вашого Supabase-проєкту. Її регулярне резервне копіювання критично важливе. Docker Compose створює окремий том для даних PostgreSQL, що полегшує їх керування.

1. Ручний бекап за допомогою pg_dump:

Ви можете виконати бекап бази даних прямо з контейнера PostgreSQL. Спочатку знайдіть ім'я контейнера PostgreSQL (зазвичай supabase_db_1 або схоже):

docker ps | grep postgres

Потім виконайте команду pg_dump. Замініть <CONTAINER_NAME> на ім'я вашого контейнера PostgreSQL та <DATABASE_NAME> на ім'я вашої бази даних (за замовчуванням postgres або supabase, перевірте в .env):

docker exec <CONTAINER_NAME> pg_dump -U postgres -Fc <DATABASE_NAME> > /path/to/backup/supabase_db_$(date +%Y%m%d_%H%M%S).bak

-U postgres: Вказує користувача PostgreSQL. -Fc: Створює кастомний формат архіву, який є найбільш гнучким для відновлення. /path/to/backup/: Вкажіть шлях на хост-системі, куди буде збережено бекап.

2. Автоматичний бекап за допомогою Cron:

Для автоматизації бекапів використовуйте cron. Створіть скрипт бекапу, наприклад, /usr/local/bin/supabase_backup.sh:

#!/bin/bash

# Шлях, куди зберігатимуться бекапи
BACKUP_DIR="/var/backups/supabase_db"
# Ім'я контейнера PostgreSQL (уточніть через docker ps)
DB_CONTAINER="supabase_db_1" # Приклад
# Ім'я бази даних
DB_NAME="postgres" # Приклад, перевірте в .env
# Користувач бази даних
DB_USER="postgres"

# Створюємо директорію для бекапів, якщо її немає
mkdir -p $BACKUP_DIR

# Генеруємо ім'я файлу бекапу з міткою часу
BACKUP_FILE="$BACKUP_DIR/supabase_db_$(date +%Y%m%d_%H%M%S).bak"

# Виконуємо бекап
docker exec $DB_CONTAINER pg_dump -U $DB_USER -Fc $DB_NAME > "$BACKUP_FILE"

# Перевіряємо успішність бекапу
if [ $? -eq 0 ]; then
    echo "Supabase DB backup created successfully: $BACKUP_FILE"
else
    echo "Error creating Supabase DB backup!"
fi

# Видаляємо старі бекапи (наприклад, старші за 7 днів)
find $BACKUP_DIR -type f -name "supabase_db_*.bak" -mtime +7 -delete
echo "Old backups cleaned up."

Зробіть скрипт виконуваним:

sudo chmod +x /usr/local/bin/supabase_backup.sh

Додайте завдання до crontab (наприклад, для щоденного бекапу о 03:00 ночі):

sudo crontab -e

Додайте рядок:

0 3 * * * /usr/local/bin/supabase_backup.sh >> /var/log/supabase_backup.log 2>&1

Резервне копіювання конфігураційних файлів

Збережіть файл .env та директорію supabase/docker, яка містить ваші налаштування та скрипти. Це допоможе швидко відновити конфігурацію.

cp ~/supabase/.env /path/to/backup/supabase_env_$(date +%Y%m%d_%H%M%S).env

Також розгляньте можливість бекапу Docker-томів, особливо якщо ви не використовуєте MinIO з постійним сховищем поза контейнером.

Стратегії відновлення

1. Відновлення бази даних:

Для відновлення бази даних з файлу .bak, спочатку зупиніть Supabase, потім створіть нову базу даних або очистіть існуючу, і відновіть дані:

# Зупинити Supabase
cd ~/supabase
docker compose stop

# (Опціонально) Видалити існуючі томи даних для чистої установки
# docker compose down -v

# Запустити тільки контейнер PostgreSQL
docker compose up -d db

# Знайти ім'я контейнера PostgreSQL
docker ps | grep postgres

# Відновити базу даних (замініть <CONTAINER_NAME>, <DATABASE_NAME> та шлях до бекапу)
# Якщо база даних не існує, pg_restore може створити її, але іноді краще створити вручну
docker exec -it <CONTAINER_NAME> psql -U postgres -c "DROP DATABASE IF EXISTS <DATABASE_NAME>;"
docker exec -it <CONTAINER_NAME> psql -U postgres -c "CREATE DATABASE <DATABASE_NAME>;"
docker exec -i <CONTAINER_NAME> pg_restore -U postgres -d <DATABASE_NAME> < /path/to/backup/supabase_db_LATEST.bak

# Запустити всі сервіси Supabase
docker compose up -d

2. Відновлення всього сервера:

У випадку повної відмови VPS, вам знадобиться новий VPS. На ньому:

  1. Встановіть Docker, Docker Compose, Git.
  2. Клонуйте репозиторій Supabase.
  3. Скопіюйте ваш збережений файл .env до директорії ~/supabase/.
  4. Запустіть docker compose up -d.
  5. Відновіть базу даних з найсвіжішого бекапу, дотримуючись кроків вище.
  6. Налаштуйте reverse proxy (Nginx/Caddy) та HTTPS.

Важливі рекомендації щодо бекапів:

  • Зберігайте бекапи поза VPS: Ніколи не зберігайте єдину копію бекапів на тому ж сервері, що й продакшн-дані. Використовуйте хмарні сховища (S3, Backblaze B2) або інший VPS для зберігання резервних копій.
  • Тестуйте відновлення: Регулярно тестуйте процес відновлення на окремому тестовому сервері, щоб переконатися в працездатності бекапів.
  • Моніторинг: Налаштуйте моніторинг успішності виконання скриптів бекапу.

Керування власним сервером вимагає уваги до деталей, але дає повний контроль, що є однією з переваг self-managed VPS.

Оновлення Supabase: як підтримувати актуальність вашої інсталяції

Підтримка актуальності вашої Supabase self-hosted інсталяції на VPS критично важлива для безпеки, стабільності та доступу до нових функцій. Оскільки Supabase активно розвивається, регулярні оновлення необхідні.

Основні принципи оновлення Supabase Docker

Процес оновлення Supabase, розгорнутого через Docker Compose, складається з кількох кроків:

  1. Зупинка поточних сервісів: Перш ніж оновлювати код, необхідно зупинити працюючі контейнери.
  2. Оновлення коду репозиторію Supabase: Отримання останніх змін з офіційного репозиторію GitHub.
  3. Оновлення Docker-образів: Завантаження нових версій Docker-образів для кожного компонента Supabase.
  4. Перезапуск сервісів: Запуск Supabase з оновленими образами.
  5. Міграції бази даних: У деяких випадках можуть знадобитися міграції схеми бази даних.

Покроковий процес оновлення

Виконайте наступні команди в директорії, де ви клонували репозиторій Supabase (наприклад, ~/supabase):

cd ~/supabase

1. Перевірка поточного стану (опціонально):

Перед оновленням корисно перевірити, які контейнери запущені та які версії використовуються:

docker compose ps

2. Зупинка сервісів Supabase:

Зупиніть усі запущені контейнери Supabase. Це призведе до короткочасного простою вашого застосунку.

docker compose down

або

docker compose stop

docker compose down також видалить контейнери, але збереже томи даних, що є чистішим підходом перед оновленням.

3. Оновлення репозиторію Supabase:

Отримайте останні зміни з репозиторію GitHub. Переконайтеся, що у вас немає незакоммічених локальних змін, які можуть конфліктувати з оновленням.

git pull origin main

Якщо у вас були локальні зміни у файлах, таких як docker-compose.yml (що не рекомендується, якщо ви не знаєте, що робите), вам може знадобитися вирішити конфлікти.

4. Оновлення Docker-образів:

Завантажте останні версії всіх Docker-образів, що використовуються Supabase.

docker compose pull

Ця команда завантажить нові версії образів, якщо вони доступні.

5. Застосування міграцій бази даних (якщо необхідно):

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

docker compose up -d --build

Прапор --build гарантує, що будь-які локальні зміни у Dockerfile або контексті збірки будуть враховані, хоча для стандартних оновлень docker compose up -d зазвичай достатньо.

Supabase автоматично запустить контейнери та застосує необхідні міграції бази даних. Якщо виникають помилки, перевірте логи контейнера PostgreSQL.

docker compose logs db

6. Перевірка стану після оновлення:

Переконайтеся, що всі контейнери знову запущені та працюють коректно:

docker compose ps

Перевірте доступність вашої панелі керування Supabase та функціональність вашого застосунку.

Важливі рекомендації щодо оновлення:

  • Робіть бекапи: Завжди створюйте повний бекап бази даних та конфігураційних файлів перед початком процесу оновлення. Це ваша страховка на випадок непередбачених проблем.
  • Читайте changelog: Перед оновленням завжди перевіряйте офіційний changelog Supabase або блог. Там можуть бути вказані критичні зміни, які вимагають додаткових дій або уваги.
  • Тестуйте на стейджингу: Якщо ваш проєкт критично важливий, спочатку протестуйте процес оновлення на стейджинг-середовищі, яка максимально схожа на продакшн.
  • Плануйте простій: Оновлення майже завжди вимагає короткочасного простою сервісів. Плануйте його на час мінімальної активності користувачів.

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

rocket_launch Швидкий вибір

Шукаєте сервер, який просто працює?

Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.

Переглянути тарифи VPS arrow_forward

Оптимальна конфігурація VPS для Supabase під різні навантаження

Вибір VPS-конфігурації для Supabase на VPS безпосередньо залежить від очікуваного навантаження вашого застосунку. Недостатні ресурси призведуть до повільної роботи та відмов, а надлишкові — до непотрібних витрат. Valebyte пропонує широкий спектр VPS, які ідеально підходять для розміщення Supabase. Розглянемо оптимальні конфігурації для різних сценаріїв.

Фактори, що впливають на вибір конфігурації

  • Кількість активних користувачів: Чим більше користувачів одночасно взаємодіють з вашим застосунком, тим вище навантаження на CPU та Realtime-сервіс.
  • Обсяг та складність даних: Великі бази даних та складні SQL-запити вимагають більше RAM для кешування та потужний CPU для обробки.
  • Частота операцій читання/запису: Інтенсивні операції з базою даних та сховищем файлів вимагають високопродуктивної дискової підсистеми (NVMe SSD).
  • Використання Realtime-функціоналу: Застосунки з чатами, сповіщеннями або дашбордами в реальному часі активно використовують Realtime-сервіс, що споживає багато RAM та CPU при великій кількості одночасних підключень.
  • Кількість Edge Functions: Якщо ви активно використовуєте serverless-функції, вони також споживатимуть CPU та RAM.

Таблиця: Рекомендації щодо VPS для Supabase на Valebyte.com

Представляємо таблицю з рекомендованими конфігураціями VPS від Valebyte для різних сценаріїв використання Supabase, включаючи орієнтовні ціни.

Сценарій використання vCPU RAM (ГБ) Диск (NVMe SSD) Пропускна здатність Орієнтовна вартість/міс. Особливості
Розробка / Тестування / Особистий проєкт 2 4 50 GB 100 Mbps $10 - $15 Ідеально для вивчення Supabase, невеликих прототипів. Не для продакшн.
Малий бізнес / Стартап (до 100 активних користувачів) 4 8 100 GB 200 Mbps $25 - $40 Підходить для невеликих продакшн-застосунків, сайтів-візиток, CRM з обмеженим функціоналом.
Середній бізнес / Проєкт, що зростає (100-500 активних користувачів) 6 16 200 GB 500 Mbps $50 - $80 Для застосунків з помірним навантаженням, активним використанням Realtime, середнім обсягом даних.
Великий проєкт / Високонавантажений сервіс (500+ активних користувачів) 8+ 32+ 500 GB+ 1 Gbps $100 - $200+ Для масштабованих застосунків, інтенсивних операцій з БД, великих обсягів файлів. Можливо, знадобиться кластеризація БД.
Інтенсивна робота з даними / ML-бекенд 12+ 64+ 1 TB+ NVMe (високий IOPS) 1 Gbps+ $250+ Для аналітичних платформ, систем з машинним навчанням, що вимагають надшвидкого доступу до даних.

Додаткові рекомендації щодо оптимізації VPS для Supabase

  1. Використовуйте NVMe SSD: Це не просто рекомендація, а вимога для хорошої продуктивності PostgreSQL. Різниця зі звичайними SSD або HDD буде колосальною.
  2. Моніторинг ресурсів: Встановіть інструменти моніторингу (Netdata, Prometheus/Grafana) для відстеження використання CPU, RAM, дискового вводу/виводу та мережевого трафіку. Це допоможе вам зрозуміти, коли час масштабувати VPS.
  3. Оптимізація PostgreSQL: Після розгортання, приділіть час оптимізації конфігурації PostgreSQL (postgresql.conf) під ваш обсяг RAM та навантаження. Параметри shared_buffers, work_mem, effective_cache_size мають величезне значення.
  4. Файлова система: Для тому даних PostgreSQL рекомендується використовувати файлову систему ext4 або xfs.
  5. Мережа: Переконайтеся, що ваш VPS-провайдер пропонує стабільний та досить широкий канал зв'язку, особливо якщо ваш застосунок активно використовує Realtime або передає великі файли.
  6. Безпека: Окрім фаєрволу, розгляньте використання SSH-ключів, регулярні оновлення ОС та Docker, а також двофакторну автентифікацію для доступу до сервера.

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

Висновки

Встановлення та налаштування Supabase на VPS — це потужне рішення для розробників, які прагнуть повного контролю, гнучкості та економічної ефективності свого бекенду. Вибір оптимальної конфігурації VPS з NVMe-дисками, ретельне налаштування Docker Compose, забезпечення безпеки за допомогою reverse proxy та HTTPS, а також регулярні бекапи та оновлення є ключовими факторами успіху. Valebyte пропонує високопродуктивні VPS, ідеально підходящі для розгортання Supabase, забезпечуючи надійну основу для вашого проєкту.

Готові обрати сервер?

VPS та виділені сервери у 72+ країнах з миттєвою активацією та повним root-доступом.

Почати зараз →
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.