---
title: "Deploy Modbot"
description: "The open moderation & analytics engine for VRChat & Discord."
category: "Analytics"
url: https://railway.com/deploy/modbot
---

# Deploy Modbot

The open moderation & analytics engine for VRChat & Discord.

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

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/modbot/manifest.json

- **Creator:** bin
- **Category:** Analytics

## Template content

### Seq https://datalust.co/assets/favicon-1.png

- **Image:** datalust/seq:latest
- **Health check:** /health
- **Public domain:** Yes

### modbot-database https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

### Modbot https://github.com/Modbot/Modbot/blob/master/src/Modbot.Landing/Web/public/icon-512.png?raw=true

- **Image:** ghcr.io/modbot/modbot:latest
- **Health check:** /health/ready
- **Public domain:** Yes

## Buckets

- **modbot-files**

## Documentation

# Deploy and Host Modbot on Railway

Modbot is self-hosted moderation for VRChat groups. It keeps ban case files and a
searchable audit log, watches live instances as they fill, syncs bans and roles with
Discord, and feeds a companion app that puts your group's roster and moderation
actions in front of you without leaving VRChat.

## About Hosting Modbot

Modbot runs as one container plus one PostgreSQL database. The image carries the API,
the web app, the Discord bot and the sync scheduler together, so there is nothing else
to wire up. `DATABASE_URL` is the only variable you must set; almost everything else is
configured in the web app and stored in the database. Point the health check at
`/health/ready`, generate a public domain, and opening it lands you in a setup wizard
that connects your VRChat account and group. Keep the service at one replica: Modbot
holds a single VRChat session and paces its own requests against one rate limit, so a
second copy would double them.

## Common Use Cases

- **Run a group's moderation off one record.** Ban case files with evidence, notes on a
  person, and an audit log of who did what and when, instead of a Discord thread nobody
  can search a year later.
- **See an instance while it is happening.** Watch who is in a public instance as it
  fills, get told when someone you have flagged arrives, and kick or ban them from the
  overlay without taking the headset off.
- **Keep Discord and VRChat in step.** Sync bans and roles between the two, so somebody
  removed in one place does not walk back in through the other.

## Dependencies for Modbot Hosting

- **PostgreSQL.** Required. Modbot refuses to start without `DATABASE_URL`.
- **A VRChat account with moderator rights in the group.** Connected in the setup
  wizard, not an environment variable.
- **A Discord bot token.** Optional, and only for the Discord features.
- **An S3-compatible bucket.** Optional, for storing evidence files.

## Why Deploy Modbot 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 Modbot 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.

## Similar templates

- [Typesense vs Meilisearch](https://railway.com/deploy/typesense-vs-meilisearch) — self-hosted Typesense vs Meilisearch
- [Betterlytics](https://railway.com/deploy/betterlytics) — Betterlytics is a cookieless analytics platform GDPR-compliant.
- [Finance Tracker](https://railway.com/deploy/finance-tracker-1) — Private multi-user household finance ledger with budgets and CSV import.

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