Self-hosted Supabase: развернуть у себя
Зачем поднимать Supabase на своём сервере, что входит в стек, что обязательно бэкапить, как проходят обновления и чего не будет по сравнению с облаком.
Все статьи гида Supabase · 7
Self-hosted вариант нужен там, где облако не подходит по требованиям, а не там, где хочется сэкономить: экономия появляется только на объёме, а обязанности - сразу.
Зачем
Данные не должны уходить наружу. Персональные данные, медицина, финансы, договор с клиентом, прямо запрещающий передачу третьим лицам. Самая честная причина: тут вопрос не в цене.
Объём. На больших данных и большом трафике счёт за облако растёт, и в какой-то момент сервер оказывается дешевле.
Независимость. Тарифы, доступность и решения сервиса вам неподконтрольны.
Полный контроль над базой. Расширения, настройки, прямой доступ - всё, что в облаке ограничено.
Чего в этом списке нет: «проще» и «быстрее». Обычно наоборот.
Что входит в стек
Это не одна программа, а набор сервисов, работающих вместе:
- PostgreSQL - собственно база.
- Слой доступа по HTTP, превращающий таблицы в API.
- Сервис авторизации - регистрация, вход, токены.
- Хранилище файлов.
- Среда выполнения функций.
- Панель управления.
- Обратный прокси, связывающий всё это.
Разворачивается обычно контейнерами. Принципы эксплуатации те же, что описаны для self-hosted стека n8n: тома для данных, переменные окружения, обратный прокси с сертификатом.
Практическая деталь: обслуживать придётся весь набор. Обновление одного сервиса может потребовать согласования с остальными, и это основная разница с облаком, где эту работу делают за вас.
Что бэкапить
Три вещи, и все обязательны:
База данных. Регулярно, автоматически, с проверкой восстановления. Бэкап, который никогда не восстанавливали, бэкапом не является.
Файлы хранилища. Они лежат отдельно от базы, и про них забывают. База без файлов восстановит ссылки на несуществующие объекты.
Ключи для подписи токенов. Самый недооценённый пункт. Потеря означает, что все выданные токены станут недействительными: пользователи выйдут из аккаунтов, а интеграции перестанут работать до перенастройки.
Плюс переменные окружения и конфигурация: восстанавливать их по памяти - отдельное удовольствие.
Обновления
Порядок, который снижает риск:
- Читать примечания к версии. Изменения, ломающие совместимость, здесь встречаются.
- Бэкап до обновления. Всегда.
- Сначала на тестовом окружении. Обновление стека - не то же самое, что обновление одной программы.
- Обновлять регулярно. Пропущенные версии превращают обновление в миграцию через несколько мажорных версий.
- Проверять после. Авторизация, доступ к данным, загрузка файлов, функции - по списку.
Чего не будет по сравнению с облаком
Честный список:
- Автоматических бэкапов - настраиваете сами.
- Масштабирования по кнопке - планируете ресурсы сами.
- Мониторинга из коробки - ставите сами.
- Гарантий доступности - она равна доступности вашего сервера.
- Обновлений без вашего участия.
- Части возможностей, доступных только в облачной версии: набор различается и меняется, проверять надо перед решением, а не после.
Практический ориентир: разворачивать у себя стоит, когда есть требование или объём. Для прототипа и небольшого проекта облако проще, а сэкономленное время дороже разницы в счёте.
Общая картина - гид по Supabase. Про автоматизации вокруг базы - связка с n8n.
Вопросы и ответы
Зачем поднимать Supabase у себя?
Три причины: данные не должны уходить наружу по закону или по договору, объём вырос настолько, что счёт за облако сопоставим со стоимостью сервера, и потребность в независимости от доступности сервиса. Во всех случаях решение принимается по ограничениям, а не по удобству.
Что входит в self-hosted стек?
Не одна программа, а набор сервисов: база PostgreSQL, слой доступа по HTTP, сервис авторизации, хранилище файлов, среда выполнения функций и панель управления. Разворачиваются они вместе, обычно контейнерами, и обслуживать придётся весь набор.
Что обязательно бэкапить?
Базу данных, файлы из хранилища и ключи, которыми подписываются токены. Потеря ключей означает, что все выданные токены станут недействительными: пользователям придётся входить заново, а часть интеграций перестанет работать до перенастройки.
Ещё по теме
- Supabase: что это и с чего начатьГид
- Авторизация и RLS в Supabase: роли и доступКак устроена авторизация, что такое политики доступа на уровне строк, какие политики нужны в типовом проекте и где чаще всего ломаются MVP.
- Edge-функции Supabase: логика без своего сервераКогда нужны серверные функции, какие у них ограничения, как работать с секретами и как устроены деплой, логи и отладка.
- Supabase против Firebase: что выбрать под MVPЧем отличаются модели данных, как ведёт себя цена на росте, насколько сильна привязка к поставщику и как выбрать под конкретный проект.
Сделаю под ключ
Соберу MVP на Supabase
Авторизация, база с RLS, хранилище, функции и оплата, настроенные правильно с первого раза.
от 1 500 $ · 1-2 недели