Установка Strapi · 10 min read · Oct 19, 2025
Как установить Strapi CMS на Ubuntu 22.04

Strapi — это система управления контентом (CMS) с открытым исходным кодом и безголовой архитектурой, созданная на JavaScript. Как и другие безголовые CMS, Strapi не поставляется с фронтендом из коробки. Она использует API для своего фронтенда, позволяя вам создавать веб-сайт с использованием популярных фреймворков, таких как React и Next.js. Основанная на системе плагинов, Strapi является гибкой CMS, чья панель администратора и API расширяемы, и каждая часть настраиваема под любые сценарии использования. Strapi также имеет встроенную систему пользователей для детального управления доступом администраторов и конечных пользователей.
В этом руководстве вы узнаете, как установить версию Strapi CMS для сообщества на сервере Ubuntu 22.04, а также Nginx в качестве обратного прокси-сервера.
Предварительные требования
- Сервер с установленной Ubuntu 22.04.
- Пользователь, не являющийся root, с правами sudo.
- Полностью квалифицированное доменное имя (FQDN), например
strapi.example.com. - Убедитесь, что все обновлено.
$ sudo apt update $ sudo apt upgrade - Несколько пакетов, которые нужны вашей системе.
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -yНекоторые из этих пакетов могут уже быть установлены на вашей системе.
Шаг 1 - Настройка брандмауэра
Первый шаг — настроить брандмауэр. По умолчанию Ubuntu поставляется с ufw (Uncomplicated Firewall).
Проверьте, работает ли брандмауэр.
$ sudo ufw status
Вы должны получить следующий вывод.
Status: inactive
Разрешите порт SSH, чтобы брандмауэр не разорвал текущее соединение при его включении.
$ sudo ufw allow OpenSSH
Также разрешите порты HTTP и HTTPS.
$ sudo ufw allow http
$ sudo ufw allow https
Включите брандмауэр
$ sudo ufw enable
Команда может нарушить существующие ssh соединения. Продолжить операцию (y|n)? y
Брандмауэр активен и включен при запуске системы
Проверьте статус брандмауэра снова.
$ sudo ufw status
Вы должны увидеть аналогичный вывод.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Шаг 2 - Установка и настройка PostgreSQL
Strapi работает с PostgreSQL 11 и выше. Ubuntu 22.04 по умолчанию поставляется с PostgreSQL 14. Мы будем использовать PostgreSQL 15 для нашего руководства.
Выполните следующую команду, чтобы добавить GPG-ключ PostgreSQL.
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null
Добавьте репозиторий APT в список источников.
$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
Обновите системный репозиторий.
$ sudo apt update
Теперь вы можете установить PostgreSQL, используя следующую команду.
$ sudo apt install postgresql postgresql-contrib
Пакет postgresql-contrib содержит некоторые дополнительные утилиты.
Проверьте статус службы PostgreSQL.
$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Wed 2022-12-28 18:03:03 UTC; 17s ago
Main PID: 4119 (code=exited, status=0/SUCCESS)
CPU: 2ms
Dec 28 18:03:03 strapi systemd[1]: Starting PostgreSQL RDBMS...
Dec 28 18:03:03 strapi systemd[1]: Finished PostgreSQL RDBMS.
Вы можете увидеть, что служба включена и работает по умолчанию.
Запустите оболочку PostgreSQL.
$ sudo -i -u postgres psql
Создайте базу данных Strapi.
postgres=# CREATE DATABASE strapidb;
Создайте пользователя Strapi и выберите надежный пароль.
postgres-# CREATE USER strapiuser WITH PASSWORD 'Ваш_Пароль';
Измените владельца базы данных на пользователя Strapi.
postgres-# ALTER DATABASE strapidb OWNER TO strapiuser;
Выйдите из оболочки.
postgres-# \q
Проверьте, что ваши учетные данные работают.
$ psql --username strapiuser --password --host localhost strapidb
Пароль:
psql (15.1 (Ubuntu 15.1-1.pgdg22.04+1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
strapidb=>
Выйдите из оболочки, набрав \q.
Шаг 3 - Установка Node.js
Ubuntu 22.04 поставляется с Node v12, который устарел. Мы установим последнюю LTS-версию Node, которая на момент написания этого руководства составляет v18.
Скачайте установщик Node v18 из Nodesource.
$ curl -sL https://deb.nodesource.com/setup_18.x -o nodesource_setup.sh
Запустите скрипт установщика.
$ sudo bash nodesource_setup.sh
Установите Node.js.
$ sudo apt install nodejs
Проверьте версию Node.js.
$ node -v
v18.12.1
Удалите файл установщика.
$ rm nodesource_setup.sh
Шаг 4 - Установка Strapi
Выполните следующую команду для установки Strapi.
$ npx create-strapi-app@latest howtoforge-project
Need to install the following packages:
[email protected]
Ok to proceed? (y) y
Введите y, чтобы продолжить установку. Далее вам будет предложено выбрать тип установки. Выберите Custom, чтобы продолжить, и ответьте на вопросы следующим образом.
? Choose your installation type Custom (manual settings)
? Choose your preferred language JavaScript
? Choose your default database client postgres
? Database name: strapidb
? Host: 127.0.0.1
? Port: 5432
? Username: strapiuser
? Password: Ваш_Пароль
? Enable SSL connection: No
В зависимости от ваших требований вы можете выбрать TypeScript или JavaScript в качестве языка для Strapi.
После завершения установки вы готовы создать свой проект Strapi.
Перейдите в каталог проекта.
$ cd howtoforge-project
Выполните следующую команду для сборки проекта, включая Strapi Admin UI.
$ NODE_ENV=production npm run build
Запустите сервер Strapi, используя следующую команду.
$ node ~/howtoforge-project/node_modules/.bin/strapi start
Ваше приложение должно быть доступно по URL http://<вашIPсервера>:1337. Но сначала откройте порт в брандмауэре.
$ sudo ufw allow 1337
После открытия URL вы должны увидеть следующий экран.

Нажмите Ctrl + C в терминале, чтобы остановить сервер. Вам следует удалить правило брандмауэра, так как оно больше не понадобится.
$ sudo ufw delete allow 1337
Шаг 5 - Установка и настройка PM2
Вместо того чтобы запускать сервер вручную, мы можем использовать PM2 (Process Manager 2) для управления процессом и создания службы systemd для этого.
Перейдите в домашний каталог.
$ cd ~
Установите PM2.
$ sudo npm install pm2@latest -g
Создайте и откройте файл конфигурации PM2 для редактирования.
$ sudo nano ecosystem.config.js
Вставьте следующий контент в файл. Убедитесь, что вы ввели правильное имя каталога вместе с учетными данными Postgres.
module.exports = {
apps: [
{
name: 'strapi',
cwd: '/home/navjot/my-project',
script: 'npm',
args: 'start',
env: {
NODE_ENV: 'production',
DATABASE_HOST: 'localhost',
DATABASE_PORT: '5432',
DATABASE_NAME: 'strapidb',
DATABASE_USERNAME: 'strapiuser',
DATABASE_PASSWORD: 'Ваш_Пароль',
},
},
],
};
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Запустите ваш экземпляр Strapi в фоновом режиме с помощью PM2.
$ pm2 start ecosystem.config.js
Вы получите следующий вывод.
-------------
__/\\\\\\\\\____/\\\____________/\\\____/\\\\\\\_____
_\/\\\/////////\\\_\/\\\\\________/\\\\\__/\\\///////\\\___
_\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
_\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/__\/\\\___________/\\\/___
_\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
_\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
_\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
_\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\__
_\///______________\///______________\///__\///////////////__
Runtime Edition
PM2 is a Production Process Manager for Node.js applications
with a built-in Load Balancer.
Start and Daemonize any application:
$ pm2 start app.js
Load Balance 4 instances of api.js:
$ pm2 start api.js -i 4
Monitor in production:
$ pm2 monitor
Make pm2 auto-boot at server restart:
$ pm2 startup
To go further checkout:
http://pm2.io/
-------------
[PM2] Spawning PM2 daemon with pm2_home=/home/navjot/.pm2
[PM2] PM2 Successfully daemonized
[PM2][WARN] Applications strapi not running, starting...
[PM2] App [strapi] launched (1 instances)
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
? id ? name ? namespace ? version ? mode ? pid ? uptime ? ? ? status ? cpu ? mem ? user
? watching ?
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
? 0 ? strapi ? default ? N/A ? fork ? 4824 ? 0s ? 0 ? online ? 0% ? 31.9mb ? navjot ? disabled ?
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
Приложения, работающие под управлением PM2, автоматически перезапускаются, если они аварийно завершились или были убиты.
Создайте скрипт запуска systemd с помощью следующей команды.
$ pm2 startup
Вы получите следующий вывод.
[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u navjot --hp /home/navjot
Скопируйте команду из приведенного выше вывода и выполните ее.
$ sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u navjot --hp /home/navjot
Сохраните список процессов PM2.
$ pm2 save
Теперь ваш сервис Strapi работает в фоновом режиме в производственном режиме.
Шаг 6 - Установка Nginx
Ubuntu 22.04 поставляется со старой версией Nginx. Чтобы установить последнюю версию, вам нужно загрузить официальный репозиторий Nginx.
Импортируйте ключ подписи Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Добавьте репозиторий для стабильной версии Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Обновите системные репозитории.
$ sudo apt update
Установите Nginx.
$ sudo apt install nginx
Проверьте установку.
$ nginx -v
nginx version: nginx/1.22.1
Запустите сервер Nginx.
$ sudo systemctl start nginx
Шаг 7 - Установка SSL
Нам нужно установить Certbot для генерации SSL-сертификата. Вы можете установить Certbot, используя репозиторий Ubuntu, или загрузить последнюю версию с помощью инструмента Snapd. Мы будем использовать версию Snapd.
Ubuntu 22.04 поставляется с установленным Snapd по умолчанию. Выполните следующие команды, чтобы убедиться, что ваша версия Snapd актуальна. Убедитесь, что ваша версия Snapd актуальна.
$ sudo snap install core
$ sudo snap refresh core
Установите Certbot.
$ sudo snap install --classic certbot
Используйте следующую команду, чтобы убедиться, что команда Certbot запускается, создав символическую ссылку на директорию /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Выполните следующую команду для генерации SSL-сертификата.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d strapi.example.com
Вышеуказанная команда загрузит сертификат в директорию /etc/letsencrypt/live/strapi.example.com на вашем сервере.
Сгенерируйте сертификат группы Диффи-Хеллмана.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Проведите пробный запуск процесса, чтобы проверить, работает ли автоматическое обновление SSL.
$ sudo certbot renew --dry-run
Если вы не видите ошибок, вы готовы. Ваш сертификат будет автоматически обновляться.
Шаг 8 - Настройка Nginx
Откройте файл /etc/nginx/nginx.conf для редактирования.
$ sudo nano /etc/nginx/nginx.conf
Добавьте следующую строку перед строкой include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Создайте и откройте файл /etc/nginx/conf.d/strapi.conf для редактирования.
$ sudo nano /etc/nginx/conf.d/strapi.conf
Вставьте следующий код в него.
server {
# Перенаправить любые http-запросы на https
listen 80;
listen [::]:80;
server_name strapi.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name strapi.example.com;
access_log /var/log/nginx/strapi.access.log;
error_log /var/log/nginx/strapi.error.log;
# Конфигурация TLS
ssl_certificate /etc/letsencrypt/live/strapi.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/strapi.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/strapi.example.com/chain.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
# OCSP Stapling ---
# получать OCSP записи из URL в ssl_certificate и кэшировать их
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:1337;
}
}
Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Проверьте синтаксис конфигурационного файла Nginx.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Перезапустите службу Nginx.
$ sudo systemctl restart nginx
Теперь вы можете получить доступ к Strapi CMS по URL https://strapi.example.com. Вы увидите следующую страницу, которая показывает, что Strapi работает в производственном режиме.

Перейдите по URL https://strapi.example.com/admin, чтобы создать администратора.

Заполните свои данные администратора и нажмите кнопку Давайте начнем, чтобы перейти на экран панели администратора.

С этого момента вы можете начать создавать контент в Strapi.
Шаг 9 - Обновление Strapi
Первый шаг в обновлении Strapi — остановить сервер.
$ cd ~
$ pm2 stop ecosystem.config.js
Перейдите в каталог проекта и откройте файл package.json для редактирования.
$ cd howtoforge-project
$ nano package.json
Обновите все номера версий пакетов Strapi до последней стабильной версии Strapi. Вы можете получить последнюю доступную версию на странице релизов Strapi на GitHub.
"devDependencies": {},
"dependencies": {
"@strapi/strapi": "4.5.5",
"@strapi/plugin-users-permissions": "4.5.5",
"@strapi/plugin-i18n": "4.5.5",
"pg": "8.6.0"
},
Здесь вам нужно изменить 4.5.5 на последнюю стабильную версию. Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.
Установите обновленную версию.
$ npm install
Пересоберите панель администратора.
$ NODE_ENV=production npm run build
Снова запустите сервер.
$ cd ~
$ pm2 start ecosystem.config.js
Ваша установка Strapi теперь обновлена и работает.
Заключение
Это завершает наше руководство по установке Strapi CMS на сервер Ubuntu 22.04 и Nginx в качестве обратного прокси-сервера. Если у вас есть какие-либо вопросы, оставляйте их в комментариях ниже.
Get new posts in your inbox
No spam. Unsubscribe anytime.