Инструкция по установке ПО «Конструктор Цифровых витрин»
Для функционирования программы необходимо:
1. Подготовка сервера (front)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
или
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
  • Установка NodeJS
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" ||
printf %s "${XDG_CONFIG_HOME}/nvm")"[ -s "$NVM_DIR/nvm.sh" ] && \.
"$NVM_DIR/nvm.sh"nvm install 15.14.0nvm use 15
npm i -g @quasar/cli@latest
npm i -g pm2
2. Сборка приложения (front)
Перед выполнением команд необходимо предварительно распаковать архив с приложением («constructor-front») в директорию на сервере, например в / opt / app / front. Перед сборкой необходимо внести изменения в конфигурацию Quasar изменив URL адрес к API изменив параметры API и API_DEV. Например: бэкенд часть приложения буде работать на домене example.com и по протоколу https, конфигурация будет следующая:
...

build: {
    vueRouterMode: 'history', // available values: 'hash', 'history'
    env: {
      API: 'https://example.com/api',
      API_DEV: 'https://example.com/api',
    },

...

npm installquasar build -m ssr && cd dist/ssr && npm i
3. Запуск/перезапуск приложения (front)
Перед запуском необходимо отредактировать файл ecosystem.config.js, который содержит конфигурацию запуска приложения через менеджер процессов PM2
  • Параметр script определяет путь к основному скрипту приложения
  • По умолчанию приложение запускается и работает на порту 3020
  • Для смены порта необходимо внести изменения в файл quasar.conf.js, изменив параметр prodPort: 3020 на необходимое значение и пересобрать приложение, перезапустив его после сборки
pm2 restart ecosystem.config.js --only constructor-front --env production
4. Настройка NGINX (front)
Пример минимальной конфигурации приложения для NGINX расположен в файле deploy/base-nginx.conf
5. Подготовка сервера (back)
5.1 Установка необходимых пакетов
apt install curl wget redis postgresql nginx certbot python3-certbot-nginx \
php php-fpm composer php-xml php-mbstring php-curl php-zip \ 
php-intl php-gd php-json php-pgsql php-imagick php-redis 
5.2 Установка NVM, NodeJS, Yarn https://github.com/nvm-sh/nvm
  • Установка NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
или
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
  • Установка NodeJS
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"nvm install 16.16.0nvm use 16
  • Установка менеджера пакетов Yarn
npm install -g yarn
6. Подготовка базы данных (back)
6.1 Создание БД и пользователя для работы с БД
Переключаемся на пользователя postgres
sudo su postgres
Подключаемся к PostgreSQL
psql
Создаем БД - <DB_NAME>
create database <DB_NAME>;
Создаем пользователя - <DB_USERNAME>
create user <DB_USERNAME>;ALTER USER <DB_USERNAME> WITH ENCRYPTED PASSWORD '<USER_PASSWORD>';
Установим пользователя <DB_USERNAME> владельцем БД <DB_NAME>
ALTER DATABASE <DB_NAME> OWNER TO <DB_USERNAME>;GRANT ALL PRIVILEGES ON DATABASE <DB_NAME> to <DB_USERNAME>;
6.2 Установка расширения pg_trgm
psql -U <DB_USERNAME> -p <PORT>   \c <DB_NAME>   CREATE EXTENSION pg_trgm;
6.3 Импортируем дамп БД
psql -p -U <DB_USERNAME> <DB_NAME> < deploy/db.sql
7. Сборка приложения (back)
Перед выполнением команд необходимо предварительно распаковать архив с приложением («constructor») в директорию на сервере, например в /opt/app/backend
7.1 Установить для директорий и файлов приложения владельца и группу
chown -R <USER_NAME_ON_SERVER>:www-data
7.2 Установить для директории storage разрешения
chmod -R 777 ./starage
7.3 Настройка окружения
  • Создаем файл окружения .env из шаблона .env.master
cp .env.master .env
  • Редактируем созданный файл .env установив переменным значения
7.4 Установка зависимостей и сборка административной панели
  • Установка PHP зависимостей
composer install
  • Создание ссылки на публичный контент (изображения, документы)
  • Генерация секретного ключа приложения
php artisan storage:linkphp artisan key:generate
  • Установка зависимостей и сборка административной панели
yarnyarn production
  • Кэшируем маршруты и конфигурацию приложения
php artisan optimize
8. Настройка NGINX (back)
Пример минимальной конфигурации приложения для NGINX расположен в файле deploy/base-nginx.conf