Senate

部署 PostgreSQL

使用 Senate 部署 PostgreSQL 数据库

部署 PostgreSQL

部署生产级 PostgreSQL 数据库,配置持久化存储。

快速配置

预计时间: 约 3 分钟

1. 创建服务

  1. 进入 服务添加服务
  2. 选择目标服务器
  3. 命名服务(如 postgres
  4. 点击 Create

创建 PostgreSQL 服务

2. 配置源

  1. 进入 Source 标签页
  2. 选择 Docker Image 作为源类型
  3. 输入镜像:postgres:16-alpine
  4. 点击 Save

3. 设置环境变量

进入 环境变量 标签页,添加:

POSTGRES_USER=myapp
POSTGRES_PASSWORD=你的安全密码
POSTGRES_DB=myapp_production

请使用强密码。连接数据库时需要此密码。

4. 添加持久化存储

  1. 进入 存储 标签页
  2. 点击 添加卷
  3. 配置:
    • 卷名称: postgres-data
    • 容器路径: /var/lib/postgresql/data

PostgreSQL 存储配置

5. 暴露端口

  1. 进入 端口 标签页
  2. 点击 添加端口
  3. 配置:
    • 协议: tcp
    • 主机端口: 5432
    • 容器端口: 5432

6. 部署

点击 部署 启动 PostgreSQL。

连接方式

连接字符串

postgresql://myapp:你的安全密码@服务器IP:5432/myapp_production

使用 psql

psql -h 服务器IP -U myapp -d myapp_production

应用程序连接

// Node.js 示例
const { Pool } = require('pg');
const pool = new Pool({
  connectionString: 'postgresql://myapp:你的安全密码@服务器IP:5432/myapp_production'
});

备份与恢复

创建备份

pg_dump -h 服务器IP -U myapp myapp_production > backup.sql

恢复备份

psql -h 服务器IP -U myapp myapp_production < backup.sql

安全建议

将 PostgreSQL 暴露到公网存在风险。生产环境请考虑以下方案:

推荐方案:

  1. 仅内部访问 - 不暴露端口,通过 SSH 隧道访问
  2. 防火墙规则 - 限制特定 IP 地址访问
  3. VPN - 仅通过私有网络访问

SSH 隧道(推荐)

ssh -L 5432:localhost:5432 user@服务器IP
# 然后连接 localhost:5432

目录