// Engineering Log
n8n и бэкенд-сервисы: Часть 2 — Supabase
Опубликовано 22.09.2026
// Быстрый маршрут
Эта статья относится к теме Python и автоматизация.
Supabase — бэкенд-платформа на основе PostgreSQL. Она объединяет базу данных, автоматически создаваемый REST API, регистрацию и вход пользователей, хранилище файлов, серверные функции и подписку на изменения. Код распространяется под лицензией Apache 2.0, поэтому Supabase можно использовать как облачный сервис или установить на собственный сервер.
Из чего состоит Supabase
- База данных — полноценный PostgreSQL: таблицы, индексы, функции, транзакции, расширения.
- REST API — генерируется автоматически по структуре таблиц (PostgREST): для каждой таблицы сразу доступны чтение, вставка, обновление и удаление.
- Auth — регистрация и вход по почте и паролю, одноразовым ссылкам, через внешних провайдеров.
- Row Level Security — политики доступа на уровне строк: пользователь видит только те записи, которые разрешает политика.
- Storage — хранилище файлов с правами доступа.
- Edge Functions — серверные функции на TypeScript.
- Realtime — рассылка изменений данных подписанным клиентам.
Главное отличие от документных сервисов — это обычный PostgreSQL. Данные можно выгрузить стандартными средствами (pg_dump), а к базе подключить любое приложение, которое умеет работать с PostgreSQL, в том числе n8n.
Облако или свой сервер
Облачная версия удобна, но её серверы находятся за рубежом, а картой российского банка сервис не оплатить. Для персональных данных граждан России с 1 июля 2025 года она не подходит: первичный сбор таких данных должен вестись в базах на территории России.
Установка на свой сервер описана в официальной документации: репозиторий клонируется, файл .env.example копируется в .env, в нём задаются секреты, затем все сервисы запускаются командой docker compose up -d. Перед первым запуском обязательно замените значения POSTGRES_PASSWORD, JWT_SECRET, ANON_KEY, SERVICE_ROLE_KEY и DASHBOARD_PASSWORD: документация прямо предупреждает, что запускать сервис со значениями по умолчанию нельзя.
Минимальные требования для небольшой рабочей установки — 4 ГБ оперативной памяти, 2 ядра и 40 ГБ на SSD; рекомендуется 8 ГБ, 4 ядра и 80 ГБ. В отличие от облака, самостоятельная установка не включает журналы и аналитику (они подключаются отдельным файлом compose), автоматические резервные копии и HTTPS: сертификат настраивается на обратном прокси, а резервное копирование базы — вашими силами.
Что умеет узел Supabase в n8n
Встроенный узел Supabase работает только со строками таблиц. Операций пять:
- создать строку;
- удалить строку;
- получить одну строку;
- получить все строки, отобранные фильтром;
- изменить строку.
По умолчанию узел видит схему public; другую схему можно указать в параметре Use Custom Schema.
Учётные данные узла — адрес проекта (Host) и секретный ключ. Supabase переходит на новый формат ключей: старые ключи service_role пока работают, но их отключают, поэтому для новых подключений берите секретный ключ нового формата. Секретный ключ обходит политики Row Level Security, поэтому хранится только в n8n и на сервере.
Чего узел не умеет
Произвольного SQL, операций с пользователями Auth и файлами Storage в узле нет. Для них есть два пути:
- Узел Postgres с прямым подключением к базе Supabase. Он выполняет любой SQL: соединения таблиц, агрегаты, массовые обновления. Для самостоятельной установки это обычное подключение к PostgreSQL по частной сети.
- Узел HTTP Request к API Supabase с теми же учётными данными. Так вызываются функции Auth, Storage и Edge Functions.
Как Supabase сообщает n8n об изменениях
Для этого служат Database Webhooks. Это обёртка над триггерами PostgreSQL и расширением pg_net: после вставки, изменения или удаления строки база асинхронно отправляет HTTP-запрос и не задерживает основную транзакцию. Настраиваются веб-хуки в панели управления или SQL-запросом.
В теле запроса приходит JSON с полями type (INSERT, UPDATE или DELETE), table, schema, record — строка после изменения — и old_record — строка до изменения. В n8n такой запрос принимает узел Webhook, а узел Switch разводит обработку по значению type.
Если Supabase и n8n запущены в Docker на одной машине, адрес localhost внутри контейнера указывает на сам контейнер. Документация Supabase для такого случая советует host.docker.internal; на сервере удобнее поместить оба сервиса в одну сеть Docker и обращаться к n8n по имени контейнера.
Примеры процессов
Заявки с сайта в базу. Webhook принимает форму → узел Supabase сохраняет заявку в таблицу leads → сообщение менеджеру в Telegram. Если заявка с тем же телефоном уже есть, её лучше найти выборкой строк по фильтру и обновить, а не создавать дубликат.
Письмо о смене статуса заказа. Database Webhook на таблицу orders → Webhook в n8n → IF: record.status отличается от old_record.status → письмо клиенту. Сравнение со старым значением отсекает изменения, не касающиеся статуса.
Ежедневный отчёт. Schedule Trigger в 9:00 → узел Postgres (Execute Query) с запросом, который считает заказы и выручку за вчера → сообщение в рабочий чат. Агрегацию делает база одним запросом, а не n8n по тысячам строк.
Типичные ошибки
- Секретный ключ в клиентском коде. Во фронтенд передают только публичный ключ; секретный остаётся в n8n.
- Таблица без Row Level Security. Если политика не включена, публичный ключ даёт доступ ко всем строкам таблицы через REST API.
- Самостоятельная установка без резервных копий. Облачные резервные копии на свой сервер не переносятся; настройте
pg_dumpили резервное копирование с журналами WAL. - Порт PostgreSQL открыт наружу ради n8n. Подключайте n8n к базе через частную сеть.
- Большие выборки через узел Supabase. Тысячи строк надёжнее обрабатывать SQL-запросом на стороне базы.
// Похожая задача
Если у вас похожая ситуация
Эта статья относится к одной из рабочих тем. Можно продолжить чтение по теме, перейти на главную, чтобы понять, чем я занимаюсь, или сразу открыть услуги.
Тема статьи
Python и автоматизация
Боты, интеграции, внутренние сервисы, автоматизация процессов и workflow.
Часто с этим приходят
- Сделать бота, интеграцию или внутренний инструмент
- Убрать ручную рутину через Python и API
- Связать сервисы и автоматизировать процесс целиком
// Следующий шаг
Если вам нужна не только статья, а помощь по этой теме, удобнее сразу перейти в услугу. Главная и подборка материалов остаются рядом.
Открыть услуги// Reviews
Отзывы по теме
Как всегда оперативно и качественно! По вопросам с серверами обращаюсь к Михаилу.
Как всегда оперативно и качественно! По вопросам с серверами обращаюсь к Михаилу.
// Contact
Нужна помощь?
Свяжись со мной и я помогу решить проблему
Написать в TelegramОтвечаю в течение рабочего дня (03:00–13:00 GMT)
Или оставьте заявку здесь:
// Related