资讯动态

Zulip 如何连接独立部署或云托管的 PostgreSQL 数据库(如 RDS)

发布时间:2026/9/14 15:29:33 来源:尧图企业网站定制
Zulip 如何连接独立部署或云托管的 PostgreSQL 数据库如 RDS【免费下载链接】zulipZulip server and web application. Open-source team chat that helps teams stay productive and focused.项目地址: https://gitcode.com/GitHub_Trending/zu/zulip默认安装方式会把 PostgreSQL 和 Zulip 的全部服务装在同一台机器上。但生产环境里数据库往往不在主应用服务器上要么使用云厂商提供的托管数据库如 Amazon RDS 这类 database-as-a-service要么把 PostgreSQL 单独放到一台仍由 Zulip 管理的服务器上以便扩容。Zulip 官方文档对这两种部署形态都给出了完整的安装与配置步骤见 docs/production/postgresql.md。这篇文章覆盖的是从生产发布 tarball 自托管安装的这条路径准备一台干净的 Ubuntu 或 Debian 系统装好 Zulip然后把它的数据库指到外部 PostgreSQL 上最终生成组织创建链接完成初始化。使用 Docker 的读者注意Docker Compose 或 Helm 对接外部 PostgreSQL 是另一套配置externalPostgresql见 Docker 文档不适用本文。准备工作在应用服务器上按 标准安装流程 的前两步准备环境准备一台满足 安装要求 的全新 Ubuntu 或 Debian 系统。下载并解压最新发布的 tarballcd $(mktemp -d) curl -fLO https://download.zulip.com/server/zulip-server-latest.tar.gz tar -xf zulip-server-latest.tar.gz安装命令需要 root 权限先切换[ $(whoami) ! root ] sudo -s确认远端数据库版本在支持范围内Zulip 各版本支持的 PostgreSQL 版本见 docs/production/postgresql-support-table.mdZulip Server 版本支持的 PostgreSQL 版本7.x12, 13, 14, 158.x12, 13, 14, 15, 169.x12, 13, 14, 15, 1610.x13, 14, 15, 16, 1711.x14, 15, 16, 1712.x14, 15, 16, 17, 1813.x (unreleased)14, 15, 16, 17, 18安装器的--postgresql-version参数目前支持 14、15、16、17、18默认 18见 docs/production/deployment.md。你的远端 PostgreSQL 服务器版本必须落在你所用 Zulip 版本的这一范围内。路径一使用云托管 PostgreSQL如 Amazon RDS一个前提限制先说明多数云托管数据库服务不包含有用的全文检索词典文件也不提供自行上传的途径因此 Zulip 的 全文搜索 在 RDS 上效果会打折扣。介意的话走路径二的独立服务器部署由 Zulip 管理 PostgreSQL可以带上完整词典。1. 确定数据库名与用户名Zulip 默认使用用户zulip、数据库zulip。如果集中数据库服务有命名规范可以用别的值但两处安装参数要一致。2. 安装 Zulip 并跳过本地数据库按 标准安装说明 执行安装但改用下面这组参数--puppet-classeszulip::profile::standalone_nodb,zulip::process_fts_updates表示不在本机装数据库standalone_nodb并保留 FTS 后台任务--postgresql-version填你远端服务器的 PostgreSQL 版本号。./zulip-server-*/scripts/setup/install --certbot \ --emailYOUR_EMAIL --hostnameYOUR_HOSTNAME \ --puppet-classeszulip::profile::standalone_nodb,zulip::process_fts_updates \ --postgresql-database-namezulip \ --postgresql-database-userzulip \ --postgresql-versionYOUR_SERVERS_POSTGRESQL_VERSION其中YOUR_EMAIL替换为管理员或团队联系邮箱YOUR_HOSTNAME替换为用户访问的域名YOUR_SERVERS_POSTGRESQL_VERSION替换为远端数据库版本号。注意--postgresql-database-name和--postgresql-database-user只能在首次安装时设置见 安装器高级选项。3. 在远端 PostgreSQL 上创建数据库登录远端数据库的管理员psql会话执行 scripts/setup/create-db.sql 中的命令。它会创建名为zulip、C.UTF-8collation 的数据库创建名为zulip、对该数据库拥有全部权限的用户。副作用提示该脚本会先执行DROP DATABASE IF EXISTS即如果远端已存在同名数据库会被删除后重建。请确认目标库名下没有需要保留的数据再运行。如果你无法直接执行这段 SQL或必须使用不同的数据库名/用户名就手动完成等价操作。再根据你数据库服务方的认证机制可能需要给zulip用户设置密码或生成客户端证书这一点要查阅你所在云厂商的文档。4. 配置 Zulip 连接远端数据库在 Zulip 服务器的/etc/zulip/settings.py中配置连接参数这些值应向你的数据库服务商索取REMOTE_POSTGRES_HOSTPostgreSQL 服务器的名称或 IP 地址REMOTE_POSTGRES_PORT端口REMOTE_POSTGRES_SSLMODE连接使用的 SSL Mode取值见 PostgreSQL 官方文档中的 SSL Mode Descriptions 表。如果走密码认证把zulip用户的密码写入/etc/zulip/zulip-secrets.conf下面为文档示例值替换成你的实际密码postgres_password abcd12345. 初始化数据库并生成组织创建链接# Ask Zulip installer to initialize the PostgreSQL database. su zulip -c /home/zulip/deployments/current/scripts/setup/initialize-database # And then generate a realm creation link: su zulip -c /home/zulip/deployments/current/manage.py generate_realm_creation_link路径二独立部署的 Zulip 管理 PostgreSQL 服务器这条路假设两台服务器一台运行 PostgreSQL另一台运行 Zulip 的其余服务。相比托管服务数据库由 Zulip 的安装器完整管理。1. 在应用服务器上安装 Zulip同样先下载 tarball然后用standalone_nodbpuppet class 安装本机不装数据库./zulip-server-*/scripts/setup/install --certbot \ --emailYOUR_EMAIL --hostnameYOUR_HOSTNAME \ --puppet-classeszulip::profile::standalone_nodb2. 在数据库服务器上只安装 PostgreSQL在那台将运行 PostgreSQL 的机器上同样下载 Zulip tarball只安装数据库部分./zulip-server-*/scripts/setup/install \ --puppet-classeszulip::profile::postgresql ./zulip-server-*/scripts/setup/create-database随后需要配置/etc/postgresql/*/main/pg_hba.conf允许来自应用前端主机的连接以zulip用户访问zulip数据库。具体用密码认证还是证书认证文档说这属于你自己数据库侧的配置不在 Zulip 文档范围内参见 PostgreSQL 官方pg_hba.conf文档。3. 在应用服务器上配置连接与路径一相同在/etc/zulip/settings.py设置REMOTE_POSTGRES_HOST、REMOTE_POSTGRES_PORT独立服务器场景下通常是5432、REMOTE_POSTGRES_SSLMODE密码认证时在/etc/zulip/zulip-secrets.conf写入postgres_password。多一步把远端服务器的 PostgreSQL 版本写进/etc/zulip/zulip.conf下面version 18为文档示例值改成你数据库服务器上实际运行的版本[postgresql] # Set this to match the version running on your remote PostgreSQL server version 184. 初始化数据库并生成组织创建链接执行与路径一相同的两条命令su zulip -c /home/zulip/deployments/current/scripts/setup/initialize-database su zulip -c /home/zulip/deployments/current/manage.py generate_realm_creation_link验证结果generate_realm_creation_link会打印一个组织创建链接标准安装流程的判定标准是在浏览器打开该链接按提示完成组织organization和你的用户账号设置后即可登录使用——说明 Zulip 已经通过REMOTE_POSTGRES_HOST指向的远端数据库完成了初始化。如果你之前没让安装脚本打印一次性链接之后可以随时用manage.py generate_realm_creation_link重新生成。两点使用中的已知限制云托管RDS部署下全文搜索质量受限于云厂商自带的词典这是文档明确给出的体验降级点无法通过 Zulip 侧配置解决。数据库名与用户名只在首次安装时可定制装完想改需要走 PostgreSQL 升级/迁移文档 的相关流程。下一步文档建议生产安装尽量升级到你的 Zulip 版本所支持的 最新 PostgreSQL升级步骤与本文的独立/云托管部署形态同样适用可继续沿用上面的连接配置。【免费下载链接】zulipZulip server and web application. Open-source team chat that helps teams stay productive and focused.项目地址: https://gitcode.com/GitHub_Trending/zu/zulip创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价