1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-baserow

Клонировать/Скачать
install-with-docker-compose.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 26.06.2025 16:02 92285f5

Установка с помощью Docker Compose

Есть вопросы, проблемы или предложения по этому руководству? Задайте вопрос в нашем сообществе или внесите изменения самостоятельно на https://gitlab.com/baserow/baserow/-/tree/develop/docs .

Быстрый старт

Следующая конфигурация является самым простым способом развертывания Baserow с помощью docker-compose и использует только один контейнер с образом all-in-one. Если вы используете эту конфигурацию, то вместо этого следует обратиться к руководству Установка с помощью Docker для получения подробностей о работе с этим образом.

version: "3.4"
services:
  baserow:
    container_name: baserow
    image: baserow/baserow:1.33.4
    environment:
      BASEROW_PUBLIC_URL: 'http://localhost'
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - baserow_data:/baserow/data
volumes:
  baserow_data:

Остальная часть этого руководства будет посвящена стандартному docker-compose.yml, находящемуся в корне нашего репозитория Git, который запускает каждую службу Baserow в отдельном контейнере.

Установка требований

Если вы еще не установили Docker и Docker Compose на своем компьютере, вы можете сделать это, следуя инструкциям на https://docs.docker.com/desktop/ и https://docs.docker.com/compose/install/.

Версия Docker Compose 1.19.0 и Docker 19.03 являются минимальными версиями, требуемыми нашими предоставленными файлами.

Загрузка примера docker-compose.yml Baserow

Вы можете загрузить пример Baserow docker-compose.yml, либо непосредственно скачав файл с https://gitlab.com/baserow/baserow/-/blob/master/docker-compose.yml и выполнив:

curl -o docker-compose.yml https://gitlab.com/baserow/baserow/-/raw/master/docker-compose.yml
curl -o .env https://gitlab.com/baserow/baserow/-/raw/master/.env.example 
curl -o Caddyfile https://gitlab.com/baserow/baserow/-/raw/master/Caddyfile
# Отредактируйте .env и установите свои собственные надежные пароли для трех обязательных переменных в начале файла. 
gedit .env
docker-compose up -d

или клонировав наш репозиторий Git, чтобы легче получать обновления:

cd ~/baserow
git clone --depth=1 --branch master https://gitlab.com/baserow/baserow.git
cd baserow
cp .env.example .env
# Отредактируйте .env и установите свои собственные надежные пароли для трех обязательных переменных в начале файла. 
gedit .env
docker-compose up -d
# Чтобы обновиться до последней версии, выполните:
docker-compose down
git pull
docker-compose up -d

Существует уязвимость безопасности Docker и брандмауэра ufw. По умолчанию Docker при открытии портов на 0.0.0.0 обходит любые правила брандмауэра ufw и открывает указанный выше контейнер публично из вашей машины в сети. Если это не требуется, установите HOST_PUBLISH_IP в 127.0.0.1, чтобы Baserow можно было доступ к нему только с машины, на которой он запущен. Подробнее см. https://github.com/chaifeng/ufw-docker и как настроить ufw для безопасной работы с Docker.

Использование

Чтобы использовать этот docker-compose.yml для запуска Baserow, вам необходимо установить три переменные окружения SECRET_KEY, DATABASE_PASSWORD и REDIS_PASSWORD. Подробнее см. ниже. Если вы получаете следующую ошибку, это означает, что вам нужно сначала установить обязательные переменные окружения:

ERROR: Missing mandatory value for "environment" option interpolating

Если вы обновляетесь с версии Baserow 1.8.2 или старее, прочитайте дополнительный раздел ниже.

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

Как установить переменные окружения

Вы можете установить эти переменные, используя файл окружения docker-compose (https://docs.docker.com/compose/environment-variables/#the-env-file):

  1. Скопируйте файл .env.example, находящийся в корне репозитория Baserow (https://gitlab.com/baserow/baserow/-/blob/master/.env.example) в .env:
curl -o .env https://gitlab.com/baserow/baserow/-/raw/master/.env.example
  1. Отредактируйте .env и предоставьте значения для отсутствующих переменных окружения.
  2. docker-compose up

Альтернативно, вы можете установить эти переменные, запустив docker-compose с установленными переменными окружения (сначала заполните надежные значения):

SECRET_KEY= DATABASE_PASSWORD= REDIS_PASSWORD= docker-compose up

Обновление с версии Baserow 1.9.0 или новее

  1. Рекомендуется сделать резервную копию данных перед обновлением, см. разделы резервного копирования ниже для получения более подробной информации о том, как это сделать.
  2. Остановите существующую установку Baserow, когда это безопасно сделать: docker-compose down
  3. Получите последнюю версию Baserow, выполнив: git pull
  4. Запустите новую версию Baserow, выполнив: docker-compose up -d
  5. Отслеживайте логи с помощью: docker-compose logs -f
  6. Как только вы увидите следующую строку логов, ваш Baserow обновлен и снова доступен:
[BASEROW-WATCHER][2022-05-10 08:44:46] Baserow is now available at ...

Обновление с версии docker-compose Baserow 1.8.2

Если вы ранее использовали отдельный домен api.your_baserow_server.com, это больше не требуется. Теперь Baserow будет работать на одном домене, доступ к API осуществляется по адресу YOUR_DOMAIN.com/api.

Чтобы обновиться с версии 1.8.2 docker-compose файла внутри репозитория Git Baserow, вам нужно:

  1. Остановите существующую установку Baserow, когда это безопасно сделать: docker-compose down
  2. git pull
  3. Скопируйте .env.example в .env и отредактируйте .env, заполнив отсутствующие переменные ниже:
    • SECRET_KEY до надежного значения, существующие сессии входа будут недействительны.
    • DATABASE_PASSWORD до надежного пароля (по умолчанию это было 'baserow', на шаге 3 мы изменим пароль пользователя базы данных на значение, которое вы установили)
    • REDIS_PASSWORD до надежного пароля.
    • WEB_FRONTEND_PORT обратно до 3000, если вы хотите продолжать доступ к Baserow через этот порт (по умолчанию теперь это 80).
    • BASEROW_PUBLIC_URL до URL/IP/Домена, который вы использовали для удаленного доступа к Baserow (он должен начинаться с http:// или https://). Если вы установили WEB_FRONTEND_PORT в значение отличное от 80, добавьте его в конец BASEROW_PUBLIC_URL.
    • BASEROW_CADDY_ADDRESSES настраивает адреса, на которых новый внутренний прокси-сервер Caddy будет слушать. По умолчанию он будет обслуживать только http, для автоматического https установите значение https://YOUR_DOMAIN_NAME.com. Добавьте ,http://localhost, если вы хотите продолжать доступ к Baserow с машины, на которой он запущен.
  4. Выполните команду ниже, которая изменит пароль пользователя PostgreSQL Baserow на значение, установленное вами в шаге 1 в файле .env (редактировать команду не требуется):
docker-compose run --rm backend bash -c "PGPASSWORD=baserow psql -h db -U baserow -c \"ALTER USER baserow WITH PASSWORD '$DATABASE_PASSWORD';\" && echo 'Successfully changed Baserow's db user password'"
  1. docker-compose up -d

Как

Выполнение команд управления

Вы можете просмотреть и выполнить команды управления backend Baserow следующим образом:

docker-compose exec backend /baserow/backend/docker/docker-entrypoint.sh help

Просмотр логов

$ docker-compose logs 

Запуск Baserow вместе с существующими службами

Файлы docker-compose Baserow автоматически открывают службу caddy в вашей сети на портах 80 и 433 по умолчанию. Если у вас уже есть приложения или службы, использующие эти порты, служба Baserow, использующая этот порт, будет падать. Чтобы исправить это, вы можете установить переменную WEB_FRONTEND_PORT, чтобы изменить порт по умолчанию 80 и WEB_FRONTEND_SSL_PORT, чтобы изменить порт по умолчанию 443.

$ WEB_FRONTEND_SSL_PORT=444 WEB_FRONTEND_PORT=3000 docker-compose up 

Использование домена с автоматическим https

Если у вас есть доменное имя и правильно настроенный DNS, вы можете выполнить следующую команду, чтобы сделать Baserow доступным по домену с автоматическим https, предоставляемым Caddy.

Добавьте ,http://localhost к BASEROW_CADDY_ADDRESSES, если вы хотите продолжать доступ к серверу с машины, на которой он запущен, используя http://localhost. См. Документацию по адресам Caddy для всех поддерживаемых значений BASEROW_CADDY_ADDRESSES.

BASEROW_PUBLIC_URL=https://www.REPLACE_WITH_YOUR_DOMAIN.com \
BASEROW_CADDY_ADDRESSES=:443 \
docker-compose up

За прокси-сервером, уже обрабатывающим SSL

WEB_FRONTEND_SSL_PORT= \
BASEROW_PUBLIC_URL=https://www.REPLACE_WITH_YOUR_DOMAIN.com \
docker-compose up

На нетипичном HTTP порту

WEB_FRONTEND_PORT=3000 \
BASEROW_PUBLIC_URL=https://www.REPLACE_WITH_YOUR_DOMAIN.com:3000 \
docker-compose up

Отключение автоматической миграции

Вы можете отключить автоматическую миграцию, установив переменную окружения MIGRATE_ON_STARTUP в false (или любое значение, отличное от true) следующим образом:

MIGRATE_ON_STARTUP=false docker-compose up -d

Выполнение одноразовой миграции

# Используйте run, если вы остановили среду docker-compose
docker-compose run backend manage migrate
# Используйте exec в противном случае
docker-compose exec backend /baserow/backend/docker/docker-entrypoint.sh manage migrate

Отключение автоматической синхронизации шаблонов

Вы можете отключить автоматическую синхронизацию шаблонов Baserow, установив переменную окружения BASEROW_TRIGGER_SYNC_TEMPLATES_AFTER_MIGRATION в false (или любое значение, отличное от true) следующим образом:

BASEROW_TRIGGER_SYNC_TEMPLATES_AFTER_MIGRATION=false docker-compose up -d

Создание резервной копии базы данных Baserow

  1. Прочитайте вывод команды docker-compose run backend manage backup_baserow --help.
  2. Убедитесь, что вы создаете резервную копию базы данных Baserow, которая не используется активно работающим экземпляром Baserow или любым другим процессом, который вносит изменения в базу данных.
mkdir ~/baserow_backups
# Папка должна иметь тот же UID:GID, что и пользователь внутри контейнера,
# для локальной среды это 9999:9999, для среды разработки это 1000:1000 или ваш собственный UID:GID при использовании ./dev.sh
sudo chown 9999:9999 ~/baserow_backups/ 
docker-compose run -v ~/baserow_backups:/baserow/backups backend backup -f /baserow/backups/baserow_backup.tar.gz 
# backups/ теперь содержит вашу резервную копию Baserow.

Восстановление базы данных Baserow из резервной копии

  1. Прочитайте вывод команды docker-compose run backend manage restore_baserow --help.
  2. Убедитесь, что вы никогда не восстанавливаете Baserow через пул соединений, а вместо этого выполняете восстановление через прямое соединение с базой данных.
  3. Создайте новую пустую базу данных для восстановления файла резервной копии, не перезаписывайте существующие базы данных, так как это может вызвать ошибки несогласованности базы данных.
docker-compose run -v ~/baserow_backups:/baserow/backups backend restore -f /baserow/backups/baserow_backup.tar.gz 

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-baserow.git
git@api.gitlife.ru:oschina-mirror/mirrors-baserow.git
oschina-mirror
mirrors-baserow
mirrors-baserow
develop