Курс

Supabase на своём сервере

МОДУЛЬ 5: АВТОРИЗАЦИЯ И БАЗА ДАННЫХ • Урок 5 из 5

Облачный Supabase хранит данные за рубежом. По закону 152-ФЗ, персональные данные граждан РФ должны быть на серверах в России. А ещё облачный Supabase может заблокироваться, подорожать, или просто лечь.

Решение — поднять свой Supabase на своём VDS. Звучит сложно? Claude сделает это за тебя. Буквально. Ты отправляешь ему три запроса — он сам всё устанавливает, настраивает и проверяет.

[ ЧТО ТАКОЕ SELF-HOSTED SUPABASE ]

Supabase — это open source. Весь код открыт. Можно поднять точно такой же Supabase на своём сервере. Бесплатно. Без лимитов.

Что получаешь:

  • [+] Полная база данных PostgreSQL
  • [+] Авторизация пользователей
  • [+] REST API
  • [+] Realtime подписки
  • [+] Storage для файлов
  • [+] Studio — веб-панель управления (как в облаке)
  • [+] Данные на ТВОЁМ сервере в России

[ ЧТО НУЖНО ДО НАЧАЛА ]

  1. VDS с Ubuntu 22.04 и минимум 2 ГБ RAM (на 1 ГБ Supabase будет тормозить)
  2. Claude подключён к серверу по SSH (как в уроке про VDS)
  3. Всё. Остальное Claude сделает сам.
⚠️ Про память:

Supabase в Docker ест память. На сервере с 1 ГБ RAM он может падать или тормозить. Бери минимум 2 ГБ. На VDSina это стоит ~500 руб/мес.

[ ШАГ 1: УСТАНОВКА ]

Подключи Claude к серверу (через SSH терминал, как в уроке про VDS) и отправь ему:

Мне нужно установить self-hosted Supabase на этом сервере (Ubuntu 22.04).

Сделай всё сам по шагам:
1. Установи Docker и Docker Compose (если ещё нет)
2. Склонируй официальный репозиторий Supabase
3. Настрой .env файл — сгенерируй все ключи (JWT_SECRET, ANON_KEY, SERVICE_ROLE_KEY, пароль PostgreSQL)
4. Запусти docker compose
5. Проверь что все контейнеры работают

Делай всё сам, я буду подтверждать.

Claude выполнит всё: скачает Docker, склонирует Supabase, сгенерирует безопасные ключи, пропишет их в конфиг, запустит все контейнеры и проверит что они работают.

Тебе нужно только подтверждать его действия.

💡 Не переживай:

Claude сам знает правильную последовательность установки Supabase. Он сделал это тысячи раз. Доверься и подтверждай. Если где-то вылезет ошибка — он сам её увидит в выводе и исправит.

[ ШАГ 2: БЕЗОПАСНОСТЬ ]

Supabase установлен и работает. Но прямо сейчас панель управления (Studio) открыта для всех — любой может зайти по IP и удалить все данные. Это нужно закрыть.

Отправь Claude:

Supabase установлен и работает. Теперь настрой безопасность:
1. Закрой Supabase Studio паролем через Nginx (basic auth) — чтобы только я мог зайти
2. Настрой firewall — закрой все порты кроме 22 (SSH), 80 (HTTP), 443 (HTTPS)
3. Настрой ежедневный автоматический бэкап базы данных PostgreSQL
4. Убедись что порты Supabase (8000, 3001 и т.д.) не торчат наружу
Делай всё сам.

Claude закроет панель паролем, настроит firewall, создаст скрипт автобэкапов и проверит что лишние порты закрыты.

⚠️ ОБЯЗАТЕЛЬНО:

Studio без пароля = любой человек в интернете может зайти, увидеть все данные пользователей и удалить их. Этот шаг нельзя пропускать.

[ ШАГ 3: ПОДКЛЮЧЕНИЕ К САЙТУ ]

Supabase работает, безопасность настроена. Осталось подключить к нему сайт — чтобы авторизация, данные и всё остальное работало через твой собственный Supabase.

Отправь Claude:

Self-hosted Supabase работает на этом сервере (Docker, Kong на порту 8000).
Мой сайт лежит в /var/www/neurokod (замени на путь к своему сайту) и работает через Nginx.

Сделай полное подключение:
1. Настрой Nginx чтобы проксировал запросы от сайта к Supabase (auth, rest, realtime, storage)
2. Обнови supabase-config.js на сайте — поставь правильный URL и ANON_KEY от моего self-hosted Supabase
3. Проверь что авторизация работает через локальный Supabase
4. Проверь что REST API отвечает
Проведи полную проверку и покажи результаты.

Claude настроит Nginx как прокси, обновит конфиг сайта и проверит что всё работает вместе.

[ КАК ЭТО РАБОТАЕТ ]

После настройки всё работает на одном сервере:

Браузер Nginx Supabase (Kong) PostgreSQL

Nginx раздаёт сайт и проксирует API-запросы к Supabase. Наружу торчат только порты 80 и 443 (HTTP/HTTPS). Всё остальное закрыто.

[ ЕСЛИ ЧТО-ТО ПОШЛО НЕ ТАК ]

Не паникуй. Просто опиши Claude проблему:

Если контейнеры падают:

Supabase контейнер [имя] постоянно перезапускается. Вот логи: [вставь вывод docker compose logs имя_контейнера]. Разберись и почини.

Если сайт не видит Supabase:

Сайт загружается, но авторизация не работает — в консоли ошибка [вставь ошибку]. Supabase на этом же сервере. Проведи диагностику: проверь Nginx, Kong, конфиг сайта.

Если нужно обновить Supabase:

Как безопасно обновить self-hosted Supabase до последней версии? Сделай бэкап базы перед обновлением.
💡 Золотое правило:

Если видишь ошибку — копируй её полностью и отправляй Claude. Не пытайся разобраться сам. Claude видел эту ошибку тысячу раз и знает что делать.

[ ПРОВЕРКА ]

  • Supabase установлен на VDS (все контейнеры Up)
  • Studio закрыта паролем
  • Firewall настроен (только 22, 80, 443)
  • Бэкапы базы настроены
  • Сайт подключён к своему Supabase
  • Авторизация работает
  • Данные сохраняются

Готово. У тебя свой Supabase на своём сервере в России. Данные под полным контролем. Закон соблюдён.

💬 Совет:

Три запроса Claude — и у тебя полноценный бэкенд на своём сервере. Без единой строчки кода руками. Раньше для этого нужен был девопс-инженер за 200к в месяц. Сейчас нужен Claude и VDS за 500 рублей. Живём в интересное время.