宝塔面板部署
宝塔面板是一款流行的服务器管理工具,可以简化 PocketBase 的部署流程。本文介绍如何在宝塔面板环境中部署 PocketBase。
安装宝塔面板
Section titled “安装宝塔面板”# Ubuntu/Debian 安装wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
# CentOS 安装wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sudo bash install.sh安装完成后会显示面板地址和登录信息。
登录宝塔面板
Section titled “登录宝塔面板”- 访问面板地址:
http://your-server-ip:8888 - 输入用户名和密码登录
安装 PocketBase
Section titled “安装 PocketBase”方式一:使用宝塔终端
Section titled “方式一:使用宝塔终端”- 在宝塔面板左侧菜单选择「终端」
- 执行以下命令:
# 创建应用目录mkdir -p /www/wwwroot/pocketbasecd /www/wwwroot/pocketbase
# 下载 PocketBasePB_VERSION=$(curl -s https://api.github.com/repos/pocketbase/pocketbase/releases/latest | grep 'tag_name' | cut -d\" -f4)wget https://github.com/pocketbase/pocketbase/releases/download/${PB_VERSION}/pocketbase_${PB_VERSION}_linux_amd64.zip
# 解压unzip pocketbase_${PB_VERSION}_linux_amd64.ziprm pocketbase_${PB_VERSION}_linux_amd64.zip
# 添加执行权限chmod +x pocketbase
# 测试运行./pocketbase serve方式二:使用文件管理器
Section titled “方式二:使用文件管理器”- 在宝塔面板选择「文件」
- 进入
/www/wwwroot/ - 创建
pocketbase目录 - 上传下载的 PocketBase 压缩包
- 解压文件
- 设置
pocketbase文件权限为 755
配置 Supervisor 守护进程
Section titled “配置 Supervisor 守护进程”安装 Supervisor
Section titled “安装 Supervisor”在宝塔面板中选择「软件商店」,搜索并安装 Supervisor管理器。
添加 PocketBase 进程
Section titled “添加 PocketBase 进程”- 进入「Supervisor管理器」
- 点击「添加守护进程」
- 填写配置:
| 配置项 | 值 |
|---|---|
| 进程名称 | pocketbase |
| 启动用户 | www(或 root) |
| 运行目录 | /www/wwwroot/pocketbase |
| 启动命令 | /www/wwwroot/pocketbase/pocketbase serve —http=127.0.0.1:8090 |
| 进程数量 | 1 |
- 点击「提交」
- 启动进程:点击操作列的「启动」
- 停止进程:点击操作列的「停止」
- 重启进程:点击操作列的「重启」
- 查看日志:点击操作列的「日志」
配置 Nginx 反向代理
Section titled “配置 Nginx 反向代理”- 在宝塔面板选择「网站」
- 点击「添加站点」
- 填写域名(如
pb.example.com) - PHP 版本选择「纯静态」
- 点击「提交」
配置 SSL
Section titled “配置 SSL”- 进入网站设置
- 选择「SSL」
- 选择「Let’s Encrypt」
- 点击「申请」
- 等待证书申请完成
配置反向代理
Section titled “配置反向代理”- 进入网站设置
- 选择「反向代理」
- 点击「添加反向代理」
填写配置:
| 配置项 | 值 |
|---|---|
| 代理名称 | pocketbase |
| 目标 URL | http://127.0.0.1:8090 |
| 发送域名 | $host |
- 点击「提交」
点击配置文件的「配置」,添加以下内容:
# WebSocket 支持location / { proxy_pass http://127.0.0.1:8090; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s;}宝塔面板防火墙
Section titled “宝塔面板防火墙”- 选择「安全」
- 添加端口规则:
- 放行 80 端口(HTTP)
- 放行 443 端口(HTTPS)
云服务商安全组
Section titled “云服务商安全组”在阿里云/腾讯云控制台添加安全组规则:
| 协议 | 端口 | 说明 |
|---|---|---|
| TCP | 80 | HTTP |
| TCP | 443 | HTTPS |
| TCP | 8888 | 宝塔面板(可选) |
注意: 不要将 8090 端口暴露到公网。
配置定时备份
Section titled “配置定时备份”使用宝塔计划任务
Section titled “使用宝塔计划任务”- 选择「计划任务」
- 点击「添加任务」
- 填写配置:
| 配置项 | 值 |
|---|---|
| 任务类型 | 备份网站 |
| 执行周期 | 每天 |
| 备份到 | 服务器磁盘 / OSS |
使用脚本备份
Section titled “使用脚本备份”- 选择「计划任务」
- 添加「Shell 脚本」任务
- 脚本内容:
#!/bin/bash# PocketBase 备份脚本
BACKUP_DIR="/www/backup/pocketbase"PB_DATA_DIR="/www/wwwroot/pocketbase/pb_data"DATE=$(date +%Y%m%d_%H%M%S)
# 创建备份目录mkdir -p "$BACKUP_DIR"
# 备份数据tar -czf "$BACKUP_DIR/pb_data_$DATE.tar.gz" -C "$PB_DATA_DIR" .
# 删除 7 天前的备份find "$BACKUP_DIR" -name "pb_data_*.tar.gz" -mtime +7 -delete
echo "Backup completed: pb_data_$DATE.tar.gz"- 设置执行周期为「每天 02:00」
开启 BBR
Section titled “开启 BBR”在宝塔面板中选择「软件商店」->「系统工具」->「Linux工具箱」,开启 TCP BBR。
调整 PHP 配置(如使用 PHP)
Section titled “调整 PHP 配置(如使用 PHP)”虽然 PocketBase 不需要 PHP,但如果同服务器有其他站点:
- 选择「软件商店」->「PHP 设置」
- 调整以下参数:
max_execution_time = 300memory_limit = 256Mupload_max_filesize = 50Mpost_max_size = 50M
使用宝塔监控
Section titled “使用宝塔监控”- 选择「监控」
- 启用系统监控
- 设置告警阈值:
- CPU 使用率 > 80%
- 内存使用率 > 85%
- 磁盘使用率 > 90%
配置告警通知
Section titled “配置告警通知”- 在「系统设置」->「通知设置」
- 配置邮件/微信/钉钉通知
- 绑定接收人
Q: 502 Bad Gateway 错误?
Section titled “Q: 502 Bad Gateway 错误?”检查 PocketBase 是否正常运行:
# 在宝塔终端执行ps aux | grep pocketbase
# 如果没有运行,在 Supervisor 管理器中启动Q: 如何更新 PocketBase?
Section titled “Q: 如何更新 PocketBase?”# 在宝塔终端执行cd /www/wwwroot/pocketbase
# 备份数据cp -r pb_data pb_data.backup
# 下载新版本PB_VERSION=$(curl -s https://api.github.com/repos/pocketbase/pocketbase/releases/latest | grep 'tag_name' | cut -d\" -f4)wget https://github.com/pocketbase/pocketbase/releases/download/${PB_VERSION}/pocketbase_${PB_VERSION}_linux_amd64.zipunzip -o pocketbase_${PB_VERSION}_linux_amd64.ziprm pocketbase_${PB_VERSION}_linux_amd64.zip
# 在 Supervisor 管理器中重启进程Q: 如何查看详细日志?
Section titled “Q: 如何查看详细日志?”- Supervisor 日志:在「Supervisor管理器」中点击「日志」
- Nginx 日志:在网站设置中选择「日志」
- 系统日志:在「系统日志」中查看
Q: 内存不足怎么办?
Section titled “Q: 内存不足怎么办?”- 在宝塔面板选择「系统状态」
- 查看 PHP-FPM 或其他服务占用
- 如果只有 PocketBase,考虑升级服务器配置
- 或添加 Swap 分区
Q: 如何设置多个 PocketBase 实例?
Section titled “Q: 如何设置多个 PocketBase 实例?”- 在不同的目录安装多个 PocketBase
- 使用不同的端口(8090、8091、8092…)
- 为每个实例添加 Supervisor 进程
- 为每个域名配置反向代理
Supervisor 配置示例:
Section titled “Supervisor 配置示例:”# 实例 1/www/wwwroot/pb1/pocketbase serve --http=127.0.0.1:8090
# 实例 2/www/wwwroot/pb2/pocketbase serve --http=127.0.0.1:8091Nginx 反向代理对应修改目标端口即可。