Что такое Supabase и почему стоит рассмотреть установку на VPS?
Установка и настройка Supabase на VPS предоставляет разработчикам полную гибкость и контроль над их бэкенд-сервисами, позволяя развернуть мощную open-source альтернативу Firebase на собственном сервере для масштабируемых, безопасных и полностью управляемых приложений.
Supabase — это комплексная платформа с открытым исходным кодом, которая позиционируется как "альтернатива Firebase с открытым исходным кодом". Она предоставляет набор инструментов и сервисов, необходимых для быстрого создания бэкенда современных веб- и мобильных приложений. В основе Supabase лежит мощная реляционная база данных PostgreSQL, дополненная рядом критически важных функций:
- Postgres Database: Высокопроизводительная и надежная база данных, совместимая со всеми существующими инструментами PostgreSQL.
- Authentication: Полная система аутентификации пользователей с поддержкой электронной почты, пароля, социальных провайдеров (Google, GitHub и др.) и SMS.
- Realtime: Возможность получать обновления базы данных в реальном времени через WebSockets, идеально подходит для чатов, уведомлений и интерактивных приложений.
- Storage: Хранилище файлов для пользовательских данных, изображений и других медиафайлов, с возможностью управления доступом.
- Edge Functions: Серверless-функции на базе 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 к установке
- Обновление системы:
Подключитесь к вашему VPS по SSH и обновите пакеты системы:
sudo apt update && sudo apt upgrade -y - Установка 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 - Установка Git:
sudo apt install git -y
Развертывание Supabase
- Клонирование репозитория Supabase:
Перейдите в домашнюю директорию или любую другую, где хотите хранить файлы Supabase, и клонируйте официальный репозиторий:
cd ~ git clone --depth 1 https://github.com/supabase/supabase cd supabase - Настройка переменных окружения:
Скопируйте пример файла переменных окружения и отредактируйте его. Это критически важный шаг для безопасности и работоспособности.
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. - Запуск Supabase:
Теперь, когда все настроено, запустите все сервисы Supabase с помощью Docker Compose:
docker compose up -dФлаг
-dзапускает контейнеры в фоновом режиме. Процесс может занять несколько минут, так как Docker будет скачивать все необходимые образы. - Проверка состояния:
Убедитесь, что все контейнеры запущены и работают:
docker compose psВы должны увидеть список всех сервисов Supabase со статусом
running.
На этом этапе Supabase запущен на вашем сервере, но доступен только по внутренним IP-адресам контейнеров. Для доступа извне и работы с HTTPS требуется настроить reverse proxy.
Ищете сервер, который просто работает?
Valebyte VPS — NVMe, поддержка 24/7, развёртывание за 60 секунд.
Настройка Reverse Proxy (Nginx/Caddy) и HTTPS для Supabase на сервере
После установки Supabase через Docker Compose, все его компоненты работают на различных портах внутри Docker-сети. Чтобы сделать их доступными извне по доменному имени и обеспечить безопасное соединение с помощью HTTPS, необходимо настроить reverse proxy. Мы рассмотрим два популярных варианта: Nginx и Caddy.
Общие предварительные шаги
- Привязка домена: Убедитесь, что ваш домен или поддомен (например,
supabase.yourdomain.com) указывает на IP-адрес вашего VPS в DNS-записях (тип A-записи). - Открытие портов фаервола: Убедитесь, что порты 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.
- Установка Nginx:
sudo apt install nginx -y - Создание конфигурационного файла 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. Убедитесь, что эти порты не заняты другими приложениями на хосте. - Активация конфигурации и перезапуск Nginx:
sudo ln -s /etc/nginx/sites-available/supabase.conf /etc/nginx/sites-enabled/ sudo nginx -t # Проверка синтаксиса sudo systemctl restart nginx - Установка 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. Это делает его очень простым в настройке.
- Установка 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 - Создание конфигурационного файла 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.
- Перезапуск 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. На нем:
- Установите Docker, Docker Compose, Git.
- Клонируйте репозиторий Supabase.
- Скопируйте ваш сохраненный файл
.envв директорию~/supabase/. - Запустите
docker compose up -d. - Восстановите базу данных из самого свежего бэкапа, следуя шагам выше.
- Настройте reverse proxy (Nginx/Caddy) и HTTPS.
Важные рекомендации по бэкапам:
- Храните бэкапы вне VPS: Никогда не храните единственную копию бэкапов на том же сервере, что и продакшн-данные. Используйте облачные хранилища (S3, Backblaze B2) или другой VPS для хранения резервных копий.
- Тестируйте восстановление: Регулярно тестируйте процесс восстановления на отдельном тестовом сервере, чтобы убедиться в работоспособности бэкапов.
- Мониторинг: Настройте мониторинг успешности выполнения скриптов бэкапа.
Управление собственным сервером требует внимания к деталям, но даёт полный контроль, что является одним из преимуществ self-managed VPS.
Обновление Supabase: как поддерживать актуальность вашей инсталляции
Поддержание актуальности вашей Supabase self-hosted инсталляции на VPS критически важно для безопасности, стабильности и доступа к новым функциям. Поскольку Supabase активно развивается, регулярные обновления необходимы.
Основные принципы обновления Supabase Docker
Процесс обновления Supabase, развернутого через Docker Compose, состоит из нескольких шагов:
- Остановка текущих сервисов: Прежде чем обновлять код, необходимо остановить работающие контейнеры.
- Обновление кода репозитория Supabase: Получение последних изменений из официального репозитория GitHub.
- Обновление Docker-образов: Загрузка новых версий Docker-образов для каждого компонента Supabase.
- Перезапуск сервисов: Запуск Supabase с обновленными образами.
- Миграции базы данных: В некоторых случаях могут потребоваться миграции схемы базы данных.
Пошаговый процесс обновления
Выполните следующие команды в директории, где вы клонировали репозиторий 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-инсталляций описанный выше подход вполне достаточен.
Ищете сервер, который просто работает?
Valebyte VPS — NVMe, поддержка 24/7, развёртывание за 60 секунд.
Оптимальная конфигурация VPS для Supabase под различные нагрузки
Выбор VPS-конфигурации для Supabase на VPS напрямую зависит от ожидаемой нагрузки вашего приложения. Недостаточные ресурсы приведут к медленной работе и отказам, а избыточные — к ненужным расходам. Valebyte предлагает широкий спектр VPS, которые идеально подходят для размещения Supabase. Рассмотрим оптимальные конфигурации для разных сценариев.
Факторы, влияющие на выбор конфигурации
- Количество активных пользователей: Чем больше пользователей одновременно взаимодействуют с вашим приложением, тем выше нагрузка на CPU и Realtime-сервис.
- Объем и сложность данных: Большие базы данных и сложные SQL-запросы требуют больше RAM для кэширования и мощный CPU для обработки.
- Частота операций чтения/записи: Интенсивные операции с базой данных и хранилищем файлов требуют высокопроизводительной дисковой подсистемы (NVMe SSD).
- Использование Realtime-функционала: Приложения с чатами, уведомлениями или дашбордами в реальном времени активно используют Realtime-сервис, потребляющий много RAM и CPU при большом количестве одновременных подключений.
- Количество Edge Functions: Если вы активно используете серверless-функции, они также будут потреблять CPU и RAM.
Таблица: Рекомендации по VPS для Supabase на Valebyte.com
Представляем таблицу с рекомендованными конфигурациями VPS от Valebyte для различных сценариев использования Supabase, включая ориентировочные цены.
| Сценарий использования | vCPU | RAM (GB) | Диск (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
- Используйте NVMe SSD: Это не просто рекомендация, а требование для хорошей производительности PostgreSQL. Разница с обычными SSD или HDD будет колоссальной.
- Мониторинг ресурсов: Установите инструменты мониторинга (Netdata, Prometheus/Grafana) для отслеживания использования CPU, RAM, дискового ввода/вывода и сетевого трафика. Это поможет вам понять, когда пора масштабировать VPS.
- Оптимизация PostgreSQL: После развертывания, уделите время оптимизации конфигурации PostgreSQL (
postgresql.conf) под ваш объем RAM и нагрузку. Параметрыshared_buffers,work_mem,effective_cache_sizeимеют огромное значение. - Файловая система: Для тома данных PostgreSQL рекомендуется использовать файловую систему
ext4илиxfs. - Сеть: Убедитесь, что ваш VPS-провайдер предлагает стабильный и достаточно широкий канал связи, особенно если ваше приложение активно использует Realtime или передает большие файлы.
- Безопасность: Помимо фаервола, рассмотрите использование SSH-ключей, регулярные обновления ОС и Docker, а также двухфакторную аутентификацию для доступа к серверу.
Правильный выбор и регулярный мониторинг конфигурации VPS позволят вашей установке Supabase работать стабильно и эффективно, обеспечивая быстрый отклик для ваших пользователей и надежную работу приложения. Для тех, кто хочет глубже разобраться в серверной инфраструктуре, статья Что такое сервер и дедик: Полное руководство для начинающих может быть очень полезна.
Выводы
Установка и настройка Supabase на VPS — это мощное решение для разработчиков, стремящихся к полному контролю, гибкости и экономической эффективности своего бэкенда. Выбор оптимальной конфигурации VPS с NVMe-дисками, тщательная настройка Docker Compose, обеспечение безопасности с помощью reverse proxy и HTTPS, а также регулярные бэкапы и обновления являются ключевыми факторами успеха. Valebyte предлагает высокопроизводительные VPS, идеально подходящие для развертывания Supabase, обеспечивая надежную основу для вашего проекта.
Готовы выбрать сервер?
VPS и выделенные серверы в 72+ странах с мгновенной активацией и полным root-доступом.
Начать сейчас →