В этой статье мы узнаем, как настроить собственный VPS и использовать его с Strapi.
Автор: Абдулвахаб Ашими
Существует множество облачных вариантов развертывания приложения Strapi, но в этой статье я расскажу вам, как установить экземпляр Strapi на виртуальный выделенный сервер для использования.
Статья будет посвящена знакомству с настройкой существующего приложения Strapi и его развертыванием на VPS.
Что такое Strapi?
Strapi — это безголовая система управления контентом с открытым исходным кодом, которая предлагает вам возможность разрабатывать API с отличительными особенностями. Она построена на Node.js и работает с любыми Frontend Frameworks с поддержкой GraphQL.
С помощью Strapi вы можете создавать пользовательские типы контента, отношения и медиатеку для изображений и аудиофайлов.
Что такое VPS?
Виртуальный выделенный сервер — это многопользовательская инфраструктура как услуга облачного хостинга, предоставляемая разработчикам для размещения их веб-сайтов и приложений на хостинг-платформе.
Цели
В конце этого руководства вы должны уметь настраивать VPS, устанавливать основные требования, клонировать и развертывать свой проект Strapi на VPS.
Предварительные условия
Прежде чем продолжить изучение этого материала, вам необходимо следующее.
- Базовые знания JavaScript
- Базовое понимание Strapi — начните здесь.
- Учетная запись Github
- Git установлен на вашем компьютере
- Скачайте и установите Node.js v14+
- VScode или любой другой текстовый редактор
Аппаратные требования Strapi
- Не менее 1 ядра процессора (рекомендуется: 2 ядра процессора)
- Node Js версии 12 или 14 (релизы с нечетными номерами не поддерживаются)
- Минимум 2GBs RAM (рекомендуется: 4GBs)
- Дисковое пространство Минимум 32 ГБ
Поддерживаемая операционная система
- Ubuntu >= 18.04 (только LTS)
- Debian >= 9.x
- CentOS/RHEL >= 8
- macOS Mojave или новее (ARM не поддерживается)
- Windows 10
- Docker — репозиторий docker
Настройка вашего VPS
Для этого урока мы будем использовать Lightsail VPS.
- Перейдите на страницу Lightsail VPS.
- Зарегистрируйте учетную запись; от вас потребуется кредитная карта, но с вас не будут снимать деньги до истечения 3-месячной бесплатной пробной версии.
- Нажмите на кнопку «Создать инстанс».
- Выберите Linux в качестве платформы, Node для Blueprint и Instance Plan должен быть $20, так как наше приложение Strapi требует как минимум 4gb и 2 vCPU. Приступайте к созданию экземпляра, и вы будете перенаправлены сюда.
Если вместо «запущен» вы увидите «ожидается», просто подождите пару минут.
- Нажмите на значок терминала прямо напротив имени вашего экземпляра и запустите терминал.
Настройка вашего проекта
На этом этапе мы займемся настройкой нашего проекта:
- Убедитесь, что Git установлен, запустив его.
git version
Команда выше покажет вам текущую версию git, и если она выдаст ошибку, вам придется установить git.
- Теперь нам нужно клонировать наш проект Strapi с Github.
git clone (url)
# mine is:
git clone https://github.com/ibn-ashimi/my-project.git
Теперь, когда наш проект находится на VPS, мы можем приступить к его настройке.
- Установите yarn и npm и убедитесь в этом, выполнив: https://computingforgeeks.com/install-node-js-14-on-ubuntu-debian-linux/.
yarn -v
#or
npm -v
Это покажет вам версию, которая у вас установлена. В моем случае yarn имеет версию 1.22.18, а npm — версию 8.5.5, что вполне нормально.
Установка пакетов
Для развертывания проекта вам необходимо установить пакеты npm. Вы можете использовать либо Forever JS, либо PM2.
- В терминале перейдите в папку проекта с помощью команды
cd (project name)
npm install --production
#and
npm i forever -g
#or
npm i pm2 -g
Рекомендуется установить и forever, и pm2. Если у вас возникли проблемы с разрешениями npm, используйте Sudo.
Настройка приложения
Теперь нам нужно настроить наше приложение и установить dotenv, который будет содержать переменные окружения.
- Установите dotenv с помощью:
npm i dotenv
cp .env.example .env
- Откройте .env
nano .env
и включите переменные из вашей базы данных
HOST=0.0.0.0
PORT=1337
APP_KEYS=2V+39791mGaxSwRHHhwfhg==,aMWCRV6iaTxRZXx5NM/2BA==,rIsvFirfdm8YNwsy0QnLug==,dWUY3urnIol5YOkpdLTkfQ==
API_TOKEN_SALT=ksJpczGexS/3UaQ4Lb2efQ==
ADMIN_JWT_SECRET=S1WqtEgbW9ZKy3eF2JUbZQ==
JWT_SECRET=S72rrbkK0kCk1eE6g5CqIA==
Создайте свой проект
Для этого выполните следующие действия:
NODE_ENV=production yarn build
#or
NODE_ENV=production npm run build
Вы должны получить сообщение об успехе.
Чтобы ваше приложение было развернуто с помощью forever или PM2, создайте файл «server.js» с помощью команды
nano server.js
и введите
const strapi = require('@strapi/strapi');
strapi(/* {...} */).start();
затем сохраните.
Запустите сервер Strapi:
NODE_ENV=production pm2 start server.js --name api
# or
NODE_ENV=production forever start server.js
Для просмотра процессов вы можете использовать
pm2 list
Заключение
Отлично сработано! Вы развернули свой проект Strapi на VPS-сервере. В этой статье рассмотрены основы развертывания на VPS, а также установка и настройка обратного прокси nginx, чтобы ваше приложение работало на веб-порту.