Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
Проверено
5 августа 2026 г.
Версия
0.39.10
Репозиторий
GitHub →
Бэкенд и BaaS

PocketBase

Свой бэкенд на сервере в одном файле: база SQLite, REST API, аутентификация, realtime, хранилище файлов и админка - один Go-бинарь ~30 МБ RAM. Легкая self-hosted альтернатива Firebase, которая ставится за минуту. Подняли актуальную версию в боевом режиме, замерили и проверили вживую: HTTPS, health, админка и авто-REST отвечают.

Август 2026 ~8 минут чтения Fatmetal Team
Бэкенд / BaaS Лицензия: MIT Статус: запущен у нас, 0.39.10

Вердикт

Подходит
  • нужен бэкенд для pet-проекта, MVP или edge - без чужого облака и лимитов чтений
  • хотите один процесс вместо десятка контейнеров: база, API, auth и файлы в одном бинаре
  • цените минимальный расход - весь бэкенд ест ~30 МБ RAM и ставится за минуту
Не подходит
  • нужен тяжелый прод с Postgres, репликацией и горизонтальным кластером - это к Supabase
  • требуется несколько инстансов за балансировщиком: PocketBase масштабируется вертикально
  • команда уже завязана на экосистему Postgres-расширений и SQL-функций
Мин. тариф: CPU2-RAM4-DISK50 Рекомендуем: CPU2-RAM4-DISK50 Сложность: easy Время запуска: ~1 мин Главный риск: весь стейт в одном каталоге Прод-готовность: из коробки (TLS + суперюзер создан)
Что это

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

PocketBase - open-source бэкенд «в одном файле»: один Go-бинарь со встроенным SQLite, который сразу дает базу с табличным редактором, авто REST-like API, аутентификацию (email/пароль плюс OAuth), realtime через SSE-подписки, файловое хранилище и веб-админку. По сути это self-hosted альтернатива Firebase и другим BaaS: весь бэкенд для приложения вы держите на своем сервере, а не в чужом облаке с лимитами чтений и вендор-локом.

Задача, которую он закрывает, - «мне нужен бэкенд, а не инфраструктура». Скачали бинарь, запустили, получили API и админку. Ставится за минуту, в простое ест десятки МБ памяти - удобно для pet-проектов, MVP и edge-сценариев, где полноценный Supabase из десятка контейнеров избыточен. Автор проекта - Gani Georgiev, репозиторий собрал около 40k звезд.

Go (один бинарь)SQLiteREST APIAuth / OAuthRealtime SSECaddy
Что видит владелец

Вход и админка

Первое, что видит владелец, - страница входа в админку по адресу /_/. Тут вся суть PocketBase: за входом стоит один суперюзер и встроенный SQLite, без внешней базы данных и отдельного сервиса аутентификации. Регистрации через веб нет - суперюзер создается заранее, через CLI, о чем ниже.

Страница входа в админку PocketBase: поля email и password суперюзера
Вход в админку PocketBase: один суперюзер, никакой внешней БД. Живой инстанс 0.39.10 на magic-DNS домене с валидным TLS.
Сравнение

Чем отличается от Supabase

Оба закрывают одну нишу self-host backend, но с разных концов: PocketBase - простота, Supabase - мощь.

ПараметрPocketBaseSupabase
Что разворачивается1 Go-бинарь + SQLite~11 контейнеров + Postgres
Расход в простоедесятки МБ RAMнесколько ГБ RAM
Установкаскачал бинарь, запустил (минута)docker compose, тяжелый стек
Под что заточенpet / MVP / edgeтяжелый прод
Масштабированиевертикальное (один процесс)горизонтальное, Postgres
Итогопрощемощнее
i

Как выбирать. Нужен бэкенд «здесь и сейчас» под небольшой проект - PocketBase. Нужен тяжелый прод с Postgres, расширениями и кластером - Supabase. Это не конкуренты за одно место, а два инструмента разного веса в одной нише.

Под капотом

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

PocketBase - это единственный исполняемый файл на Go. Внутри него: встроенный SQLite (база и файловые метаданные), HTTP-сервер с REST API на /api/, веб-админка на /_/, аутентификация и realtime через Server-Sent Events. Внешних зависимостей нет - ни отдельной СУБД, ни брокера, ни рантайма. Наружу приложение слушает порт 8090 на localhost, публичный доступ закрывает Caddy обратным прокси с авто-TLS от Let's Encrypt.

Все состояние живет в одном каталоге pb_data: файл SQLite, загруженные файлы и настройки. Это и есть сила, и слабое место - о бэкапе всего каталога скажем в разделе про грабли. В админке коллекции описываются типовой схемой (текст, число, связь, файл), и по каждой коллекции сразу доступен REST API - без написания эндпоинтов вручную.

Дашборд PocketBase: список коллекций, схема полей и авто-REST API
Дашборд: коллекции с типовой схемой, авто-REST API по кнопке. Коллекция users отдает записи по /api/collections/users/records без единой строки кода.
Конфигурация

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

Реальные требования против того, что заявлено.

Минимум для тестаCPU2-RAM4-DISK50
Реально в простое~30 МБ RAM (pocketbase 29.7 MiB)
Бинарь на диске31 МБ
Каталог pb_data1.2 МБ на старте
Рекомендуем тарифCPU2-RAM4-DISK50
i

Важно: тарифа CPU2-RAM4 хватает с огромным запасом. Весь бэкенд - один процесс на ~30 МБ RAM, база и файлы лежат в каталоге pb_data. Для сравнения: тяжелый Supabase на таком тарифе не поместится.

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

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

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

Рекомендуемая конфигурация: CPU2-RAM4-DISK50

Развернуть в 1 клик →
Развертывание

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

Базовый путь - Cloud Server + Ubuntu 24.04 + бинарь за Caddy.

  1. Создать VM

    Ubuntu 24.04, тариф CPU2-RAM4 - PocketBase ест десятки МБ, запаса хватает с избытком.

  2. Скачать бинарь и завести сервис

    pocketbase serve --http=127.0.0.1:8090

    Кладем бинарь в /opt/pocketbase и оборачиваем в systemd-юнит. Приложение слушает только localhost.

  3. Создать суперюзера

    pocketbase superuser upsert admin@ваш-домен пароль

    Команда идемпотентна. Веб-регистрации суперюзера нет - он заводится через CLI. Пароль от 8 символов, спецсимвол не требуется.

  4. Закрыть TLS

    Caddy обратным прокси на :8090 - автоматический сертификат Let's Encrypt на ваш домен. Админка откроется на /_/, API - на /api/.

Замеры

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

Цифры со свежей установки, весь стек без нагрузки.

Процессов1 (pocketbase) + Caddy впереди
RAM в простое~29.7 MiB (pocketbase)
Бинарь / pb_data31 МБ / 1.2 МБ
TTFB на /api/health0.0007 с, код 200
Health-check/api/health 200; /_/ 200; авто-REST 200
Внешний откликhttps 200, валидный Let's Encrypt

Заказ-тест прошли предметно: инстанс встал из cloud-init, HTTPS поднялся на magic-DNS домене с валидным TLS, /api/health вернул 200, админка /_/ открылась. Вход суперюзером admin@домен паролем сервера пустил в Dashboard, а авто-REST /api/collections/users/records вернул 200 - то есть API работает из коробки, а не только отдает страницу входа.

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

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

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

Особенности «одного файла», о которых лучше знать заранее.

Error: missing or invalid superuser - вход в /_/ не пускает

Причина. Суперюзер PocketBase создается не через веб-форму, а из CLI. Свежий инстанс без этого шага не пустит в админку.

Решение. Прогоните pocketbase superuser upsert admin@домен пароль - команда идемпотентна. В карте маркетплейса суперюзер создается автоматически паролем сервера.

!

Весь стейт - в pb_data. База SQLite и загруженные файлы лежат в одном каталоге. Бэкапить нужно его целиком - потеряли каталог, потеряли бэкенд.

!

Один процесс, вертикальное масштабирование. PocketBase - не кластер. Растете - берете тариф мощнее, а не поднимаете несколько инстансов за балансировщиком.

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

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

Сразу смените пароль суперюзера (в карте он равен паролю сервера) в админке. Порт 8090 наружу не публикуйте - только через прокси с TLS. Настройте правила доступа (API rules) для каждой коллекции, иначе данные могут читаться публично. Для приложения заводите обычных пользователей и OAuth, а суперюзера держите только для администрирования.

Обновление - подмена бинаря на новую версию релиза и перезапуск сервиса. Бэкап - весь каталог pb_data:

systemctl stop pocketbase && tar czf pb_data.tgz pb_data
i

Перед продом закройте: смену пароля суперюзера, TLS на прокси, правила доступа коллекций (API rules), регулярный бэкап каталога pb_data и обновление бинаря на актуальный релиз.

Рядом

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

  • Supabase - старший брат в той же нише: Postgres и десяток сервисов, когда PocketBase перерос проект.
  • Обратный прокси - Caddy или Nginx Proxy Manager для TLS и единого домена перед :8090.
  • Почта - внешний SMTP для писем подтверждения и сброса пароля пользователей.
  • Мониторинг - Uptime Kuma по /api/health и Grafana по метрикам сервера.
Когда не ваш выбор

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

Нужен тяжелый прод на Postgres

Если проекту нужны Postgres-расширения, репликация, сложные SQL-функции и горизонтальный кластер - берите Supabase, а не PocketBase. Это разный вес.

Требуется несколько инстансов за балансировщиком

PocketBase - один процесс на одном сервере. Сценарий «десять реплик за балансировщиком» - не про него; масштабируется вертикально.

Команда завязана на экосистему SQL

Если у вас уже пул Postgres-специалистов, миграции и хранимые процедуры - переезд на SQLite-модель PocketBase может стоить дороже, чем экономит.

FAQ

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

Чем PocketBase отличается от Supabase?

PocketBase - один Go-бинарь и SQLite на десятки МБ RAM, для pet-проектов, MVP и edge. Supabase - около 11 контейнеров и Postgres на несколько ГБ, для тяжелого прода. PocketBase проще, Supabase мощнее.

Нужна ли отдельная база данных?

Нет. SQLite встроен в бинарь, внешней СУБД не требуется. Вся база и файлы лежат в каталоге pb_data.

Как создать суперюзера?

Через CLI: pocketbase superuser upsert admin@домен пароль. Веб-регистрации суперюзера нет. В карте маркетплейса он создается автоматически.

Хватит ли тарифа CPU2-RAM4-DISK50?

С огромным запасом. В простое PocketBase ест ~30 МБ RAM, а бинарь весит 31 МБ. Тарифа CPU2-RAM4 более чем достаточно.

Как делать бэкап?

Сохранять каталог pb_data целиком - в нем SQLite и загруженные файлы. Останавливаете сервис и архивируете каталог.

Можно ли масштабировать горизонтально?

Нет, PocketBase - один процесс, масштабирование вертикальное. Нужен кластер - это к Supabase на Postgres.

Какие ограничения лицензии?

Лицензия MIT - свободное использование, в том числе коммерческое. Ограничений на хостинг нет.

Итог

PocketBase - самый легкий способ поднять свой бэкенд на сервере: база SQLite, REST API, аутентификация, realtime и админка в одном Go-бинаре под лицензией MIT. В простое весь стек ест ~30 МБ RAM, бинарь весит 31 МБ, а health отвечает за 0.0007 с - вход суперюзером и авто-REST проверили вживую. Это self-hosted альтернатива Firebase без чужого облака и лимитов чтений. Плата за простоту - один процесс и весь стейт в каталоге pb_data: нужен тяжелый прод на Postgres и кластер - берите Supabase.

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

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

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