Этот гайд поможет вам развернуть приложение на платформе Digital Ocean Apps. Это пошаговое руководство, которое поможет вам установить Baserow с нуля в масштабируемом виде.
Платформа приложений не поддерживает тома и предлагает горизонтальное масштабирование. Это означает, что запущенное приложение будет бессостоятельным. Поэтому нам нужно создать управляемую PostgreSQL, управляемую Redis и объектное хранилище Spaces для хранения всех данных. Поскольку приложение зависит от этих ресурсов, мы должны создать их в первую очередь.
Перейдите на страницу Databases
в левой боковой панели вашего панели управления Digital Ocean. Нажмите на Create Database
в правом верхнем углу. Выберите ваш регион, важно, чтобы все создаваемые серверы находились в одном регионе, выберите PostgreSQL v15 и выберите спецификации сервера, которые вы хотите иметь. Baserow совместим с 1vCPU и 1 ГБ RAM.
Пока сервер базы данных создается, вы уже можете найти Connection Details
на странице деталей базы данных. Нажмите на выпадающее меню в правом верхнем углу и переключитесь на Connection String
. Скопируйте эту строку, так как она вам понадобится позже.
Перейдите на страницу Databases
в левой боковой панели вашего панели управления Digital Ocean. Нажмите на Create Database
в правом верхнем углу. Выберите ваш регион, важно, чтобы все создаваемые серверы находились в одном регионе, выберите Redis v7 и выберите спецификации сервера, которые вы хотите иметь. Baserow совместим с 1vCPU и 1 ГБ RAM.
Пока сервер базы данных создается, вы уже можете найти Connection Details
на странице деталей базы данных. Нажмите на выпадающее меню в правом верхнем углу и переключитесь на Connection String
. Скопируйте эту строку, так как она вам понадобится позже.
Перейдите на страницу Spaces Object Storage
в левой боковой панели вашего панели управления Digital Ocean. Нажмите на Create Spaces Bucket
. Выберите ваш регион, важно, чтобы бакет был создан в том же регионе, и создайте бакет.
Перейдите на страницу API
в левой боковой панели, нажмите на вкладку Spaces Keys
, нажмите на Generate New Key
и создайте новый ключ. Скопируйте Access Key
и Secret key
, так как они вам понадобятся позже.
Перейдите на страницу Apps
в левой боковой панели вашего панели управления Digital Ocean. Нажмите на Create App
, выберите Docker Hub
и заполните следующее:
Repository: baserow/baserow
Image tag or digest: 1.33.4
Нажмите на Next
, затем на кнопку Edit
рядом с веб-сервисом baserow-baserow
. Здесь вы должны изменить HTTP Port на 80, а затем нажать на Back
. Нажмите на кнопку Next
, а затем на Edit
рядом с переменными окружения baserow-baserow
. Добавьте следующие переменные окружения. Все, что находится в скобках, должно быть заменено.
Сгенерируйте уникальную секретную строку для SECRET_KEY
и BASEROW_JWT_SIGNING_KEY
. Это можно сделать, например, через https://djecrety.ir/.
SECRET_KEY=(сгенерируйте уникальную случайную строку)
BASEROW_JWT_SIGNING_KEY=(сгенерируйте уникальную случайную строку)
BASEROW_PUBLIC_URL=http://localhost
BASEROW_AMOUNT_OF_GUNICORN_WORKERS=2
BASEROW_AMOUNT_OF_WORKERS=2
DATABASE_URL=(YOUR_POSTGRESQL_CONNECTION_STRING)
REDIS_URL=(YOUR_REDIS_CONNECTION_STRING)
DISABLE_VOLUME_CHECK=yes
BASEROW_TRIGGER_SYNC_TEMPLATES_AFTER_MIGRATION=false
AWS_ACCESS_KEY_ID=(Spaces Access Key)
AWS_SECRET_ACCESS_KEY=(Spaces Secret key)
AWS_STORAGE_BUCKET_NAME=(название бакета)
AWS_S3_REGION_NAME=(регион Spaces, например ams3)
AWS_S3_ENDPOINT_URL=https://(регион).(digitaloceanspaces.com)
AWS_S3_CUSTOM_DOMAIN=(название-вашего-бакета).(регион).(digitaloceanspaces.com)
DOWNLOAD_FILE_VIA_XHR=1
Не забудьте нажать кнопку Save
, а затем нажмите Next
и снова Next
, пока не дойдете до раздела Review
. Прокрутите вниз до конца и нажмите на Edit Plan
. Здесь вы можете выбрать размер экземпляра. Минимально требуется 1 vCPU и 2 ГБ RAM для одного контейнера. Вы можете масштабировать его позже. Нажмите на Back
и затем на Create Resources
.
Чтобы обеспечить безопасность ваших серверов PostgreSQL и Redis, перейдите на их страницы деталей, нажмите Settings
, затем нажмите на Edit
рядом с Trusted Sources
и добавьте новое приложение.
Вернитесь к Settings
нового приложения и дождитесь завершения развертывания. После этого автоматически будет добавлен домен/URL, который станет виден в настройках. Скопируйте этот URL, перейдите в настройки компонента baserow-baserow, отредактируйте переменные окружения и установите BASEROW_PUBLIC_URL
в (скопированный URL)
, затем нажмите кнопку сохранения. Обратите внимание, что URL не должен заканчиваться слешем, поэтому он должен выглядеть как https://baserow.io
, а не https://baserow.io/
.
Шаблоны не установлены, так как это приведет к ошибке out of shared memory
на самом дешевом плане управляемой базы данных. Если вы хотите включить их, установите переменную окружения BASEROW_TRIGGER_SYNC_TEMPLATES_AFTER_MIGRATION
в значение true
.
Чтобы кнопка загрузки работала в Baserow, вам нужно настроить параметры CORS в Spaces. Перейдите в созданный бакет, перейдите на вкладку Settings
, нажмите на Add
рядом с CORS Configurations и добавьте URL нового приложения без завершающего слеша, то есть он не должен заканчиваться /
. Выберите методы GET
, HEAD
и OPTIONS
, а затем нажмите Save CORS Configuration
.
Дождитесь перезапуска сборки, а затем посетите скопированный URL для использования вашего окружения Baserow.
Чтобы обновить версию Baserow, просто замените тег образа. Перейдите на страницу Settings
вашего созданного приложения, нажмите на компонент baserow-baserow
, затем нажмите на кнопку Edit
рядом с источником, измените тег образа на желаемую версию (последняя версия — 1.33.4
) и нажмите сохранить. Приложение будет переразвернуто с последней версией.
Вы можете включить отправку электронной почты, добавив следующие переменные окружения:
EMAIL_SMTP=True
EMAIL_SMTP_HOST=
EMAIL_SMTP_PORT=
EMAIL_SMTP_USER=
EMAIL_SMTP_PASSWORD=
EMAIL_SMTP_USE_TLS=
Baserow имеет конструктор приложений, который позволяет развернуть приложение на конкретном домене. Поскольку Digital Ocean имеет обратный прокси, который маршрутизирует домен к правильному приложению, развернутое приложение не становится автоматически доступным на выбранном домене.
Чтобы это работало, перейдите в раздел Settings
приложения и нажмите на кнопку Edit
рядом с доменом. Здесь вы можете добавить дополнительные домены, которые будут маршрутизированы к вашему опубликованному домену конструктора приложений.
Если вы планируете использовать Baserow с большим количеством одновременных пользователей, большими схемами баз данных или большим количеством API-запросов в секунду, вы столкнетесь с ограничениями текущей конфигурации и вам нужно будет масштабировать ее. С помощью существующих переменных окружения вы можете легко масштабировать количество контейнеров, если у них 1vCPU и 2 ГБ RAM.
Если вы решите увеличить размер экземпляра, вам также нужно будет изменить некоторые переменные окружения для максимальной эффективности.
BASEROW_AMOUNT_OF_GUNICORN_WORKERS=5
BASEROW_AMOUNT_OF_WORKERS=4
BASEROW_AMOUNT_OF_GUNICORN_WORKERS=10
BASEROW_AMOUNT_OF_WORKERS=8
BASEROW_AMOUNT_OF_GUNICORN_WORKERS=20
BASEROW_AMOUNT_OF_WORKERS=16
Каждое значение (gunicorn workers * количество экземпляров)
— это количество одновременных API-запросов, которые может обрабатывать ваша конфигурация.
Если вы планируете увеличить количество контейнеров или gunicorn workers, убедитесь, что ваши серверы PostgreSQL и Redis могут обрабатывать такое количество запросов. Ориентировочное правило:
необходимое количество соединений =
(
(BASEROW_AMOUNT_OF_GUNICORN_WORKERS * 2)
+ (BASEROW_AMOUNT_OF_WORKERS * 2)
) * количество контейнеров
+ соединения сервисов
Итак, если у вас есть 2 контейнера по 8 ГБ RAM, вам потребуется как минимум:
((10 * 2) + (8 * 2)) * 2 + 5 = 77 соединений
.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )