Пошаговая ручная установка

Сервер BOOCO Meteor (v 1.x) / Установка без Docker

Ниже приводится описание пошаговой ручной установки на примере ОС Ubuntu 20.04 (для других версий Linux используемые команды могут отличаться).

Порядок установки

Шаг 1. Установка Node JS

  1. Для установки Node JS выполните следующие команды:
  2. curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash - \
    sudo apt-get install -y nodejs
  3. Проверьте, что Node JS установлен:
  4. node -v

Шаг 2. Установка и запуск MongoDB

  1. Установите MongoDB.
  2. 💡
    Важно. Для установки MongoDB 5.0 и выше требуются процессоры с поддержкой набора команд AVX. Если в процессоре такая поддержка отсутствует, то перед установкой BOOCO нужно установить MongoDB 4.4 вместо MongoDB 5.0. Проверить наличие поддержки набора команд AVX можно с помощью команды grep avx /proc/cpuinfot. Если результаты выполнения команды отсутствуют, то это означает, что процессор не поддерживает расширенный набор команд AVX. Подробнее о системе команд AVX

    Чтобы установить MongoDB, выполните следующие команды:

    export MONGO_PGP="https://www.mongodb.org/static/pgp/server-5.0.asc"
    export MONGO_REPO="https://repo.mongodb.org/apt/ubuntu"
    export MONGO_VER="bionic/mongodb-org/5.0"
    export MONGO_LIST="/etc/apt/sources.list.d/mongodb-org-5.0.list"
    curl -fsSL $MONGO_PGP | sudo apt-key add -
    echo "deb [ arch=amd64,arm64 ] $MONGO_REPO $MONGO_VER multiverse" \
        | sudo tee $MONGO_LIST
    sudo apt-get update
    sudo apt-get install -y mongodb-org
    💡
    Примечание. Если при выполнении команды apt-get update появилась ошибка 403 Forbidden, то следует воспользоваться альтернативным способом установки.

    Альтернативный способ установки:

    sudo rm /etc/apt/sources.list.d/mongodb-org* 
    export BOOCO_MONGO="https://www.booco.ru/download/mongo"
    export MONGODB_DIST_SERVER="mongodb-linux-x86_64-ubuntu2004-5.0.9"
    curl $BOOCO_MONGO/$MONGODB_DIST_SERVER.tgz -o /tmp/mongodb.tgz
    tar -zxvf /tmp/mongodb.tgz -C /tmp/
    sudo mv /tmp/$MONGODB_DIST_SERVER/bin/mongo* /usr/bin
    sudo mkdir -p /var/lib/mongo
    sudo mkdir -p /var/log/mongodb  
    # create db group and user  
    sudo adduser --system --no-create-home \
        --disabled-login --group mongodb
    sudo chown -R mongodb:mongodb /var/lib/mongo
    sudo chown -R mongodb:mongodb /var/log/mongodb
    # get Mongo configuration file
    sudo curl https://www.booco.ru/download/mongo/mongod.conf \
    -o /etc/mongod.conf
    # get systemd service file
    sudo curl https://www.booco.ru/download/mongo/mongod.service \
      -o /lib/systemd/system/mongod.service
  3. Запустите MongoDB. Для автоматического запуска MongoDB при старте выполните следующие команды:
  4. sudo systemctl daemon-reload
    sudo systemctl unmask mongod
    sudo systemctl enable mongod
    sudo systemctl start mongod

    Рекомендуем убедиться, что сервис Mongo DB запущен:

    sudo systemctl status mongo
    ⚠️
    Важно. Для безопасности необходимо создать учетную запись администратора и запретить доступ без авторизации.
  5. Запустите консоль Mongo:
  6. mongo admin # должна появиться командная строка **>**
  7. Введите команду (замените password на надежный пароль):
  8. db.createUser({user: "admin", pwd: "password", roles: [{ role: "root", db: "admin" }]})

    Появится надпись Successfully added user:....

    Для выхода из консоли Mongo введите команду exit.

  9. Включите авторизацию в конфигурационном файле mongod.conf. Запустите редактор:
  10. sudo nano /etc/mongod.conf

    Добавьте в конце следующие строчки:

    security:
    authorization : enabled
    💡
    Примечание. Для сохранения нажмите CTRL+O и ENTER. Для выхода нажмите CTRL+X.
  11. Затем перезапустите сервис Mongo:
  12. sudo systemctl restart mongod

Шаг 3. Установка BOOCO

  1. Получите последнюю версию BOOCO. Для этого выполните следующее:
  2. export BOOCO_VER=$(curl -fsSL https://www.booco.ru/download/latest)
    echo "Version: $BOOCO_VER"

    В результате отобразится информация с номером версии (например: Version 1.26.11).

  3. Выполните команды:
  4. curl https://www.booco.ru/download/booco_$BOOCO_VER.tar.gz \
    -o /tmp/booco.tar.gz
    sudo tar -xf /tmp/booco.tar.gz -C /opt

Шаг 4. Создание начальной конфигурации и запуск сервера

  1. Подготовьте начальные папки и конфигурационные файлы:
  2. export BOOCO_DATA=/var/booco
    export BOOCO_DEFAULT=/opt/booco/default-configs
    sudo mkdir -p $BOOCO_DATA/config
    sudo mkdir -p $BOOCO_DATA/debug
    sudo mkdir -p $BOOCO_DATA/scripts/templates
    sudo cp $BOOCO_DEFAULT/default-config.yml $BOOCO_DATA/config/booco.yml
    sudo cp $BOOCO_DEFAULT/default-debug.yml $BOOCO_DATA/debug/debug.yml
    sudo cp $BOOCO_DEFAULT/default.js $BOOCO_DATA/scripts/templates
  3. Создайте файл .env с переменными среды:
  4. export BOOCO_ENV=/opt/booco/.env
    export MONGO_USER=admin
    export MONGO_PASSWORD=password # change password!
    export MONGO_BASE=127.0.0.1:27017/meteor?authSource=admin
    export MONGO_URL=mongodb://$MONGO_USER:$MONGO_PASSWORD@$MONGO_BASE
    
    echo MONGO_USER=$MONGO_USER > /tmp/booco.env
    echo MONGO_PASSWORD=$MONGO_PASSWORD >> /tmp/booco.env
    echo BOOCO_DATA=$BOOCO_DATA >> /tmp/booco.env
    echo MONGO_URL=$MONGO_URL >> /tmp/booco.env
    echo UNIVERSE_I18N_LOCALES="en, ru" >> /tmp/booco.env
    echo LANG=ru_RU >> /tmp/booco.env
    echo NODE_ENV=production >> /tmp/booco.env
    sudo mv /tmp/booco.env $BOOCO_ENV
  5. Запустите сервер.
    1. Порядок автоматического запуска

    2. Добавьте сервер BOOCO в Systemd для автоматического запуска:
    3. sudo curl https://www.booco.ru/install/booco.service \
      -o /lib/systemd/system/booco.service
      sudo systemctl daemon-reload
      sudo systemctl unmask booco
      sudo systemctl enable booco
      sudo systemctl start booco
    4. Проверьте, что BOOCO запущен:
    5. sudo systemctl status booco
    6. Проверьте логи:
    7. tail /var/log/booco.log

      или

      tail /var/log/booco.log -f` # для постоянного отслеживания
      💡
      Примечание. Если не удалось запустить BOOCO с помощью systemctl, то можно выполнить запуск вручную.

      Запуск вручную

      Для запуска BOOCO не в фоновом режиме выполните следующее:

      cd /opt/booco
      source .env
      export ROOT_URL=${ROOT_URL:=http://$(hostname -I)}
      sudo ROOT_URL=$ROOT_URL \
      PORT=80 \
      MONGO_URL=$MONGO_URL \
      UNIVERSE_I18N_LOCALES="$UNIVERSE_I18N_LOCALES" \
      LANG="$LANG" \
      NODE_ENV=production \
      BOOCO_DATA=$BOOCO_DATA \
      node main.js

      Чтобы завершить работу, нажмите CTRL+C.

      Для запуска BOOCO в фоновом режиме с перенаправлением в log выполните следующее:

    8. Смените пользователя на пользователя root:
    9. sudo su
    10. Затем выполните следующие команды:
    11. cd /opt/booco
      source .env
      sudo touch /var/log/booco.log
      sudo chmod 755 /var/log/booco.log
      export ROOT_URL=${ROOT_URL:=http://$(hostname -I)}
      sudo ROOT_URL=$ROOT_URL \
      PORT=80 \
      MONGO_URL=$MONGO_URL \
      UNIVERSE_I18N_LOCALES="$UNIVERSE_I18N_LOCALES" \
      LANG="$LANG" \
      NODE_ENV=production \
      BOOCO_DATA=$BOOCO_DATA \
      nohup node main.js &>>/var/log/booco.log < /dev/null &
    12. В конце вернитесь к текущему пользователю, для этого введите команду exit.
    13. 💡
      Примечание. При таком запуске после перезапуска BOOCO не запустится автоматически.

Удаление временных файлов

После завершения установки BOOCO необходимо удалить временные файлы:

rm -f /tmp/mongodb.tgz
rm -rf /tmp/mongodb-linux*
rm -f /tmp/booco.tar.gz
rm -rf /tmp/booco*