Предупреждение: Это руководство устарело с версии 1.9 Baserow. Пожалуйста, следуйте разделу Установка на Ubuntu - Обновление с 1.8.2, если вы установили Baserow 1.8.2 с помощью этого руководства для обновления.
Это устаревшее и теперь не поддерживаемое руководство проведет вас через установку Baserow в производственной среде. В частности, этот документ предназначен для серверов, работающих под управлением Ubuntu 18.04.03 LTS. Эти инструкции были проверены на чистой установке Ubuntu 18.04.03 LTS и учетной записи пользователя с правами root. Обратите внимание, что без прав root многие инструкции не могут быть выполнены, поэтому права root необходимы практически во всех случаях.
Чтобы убедиться, что мы получаем правильные и новые версии любых пакетов, которые мы устанавливаем, нам нужно обновить и обновить наши пакеты.
$ sudo apt update
$ sudo apt upgrade -y
Чтобы предоставлять веб-контент, вам нужно открыть порты HTTP (и HTTPS) 80 (и 443).
Вы можете сделать это с помощью брандмауэра - ufw
может быть хорошим местом для
начала, если вы новичок в брандмауэрах.
Baserow использует PostgreSQL для хранения данных пользователей. Вы можете установить PostgreSQL с помощью следующих команд:
$ sudo apt install postgresql postgresql-contrib -y
# Убедитесь, что вы замените 'yourpassword' ниже надежным паролем для вашего базового
# пользователя.
$ sudo -u postgres psql << EOF
create database baserow;
create user baserow with encrypted password 'yourpassword';
grant all privileges on database baserow to baserow;
EOF
Убедитесь, что вы используете надежный пароль вместо yourpassword
! Также обратите
внимание, что вы используете выбранный вами пароль в любых последующих командах, где
требуется пароль пользователя PostgreSQL baserow.
Baserow использует Redis для асинхронных задач и реального времени сотрудничества. Вы можете установить Redis с помощью следующих команд.
$ sudo add-apt-repository ppa:chris-lea/redis-server
$ sudo apt update
$ sudo apt install redis-server -y
$ sudo sed -i 's/supervised no/supervised systemd/g' /etc/redis/redis.conf
$ sudo systemctl enable --now redis-server
$ sudo systemctl restart redis.service
Redis по умолчанию не доступен публично, поэтому нет необходимости настраивать пароль.
Git требуется для загрузки исходного кода Baserow, чтобы вы могли установить его в следующем разделе. Curl потребуется позже в руководстве для установки nodejs. Установите их оба с помощью следующей команды:
$ sudo apt install git curl -y
В этом разделе мы установим сам Baserow. Нам потребуется новый пользователь под названием
baserow
. Baserow использует директорию /baserow
для хранения самого приложения.
# Создание пользователя baserow
$ sudo useradd baserow
$ sudo passwd baserow
# Введите новый UNIX пароль: yourpassword
# Повторите ввод нового UNIX пароля: yourpassword
# Переключение на пользователя root
$ sudo -i
# Клонирование проекта baserow
$ mkdir /baserow
$ cd /baserow
$ git clone --branch master https://gitlab.com/baserow/baserow.git
Пароль, используемый для пользователя baserow
, не обязательно должен совпадать с тем,
что используется с PostgreSQL. Просто убедитесь, что вы используете надежный пароль и что
вы запомните его для последующего использования.
Чтобы использовать приложение Baserow, нам нужно создать директорию для загруженных пользовательских файлов, виртуальное окружение и установить некоторые дополнительные зависимости, такие как: NodeJS, Yarn, Python 3.7.
Сначала, если вы используете Ubuntu версии 20.04 или более поздней, вам нужно добавить следующий репозиторий, чтобы затем установить Python 3.7:
add-apt-repository ppa:deadsnakes/ppa
apt-get update
Далее следуйте этим шагам:
# Создание директории для загруженных пользовательских файлов и медиафайлов
$ mkdir media
$ chmod 0755 media
# Установка python3.7, pip & virtualenv
$ apt install python3.7 python3.7-dev python3-pip virtualenv libpq-dev libmysqlclient-dev -y
# Создание виртуального окружения
$ virtualenv -p python3.7 env
# Активация виртуального окружения
$ source env/bin/activate
# Установка зависимостей бэкенда через pip
$ pip3 install -e ./baserow/backend
# Установка премиального плагина
$ pip3 install -e ./baserow/premium/backend
# Деактивация виртуального окружения
$ deactivate
# Установка NodeJS
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ apt install nodejs -y
# Установка yarn
$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ apt update
$ apt install yarn -y
# Установка зависимостей фронтенда через yarn
$ cd baserow/web-frontend
$ yarn install
# Сборка фронтенда
$ ./node_modules/nuxt/bin/nuxt.js build --config-file config/nuxt.config.local.js
Baserow использует NGINX в качестве обратного прокси для своего фронтенда и бэкенда. С его помощью вы можете легко добавить SSL-сертификаты и добавить больше приложений на ваш сервер, если хотите.
# Возврат к корневой директории baserow
$ cd /baserow
# Установка и запуск NGINX
$ apt install nginx -y
$ service nginx start
Если вы не знакомы с NGINX: NGINX использует так называемые "виртуальные хосты" для
направления веб-трафика извне вашей сети на правильное приложение на вашем сервере.
Эти виртуальные хосты определяются в файлах .conf
, которые помещаются в директорию
/etc/nginx/sites-enabled/
, где NGINX затем обрабатывает их при запуске.
Baserow поставляется с двумя конфигурационными файлами для NGINX. После перемещения этих файлов,
измените значение server_name
в обоих файлах. Имя сервера — это домен, под которым вы хотите,
чтобы Baserow был доступен.
Убедитесь, что в следующих командах вы замените api.domain.com
на свой собственный домен бэкенда,
baserow.domain.com
на свой домен фронтенда и media.baserow.com
на свой домен для обслуживания пользовательских файлов.
# Перемещение файлов виртуальных хостов в /etc/nginx/sites-enabled/
$ cp baserow/docs/guides/installation/configuration-files/nginx.conf /etc/nginx/sites-enabled/baserow.conf
$ rm /etc/nginx/sites-enabled/default
# Изменение значений server_name
$ sed -i 's/\*YOUR_BACKEND_DOMAIN\*/api.domain.com/g' /etc/nginx/sites-enabled/baserow.conf
$ sed -i 's/\*YOUR_WEB_FRONTEND_DOMAIN\*/baserow.domain.com/g' /etc/nginx/sites-enabled/baserow.conf
$ sed -i 's/\*YOUR_MEDIA_DOMAIN\*/media.domain.com/g' /etc/nginx/sites-enabled/baserow.conf
# Затем перезапустите nginx, чтобы он обработал конфигурационные файлы
$ service nginx restart
В разделе "Установка и настройка PostgreSQL", мы создали базу данных под названием baserow
для приложения. Поскольку мы ничего не делали с этой базой данных, она все еще пуста,
что приведет к неработоспособному приложению, так как Baserow ожидает существования определенных таблиц и отношений в этой базе данных. Вы можете создать их с помощью следующих команд:
# Подготовка к созданию схемы базы данных
$ source env/bin/activate
$ export DJANGO_SETTINGS_MODULE='baserow.config.settings.base'
$ export DATABASE_PASSWORD='yourpassword'
$ export DATABASE_HOST='localhost'
# Создание схемы базы данных
$ baserow migrate
# Синхронизация шаблонных файлов с базой данных
$ baserow sync_templates
$ deactivate
Supervisor — это приложение, которое запускает и отслеживает процессы и перезапускает их, если процесс завершается. Для Baserow это используется для снижения времени простоя и для перезапуска приложения в случае непредвиденного завершения. Вы можете установить и настроить его с помощью этих команд:
# Установка supervisor
$ apt install supervisor -y
# Создание директории для логов baserow
$ mkdir /var/log/baserow/
# Перемещение конфигурационных файлов
$ cd /baserow
$ cp baserow/docs/guides/installation/configuration-files/supervisor.conf /etc/supervisor/conf.d/baserow.conf
Вам нужно будет отредактировать файл baserow.conf
(расположенный теперь по пути /etc/supervisor/conf.d/
)
для установки необходимых переменных окружения. Вам нужно будет изменить по крайней мере следующие переменные,
которые можно найти в разделе environment=
. Убедитесь, что эти URL-адреса начинаются с http:// или https://.
PUBLIC_WEB_FRONTEND_URL
: URL-адрес, по которому ваш фронтенд доступен из интернета.PUBLIC_BACKEND_URL
: URL-адрес, по которому ваш бэкенд доступен из интернета.MEDIA_URL
: URL-адрес, по которому ваши медиафайлы доступны из интернета.Вы можете внести изменения с помощью sed следующим образом:
$ sed -i 's/\*YOUR_BACKEND_DOMAIN\*/https:\/\/api.domain.com/g' /etc/supervisor/conf.d/baserow.conf
$ sed -i 's/\*YOUR_WEB_FRONTEND_DOMAIN\*/https:\/\/baserow.domain.com/g' /etc/supervisor/conf.d/baserow.conf
$ sed -i 's/\*YOUR_MEDIA_DOMAIN\*/https:\/\/media.domain.com/g' /etc/supervisor/conf.d/baserow.conf
Бэкенд
SECRET_KEY
: Секретный ключ, который используется для генерации токенов и других случайных строк.
Вы можете сгенерировать его с помощью следующих команд:
$ cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 80 | head -n 1
DATABASE_PASSWORD
: Пароль пользователя базы данных baserow
DATABASE_HOST
: Хост-компьютер, на котором работает база данных (обычно localhost
)REDIS_HOST
: Хост-компьютер, на котором работает кэширующий сервер (обычно localhost
)Настройка SMTP для отправки электронной почты
Если вы хотите настроить Baserow для отправки электронной почты, вам нужно добавить следующие переменные окружения в блок /etc/supervisor/conf.d/baserow.conf
environment.
В противном случае по умолчанию Baserow не будет отправлять электронные письма и вместо этого будет записывать их в /var/log/baserow/worker.error
.
EMAIL_SMTP
(по умолчанию ``): Предоставление чего-либо отличного от пустой строки включит SMTP-почту.EMAIL_SMTP_HOST
(по умолчанию localhost
): Имя хоста SMTP-сервера.EMAIL_SMTP_USE_TLS
(по умолчанию ``): Предоставление чего-либо отличного от пустой строки включит подключение к SMTP-серверу через TLS.EMAIL_SMTP_PORT
(по умолчанию 25
): Порт SMTP-сервера.EMAIL_SMTP_USER
(по умолчанию ``): Имя пользователя SMTP-сервера.EMAIL_SMTP_PASSWORD
(по умолчанию ``): Пароль SMTP-сервера.FROM_EMAIL
(по умолчанию no-reply@localhost
): Адрес "отправителя" электронных писем, которые отправляет платформа. Например, когда пользователь запрашивает восстановление пароля.После внесения этих изменений вам нужно заставить supervisor перечитать файлы и применить изменения.
# Остановите службу NGINX, чтобы supervisor мог взять управление на себя
$ service nginx stop
# Прочитайте добавленные файлы
$ supervisorctl reread
# Примените прочитанные изменения
$ supervisorctl update
# Проверьте, правильно ли прошел запуск
$ supervisorctl status
Если команды reread
или update
завершаются неудачно, попробуйте проверить логи по пути /var/log/baserow/
— возможно, другой процесс слушает один из портов, что приводит к завершению работы NGINX или частей Baserow.
Поскольку вы, вероятно, предоставляете конфиденциальные данные с помощью Baserow, мы настоятельно рекомендуем использовать SSL-сертификат для шифрования трафика между браузером и вашим сервером. Вы можете сделать это с помощью следующих команд. Мы будем использовать certbot для получения SSL-сертификата от Certificate Authority Let's Encrypt.
Если вы не устанавливаете Baserow на совершенно новый сервер, вам может потребоваться удалить ранее установленные бинарные файлы certbot
с вашего компьютера. Проконсультируйтесь с инструкциями по установке certbot для получения дополнительной информации.
# Установка certbot
$ sudo snap install core; sudo snap refresh core
$ sudo snap install --classic certbot
# Делаем команду certbot доступной
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
# Начало процесса получения сертификата
$ sudo certbot --nginx
# Перезапуск nginx для чтения конфигурации, созданной certbotом
$ supervisorctl restart nginx
Теперь у вас есть полная установка Baserow, которая будет поддерживать работу фронтенда и бэкенда даже при непредвиденном завершении их работы.
Если у вас уже установлена Baserow на вашем сервере и вы хотите обновить ее до последней версии, вы можете выполнить следующие команды. Это работает только если в предыдущих релизах не указаны дополнительные инструкции.
Следуйте этим шагам, если вы установили после 1 июня 2021 года:
$ cd /baserow/baserow
$ git pull
$ cd /baserow
$ source env/bin/activate
$ pip3 install -e ./baserow/backend
$ pip3 install -e ./baserow/premium/backend
$ export DJANGO_SETTINGS_MODULE='baserow.config.settings.base'
$ export DATABASE_PASSWORD='yourpassword'
$ export DATABASE_HOST='localhost'
$ baserow migrate
$ baserow sync_templates
$ deactivate
$ cd baserow/web-frontend
$ yarn install
$ ./node_modules/nuxt/bin/nuxt.js build --config-file config/nuxt.config.local.js
$ supervisorctl reread
$ supervisorctl update
$ supervisorctl restart all
Следуйте этим шагам, если вы установили до 1 июня 2021 года.
$ cd /baserow
$ git pull
$ source backend/env/bin/activate
$ pip3 install -e ./backend
$ pip3 install -e ./premium/backend
$ export DJANGO_SETTINGS_MODULE='baserow.config.settings.base'
$ export DATABASE_PASSWORD='yourpassword'
$ export DATABASE_HOST='localhost'
$ baserow migrate
$ baserow sync_templates
$ deactivate
$ cd web-frontend
$ yarn install
$ ./node_modules/nuxt/bin/nuxt.js build --config-file config/nuxt.config.local.js
$ supervisorctl reread
$ supervisorctl update
$ supervisorctl restart all
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )