PayloadCMS 企业级部署实践指南

前言

PayloadCMS 是一个现代化的 Headless CMS 系统,基于 TypeScript 和 Node.js 构建。

本文将详细介绍如何在VPS上部署PayloadCMS,包括环境配置、数据库设置、SSL证书配置等完整流程。

PayloadCMS 核心特性

  • 完全自托管,数据安全可控
  • TypeScript 支持,提供完整类型定义
  • 灵活的内容模型定义
  • 强大的 API 支持(REST & GraphQL)
  • 内置身份验证和权限控制
  • 支持实时预览和版本控制

环境信息

  • 服务器配置:2GB RAM
  • 操作系统:Ubuntu

一、基础环境配置

1.1 Node.js安装

curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -
sudo apt-get install -y nodejs

验证安装:

node --version  # 输出: v23.10.0
npm --version   # 输出: 10.9.2

1.2 PostgreSQL安装(Docker方式)

docker pull postgres:latest

mkdir -p /root/data/postgres
chmod 777 /root/data/postgres

docker run --name postgres-db \
  -e POSTGRES_PASSWORD= \
  -e POSTGRES_USER= \
  -e POSTGRES_DB=cms \
  -p 5432:5432 \
  -v /root/data/postgres:/var/lib/postgresql/data \
  -d postgres

二、应用部署

2.1 构建应用

cd /root/work
npx create-payload-app
cd /root/work/-cms
nohup npm run build > build.log 2>&1 &

2.2 配置系统服务

创建服务配置文件:

[Unit]
Description= CMS Service
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/root/work/cms
ExecStart=/usr/bin/npm run start
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

启用服务:

sudo systemctl daemon-reload
sudo systemctl enable cms
sudo systemctl start cms

三、Caddy反向代理配置

3.1 安装Caddy

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

3.2 配置Caddy

cms..io {
    header {
        Access-Control-Allow-Origin *
        Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
        Access-Control-Allow-Headers "Content-Type"
        Access-Control-Max-Age "86400"
    }
    reverse_proxy localhost:3000
}

四、版本控制配置

4.1 Git配置

git config --global user.email "your-email@example.com"
git config --global user.name "your-name"

4.2 代码提交

cd /root/work/-cms
git init
echo "node_modules/
.env
.next/
dist/
build/
.DS_Store" > .gitignore
git remote add origin git@github.com:/cms.git
git add .
git commit -m "Initial commit: CMS setup"
git branch -M main
git push -u origin main

五、系统维护

5.1 常用维护命令

# 检查应用状态
sudo systemctl status -cms

# 查看应用日志
sudo journalctl -u -cms

# 检查Caddy状态
sudo systemctl status caddy

# 查看Caddy日志
sudo journalctl -u caddy

5.2 数据库维护

# 进入数据库容器
docker exec -it postgres-db bash

# 连接数据库
psql -U  -d cms

# 常用PostgreSQL命令
\l        # 列出所有数据库
\dt       # 列出所有表
\d 表名    # 查看表结构

六、访问信息

  • 管理后台:https://xxx/admin
  • API示例:https://xxx/api/posts/1
  • API文档:https://payloadcms.com/docs/rest-api/overview

注意事项

  1. 确保域名DNS正确指向服务器IP
  2. 检查必要端口(80、443、5432)是否开放
  3. 验证数据库连接配置
  4. 定期检查服务状态和日志
  5. 做好数据备份工作

参考资料

  • PayloadCMS官方文档:https://payloadcms.com/
  • PostgreSQL官方文档
  • Caddy官方文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值