部署

Strapi 为您的项目或应用程序提供了许多可能的部署选项。Strapi 可以部署在传统的主机服务器上,或者像 21YunBox、 Render、 Heroku、 AWS、 Azure 等服务。下面的文档介绍了如何使用 Strapi 在本地进行开发,以及如何使用各种托管选项部署 Strapi。

::: tip 在 数据库指南 中介绍了与 Strapi 一起部署数据库。 :::

托管提供商指南

在不同平台上部署的手动指南,对于一键式和码头式,请参阅 安装 指南。

可选的软件指南

当在生产或类似生产的环境中使用 Strapi 时,附加的可选软件补充指南可以补充或改进部署过程。

建议的要求

为了为 Strapi 提供尽可能好的环境,有一些需求,这些需求既适用于开发(本地) ,也适用于登台和生产工作流程。

  • Node LTS (v12 or V14) 注意,Node 的奇数版本永远不会被支持(例如 v13,v15).
  • NPM v6 or whatever ships with the LTS Node versions
  • Typical standard build tools for your OS (the build-essentials package on most Debian-based systems)
  • 至少 1 个 CPU 内核(强烈推荐至少 2 个)
  • 至少 2gb 内存(适度推荐 4)
  • 32 GB of 操作系统推荐的最小存储空间或 32GB 的 free 自由 space 空间
  • 支持的数据库版本
    • MySQL >= 5.6
    • MariaDB >= 10.1
    • PostgreSQL >= 10
    • SQLite >= 3
    • MongoDB >= 3.6
  • 支持的操作系统
    • Ubuntu >= 18.04 (LTS-Only)
    • Debian >= 9.x
    • CentOS/RHEL >= 8
    • macOS Mojave or newer (ARM not supported)
    • Windows 10
    • Docker - docker repo

应用程序配置

1. 配置

我们总是建议您使用环境变量来根据环境配置应用程序:

Path — ./config/server.js.

  1. module.exports = ({ env }) => ({
  2. host: env('APP_HOST', '0.0.0.0'),
  3. port: env.int('NODE_PORT', 1337),
  4. });

然后你可以创建一个 .env 文件或者直接使用你用来设置环境变量的部署平台:

Path — .env.

  1. APP_HOST=10.0.0.1
  2. NODE_PORT=1338

::: tip 要了解更多关于配置的信息,可以阅读 这里 的文档 :::

2. 启动服务器

在生产环境中运行服务器之前,您需要为生产环境构建管理面板

:::: tabs

::: tab yarn

NODE_ENV=production yarn build

:::

::: tab npm

NODE_ENV=production npm run build

:::

::: tab Windows

npm install cross-env

Then in your package.json scripts section:

"production": "cross-env NODE_ENV=production npm run build"

:::

::::

使用 production 设置运行服务器。

:::: tabs

::: tab yarn

NODE_ENV=production yarn start

:::

::: tab npm

NODE_ENV=production npm start

:::

::: tab Windows

npm install cross-env

Then in your package.json scripts section:

"production": "cross-env NODE_ENV=production npm start"

:::

::::

::: warning 我们强烈推荐使用 pm2 来管理您的流程。 :::

如果您需要一个 ./server.js 文件来运行 node server.js 而不是 npm run start,那么创建一个。如下所示:

const strapi = require('strapi');

strapi(/* {...} */).start();

高级配置

如果您希望将管理托管在 API 之外的其他服务器上,请查看这个专门的部分