flag92 flag92
部署教程

Railway 一键起 Chatwoot + Dify

Railway 把 docker-compose 服务图直接搬到云端,5 分钟从 GitHub 仓库部署起来。

Railway 30 分钟

为什么选 Railway#

  • GitHub-first:连仓库后自动推 → 自动部署
  • 服务图直观:每个容器是一个节点,依赖关系可视化
  • 自带数据库:Postgres / Redis 一键加,免配
  • 按用量计费:闲时几乎不花钱,比固定 VPS 灵活
  • 延迟低:US-East / EU-West / Asia 多区,海外用户体验好

不适合 Railway 的情况#

  • 月会话量 > 30k——按用量算反而比 VPS 贵
  • 需要 GPU 推理——Railway 暂无 GPU
  • 数据合规要求境内——Railway 没有中国大陆节点

部署步骤#

1. 连 Railway 与 GitHub#

注册 Railway → 「New Project → Deploy from GitHub repo」→ 选你 fork 的 chatwoot/chatwoot

2. 添加 Postgres + Redis#

控制台 → Add Service → Database → Postgres / Redis。Railway 自动注入 DATABASE_URLREDIS_URL 到所有服务的环境变量。

3. 配 Chatwoot 环境变量#

SECRET_KEY_BASE=<openssl rand -hex 64>
FRONTEND_URL=https://${{RAILWAY_PUBLIC_DOMAIN}}
RAILS_ENV=production
DEFAULT_LOCALE=zh_CN
MAILER_SENDER_EMAIL=support@your.com
SMTP_ADDRESS=smtp.postmarkapp.com
SMTP_USERNAME=...
SMTP_PASSWORD=...

Railway 的变量界面支持 ${{}} 引用其他服务,比手填 URL 方便。

4. 加 Sidekiq Worker 服务#

复制 Chatwoot 服务,改 Start Command 为 bundle exec sidekiq -C config/sidekiq.yml

5. 部署 Dify#

新建一个 Project,按 Dify 官方 docker/docker-compose.yaml 逐个服务添加:

  • dify-api
  • dify-worker
  • dify-web
  • dify-weaviate

每个服务从 Docker Hub 拉镜像即可,Railway 会自动按 compose 文件检测。

6. 自定义域名#

Settings → Domains → Custom Domain → 加 CNAME 到 Railway 域。免费 TLS。

月成本估算#

资源用量月费
Chatwoot 服务(512MB)24h 跑~$5
Sidekiq Worker(256MB)24h 跑~$3
Postgres(1GB 存储)~$5
Redis(256MB)~$3
Dify API + Worker + Web~$15
Weaviate~$5
总计~$36 / 月

加 5,000 月会话的 LLM tokens(DeepSeek)约 $10-30,总 $50-80

常见坑#

  • Sleep 模式:免费层 Hobby 会在闲置时休眠,第一次访问会有 10-30 秒冷启。商业用法务必升 Pro
  • 国内访问慢:经香港加节点或前置 Cloudflare
  • Volume 持久化:附件上传必须挂 Volume,否则重启就丢
  • Build 内存不足:Chatwoot Rails build 需要 ≥ 2GB,加 RAILWAY_DEDICATED_BUILDER=true

站内搜索

按 ⌘ K 随时唤起