---
title: "Deploy chatto"
description: "Deploy and Host chatto with Railway"
category: "Other"
url: https://railway.com/deploy/chatto
---

# Deploy chatto

Deploy and Host chatto with Railway

**[Deploy chatto on Railway](https://railway.com/template/chatto)**

- **Creator:** SuperSlowSloth
- **Category:** Other
- **Total deploys:** 2

## Template content

### chatto

- **Image:** ghcr.io/bon5co/chatto:latest
- **Health check:** /healthz
- **Public domain:** Yes

## Documentation

# 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](https://github.com/chattocorp/chatto) — upstream project by chattocorp (AGPL-3.0)
- [Chatto documentation](https://docs.chatto.run/) — configuration and operations guides
- [bon5co/chatto](https://github.com/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):

```bash
/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.


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — [Jul'26] Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/chatto
