bolt Valebyte VPS от $4/мес — NVMe, запуск за 60 секунд.

Получить VPS arrow_forward
eco Начальный Туториал

Развёртывание Baserow на VPS: self-hosted no-code база данных

calendar_month Jul 29, 2026 schedule 20 мин. чтения visibility 24 просмотров
Развёртывание Baserow на VPS: self-hosted no-code база данных
info

Нужен сервер для этого гайда? Мы предлагаем выделенные серверы и VPS в 50+ странах с мгновенной настройкой.

Нужен сервер для этого гайда?

Разверните VPS или выделенный сервер за минуты.

Развёртывание Baserow на VPS: self-hosted no-code база данных

TL;DR

В этом подробном руководстве мы шаг за шагом настроим и развернем Baserow — мощную open-source no-code базу данных — на вашем собственном виртуальном приватном сервере (VPS). Вы научитесь устанавливать Docker, конфигурировать Baserow с использованием Docker Compose, обеспечивать безопасный доступ через HTTPS с помощью Caddy и настраивать автоматическое резервное копирование, получая полный контроль над вашими данными и приложениями.

  • Настройка современного VPS с Ubuntu Server 24.04 LTS для максимальной стабильности и безопасности.
  • Установка и конфигурирование Docker и Docker Compose для эффективного управления контейнеризированными приложениями.
  • Развертывание Baserow версии 1.25.x с использованием официальных образов Docker.
  • Настройка безопасного доступа к Baserow через HTTPS с автоматическим получением сертификатов Let's Encrypt с помощью Caddy.
  • Реализация стратегии резервного копирования для базы данных и пользовательских файлов Baserow.
  • Получение полного контроля над вашей no-code платформой, обеспечивая конфиденциальность и гибкость.

Что мы настраиваем и зачем

Схема: Что мы настраиваем и зачем
Схема: Что мы настраиваем и зачем

В этом руководстве мы сфокусируемся на развертывании Baserow — мощной и гибкой open-source платформы для создания no-code баз данных. Baserow позволяет пользователям создавать и управлять реляционными базами данных без написания единой строки кода, предлагая интуитивно понятный интерфейс, напоминающий электронные таблицы, но с функциональностью полноценной базы данных. Это идеальное решение для команд, которым нужно быстро структурировать данные, автоматизировать рабочие процессы и создавать простые приложения.

В итоге вы получите полностью функционирующий экземпляр Baserow, доступный по собственному доменному имени с защищенным HTTPS-соединением. Вы сможете создавать базы данных, таблицы, настраивать поля, представления, формулы и API-интерфейсы, предоставляя доступ своей команде или клиентам. Все данные будут храниться на вашем собственном сервере, обеспечивая максимальный контроль и конфиденциальность.

Альтернативы: Cloud-managed vs. Self-hosted

На рынке существует множество no-code баз данных, таких как Airtable, NocoDB, SeaTable и Google Sheets с расширениями. Они делятся на две основные категории:

  • Cloud-managed решения: Это SaaS-платформы, где провайдер управляет всей инфраструктурой. Они удобны, не требуют технических знаний для развертывания, но вы зависите от провайдера в вопросах безопасности, масштабирования, ценообразования и владения данными. Примеры включают Airtable, Smartsheet.
  • Self-hosted решения: Такие как Baserow, позволяют вам установить программное обеспечение на ваш собственный сервер (VPS или dedicated). Это дает полный контроль над данными, безопасностью, производительностью и кастомизацией. Вы не привязаны к ценовой политике одного провайдера и можете адаптировать систему под свои нужды.

Мы выбираем self-hosted Baserow на VPS по нескольким причинам:

  • Полный контроль над данными: Ваши данные остаются на вашем сервере, что критически важно для конфиденциальных проектов, соответствия GDPR и других регуляций.
  • Экономическая эффективность: При умеренном использовании и правильной настройке, содержание VPS часто обходится дешевле, чем подписки на cloud-managed сервисы, особенно по мере роста команды или объема данных.
  • Гибкость и кастомизация: Возможность тонкой настройки сервера и самого Baserow под специфические требования, интеграция с другими self-hosted сервисами.
  • Независимость: Вы не зависите от изменений в политике, ценах или функционале стороннего провайдера.

Какой VPS-конфиг нужен под эту задачу

Схема: Какой VPS-конфиг нужен под эту задачу
Схема: Какой VPS-конфиг нужен под эту задачу

Требования к VPS для Baserow могут сильно варьироваться в зависимости от количества пользователей, объема данных, сложности баз и интенсивности использования API. Однако для начального развертывания и небольших команд (до 5-10 активных пользователей) можно ориентироваться на следующие минимальные и рекомендуемые характеристики.

Минимальные требования (для тестирования или очень небольших команд)

  • CPU: 1-2 ядра (Intel Xeon E3/E5 или AMD EPYC). Baserow — это Python-приложение, которое может быть достаточно требовательным к CPU при сложных запросах.
  • RAM: 2 ГБ. Baserow, PostgreSQL и Redis вместе могут потреблять значительный объем ОЗУ. 2 ГБ — это абсолютный минимум, при котором система может работать медленно или сталкиваться с нехваткой памяти при пиковых нагрузках.
  • Диск: 40 ГБ SSD. SSD критически важен для производительности базы данных. 40 ГБ хватит для операционной системы, Docker-образов и небольшого объема данных.
  • Сеть: 100 Мбит/с. Для большинства задач этого достаточно.

Рекомендуемый VPS-план для небольших и средних команд (до 20-30 активных пользователей)

Для комфортной работы и возможности роста, рекомендуются следующие характеристики:

  • CPU: 2-4 ядра (современный Intel Xeon или AMD EPYC).
  • RAM: 4-8 ГБ. Это обеспечит стабильную работу Baserow, PostgreSQL, Redis и операционной системы даже при активном использовании.
  • Диск: 80-160 ГБ SSD. Это даст достаточно места для ОС, всех компонентов Baserow, значительного объема данных и резервных копий.
  • Сеть: 1 Гбит/с. Высокая пропускная способность обеспечит быструю загрузку данных и отзывчивость интерфейса.

Вы можете найти VPS с указанными характеристиками, чтобы арендовать сервер, который соответствует этим требованиям.

Когда нужен Dedicated Server, а не VPS

Dedicated server (выделенный сервер) становится необходимым, когда:

  • Очень высокая нагрузка: Тысячи активных пользователей, огромные объемы данных (терабайты) или очень интенсивные операции с базой данных.
  • Строгие требования к производительности: Нужна максимальная и предсказуемая производительность без "соседства" с другими клиентами на одном физическом сервере.
  • Специфические аппаратные требования: Нужны особые конфигурации RAID, специализированные GPU или другие аппаратные компоненты, недоступные на VPS.
  • Соответствие регуляторным требованиям: Некоторые отрасли требуют полного физического разделения и контроля над оборудованием.

Для большинства задач Baserow на начальных и средних этапах VPS будет более чем достаточно и экономически выгоднее.

Локация: на что влияет

Выбор локации VPS важен по нескольким причинам:

  • Задержка (Latency): Чем ближе сервер к вашей целевой аудитории или к вам, тем ниже задержка и быстрее отклик. Если ваша команда находится в Европе, выбирайте европейский дата-центр.
  • Законодательство о данных: Разные страны имеют разные законы о конфиденциальности данных (например, GDPR в ЕС). Выбор локации может повлиять на юридические аспекты хранения и обработки информации.
  • Доступность сети: Некоторые регионы могут иметь лучшую связность с определенными частями мира.

Всегда выбирайте локацию, которая географически ближе к основным пользователям вашего Baserow-инстанса.

Подготовка сервера

Схема: Подготовка сервера
Схема: Подготовка сервера

После получения доступа к вашему новому VPS с операционной системой Ubuntu Server 24.04 LTS, первым делом необходимо выполнить ряд базовых настроек для повышения безопасности и удобства управления. Все команды выполняются от имени пользователя root или с использованием sudo.

1. Подключение к серверу по SSH

Используйте ваш SSH-клиент для подключения:


ssh root@ВАШ_IP_АДРЕС_VPS

Введите пароль, который был предоставлен вашим провайдером.

2. Обновление системы

Убедитесь, что все пакеты на сервере обновлены до последних версий:


sudo apt update         # Обновление списка пакетов
sudo apt upgrade -y     # Обновление установленных пакетов без запроса подтверждения
sudo apt autoremove -y  # Удаление ненужных зависимостей

3. Создание нового пользователя с правами sudo

Работать под root небезопасно. Создадим нового пользователя и дадим ему права sudo:


sudo adduser baserow_admin      # Создание нового пользователя
sudo usermod -aG sudo baserow_admin # Добавление пользователя в группу sudo

Следуйте инструкциям для установки пароля и информации о пользователе. После этого выйдите из сессии root и войдите как baserow_admin:


exit
ssh baserow_admin@ВАШ_IP_АДРЕС_VPS

4. Настройка SSH-ключей (рекомендуется)

Для повышения безопасности и удобства, настройте аутентификацию по SSH-ключам. Если у вас нет SSH-ключа, сгенерируйте его на вашей локальной машине:


ssh-keygen -t rsa -b 4096 # На вашей локальной машине

Затем скопируйте публичный ключ на сервер:


ssh-copy-id baserow_admin@ВАШ_IP_АДРЕС_VPS # На вашей локальной машине

После того как вы убедились, что можете войти по ключу, отключите аутентификацию по паролю для root и нового пользователя в файле /etc/ssh/sshd_config:


sudo nano /etc/ssh/sshd_config

Найдите и измените/добавьте следующие строки:


# Отключить вход для root по паролю (если включено)
PermitRootLogin prohibit-password

# Отключить вход по паролю для всех пользователей (после настройки SSH-ключей)
PasswordAuthentication no

Перезапустите SSH-сервис:


sudo systemctl restart sshd

5. Настройка Firewall (UFW)

Включите базовый файрвол UFW для защиты сервера. Разрешите только необходимые порты:


sudo ufw allow OpenSSH       # Разрешить SSH (порт 22)
sudo ufw allow http          # Разрешить HTTP (порт 80)
sudo ufw allow https         # Разрешить HTTPS (порт 443)
sudo ufw enable              # Включить UFW
sudo ufw status verbose      # Проверить статус файрвола

Подтвердите включение файрвола, нажав y.

6. Установка Fail2Ban

Fail2Ban защищает от атак методом подбора паролей, блокируя IP-адреса, с которых происходят многочисленные неудачные попытки входа:


sudo apt install fail2ban -y    # Установка Fail2Ban
sudo systemctl enable fail2ban  # Включение автозапуска
sudo systemctl start fail2ban   # Запуск сервиса

Для базовой настройки можно создать файл /etc/fail2ban/jail.local:


sudo nano /etc/fail2ban/jail.local

И добавьте следующее содержимое:


[DEFAULT]
bantime = 10m
findtime = 10m
maxretry = 5
banaction = ufw

[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

Перезапустите Fail2Ban для применения изменений:


sudo systemctl restart fail2ban

Теперь ваш сервер имеет базовую защиту и готов к установке Baserow.

Установка ПО — пошагово

Схема: Установка ПО — пошагово
Схема: Установка ПО — пошагово

Baserow будет развернут с использованием Docker и Docker Compose, что является рекомендуемым подходом для большинства self-hosted приложений. Это обеспечивает изоляцию, простоту управления зависимостями и легкое масштабирование.

1. Установка Docker Engine

Сначала установим Docker. Эти команды актуальны для Ubuntu 24.04 LTS и обеспечивают установку последней стабильной версии Docker CE (предполагаем Docker Engine 25.x или новее к 2026 году).


# Удаление старых версий Docker (если есть)
for pkg in docker.io docker-doc docker-compose docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin; do sudo apt remove $pkg -y; done

# Установка необходимых пакетов для работы с репозиториями
sudo apt update
sudo apt install ca-certificates curl gnupg -y

# Добавление официального GPG-ключа Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Добавление репозитория Docker в Apt
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Обновление списка пакетов с учетом нового репозитория
sudo apt update

# Установка Docker Engine, Docker CLI и Containerd
sudo apt install docker-ce docker-ce-cli containerd.io -y

После установки добавьте вашего пользователя в группу docker, чтобы запускать команды Docker без sudo (потребуется перезагрузка или перелогин):


sudo usermod -aG docker baserow_admin # Добавление пользователя в группу docker
newgrp docker                          # Применение изменений без перезагрузки

Проверьте, что Docker установлен корректно:


docker run hello-world # Запуск тестового контейнера

2. Установка Docker Compose

Docker Compose обычно устанавливается как плагин к Docker (версия 2.x). К 2026 году он будет интегрирован в Docker CLI.


sudo apt install docker-compose-plugin -y # Установка Docker Compose как плагина

Проверьте версию Docker Compose:


docker compose version # Проверка версии Docker Compose

3. Загрузка конфигурации Baserow Docker Compose

Baserow предоставляет официальные конфигурационные файлы для Docker Compose. Создадим директорию для Baserow и загрузим их туда.


mkdir baserow && cd baserow # Создание директории и переход в нее
wget https://gitlab.com/baserow/baserow/-/raw/develop/deploy/docker-compose.yml # Загрузка docker-compose.yml (актуально для Baserow 1.25.x)
wget https://gitlab.com/baserow/baserow/-/raw/develop/deploy/.env # Загрузка файла .env

Убедитесь, что вы загружаете актуальные файлы с официального репозитория Baserow. Версия develop часто отражает последние стабильные изменения, но для продакшена можно использовать ссылки на конкретные релизы.

4. Настройка файла .env

Файл .env содержит переменные окружения для конфигурации Baserow, включая секреты и настройки домена. Откройте его для редактирования:


nano .env # Редактирование файла переменных окружения

Вам нужно будет изменить следующие параметры (примеры):

  • BASEROW_PUBLIC_URL: Это должен быть ваш домен, через который будет доступен Baserow (например, https://baserow.yourdomain.com).
  • DATABASE_PASSWORD: Сгенерируйте сложный пароль для базы данных PostgreSQL.
  • SECRET_KEY: Сгенерируйте сложный секретный ключ.

Пример изменений в .env:


# ... другие переменные ...

BASEROW_PUBLIC_URL=https://baserow.yourdomain.com

# PostgreSQL database settings
# ...
DATABASE_PASSWORD=YOUR_STRONG_DATABASE_PASSWORD_HERE
# ...

# Baserow secret key
SECRET_KEY=YOUR_VERY_LONG_AND_COMPLEX_SECRET_KEY_HERE

# ...

Вы можете сгенерировать надежные пароли и секретные ключи, например, с помощью openssl rand -hex 32 или онлайн-генераторов.

5. Запуск Baserow

После настройки .env файла, вы можете запустить Baserow. Docker Compose автоматически скачает необходимые образы и запустит все сервисы.


docker compose up -d # Запуск всех сервисов Baserow в фоновом режиме

Эта команда скачает Docker-образы (PostgreSQL, Redis, Baserow Web, Baserow Backend, Caddy), создаст контейнеры и запустит их. Процесс может занять несколько минут в зависимости от скорости вашего интернет-соединения.

6. Проверка статуса контейнеров

Убедитесь, что все контейнеры запущены и работают корректно:


docker compose ps # Проверка статуса запущенных контейнеров

Вы должны увидеть статус Up для всех сервисов (baserow_backend, baserow_web, caddy, database, redis).

Также можно посмотреть логи конкретного сервиса, например, бэкенда:


docker compose logs baserow_backend # Просмотр логов бэкенда Baserow

На этом этапе Baserow запущен, но пока доступен только по IP-адресу сервера и, возможно, без HTTPS. Следующий шаг — настройка безопасного доступа через домен.

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

Схема: Конфигурация
Схема: Конфигурация

После успешного запуска Baserow с Docker Compose, необходимо выполнить финальную конфигурацию для обеспечения безопасного и удобного доступа. Это включает настройку доменного имени, HTTPS и дополнительные параметры.

1. Настройка DNS

Для доступа к Baserow по доменному имени (например, baserow.yourdomain.com) вам необходимо создать A-запись у вашего регистратора доменных имен. Укажите ваш домен (или субдомен) и IP-адрес вашего VPS.


# Пример записи у вашего регистратора домена
Type: A
Host: baserow
Value: ВАШ_IP_АДРЕС_VPS

Дождитесь обновления DNS-записей (может занять от нескольких минут до нескольких часов).

2. Конфигурация Caddy для HTTPS

Baserow Docker Compose по умолчанию включает сервис Caddy, который выступает в роли обратного прокси и автоматически управляет сертификатами Let's Encrypt для HTTPS. Настройка производится через файл Caddyfile.

По умолчанию, файл Caddyfile уже настроен в директории baserow/caddy. Убедитесь, что в вашем docker-compose.yml файл Caddyfile монтируется в контейнер Caddy:


# Содержимое docker-compose.yml (фрагмент для Caddy)
# ...
  caddy:
    image: caddy:2.7.6-alpine # Актуальная версия Caddy на 2026 год
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro
      - baserow_caddy_data:/data
      - baserow_caddy_config:/config
    depends_on:
      - baserow_web
# ...

Создайте директорию caddy и файл Caddyfile внутри неё, если их нет:


mkdir caddy
nano caddy/Caddyfile

Добавьте или убедитесь, что в caddy/Caddyfile содержится следующее (замените baserow.yourdomain.com на ваш домен):


{
  # Замените на ваш email для Let's Encrypt уведомлений
  email [email protected]
}

baserow.yourdomain.com {
  reverse_proxy baserow_web:80
}

После редактирования файла Caddyfile, если вы его изменили, необходимо перезапустить только сервис Caddy:


docker compose restart caddy # Перезапуск контейнера Caddy

Caddy автоматически обнаружит новый домен, запросит сертификат Let's Encrypt и настроит HTTPS. Если у вас возникнут проблемы, проверьте логи Caddy:


docker compose logs caddy # Просмотр логов Caddy

3. Проверка работоспособности

После настройки DNS и Caddy, проверьте доступность Baserow:

  • Доступность сайта: Откройте ваш домен (https://baserow.yourdomain.com) в браузере. Вы должны увидеть страницу регистрации/входа Baserow.
  • Проверка HTTPS: Убедитесь, что соединение защищено (зеленый замочек в адресной строке).
  • Пинг домена: Проверьте, что домен резолвится в правильный IP-адрес.
  • 
    ping baserow.yourdomain.com
    
  • Healthcheck контейнеров: Убедитесь, что все Docker-контейнеры работают без ошибок.
  • 
    docker compose ps
    docker compose logs
    

Если Baserow загружается, вы можете зарегистрировать первого пользователя (администратора) и начать работу с платформой.

4. Дополнительные настройки в .env (по необходимости)

В файле .env есть множество других настроек, которые могут быть полезны в дальнейшем:

  • BASEROW_EMAIL_SMTP_HOST, BASEROW_EMAIL_SMTP_PORT и т.д.: Настройка SMTP-сервера для отправки электронной почты (уведомления, сброс пароля).
  • BASEROW_PUBLIC_BACKEND_URL: Если вы используете отдельный бэкенд, отличный от основного домена.
  • MEDIA_ROOT: Путь для хранения пользовательских файлов. По умолчанию это том Docker.

Всегда обращайтесь к официальной документации Baserow для получения полного списка и описания всех переменных окружения.

Важно: Никогда не храните конфиденциальные данные (пароли, ключи API) непосредственно в коде или в публично доступных файлах. Файл .env должен быть защищен и не должен попадать в системы контроля версий.

Бэкапы и обслуживание

Схема: Бэкапы и обслуживание
Схема: Бэкапы и обслуживание

Регулярное резервное копирование и своевременное обслуживание являются критически важными для любой продакшн-системы. Это гарантирует сохранность ваших данных и стабильность работы Baserow.

1. Что бэкапить

Для Baserow необходимо бэкапить следующие компоненты:

  • База данных PostgreSQL: Содержит все структурированные данные, созданные в Baserow. Это самый важный компонент.
  • Пользовательские файлы (медиа): Все файлы, загруженные пользователями в Baserow (изображения, документы и т.д.). Они хранятся в томе Docker, связанном с сервисом baserow_backend.
  • Файлы конфигурации: docker-compose.yml и .env. Они содержат настройки развертывания и секретные ключи, необходимые для восстановления системы.

2. Простой скрипт автобэкапа

Создадим простой скрипт для автоматического резервного копирования. Этот скрипт будет дампить базу данных, архивировать медиафайлы и сохранять конфигурационные файлы. Предполагается, что вы находитесь в директории ~/baserow.


mkdir -p ~/baserow_backups # Создание директории для бэкапов
nano ~/baserow_backups/backup_baserow.sh

Добавьте следующее содержимое в файл backup_baserow.sh. Замените YOUR_DB_USER и YOUR_DB_PASSWORD на значения из вашего .env файла:


#!/bin/bash

# Настройки
BACKUP_DIR="/home/baserow_admin/baserow_backups" # Директория для хранения бэкапов
BASEROW_DIR="/home/baserow_admin/baserow"       # Директория, где лежит docker-compose.yml
TIMESTAMP=$(date +%Y%m%d_%H%M%S)

# Переменные из .env (нужны для pg_dump)
# Можно прочитать из .env или установить вручную
# Пример чтения из .env (требует jq, который можно установить: sudo apt install jq -y)
# source "$BASEROW_DIR/.env" # Если .env простой, без специальных символов

# Или задать вручную, если в .env сложные символы или не хочется парсить
DB_NAME="baserow"
DB_USER="baserow"
DB_PASSWORD="YOUR_STRONG_DATABASE_PASSWORD_HERE" # Замените на реальный пароль из .env

# 1. Бэкап базы данных PostgreSQL
echo "Dumping PostgreSQL database..."
docker compose -f "$BASEROW_DIR/docker-compose.yml" exec -T database pg_dump -U "$DB_USER" -d "$DB_NAME" > "$BACKUP_DIR/baserow_db_${TIMESTAMP}.sql"
if [ $? -eq 0 ]; then
    echo "Database dump successful: $BACKUP_DIR/baserow_db_${TIMESTAMP}.sql"
else
    echo "Database dump FAILED!"
    exit 1
fi

# 2. Бэкап медиафайлов (Docker volume)
echo "Archiving Baserow media files..."
# Получаем имя тома для медиафайлов
MEDIA_VOLUME=$(docker volume ls -q | grep baserow_data) # Предполагается, что имя тома содержит 'baserow_data'
if [ -z "$MEDIA_VOLUME" ]; then
    echo "Could not find Baserow media volume. Skipping media backup."
else
    # Создаем временный контейнер для копирования данных
    docker run --rm -v "$MEDIA_VOLUME":/data -v "$BACKUP_DIR":/backup_dest alpine tar -czvf "/backup_dest/baserow_media_${TIMESTAMP}.tar.gz" -C /data .
    if [ $? -eq 0 ]; then
        echo "Media files archive successful: $BACKUP_DIR/baserow_media_${TIMESTAMP}.tar.gz"
    else
        echo "Media files archive FAILED!"
    fi
fi

# 3. Копирование конфигурационных файлов
echo "Copying configuration files..."
cp "$BASEROW_DIR/docker-compose.yml" "$BACKUP_DIR/docker-compose_${TIMESTAMP}.yml"
cp "$BASEROW_DIR/.env" "$BACKUP_DIR/.env_${TIMESTAMP}"
echo "Configuration files copied."

# Удаление старых бэкапов (например, старше 7 дней)
echo "Removing old backups..."
find "$BACKUP_DIR" -type f -name "baserow_db_.sql" -mtime +7 -delete
find "$BACKUP_DIR" -type f -name "baserow_media_.tar.gz" -mtime +7 -delete
find "$BACKUP_DIR" -type f -name "docker-compose_.yml" -mtime +7 -delete
find "$BACKUP_DIR" -type f -name ".env_" -mtime +7 -delete
echo "Old backups removed."

echo "Baserow backup completed at $TIMESTAMP"

Сделайте скрипт исполняемым:


chmod +x ~/baserow_backups/backup_baserow.sh # Делаем скрипт исполняемым

3. Планирование бэкапов с помощью Cron

Добавьте скрипт в Cron для ежедневного выполнения (например, в 3:00 ночи):


crontab -e # Открытие crontab для редактирования

Добавьте следующую строку в конец файла (выберите редактор nano, если спросит):


0 3    /home/baserow_admin/baserow_backups/backup_baserow.sh >> /var/log/baserow_backup.log 2>&1

Эта строка означает: в 3:00 ночи каждый день запускать скрипт, а весь вывод перенаправлять в файл логов /var/log/baserow_backup.log.

4. Куда складывать бэкапы

Хранить бэкапы на том же сервере, что и продакшн-данные, крайне рискованно. Если сервер выйдет из строя, вы потеряете и данные, и бэкапы. Рекомендуется использовать:

  • Внешнее S3-совместимое хранилище: Такие сервисы, как AWS S3, Backblaze B2, DigitalOcean Spaces. Можно использовать утилиты вроде rclone или s3cmd для автоматической синхронизации локальных бэкапов с S3.
  • Отдельный VPS: Недорогой VPS в другой локации, куда можно копировать бэкапы по SSH с помощью rsync.
  • Сетевое хранилище (NAS): Если у вас есть собственная инфраструктура.

Расширьте скрипт бэкапа, добавив шаг для копирования файлов на удаленное хранилище.

5. Обновления: Rolling vs. Maintenance Window

Регулярные обновления Baserow и базового ПО важны для безопасности и получения новых функций.

  • Обновление Baserow:

    Для обновления Baserow до новой версии (например, с 1.24.x до 1.25.x), выполните следующие шаги:

    1. Сделайте полный бэкап! Это самый важный шаг перед любым обновлением.
    2. Остановите Baserow:
      
      cd ~/baserow
      docker compose down
                          
    3. Загрузите новые версии файлов docker-compose.yml и .env (или сравните и обновите текущие):
      
      wget -O docker-compose.yml https://gitlab.com/baserow/baserow/-/raw/develop/deploy/docker-compose.yml
      # Проверьте .env на новые переменные, если они появились в новой версии Baserow
                          
    4. Запустите Baserow с обновленными образами:
      
      docker compose pull # Скачивание новых образов
      docker compose up -d # Запуск с новыми образами и миграцией БД, если нужно
                          
    5. Проверьте логи и работоспособность.

    Это потребует короткого maintenance window (остановки сервиса), так как база данных может требовать миграции. Всегда читайте официальную документацию по обновлению Baserow для конкретной версии.

  • Обновление ОС и Docker:

    Регулярно обновляйте операционную систему и Docker Engine:

    
    sudo apt update && sudo apt upgrade -y
    sudo systemctl reboot # Перезагрузка для применения обновлений ядра
                

    Обновления Docker также могут потребовать перезапуска контейнеров или даже всего сервера. Планируйте эти операции в периоды низкой активности.

Troubleshooting + FAQ

Даже при самом тщательном подходе могут возникнуть проблемы. Здесь мы рассмотрим типичные сценарии и вопросы.

Контейнер Baserow не запускается или постоянно перезапускается. Что делать?

Что проверить: Прежде всего, посмотрите логи проблемного контейнера. Например, для бэкенда: docker compose logs baserow_backend. Обратите внимание на сообщения об ошибках. Частые причины: нехватка памяти, неправильные переменные окружения в .env (особенно DATABASE_URL, SECRET_KEY, BASEROW_PUBLIC_URL), конфликты портов, поврежденные Docker-образы или тома.

Как фиксить: Убедитесь, что VPS имеет достаточно RAM. Проверьте синтаксис и значения в .env. Если есть подозрение на повреждение томов, попробуйте остановить Baserow (docker compose down) и, как крайняя мера, удалить тома (docker volume rm baserow_data baserow_caddy_data baserow_caddy_config), а затем запустить заново (теряя данные, если они не зарезервированы!). Иногда помогает полное пересоздание образов: docker compose build --no-cache && docker compose up -d.

Не могу получить доступ к Baserow по доменному имени, или HTTPS не работает.

Что проверить: Убедитесь, что DNS-запись для вашего домена (например, baserow.yourdomain.com) указывает на правильный IP-адрес вашего VPS. Используйте ping ваш.домен или dig ваш.домен. Проверьте, что порты 80 и 443 открыты на вашем VPS (sudo ufw status). Посмотрите логи Caddy: docker compose logs caddy на предмет ошибок при получении Let's Encrypt сертификата. Убедитесь, что BASEROW_PUBLIC_URL в .env и домен в caddy/Caddyfile совпадают.

Как фиксить: Исправьте DNS-запись. Откройте порты 80 и 443 в UFW. Если Caddy не может получить сертификат, возможно, есть проблема с DNS-разрешением, или домен не указывает на ваш сервер. Убедитесь, что email в Caddyfile корректен.

Baserow работает очень медленно.

Что проверить: Используйте htop или top на VPS, чтобы проверить загрузку CPU и использование RAM. Медлительность часто связана с нехваткой ресурсов. Также проверьте логи Baserow на наличие повторяющихся ошибок, которые могут замедлять работу.

Как фиксить: Если не хватает RAM, рассмотрите возможность увеличения объема памяти VPS. Если CPU постоянно загружен, возможно, требуется больше ядер. Оптимизируйте запросы в Baserow, избегайте очень больших таблиц с множеством связей и сложных формул, если производительность критична. Убедитесь, что дисковая подсистема использует SSD.

Какой VPS-конфиг минимально подойдёт для Baserow?

Ответ: Для тестирования или очень маленькой команды (1-2 пользователя) минимальный конфиг — это 2 ядра CPU, 2 ГБ RAM и 40 ГБ SSD. Однако для стабильной и комфортной работы с небольшой командой (до 10-15 человек) рекомендуется не менее 2-4 ядер CPU, 4 ГБ RAM и 80 ГБ SSD. SSD-диск является обязательным для хорошей производительности базы данных.

Что выбрать — VPS или dedicated для этой задачи?

Ответ: Для большинства сценариев использования Baserow (личные проекты, небольшие и средние команды) VPS является оптимальным выбором. Он предлагает достаточную производительность, гибкость и экономичность. Выделенный сервер нужен только при очень высоких нагрузках (сотни активных пользователей, терабайты данных), специфических аппаратных требованиях или строгих регуляторных нормах, требующих полного контроля над физическим оборудованием. Начните с VPS и масштабируйтесь до dedicated, если возникнет реальная необходимость.

Как сбросить пароль администратора Baserow, если я его забыл?

Что проверить: Если вы настроили SMTP, вы можете использовать функцию "Забыли пароль" на странице входа. Если SMTP не настроен, вам потребуется выполнить сброс пароля через консоль Docker.

Как фиксить: Подключитесь к серверу по SSH, перейдите в директорию Baserow (~/baserow). Затем выполните команду для сброса пароля пользователя с указанным email:


docker compose exec baserow_backend python3 manage.py reset_user_password --email [email protected]

Эта команда сгенерирует временный пароль, который вы сможете использовать для входа, а затем изменить его в интерфейсе Baserow.

Закончилось место на диске VPS.

Что проверить: Используйте df -h для проверки общего использования диска и du -sh /var/lib/docker/volumes/ для проверки размеров Docker-томов. Часто место занимают старые Docker-образы, кэш или логи.

Как фиксить: Очистите старые Docker-объекты: docker system prune -a (осторожно, удаляет все остановленные контейнеры, неиспользуемые сети, образы и тома). Регулярно удаляйте старые бэкапы, особенно локальные. Рассмотрите возможность увеличения дискового пространства VPS или переноса бэкапов на внешнее хранилище.

Выводы и следующие шаги

Схема: Выводы и следующие шаги
Схема: Выводы и следующие шаги

Поздравляем! Вы успешно развернули Baserow на своём VPS, настроили безопасный доступ через HTTPS и внедрили базовую стратегию резервного копирования. Теперь у вас есть мощная, гибкая и полностью контролируемая no-code база данных, готовая к использованию вашей командой или для ваших личных проектов. Вы получили полный контроль над вашей инфраструктурой и данными, что является ключевым преимуществом self-hosted решений.

Вот несколько шагов, куда можно двигаться дальше:

  • Мониторинг: Настройте систему мониторинга (например, Prometheus + Grafana) для отслеживания состояния вашего VPS и производительности Baserow. Это поможет заранее выявлять проблемы.
  • Масштабирование: По мере роста числа пользователей или объема данных, рассмотрите возможность увеличения ресурсов VPS (CPU, RAM, диск). Для очень больших нагрузок Baserow поддерживает горизонтальное масштабирование, позволяя запускать несколько инстансов бэкенда и фронтенда.
  • Интеграции: Используйте мощный API Baserow для интеграции с другими вашими приложениями, скриптами или внешними сервисами, автоматизируя рабочие процессы и расширяя функциональность.
  • Дополнительная безопасность: Рассмотрите настройку VPN для доступа к админ-панели, более сложные правила файрвола, или использование системы обнаружения вторжений.

Был ли этот гайд полезен?

Ваш отзыв помогает нам улучшать гайды.

Поделиться записью:

Отправьте гайд тому, кому он может пригодиться.

Telegram VKVK WhatsApp Facebook LinkedIn XX

развёртывание baserow на vps: self-hosted no-code база данных
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.