🏠 Установка Supabase на свой сервер
Self-hosting — это способ развернуть полноценный аналог облачного Supabase под полным вашим контролем. Это бесплатно (кроме аренды сервера) и позволяет хранить данные в РФ.
🟢 1. Выбор сервера
- Рекомендуемые ресурсы: 2–4 vCPU, 4–8 ГБ ОЗУ.
- ОС: Ubuntu 24.04 (рекомендуется).
- Регистрация: Рекомендуется Timeweb Cloud для серверов в РФ.
🛠 2. Подготовка и SSH
Для удобного редактирования файлов на сервере используйте VS Code с расширением Remote — SSH.
- Подключитесь к серверу:
ssh root@your-ip. - Создайте отдельного пользователя
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
- Клонируйте репозиторий:
git clone --no-checkout https://github.com/supabase/supabase.git
cd supabase
git checkout tags/1.25.04 # Используйте актуальный стабильный тег- Настройте окружение:
Переименуйте
.env.exampleв.envв папкеdocker/и отредактируйте:
SITE_URLиAPI_EXTERNAL_URL(ваши домены).JWT_SECRET,ANON_KEY,SERVICE_ROLE_KEY.POSTGRES_PASSWORD(минимум 12–16 символов).
- Запустите контейнеры:
docker compose up -d🛡 5. Настройка Nginx Proxy Manager (NPM)
NPM нужен для управления SSL-сертификатами и проксирования запросов на домены типа api.example.com и studio.example.com.
- Разверните NPM через Docker Compose.
- Подключите его к сети Supabase:
docker network connect supabase_default npm-proxy- В интерфейсе NPM (порт 81) добавьте Proxy Hosts:
api.example.com→kong:8000studio.example.com→studio:3000
- Включите Force SSL и Websocket Support.
📦 6. Подключение S3-хранилища
Чтобы не хранить файлы на сервере, подключите внешнее хранилище (S3).
- В
.envукажите параметры вашего S3 провайдера (GLOBAL_S3_BUCKET,ACCESS_KEYи т.д.). - Запустите Supabase с флагом S3:
docker compose -f docker-compose.yml -f docker-compose.s3.yml up -dАвтор гайда: Александр и Никита (flutterflow.ru)