跳转至

使用数据库

场景:应用需要连接 PostgreSQL 或 Redis 预计时间:20 分钟 前置条件:已完成部署第一个应用


概述

当前平台提供:

数据库 用途 访问方式
PostgreSQL 关系数据库 Vault 静态密码 + Dokploy Env
Redis 缓存/队列 Vault 静态密码 + Dokploy Env

ClickHouse / ArangoDB 尚未落地,后续再补。


连接信息

PostgreSQL

项目
Host platform-postgres${ENV_SUFFIX}
Port 5432
Vault 路径 secret/platform/<env>/postgres

Redis

项目
Host platform-redis${ENV_SUFFIX}
Port 6379
Vault 路径 secret/platform/<env>/redis

前提:你的应用需要加入 dokploy-network 才能访问上述服务。 ENV_SUFFIX 生产为空;staging 请在 Dokploy Environment 显式设为 -staging(避免容器冲突)。

Compose 示例: ```yaml services: my-app: # ... networks: - dokploy-network

networks: dokploy-network: external: true ```


接入步骤

1. 获取凭据

前提:已登录 Vault(如需) bash export VAULT_ADDR=https://vault.${INTERNAL_DOMAIN} vault login ${VAULT_TOKEN} 如无 VAULT_TOKEN,请联系运维获取。

由运维创建数据库用户并写入 Vault(示例): bash vault kv get -field=PG_USER secret/platform/<env>/<app> vault kv get -field=PG_PASS secret/platform/<env>/<app> vault kv get -field=password secret/platform/<env>/redis

2. 配置 Dokploy 环境变量

```bash

Replace <...> placeholders with your values.

PG_HOST=platform-postgres${ENV_SUFFIX} PG_PORT=5432 PG_DB= PG_USER= PG_PASS=

REDIS_HOST=platform-redis${ENV_SUFFIX} REDIS_PORT=6379 REDIS_PASSWORD= ```

3. 在应用中使用

Node.js (pg): ```javascript import { Pool } from 'pg';

const pool = new Pool({ host: process.env.PG_HOST, port: Number(process.env.PG_PORT || 5432), user: process.env.PG_USER, password: process.env.PG_PASS, }); ```

Node.js (redis): ```javascript import { createClient } from 'redis';

const client = createClient({ url: redis://:${process.env.REDIS_PASSWORD}@${process.env.REDIS_HOST}:${process.env.REDIS_PORT}, }); ```


常见问题

无法访问数据库?

  • 确认你的应用在 dokploy-network 上。
  • 确认 Vault 中的密码已更新到 Dokploy Env。