Railway

Deploy chatto

Deploy and Host chatto with Railway

Deploy chatto

Just deployed

/data

Deploy and Host Chatto on Railway

Chatto is a fast, fully-featured team chat app (an open-source Slack/Discord alternative) for teams and communities that want to own their conversations. It ships as a single Go binary with embedded NATS/JetStream storage — no external database, no message broker — with encryption at rest, roles and permissions, forums and feeds, and GraphQL + NATS APIs.

About Hosting Chatto

This template runs Chatto as one service with one volume — that's the whole stack. The embedded NATS/JetStream store keeps messages, users, and uploads on the attached volume at /data, and the four required signing/encryption secrets are auto-generated on first boot and persisted there too, so everything survives redeploys with zero configuration. The image honors Railway's injected PORT, derives its public URL from your Railway domain, and answers healthchecks on /healthz. Add SMTP credentials when you want email/password registration and password resets, or create the first account from the service shell with /chatto operator user create. One-command portable backups (chatto backup) let you move your instance anywhere, including Chatto Cloud.

Why Deploy Chatto on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Chatto on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

  • No database, no broker — unlike Rocket.Chat or Mattermost, Chatto needs zero companion services: one service, one volume, done.
  • Own your conversations — encryption at rest with crypto shredding, no tracking, GDPR-ready.
  • Zero-variable deploy — secrets auto-generate and persist; domain, port, healthcheck, and storage are preconfigured.
  • Rooms that fit your team — free-form chat, forums, and social feeds with an extensive roles and permissions system.

Common Use Cases

  • Team chat you control — replace Slack for a startup, agency, or internal team without per-seat fees or data leaving your infrastructure.
  • Community hub — run a private Discord-style space for an open-source project, game community, or club.
  • Compliance-sensitive messaging — keep regulated or confidential discussions on infrastructure you own, with encryption at rest.

Dependencies for Chatto Hosting

  • A volume mounted at /data (included in this template) — holds all messages, users, uploads, and the auto-generated secrets. The volume is your instance; back it up with chatto backup.
  • Optional: SMTP credentials (CHATTO_SMTP_* variables) to enable email/password registration, verification, and password reset.

Deployment Dependencies

  • Chatto — upstream project by chattocorp (AGPL-3.0)
  • Chatto documentation — configuration and operations guides
  • bon5co/chatto — the Railway-tuned image this template deploys (bakes env defaults, honors PORT, persists auto-generated secrets)

Implementation Details

Create the first account without SMTP (service shell):

/chatto operator user create --login admin --password  --verified-email you@example.com

Voice/video calls are off by default — Railway's proxy is HTTP/TCP-only and WebRTC media needs public UDP. To enable calls, point the CHATTO_LIVEKIT_URL / CHATTO_LIVEKIT_API_KEY / CHATTO_LIVEKIT_API_SECRET variables at a LiveKit server (e.g. LiveKit Cloud) and set CHATTO_LIVEKIT_ENABLED=true.

Every baked default can be overridden by setting the corresponding CHATTO_* environment variable on the service.


Template Content

More templates in this category

View Template
Rocky Linux
[Jul'26] Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
25
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51