Есть вопросы, проблемы или предложения по этому руководству? Задайте вопрос в нашем сообществе или внесите изменения самостоятельно на https://gitlab.com/baserow/baserow/-/tree/develop/docs .
Для использования Baserow требуется Docker версии 19.03 или выше. Однако настоятельно рекомендуется установить последнюю доступную версию Docker. Проверьте, что ваш Docker обновлен, запустив команду
docker -v
.
Это руководство предполагает, что у вас уже установлен Docker и у вас есть права для запуска контейнеров Docker. Для установки с нуля см. Установка на Ubuntu.
Запустите команду ниже, чтобы запустить локальный сервер Baserow, слушающий порт 80
.
Вы сможете подключиться к Baserow только с машины, на которой запущен сервер, через
http://localhost
.
docker run \
-d \
--name baserow \
-e BASEROW_PUBLIC_URL=http://localhost \
-v baserow_data:/baserow/data \
-p 80:80 \
-p 443:443 \
--restart unless-stopped \
baserow/baserow:1.33.4
BASEROW_PUBLIC_URL
на https://YOUR_DOMAIN
или http://YOUR_IP
, чтобы
включить внешний доступ. Убедитесь, что этот адрес совпадает с тем, который вы вводите в адресной строке браузера. Любой другой адрес будет считаться опубликованным приложением.-e BASEROW_CADDY_ADDRESSES=:443
, чтобы включить
автоматическое Caddy HTTPS.-e DATABASE_URL=postgresql://user:pwd@host:port/db
, чтобы использовать внешний
Postgresql.-e REDIS_URL=redis://user:pwd@host:port
, чтобы использовать внешний Redis.Существует проблема безопасности с Docker и брандмауэром ufw. По умолчанию Docker при открытии портов на 0.0.0.0 обходит любые правила брандмауэра ufw и публично открывает указанный контейнер на вашей машине в сети. Если это не требуется, запустите контейнер с следующими портами:
-p 127.0.0.1:80:80 -p 127.0.0.1:443:443
, что делает ваш Baserow доступным только с машины, на которой он запущен. Подробнее см. https://github.com/chaifeng/ufw-docker и как настроить ufw для безопасной работы с Docker.
Образ baserow/baserow:1.33.4
по умолчанию запускает все службы Baserow в одном контейнере для максимальной простоты использования.
Этот образ предназначен для простых развертываний на одном сервере или простых службах развертывания контейнеров, таких как Google Cloud Run.
Если вам нужны образы, лучше подходящие для горизонтального масштабирования (например, при использовании K8S), используйте вместо этого наши baserow/backend и baserow/web-frontend образы, которые развертывают каждую службу Baserow в отдельном контейнере.
Краткое описание его функций:
/baserow/data
внутри контейнера.DATABASE_URL
или переменные DATABASE_...
, чтобы отключить внутренний Postgres
и вместо этого подключиться к внешнему Postgres. Это настоятельно рекомендуется для любых
производственных развертываний этого образа, чтобы вы могли легко подключиться к базе данных Postgres из других служб или процессов.REDIS_URL
или переменные REDIS_...
, чтобы отключить внутренний Redis и вместо этого
подключиться к внешнему Postgres.BASEROW_CADDY_ADDRESSES
на https://YOUR_DOMAIN.com
, и он автоматически включит https
для вас и сохранит ключи и сертификаты в /baserow/data/caddy
.docker stop baserow
docker run
, которую вы обычно используете для запуска вашего
Baserow, и запустите новый контейнер:# Мы еще не удалили старый контейнер Baserow, поэтому вам нужно запустить этот новый контейнер
# с другим именем, чтобы избежать ошибки типа:
# `response from daemon: Conflict. The container name "/baserow" is already in use by
# container`
docker run \
-d \
--name baserow_version_REPLACE_WITH_NEW_VERSION \
# YOUR STANDARD ARGS HERE
baserow/baserow:REPLACE_WITH_LATEST_VERSION
docker logs -f baserow_version_REPLACE_WITH_NEW_VERSION
[BASEROW-WATCHER][2022-05-10 08:44:46] Baserow is now available at ...
ВНИМАНИЕ: Если вы не использовали том для сохранения папки
/baserow/data
внутри контейнера, это приведет к постоянному удалению всех данных Baserow, хранящихся в этом контейнере.
docker rm baserow
В ноябре 2023 года PostgreSQL выпустил финальное обновление для версии 11 базы данных вместе с объявлением о прекращении поддержки этой версии. Это означает, что PostgreSQL 11 больше не будет получать исправления безопасности и ошибок.
Если вы используете встроенную базу данных PostgreSQL (встроенная — это когда вы не предоставляете переменные окружения POSTGRESQL_*
при запуске Baserow, в отличие от внешней, где вы предоставляете детали подключения к вашему внешнему экземпляру PostgreSQL), и если вы перезапускаете или пытаетесь запустить новый экземпляр Baserow, если ваши данные были инициализированы с версией PostgreSQL 11, вы заметите, что он больше не запускается и вызывает ошибку, так как вам нужно обновить вашу директорию данных для совместимости с версией PostgreSQL 15. Baserow предоставляет образ для автоматического обновления вашей директории данных до версии PostgreSQL 15, которая теперь официально поддерживается Baserow.
Если вы не хотите обновляться в данный момент, перейдите к разделу Устаревшая версия PostgreSQL ниже. Однако учтите, что мы будем поддерживать PostgreSQL 11 только ограниченное время, и эта версия больше не будет получать официальные обновления от PostgreSQL.
Чтобы обновить вашу директорию данных для совместимости с PostgreSQL 15, выполните следующие шаги:
ВНИМАНИЕ: перед этим убедитесь, что сделали резервную копию вашего экземпляра Baserow, чтобы избежать потери данных.
docker ps
. Если Baserow запущен, остановите контейнер с помощью docker stop baserow
.docker run \
--name baserow-pgautoupgrade \
# ALL THE ARGUMENTS YOU NORMALLY ADD TO YOUR BASEROW INSTANCE
--restart no \
baserow/baserow-pgautoupgrade:1.30.1
С 1 января 2025 года мы больше не будем создавать новые образы с PostgreSQL 11. Если вы используете встроенную версию PostgreSQL в версии Baserow до 1.30 и хотите обновиться до последней версии, вам сначала нужно использовать последний образ pgautoupgrade
для обновления PostgreSQL до версии 15, а затем обновиться до последней версии Baserow. Если вы не хотите обновлять PostgreSQL, версия 1.30.1 — это последний образ, который мы предоставляем с PostgreSQL 11, но он не будет получать никаких обновлений.
Чтобы запустить последний образ Baserow, использующий устаревшую версию PostgreSQL 11, используйте следующую команду:
docker run \
--name baserow-pg11 \
# ALL THE ARGUMENTS YOU NORMALLY ADD TO YOUR BASEROW INSTANCE
--restart unless-stopped \
baserow/baserow-pg11:1.30.1
См. Настройка Baserow для более подробной информации о всех других переменных окружения, которые можно настроить.
Если у вас есть доменное имя и вы правильно настроили DNS, вы можете запустить следующую команду для доступа к Baserow через домен с автоматическим https, предоставляемым Caddy.
Добавьте
,http://localhost
кBASEROW_CADDY_ADDRESSES
, если вы хотите иметь возможность подключаться к серверу с машины, на которой он запущен, через http://localhost. См. Документацию по адресам Caddy для всех поддерживаемых значенийBASEROW_CADDY_ADDRESSES
.
docker run \
-d \
--name baserow \
-e BASEROW_PUBLIC_URL=https://www.REPLACE_WITH_YOUR_DOMAIN.com \
-e BASEROW_CADDY_ADDRESSES=:443 \
-v baserow_data:/baserow/data \
-p 80:80 \
-p 443:443 \
--restart unless-stopped \
baserow/baserow:1.33.4
docker run \
-d \
--name baserow \
-e BASEROW_PUBLIC_URL=https://www.yourdomain.com \
-v baserow_data:/baserow/data \
-p 80:80 \
--restart unless-stopped \
baserow/baserow:1.33.4
docker run \
-d \
--name baserow \
-e BASEROW_PUBLIC_URL=https://www.yourdomain.com:3001 \
-v baserow_data:/baserow/data \
-p 3001:80 \
--restart unless-stopped \
baserow/baserow:1.33.4
docker run \
-d \
--name baserow \
-e BASEROW_PUBLIC_URL=https://www.yourdomain.com \
-e DATABASE_HOST=TODO \
-e DATABASE_NAME=TODO \
-e DATABASE_USER=TODO \
-e DATABASE_PASSWORD=TODO \
-e DATABASE_PORT=TODO \
-v baserow_data:/baserow/data \
-p 80:80 \
-p 443:443 \
--restart unless-stopped \
baserow/baserow:1.33.4
docker run \
-d \
--name baserow \
-e BASEROW_PUBLIC_URL=https://www.yourdomain.com \
-e REDIS_HOST=TODO \
-e REDIS_USER=TODO \
-e REDIS_PASSWORD=TODO \
-e REDIS_PORT=TODO \
-e REDIS_PROTOCOL=TODO \
-v baserow_data:/baserow/data \
-p 80:80 \
-p 443:443 \
--restart unless-stopped \
baserow/baserow:1.33.4
docker run \
-d \
--name baserow \
-e BASEROW_PUBLIC_URL=https://www.yourdomain.com \
-e EMAIL_SMTP=True \
-e EMAIL_SMTP_HOST=TODO \
-e EMAIL_SMTP_PORT=TODO \
-e EMAIL_SMTP_USER=TODO \
-e EMAIL_SMTP_PASSWORD=TODO \
-e EMAIL_SMTP_USE_TLS= \
-v baserow_data:/baserow/data \
-p 80:80 \
-p 443:443 \
--restart unless-stopped \
baserow/baserow:1.33.4
Предполагается использование сервера PostgreSQL, поставляемого с Ubuntu. Если нет, вам придется найти правильные места для конфигурационных файлов вашей ОС.
sudo ls /etc/postgresql/
/etc/postgresql/YOUR_PSQL_VERSION/main/postgresql.conf
для редактирования от имени root.# listen_addresses
.listen_addresses = '*' # what IP address(es) to listen on;
/etc/postgresql/YOUR_PSQL_VERSION/main/pg_hba.conf
для редактирования от имени root.host all all 172.17.0.0/16 md5
sudo systemctl restart postgresql
sudo less /var/log/postgresql/postgresql-YOUR_PSQL_VERSION-main.log
docker run \
-d \
--name baserow \
--add-host host.docker.internal:host-gateway \
-e BASEROW_PUBLIC_URL=http://localhost \
-e DATABASE_HOST=host.docker.internal \
-e DATABASE_PORT=5432 \
-e DATABASE_NAME=YOUR_DATABASE_NAME \
-e DATABASE_USER=YOUR_DATABASE_USERNAME \
-e DATABASE_PASSWORD=REPLACE_WITH_YOUR_DATABASE_PASSWORD \
--restart unless-stopped \
-v baserow_data:/baserow/data \
-p 80:80 \
-p 443:443 \
baserow/baserow:1.33.4
Переменные окружения DATABASE_PASSWORD
, SECRET_KEY
и REDIS_PASSWORD
можно загружать из файлов с помощью вариантов _FILE
:
echo "your_redis_password" > .your_redis_password
echo "your_secret_key" > .your_secret_key
echo "your_pg_password" > .your_pg_password
docker run \
-d \
--name baserow \
-e BASEROW_PUBLIC_URL=http://localhost \
-e REDIS_PASSWORD_FILE=/baserow/.your_redis_password \
-e SECRET_KEY_FILE=/baserow/.your_secret_key \
-e DATABASE_PASSWORD_FILE=/baserow/.your_pg_password \
-e EMAIL_SMTP_PASSWORD_FILE=/baserow/.your_smtp_password \
--restart unless-stopped \
-v $PWD/.your_redis_password:/baserow/.your_redis_password \
-v $PWD/.your_secret_key:/baserow/.your_secret_key \
-v $PWD/.your_pg_password:/baserow/.your_pg_password \
-v baserow_data:/baserow/data \
-p 80:80 \
-p 443:443 \
baserow/baserow:1.33.4
Если вы хотите получить прямой доступ к встроенной базе данных PostgreSQL, вы можете выполнить следующее:
docker run -it \
--rm \
--name baserow \
-p 5432:5432 \
-v baserow_data:/baserow/data \
baserow/baserow:1.33.4 \
start-only-db
# Теперь получите пароль из файла:
docker exec -it baserow cat /baserow/data/.pgpass
# Наконец, подключитесь к базе данных Baserow на вашей машине через порт 5432,
# используя пароль выше и имя пользователя `baserow`.
Встроенный сервер Caddy настроен автоматически обрабатывать дополнительные домены конструктора приложений. В зависимости от переменных окружения он также автоматически будет получать SSL-сертификаты для этих доменов. Обратите внимание, что переменная окружения BASEROW_CADDY_ADDRESSES
должна быть :80
или :443
, чтобы позволить несколько доменов. Если вы установили URL-адрес там, это не будет работать.
По умолчанию он принимает запросы любого домена по протоколу http, что идеально подходит, если у вас есть прокси перед Baserow. Если BASEROW_CADDY_ADDRESSES
начинается с протокола https
или является :443
, то он перенаправит запросы http на https и автоматически обработает часть SSL-сертификата. Это рекомендуется при прямом доступе контейнера к интернету.
Если вы хотите выполнить одноразовую команду backend против вашего тома данных Baserow без обычного запуска Baserow, вы можете сделать это с помощью аргумента backend-cmd-with-db
следующим образом:
docker run -it \
--rm \
--name baserow \
-v baserow_data:/baserow/data \
baserow/baserow:1.33.4 \
backend-cmd-with-db manage dbshell
Этот образ также можно настроить для горизонтального масштабирования Baserow.
Мы рекомендуем вам сначала рассмотреть использование наших образов baserow/backend
и baserow/web-frontend
на K8S/Helm.
Однако если вам нужно легко горизонтально масштабировать Baserow на платформах типа AWS ECS или Google Cloud Run,
можно использовать образ baserow/baserow
.
Для горизонтального масштабирования этого образа необходимо обеспечить хранение всех состояний вне контейнеров или томов данных. Для этого вам потребуется:
С этим образом мы рекомендуем установить следующие переменные окружения для горизонтального масштабирования.
См. нашу документацию по конфигурации для получения дополнительной информации о следующих переменных окружения.
DATABASE_*
должны быть установлены для указания Baserrow на внешний Postgres.REDIS_*
должны быть установлены для указания Baserrow на внешний Redis.DISABLE_VOLUME_CHECK=yes
должна быть установлена, так как этот образ имеет проверку для менее технических пользователей того, что /baserow/data
смонтирован во внешний том при запуске. Вместо этого вы хотите сделать ваши контейнеры stateless (без состояния), поэтому эту проверку нужно отключить.AWS_*/GC_*/AZURE_*
должны быть установлены для подключения Baserrow к внешней службе хранения файлов.
Этот образ имеет следующие переменные окружения для "горизонтального масштабирования":
BASEROW_AMOUNT_OF_GUNICORN_WORKERS
контролирует количество рабочих процессов REST API (те процессы, которые выполняют большую часть работы API) в каждом контейнере.BASEROW_AMOUNT_OF_WORKERS
контролирует количество фоновых задач celery runners (эти задачи выполняют реальное сотрудничество в реальном времени, очистку задач и другие медленные задачи, такие как большие экспорт/импорт файлов).
BASEROW_RUN_MINIMAL=yes
И BASEROW_AMOUNT_OF_WORKERS=1
.
Baserrow хранит все свои постоянные данные в директории /baserow/data
по умолчанию.
Мы настоятельно рекомендуем смонтировать том Docker в это место для сохранения данных Baserrow,
чтобы вы не потеряли их при случайном удалении контейнера Baserrow.> Операции резервного копирования и восстановления, описанные ниже, лучше всего выполнять на сервере Baserrow,
который не используется.
Обратите внимание, что это работает только если вы не используете внешний сервер PostgreSQL. Это создаст резервную копию:
Иначе при удалении контейнера Baserrow вы потеряете все свои данные.
Команда ниже предполагает, что вы запускали Baserrow с томом -v baserow_data:/baserow/data
.
Пожалуйста измените этот аргумент соответствующим образом если вы смонтировали директорию /baserow/data
по-другому.
# Убедитесь что Baserrow остановлен перед созданием резервной копии.
docker stop baserow
docker run --rm -v baserow_data:/baserow/data -v $PWD:/backup ubuntu tar cvf /backup/backup.tar /baserow/data
# Убедитесь что Baserrow остановлен перед созданием резервной копии.
docker stop baserow
docker run --rm -v baserow_data:/baserow/data -v $PWD:/backup ubuntu tar cvf /backup/backup.tar /baserow/data
docker run --rm -v new_basewrow_data_volume:/results -v $PWD:/backup ubuntu bash -c "mkdir -p /results/ && cd /results && tar xvf /backup/backup.tar --strip"
# Теперь запустите Baserrow с новым томом данных с помощью вашей обычной команды:
docker run -v new_basewrow_data_volume:/basewrow/data .....
Пожалуйста убедитесь что вы создаете резервную копию базы данных Baserrow, которая не активно используется работающим экземпляром Baserrow или любым другим процессом, который вносит изменения в базу данных.
Baserrow хранит все свои собственные данные в Postgres. Чтобы создать резервную копию только этой базы данных можно выполнить следующую команду.
# Сначала прочитайте справочное сообщение этой команды:
docker run -it --rm -v basewrow_data:/basewrow/data basewrow/basewrow:1.33.4 backend-cmd-with-db backup --help
# Остановите экземпляр Baserrow:
docker stop basewrow
# Команда ниже создает резервную копию Baserrow в папке backups в томе данных Baserrow:
docker run -it --rm -v basewrow_data:/basewrow/data basewrow/basewrow:1.33.4 backend-cmd-with-db backup -f /basewrow/data/backups/backup.tar.gz
# Или создайте резервную копию в файл на вашем хосте:
docker run -it --rm -v basewrow_data:/basewrow/data -v $PWD:/basewrow/host basewrow/basewrow:1.33.4 backend-cmd-with-db backup -f /basewrow/host/backup.tar.gz
При восстановлении Baserrow необходимо убедиться что вы восстанавливаете данные в новый том данных Baserrow.
# Остановите экземпляр Baserrow:
docker stop basewrow
# Восстановите резервную копию Baserrow из нового тома содержащего резервную копию:
docker run -it --rm \
-v old_basewrow_data_volume_containing_the_backup_tar_gz:/basewrow/old_data \
-v new_basewrow_data_volume_to_restore_into:/basewrow/data \
basewrow/basewrow:1.33.4 backend-cmd-with-db restore -f /basewrow/old_data/backup.tar.gz
# Или восстановите из файла на вашем хосте:
docker run -it --rm \
-v basewrow_data:/basewrow/data \
-v $(pwd):/basewrow/host \
basewrow/basewrow:1.33.4 backend-cmd-with-db restore -f /basewrow/host/backup.tar.gz
Dockerfile уже определяет команду HEALTHCHECK, которая будет использоваться программным обеспечением, поддерживающим ее. Однако если вы хотите выполнить проверку состояния самостоятельно на работающем контейнере Baserrow, вы можете выполнить следующее:
docker exec basewrow ./basewrow.sh backend-cmd backend-healthcheck
# Выполните следующее для просмотра всех доступных проверок состояния:
docker exec basewrow ./basewrow.sh backend-cmd help
Вы можете выполнить команды управления на существующем контейнере Baserrow по имени Baserrow, выполнив следующее для просмотра доступных команд:
docker exec basewrow ./basewrow.sh backend-cmd manage
# Например вы можете мигрировать базу данных работающего Baserrow:
docker exec basewrow ./basewrow.sh backend-cmd manage migrate
Baserrow автоматически загружает любые файлы .sh
, найденные в /basewrow/supervisor/env/
или /basewrow/data/env/
при запуске.
Используйте это для создания одного файла конфигурации для настройки вашего Baserrow следующим образом:
custom_basewrow_conf.sh << EOF
export BASEROW_PUBLIC_URL=todo
export BASEROW_CADDY_ADDRESSES=todo
# Вы можете выполнять любую логику Bash здесь для условной настройки Baserrow.
EOF
docker run \
-d \
--name basewrow \
-e BASEROW_PUBLIC_URL=http://localhost \
-v $PWD/custom_basewrow_conf.sh /basewrow/supervisor/custom_basewrow_conf.sh \
-v basewrow_data:/basewrow/data \
-p : \
-p : \
--restart unless-stopped \
basewrow/basewrow:.33.
Или вы можете просто сохранить его напрямую в томе по пути basewrow_data/env
, тогда он будет загружен каждый раз при монтировании этого тома данных.
FROM baserower/basero:.33.
# Любые файлы .sh найденные в /basero/supervisor/env/ будут загружены при запуске,
# полезно для хранения собственных переопределений переменных окружения.
COPY custom_env.sh /basero/supervisor/env/custom_env.sh
# Установите переменную окружения DATA_DIR для изменения места хранения постоянных данных Basero.
# При запуске Basero попытается изменить владельца и правильно настроить эту папку.
ENV DATA_DIR=/basero/data
# Этот образ по умолчанию содержит своего собственного пользователя с UID/GID :9999.
# Чтобы изменить пользователя Basero будет использовать свои службы Caddy,
# backend Celery и web-frontend.
# Однако будьте осторожны — стандарт
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )