Уведомления
Очистить все

Не могу подключить Baserow к n8n — ошибка при загрузке таблиц

9 Записи
2 Пользователи
1 Reactions
132 Просмотры
 Kora
(@kora)
Записи: 8
Active Member
Создатель темы
 
[#17]

Привет всем. Настраиваю связку Baserow + n8n, оба в Docker через Portainer. Baserow открывается по домену нормально, но когда в n8n добавляю Baserow ноду и пытаюсь выбрать базу данных — вылетает ошибка:

"There was a problem loading the parameter options from server: [object Object]"

В credentials указал домен  https://db.example.com , email и пароль. Сохраняется без ошибок, но дропдаун с базами не загружается. Что делать?


Тема была редактированна 7 месяцев назад 2 раз от Kora
 
Размещено : 22/03/2026 9:33 пп
(@admin)
Записи: 25
Участник Admin
 

Привет! Давай разбираться. Первым делом проверь — n8n вообще достигает Baserow внутри Docker? Выполни команду прямо из контейнера n8n:

docker exec -it n8n-master sh -c \ "node -e \"const h=require('http');const d=JSON.stringify({email:'твой@email.com',password:'твойпароль'});const r=h.request({hostname:'baserow',port:80,path:'/api/user/token-auth/',method:'POST',headers:{'Content-Type':'application/json','Content-Length':d.length}},res=>{let b='';res.on('data',c=>b+=c);res.on('end',()=>console.log(res.statusCode,b))});r.write(d);r.end()\""

Что вернёт?


Это сообщение было изменено 7 месяцев назад от Шведков Илья
 
Размещено : 22/03/2026 9:35 пп
 Kora
(@kora)
Записи: 8
Active Member
Создатель темы
 

Запись от: @admin
↑

Что вернёт?

Вернуло вот это:

400 <!doctype html> <html lang="en"> <head><title>Bad Request (400)</title></head> <body><h1>Bad Request (400)</h1></body> </html>

 
Размещено : 22/03/2026 9:36 пп
(@admin)
Записи: 25
Участник Admin
 

400 — это хорошо, значит соединение есть. Baserow получает запрос, но Django его отклоняет. Скорее всего hostname baserow не прописан в ALLOWED_HOSTS. Проверь логи:

docker logs baserow --tail 10

 
Размещено : 22/03/2026 9:37 пп
 Kora
(@kora)
Записи: 8
Active Member
Создатель темы
 

Вот что в логах:

ERROR - Invalid HTTP_HOST header: 'baserow'. You may need to add 'baserow' to ALLOWED_HOSTS. Bad Request: /api/user/token-auth/

Запись от: @admin
↑

Скорее всего hostname baserow не прописан в ALLOWED_HOSTS

Так и есть. Как добавить?


 
Размещено : 22/03/2026 9:38 пп
(@admin)
Записи: 25
Участник Admin
 

Многие на этом месте добавляют переменную DJANGO_ALLOWED_HOSTS — но в Baserow она не работает. Правильная переменная называется BASEROW_EXTRA_ALLOWED_HOSTS. Открой свой docker-compose стек и добавь в environment:

environment: BASEROW_PUBLIC_URL: 'https://db.example.com' BASEROW_CADDY_ADDRESSES: ':80' BASEROW_EXTRA_ALLOWED_HOSTS: 'baserow,localhost'

Важно: BASEROW_PUBLIC_URL добавляется в ALLOWED_HOSTS автоматически, его в BASEROW_EXTRA_ALLOWED_HOSTS писать не нужно. Только дополнительные хосты.

После этого пересоздай стек и проверь логи снова.


 
Размещено : 22/03/2026 9:39 пп
Kora reacted
 Kora
(@kora)
Записи: 8
Active Member
Создатель темы
 

Помогло! Логи чистые, ошибок нет. Повторил команду проверки — вернуло 200 и токен. В n8n в credentials поменял хост с  https://db.example.com  на  http://baserow  — и дропдаун с базами данных загрузился!

Спасибо огромное, несколько часов убил на это.


 
Размещено : 22/03/2026 9:39 пп
(@admin)
Записи: 25
Участник Admin
 

Рад что разобрались! Подведу итог для тех кто найдёт эту тему:

Проблема: n8n Baserow нода не загружает список баз данных ([object Object]), хотя credentials сохраняются.

Причина: Django внутри Baserow отклоняет запросы от контейнера n8n, потому что hostname baserow не в списке разрешённых хостов.

Решение:

  1. В docker-compose Baserow добавить переменную:

BASEROW_EXTRA_ALLOWED_HOSTS: 'baserow,localhost'
  1. В credentials n8n указать хост  http://baserow  (внутренний Docker hostname), а не внешний домен.

Частая ошибка: переменная DJANGO_ALLOWED_HOSTS в Baserow не работает — нужна именно BASEROW_EXTRA_ALLOWED_HOSTS.


 
Размещено : 22/03/2026 9:40 пп
(@admin)
Записи: 25
Участник Admin
 

UPD для baserow:1.24.2 

Это была цепочка из нескольких проблем, которые накладывались одна на другую:

  1. Неправильная переменная — DJANGO_ALLOWED_HOSTS не работает в Baserow, нужна BASEROW_EXTRA_ALLOWED_HOSTS

  2. Caddy роутит по hostname — в новой версии Baserow Caddy пропускает /api/* только если hostname совпадает с BASEROW_PUBLIC_URL. Запросы от n8n приходили с hostname baserow — Caddy их не узнавал и отдавал фронтенд вместо API

  3. BASEROW_CADDY_GLOBAL_CONF — вставляется внутрь глобального блока {}, поэтому туда нельзя вставить отдельный сайт

  4. Решение — заменить Caddyfile целиком через volume, убрав проверку @is_baserow_tool чтобы все запросы на /api/* роутились на бэкенд независимо от hostname

По сути Baserow в новых версиях стал сложнее внутри — раньше этого не было. Зато теперь всё настроено правильно и стабильно работает.

Финальная конфигурация:

  1. BASEROW_EXTRA_ALLOWED_HOSTS: 'baserow,localhost' — правильная переменная для Django

  2. Кастомный /root/Caddyfile смонтирован через volume — убрана проверка @is_baserow_tool которая блокировала запросы от n8n

  3. В n8n credentials хост  http://baserow


 
Размещено : 22/03/2026 10:43 пп