介绍
如今,我对Strapi和Strapi设计系统一直很感兴趣。我也将我的物联网项目用作后端。 Strapi是一个开源node.js无头CMS,它具有很大的灵活性,可以为博客建立CMS,甚至Next JS的无头贸易。我认为有关在VPS上部署的文档对于初学者来说有点模糊。
so,
我将在4个部分中管理此写作:
- 创建VPS
- 在VPS上安装必需软件包。
- 为Strapi创建PostgreSQL用户和数据库。
- 克隆并构建项目。 (创建第一个管理用户)
1。创建VPS
根据Strapi Deployment Specs,硬件要求必须最小:
CPU:最小1个核心
内存:至少2GB
磁盘:最低8GB
如果提供了这些最低要求,任何类型的VPS提供商和计划将是完美的。
创建VPS之后,
2。安装必需软件包
安装Node.js
首先,更新本地软件包。
$ sudo apt update
然后安装node.js
$ sudo apt install nodejs
用
验证版本
$ node -v
Note :根据Node的输出版本,如果您想安装特定版本,则可以按照以下步骤安装NVM;
## Run nvm installer
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
## Update profile
$ 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"
## Reload shell config.
$ source ~/.bashrc
之后;
$ nvm -v
然后您可以使用
安装节点的特定版本
$ nvm install 16 #Or Specific version
旁注:Strapi仅支持LTS版本(v16
-v18
)
推荐用于strapi v4.3.9
及以上的节点v18.x
。
node v16.x
建议用于strapi v4.0.x
至v4.3.8
也NPM v6
及以上。
之后,您需要安装build-essentials
软件包:
$ sudo apt install build-essentials
完成这些步骤后,我们将手动更改NPM的默认目录。我们将创建.npm-global
目录并设置路径:
cd ~
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
创建(或修改)~/.profile
文件:
sudo nano ~/.profile
并添加此行:
export PATH=~/.npm-global/bin:$PATH
然后更新系统变量:
source ~/.profile
安装和配置git版本
我们可以检查Git
是否已安装:
git --version
如果不是:
$ sudo apt update
$ sudo apt install git
$ git --version
之后,我们可以设置Git
:
$ git config --global user.name "Your Name"
$ git config --global user.email "youremail@domain.com"
显示配置:
$ git config --list
3。创建PostgreSQL用户和数据库
我们需要首先安装PostgreSQL:
$ sudo apt update
$ sudo apt install postgresql postgresql-contrib
确保系统运行:
$ sudo systemctl start postgresql.service
创建Postgres用户,当您使用linux用户(VPS用户)登录时,使用sudo命令:
$ sudo -u postgres createuser --interactive
您将被要求添加的角色名称:
Output
Enter name of role to add: your_sudo_account_name
Shall the new role be a superuser? (y/n) y
然后创建具有相同名称的数据库:
$ sudo -u postgres createdb your_vps_linux_username
然后打开Postgres角色的Postgres提示:
$ sudo -u your_vps_linux_username psql
## And then with command:
\password
## You can exit with:
\q and then
exit
## Note that password you will be created. It will be your db password for ecosystem.config.js and strapi database.js.
要使用基于身份的身份验证登录,您将需要一个与Postgres角色和数据库相同名称的Linux用户。您刚刚使用当前的Linux用户创建。如果要创建另一个用户和数据库,则必须以
的方式创建另一个Linux用户帐户
$ sudo adduser another_account
与Linux用户创建角色和数据库后,我们必须更改Postgres角色,因为它没有密码。
$ sudo -i -u postgres psql
$ \password
现在您的数据库名称:your_linux_user_name
数据库用户:your_vps_linux_username
数据库密码:我上面指出的密码。
现在在开发计算机和项目文件夹上,(如果您第一次设置strapi时未选择PostgreSQL),则必须安装pg
依赖项软件包。
$ npm install pg --save
#or
$ yarn add pg
之后,(开发计算机)用以下内容替换./config/database.js
中的内容:
module.exports = ({ env }) => ({
connection: {
client: 'postgres',
connection: {
host: env('DATABASE_HOST', '127.0.0.1'),
port: env.int('DATABASE_PORT', 5432),
database: env('DATABASE_NAME', ''),
user: env('DATABASE_USERNAME', ''),
password: env('DATABASE_PASSWORD', ''),
ssl: {
rejectUnauthorized:env.bool('DATABASE_SSL_SELF', false),
},
},
debug: false,
},
});
现在您准备将更改推向GitHub:
git add .
git commit -m "Configured database.json"
git push
4。克隆和构建项目。
现在您准备将项目克隆到VPS。
$ cd ~
$ git clone https://github.com/your-name/your-project-repo.git
下一个导航到您的项目文件夹。
$ cd ./your-project-folder
## and then
$ npm install
## or
$ yarn install
strapi使用port 1337
默认值。我们必须为Strapi打开端口1337。
cd ~
sudo ufw allow 1337/tcp
sudo ufw enable
我们安装和配置Nginx
后,我们将使用:
关闭端口1337
sudo ufw deny 1337
安装和配置PM2运行时
PM2运行时允许您保持Strapi项目的活力并在不停机的情况下重新加载。
npm install pm2@latest -g
之后:
cd ~
pm2 init
sudo nano ecosystem.config.js ## nano or any kind of editor
现在,用以下内容替换文件:
module.exports = {
apps: [
{
name: 'strapi',
cwd: 'cloned-strapi-project-directory/',
script: 'npm', // Or 'yarn'
args: 'start',
env: {
NODE_ENV: 'production',
DATABASE_HOST: 'localhost', // database endpoint
DATABASE_PORT: '5432',
DATABASE_NAME: 'your-db-name', // DB name
DATABASE_USERNAME: 'your-username', // your username for psql
DATABASE_PASSWORD: 'your-password', // your password for psql
},
},
],
};
还设置您的.env文件(如果不存在,则创建)。
现在以:
启动ecosystem.config.js
文件
cd ~
pm2 start ecosystem.config.js
现在PM2活动并运行。您应该能够在Port 1337
上查看创建管理页面。
我们要做的最后一件事是生成启动脚本以启动PM2:
$ cd ~
$ pm2 startup systemd
按照命令行遵循指令;复制并粘贴生成的路径。您将被提示:
...
[PM2] [v] Command successfully executed.
...
然后输入:
$ pm2 save
然后确保脚本是否可以使用:
$ pm2 list
## and
$ systemctl status pm2-your-username
现在您可以设置和配置Nginx,通过Let's Encrypt与Certbot安装SSL,并使用Git
创建Webhook。
如果您意识到任何错字或其他东西,请与我联系。
来源: