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_URL 和 REDIS_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-apidify-workerdify-webdify-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