如何在免费托管平台上部署发布Directus(无头CMS)?
Directus免费托管可行性说明与部署教程
可行性说明
GitHub Pages仅支持纯静态资源托管,无法运行需要Node.js服务端环境、依赖数据库的Directus应用,因此不能直接部署到GitHub Pages。你可以选择其他支持Node.js运行时的免费托管平台完成部署,代码可存储在GitHub仓库供托管平台拉取构建。
部署前置准备
- 把你本地执行
npm init directus-project api生成的api文件夹(即Directus项目根目录)的代码提交到GitHub公开仓库,注意要将.env文件加入.gitignore,禁止提交密钥、数据库密码等敏感信息到公开仓库 - 准备一个免费的远程关系型数据库,推荐使用PostgreSQL类型,Directus初始化时会自动在数据库中生成所需的表结构
- 确认你本地的Directus版本适配的Node.js版本,Directus官方要求Node.js版本≥18.x,部署时要和托管平台的Node.js运行版本保持一致
具体部署步骤
- 先检查Directus项目根目录下的
package.json文件,确认scripts字段中存在启动命令"start": "directus start",如果缺失手动补充即可 - 在托管平台的配置页添加环境变量,参数和你本地
.env中的参数一一对应配置,核心修改参数如下:HOST配置为0.0.0.0PORT配置为托管平台要求的端口,多数平台会自动分配,也可手动设置为8055- 数据库相关参数
DB_CLIENT、DB_HOST、DB_PORT、DB_DATABASE、DB_USER、DB_PASSWORD填写你提前准备好的远程数据库的对应信息 KEY、SECRET两个参数可直接复用本地.env中的值,也可重新生成随机字符串填入
- 配置托管平台的构建命令为
npm install && npx directus bootstrap,启动命令为npm run start - 将你的GitHub代码仓库和托管平台绑定,触发自动构建部署,构建成功后即可通过平台分配的域名访问你的线上Directus服务
免费层使用注意事项
- 多数免费托管平台的服务会在一段时间无访问后进入休眠状态,首次唤醒访问会有几秒的延迟,属于正常情况
- 免费数据库和托管服务的容量、流量都有额度限制,仅适合测试学习使用,生产环境建议升级付费方案
- 不要在免费托管的Directus实例中存储敏感、重要数据,避免平台规则调整导致数据丢失
内容的提问来源于stack exchange,提问作者Dmitry Kotikov
相关产品推荐
相关产品推荐

