Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
Проверено
28 июля 2026 г.
Запуск
docker compose (formbricks stack + Caddy)
Сложность
Средний
Ключевой замер
RAM idle ~963 MiB
Версия
5.2.1
Репозиторий
GitHub →
ФОРМЫ И ОПРОСЫ

Formbricks

Self-hosted платформа опросов и форм: конструктор с блоками и условной логикой, 40+ шаблонов (NPS, CSAT, CES, PMF, churn), публичные ссылки и аналитика ответов. Замена Typeform, Google Forms и Qualtrics, где данные респондентов остаются на вашем сервере. Развернули версию 5.2.1 в Docker и замерили реальное потребление.

Июль 2026 ~10 минут чтения Fatmetal Team
Формы и опросы Лицензия: AGPLv3 + Enterprise Статус: запущен у нас, v5.2.1

Вердикт

Подходит
  • командам, которым нужны NPS/CSAT/CES-опросы с аналитикой на своей инфраструктуре
  • продуктам с in-app и website-опросами и условной логикой
  • тем, кто держит ПДн респондентов у себя, а не в чужом облаке
Не подходит
  • если нужна одна разовая форма - стек из 5 контейнеров избыточен
  • при жестком бюджете по железу: тариф CPU4-RAM8-DISK100 v5 не тянет
  • если SSO, 2FA и роли обязательны без затрат - это платный Enterprise
Мин. тариф: CPU4-RAM8-DISK100 Рекомендуем: CPU4-RAM8-DISK100 Сложность: medium Отклик web: ~14 мс локально Главный риск: тяжелый стек, файлы требуют S3 Прод-готовность: с оговорками (SMTP + S3 + бэкап)
Что это

Что это и какую задачу решает

Formbricks - открытая платформа для опросов и форм, которую можно поставить на свой сервер. Это не просто конструктор форм: помимо публичных link-опросов есть website-опросы (баннер на сайте) и in-app-опросы (триггеры прямо в продукте), плюс готовый набор из 40+ шаблонов - NPS, CSAT, CES, PMF, churn, eNPS и другие. Конструктор собирается из блоков с условной логикой и ветвлением, есть живое превью прямо в редакторе.

Собранные ответы уходят в аналитику: сводки по опросам считаются через семантический слой Cube, есть API и SDK, вебхуки и интеграции с Notion, Google Sheets, Slack и Airtable. По классу задач это ближе к experience management, чем к легкому форм-билдеру. Ключевая причина ставить у себя - опросы обрабатывают персональные данные третьих лиц (респондентов), и держать их на своем сервере под 152-ФЗ проще, чем в чужом облаке.

Next.jsPostgres 18 + pgvectorCubeValkeyHub APIDocker
Сравнение

Чем отличается от платных аналогов

Сравнение по тому, что влияет на выбор, без снисходительности к конкурентам.

ПараметрFormbricksTypeform / Google Forms / Qualtrics
Модель ценыядро бесплатно (AGPLv3), self-hostподписка, оплата за ответы или места
Где данные респондентовна вашем серверев облаке вендора
In-app и website-опросыесть из коробкичастично или только у enterprise
Vendor lock-inнет, свой Postgres и APIданные и логика у вендора
Ресурсытяжелый стек, свое железоничего не держите
SSO, 2FA, ролиплатный Enterprise-ключв тарифах
Под капотом

Тех-стек и архитектура

Актуальная ветка v5 - это уже не «пара контейнеров», а полноценный стек. В работе крутятся 5 контейнеров: веб-приложение и API на Next.js (образ ghcr.io/formbricks/formbricks:5.2.1), Postgres 18 с расширением pgvector как основная БД, Cube для семантического слоя аналитики (сводки ответов, дашборды), Hub API как служебный слой taxonomy и Valkey (форк Redis) под кеш, rate limiting и audit log.

Плюс на старте отрабатывают два одноразовых контейнера миграций: formbricks-migrate применяет Prisma-миграции основной БД, а hub-migrate - миграции Hub (goose + river). Опциональные профили taxonomy/qwen (нужен GPU) и vLLM мы не включаем. Снаружи перед приложением стоит Caddy на хосте с авто-TLS по Let's Encrypt.

Конфигурация

Минимальная конфигурация

Реальные требования против скромного официального минимума.

Официальный минимумDocker Engine + Compose V2, точной RAM не фиксируют
Контейнеры в простое~963 MiB (5 сервисов)
Весь хост занят~1,6 GiB
Образы на диске~5,21 GB (5 образов)
Диск под стеком~7,4 GiB
Рекомендуем тарифCPU4-RAM8-DISK100
i

Важно: старые данные про «512 MB - 1 GB RAM» - это про легаси-схему из двух контейнеров. Для v5 они нереалистичны: только веб-контейнер на Next.js съедает ~766 MiB в простое, а вместе с Cube и Postgres стек упирается почти в гигабайт. тариф CPU4-RAM8-DISK100 стек не потянет - нужен старший.

В маркетплейсе Fatmetal

Не хотите ставить руками?

Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за пару минут получаете рабочий домен, валидный TLS и файл с доступами.

Рекомендуемая конфигурация: CPU4-RAM8-DISK100

В маркетплейс →
Развертывание

Развертывание на Fatmetal

Базовый путь - Cloud Server + Ubuntu 24.04 + Docker, за Caddy с авто-TLS.

  1. Создать VM

    Старший тариф (стек тяжелый), Ubuntu 24.04, приложение Docker. Дождаться, пока Docker доустановится - после статуса Running это еще пара минут.

  2. Сгенерировать секреты

    Без корректных ключей деплой падает: нужны ENCRYPTION_KEY, NEXTAUTH_SECRET, CRON_SECRET, HUB_API_KEY, CUBEJS_API_SECRET.

    openssl rand -hex 32   # для каждого секрета отдельно
  3. Подготовить compose и .env

    mkdir ~/formbricks && cd ~/formbricks
    curl -o docker-compose.yml ССЫЛКА
    curl -o .env ССЫЛКА   # вписать секреты, WEBAPP_URL, NEXTAUTH_URL
  4. Поднять стек

    docker compose pull
    docker compose up -d

    Сначала отработают контейнеры миграций, затем поднимется web. Проверка отклика: curl localhost:3000.

  5. Создать администратора

    Первый вход - мастер создания администратора. Регистрация по умолчанию закрыта (только по инвайту).

https://45-15-159-135.fatmetal.net
Дашборд Formbricks со списком опросов
Рабочий экземпляр Formbricks 5.2.1: дашборд со списком опросов.
https://45-15-159-135.fatmetal.net
Галерея шаблонов Formbricks с живым превью
Галерея из 40+ шаблонов с живым превью перед созданием опроса.
Замеры

Что измерили после запуска

Цифры со свежей установки в простое. Только реальные замеры с живого стенда.

web (Next.js) в простое~766 MiB
postgres (pgvector)~101 MiB
cube (аналитика)~84 MiB
hub~7 MiB
redis / valkey~4 MiB
Итого 5 контейнеров~963 MiB
Весь хост занят~1,6 GiB
Образы на диске~5,21 GB
Отклик web (127.0.0.1:3000)~14 мс
Отклик снаружи через Caddy + TLS~0,32 с
i

Главное: самый прожорливый - веб-контейнер (~766 MiB), на него приходится большая часть RAM. Cube и Postgres добавляют еще ~185 MiB, а hub и valkey почти не заметны. Стек рабочий, но именно из-за web тариф CPU4-RAM8-DISK100 не подходит.

https://45-15-159-135.fatmetal.net
Редактор опроса Formbricks с живым превью шкалы NPS
Редактор опроса: блоки слева и живое превью шкалы NPS 0-10 справа.
https://45-15-159-135.fatmetal.net
Сводка результатов NPS в Formbricks
Сводка результатов NPS на 14 ответов: промоутеры 57%, нейтралы 21%, критики 21%.

Проверено на версии 5.2.1, июль 2026. На новых версиях результаты могут отличаться.

Подводные камни

Где может сломаться

Реальные грабли актуальной ветки v5.

!

Тяжесть стека. Если опираться на старый официальный блог с web + postgres, читатель недосчитается половины сервисов. В v5 реально работают 5 контейнеров плюс миграции - под них нужно ~1 GiB RAM и ~5 GB под образы.

!

Почта требует SMTP. Инвайты, сброс пароля и верификация email не работают без корректных SMTP-настроек. Без них ставят EMAIL_VERIFICATION_DISABLED=1 и PASSWORD_RESET_DISABLED=1, иначе пользователь застрянет на подтверждении.

!

Автомиграции при апгрейде. Миграции БД применяются автоматически на старте контейнера. Официальный гайд прямо требует бэкап тома postgres перед обновлением - иначе откатиться будет нечем.

some files were not uploaded

Причина. Файловые загрузки в v5 не хранятся локально - им нужно S3-совместимое хранилище. Даже с настроенным CORS запрос отдает 204, файл появляется в бакете, но приложение показывает эту ошибку и не отображает картинку (issue #7086).

Решение. Для прода подключить внешний S3, а не локальные volume-моунты. Локальное хранилище ненадежно и официально не рекомендовано.

Too many requests, Please try after a while!

Причина. Rate limiting на странице логина/регистрации срабатывает сразу после квик-старта при активных попытках входа (issue #1533).

Решение. Выдержать паузу; лимиты живут в Valkey. Для отладки можно ослабить rate limit через env, но на проде это оставлять не стоит.

Безопасность

Безопасность и обновления

Регистрация по умолчанию закрыта, новые пользователи заводятся по инвайту - это правильный дефолт для платформы с ПДн респондентов. Апдейты берутся из GitHub-репозитория и релизов; перед обновлением всегда снимайте бэкап тома postgres, так как миграции применяются автоматически.

Обновление стека:

docker compose pull && docker compose up -d

Бэкап основной БД (опросы, ответы, контакты):

docker exec formbricks-postgres pg_dump -U postgres formbricks > backup.sql

Что закрыть перед продом: TLS (у нас Caddy с Let's Encrypt), корректные секреты (ENCRYPTION_KEY, NEXTAUTH_SECRET, CRON_SECRET, HUB_API_KEY, CUBEJS_API_SECRET), внешний S3 под файлы, рабочий SMTP, бэкап тома postgres и закрытые наружу внутренние порты (Postgres, Cube, Hub слушают только внутри). Часть корпоративных фич безопасности - SSO OIDC/SAML, 2FA, audit log, reCAPTCHA - живет в Enterprise-лицензии.

Рядом

Связь с другими стеками

  • Обратный прокси - Caddy (у нас) или Nginx Proxy Manager для TLS и одного домена наружу.
  • S3-хранилище - обязательно для файловых загрузок: MinIO у себя или внешний S3-совместимый бакет.
  • SMTP - любой почтовый шлюз или сервис рассылок для инвайтов, сброса пароля и email-followups.
  • Интеграции данных - Notion, Google Sheets, Slack, Airtable через встроенные коннекторы и вебхуки.
  • Бэкапы - pg_dump тома postgres + выгрузка в S3 по расписанию.
Границы

Когда это НЕ ваш выбор

Нужна одна форма на лендинг

Ради разовой формы обратной связи поднимать 5 контейнеров, S3 и SMTP - перебор. Легкий форм-конструктор или встраиваемая библиотека решат задачу дешевле.

Жесткий бюджет по железу

v5 стабильно занимает ~1 GiB RAM под контейнеры и ~5 GB под образы. тариф CPU4-RAM8-DISK100 это не потянет - если нет старшего сервера, стек будет упираться в память.

SSO, 2FA и роли обязательны и бесплатно

OIDC/SAML SSO, двухфакторная аутентификация, роли и команды, audit log - это платный Enterprise-ключ. Если корпоративная авторизация нужна без затрат, community-редакции не хватит.

Академические опросы с квотами и экспортом в SPSS/R

Для тяжелой исследовательской логики, квот и научного экспорта зрелее LimeSurvey. Formbricks сильнее в product-опросах (NPS/CSAT/in-app), а не в академической методологии.

FAQ

Частые вопросы

Хватит ли тарифа CPU4-RAM8-DISK100?

Нет. В простое 5 контейнеров занимают ~963 MiB, а весь хост - около 1,6 GiB. Только веб-контейнер съедает ~766 MiB. Берите старший тариф CPU4-RAM8-DISK100.

Сколько места на диске нужно?

Образы занимают ~5,21 GB (5 штук), под весь стек уходит ~7,4 GiB. Диск на 100 GB закрывает это с запасом под данные.

Работают ли загрузки файлов из коробки?

Нет, для файловых загрузок нужен внешний S3-совместимый бакет. Локальные volume-моунты официально не рекомендованы и дают ошибку «some files were not uploaded».

Нужен ли SMTP?

Для инвайтов, сброса пароля и верификации email - да. Без SMTP их отключают через EMAIL_VERIFICATION_DISABLED и PASSWORD_RESET_DISABLED, иначе пользователи застрянут на подтверждении.

Как обновлять и не потерять данные?

docker compose pull и up -d. Миграции БД применяются автоматически на старте, поэтому перед обновлением обязательно снимайте бэкап тома postgres.

Что бесплатно, а что платно?

Ядро под AGPLv3 - опросы, шаблоны, логика, API/SDK, вебхуки, интеграции. Платный Enterprise-ключ разблокирует SSO OIDC/SAML, 2FA, роли и команды, audit log, снятие плашки Powered by и reCAPTCHA.

Можно ли ставить без Docker?

Официальный путь развертывания - Docker Compose с полным набором сервисов. Собирать стек из 5 компонентов вручную без Docker не рекомендуется.

Итог

Formbricks 5.2.1 - зрелая self-hosted платформа опросов уровня experience management: 40+ шаблонов, NPS/CSAT/CES, условная логика, публичные ссылки и аналитика ответов через Cube, с данными респондентов на своем сервере. Плата за это - тяжесть: v5 это 5 рабочих контейнеров ~963 MiB RAM и ~5,21 GB образов, файловые загрузки требуют S3, а почта - SMTP. тариф не тянет, берите старший CPU4-RAM8-DISK100. Для команд, которым нужны продуктовые опросы под контролем, это разумный выбор; для одной разовой формы - избыточно.

Анонсы новых разборов в Telegram-канале Новые гайды и карточки в маркетплейсе первыми @fatmetal_channel →

Этот стек у нас запущен на тарифе CPU4-RAM8-DISK100. Нашли баг в гайде - напишите, поправим в течение дня.

Спросить инженера в TelegramМы на связи