🏠 Установка Supabase на свой сервер

Self-hosting — это способ развернуть полноценный аналог облачного Supabase под полным вашим контролем. Это бесплатно (кроме аренды сервера) и позволяет хранить данные в РФ.

🟢 1. Выбор сервера

  • Рекомендуемые ресурсы: 2–4 vCPU, 4–8 ГБ ОЗУ.
  • ОС: Ubuntu 24.04 (рекомендуется).
  • Регистрация: Рекомендуется Timeweb Cloud для серверов в РФ.

🛠 2. Подготовка и SSH

Для удобного редактирования файлов на сервере используйте VS Code с расширением Remote — SSH.

  1. Подключитесь к серверу: ssh root@your-ip.
  2. Создайте отдельного пользователя supabase:
adduser supabase
usermod -aG sudo supabase
su - supabase

🐳 3. Установка Docker и Docker Compose

Выполните команды последовательно:

# Обновление пакетов
sudo apt update && sudo apt upgrade -y
# Установка Docker
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Проверка версии
docker --version

🚀 4. Установка и настройка Supabase

  1. Клонируйте репозиторий:
git clone --no-checkout https://github.com/supabase/supabase.git
cd supabase
git checkout tags/1.25.04  # Используйте актуальный стабильный тег
  1. Настройте окружение: Переименуйте .env.example в .env в папке docker/ и отредактируйте:
  • SITE_URL и API_EXTERNAL_URL (ваши домены).
  • JWT_SECRET, ANON_KEY, SERVICE_ROLE_KEY.
  • POSTGRES_PASSWORD (минимум 12–16 символов).
  1. Запустите контейнеры:
docker compose up -d

🛡 5. Настройка Nginx Proxy Manager (NPM)

NPM нужен для управления SSL-сертификатами и проксирования запросов на домены типа api.example.com и studio.example.com.

  1. Разверните NPM через Docker Compose.
  2. Подключите его к сети Supabase:
docker network connect supabase_default npm-proxy
  1. В интерфейсе NPM (порт 81) добавьте Proxy Hosts:
    • api.example.com kong:8000
    • studio.example.com studio:3000
  2. Включите Force SSL и Websocket Support.

📦 6. Подключение S3-хранилища

Чтобы не хранить файлы на сервере, подключите внешнее хранилище (S3).

  1. В .env укажите параметры вашего S3 провайдера (GLOBAL_S3_BUCKET, ACCESS_KEY и т.д.).
  2. Запустите Supabase с флагом S3:
docker compose -f docker-compose.yml -f docker-compose.s3.yml up -d

Автор гайда: Александр и Никита (flutterflow.ru)