Deploy DISBot
DISBot is a self-hosted Bot that automates Patreon content distribution.
Just deployed
Deploy and Host DISBot on Railway
DISBot is an open-source, self-hosted Discord bot that automates content distribution from Patreon to Discord. It utilizes a smart "Waterfall Release" and "Hybrid Broadcast" system to seamlessly route tiered Patreon posts, member updates, and serialized content directly to designated Discord channels without spamming users or requiring manual intervention.
About Hosting DISBot
Deploying DISBot requires a platform capable of running Node.js (v20+) and receiving external HTTPS webhooks directly from Patreon. Hosting on Railway is the recommended solution because it provides dedicated IPs, preventing the severe Discord API rate-limiting and Cloudflare blocks (Error 1015) common on shared-IP platforms like Render's free tier. When you connect your repository, Railway automatically detects the project's railway.json file to instantly handle build and start commands. Furthermore, Railway dynamically assigns ports and provisions a free SSL domain out-of-the-box, ensuring Patreon's webhooks can securely reach your bot's early port-binding Express server 24/7.
Common Use Cases
- Automating Multi-Tiered Content Delivery: Using the Waterfall Release strategy to gracefully grant lower Patreon tiers access to older posts without manual Discord announcements.
- Community Management & Member Tracking: Automatically sending welcome messages, tracking tier upgrades, delivering "win-back" DMs to departing patrons, and celebrating pledge anniversaries.
- Serialized Content Formatting: Translating serialized stories from Patreon into spoiler-tagged, neatly embedded Discord alerts with automatic discussion threads.
Dependencies for DISBot Hosting
- Discord Application: Requires a bot token and the "Server Members Intent" enabled in the Discord Developer Portal.
- Patreon OAuth App: Requires a Patreon Creator account and an OAuth application to generate access tokens and receive webhooks.
- Supabase Account: Requires a Supabase database and
service_rolekey for robust persistent data storage and Row-Level Security.
Deployment Dependencies
- Railway Dashboard - For deployment, ideally linked to your GitHub account for auto-deployments on push.
- Environment Variables: Must configure standard variables (
DISCORD_TOKEN,PATREON_ACCESS_TOKEN,SUPABASE_URL) alongside theTIER_CONFIGJSON array and a secureWEBHOOK_SECRET.
Implementation Details
When deploying on Railway, do not manually set the PORT or WEBHOOK_PORT environment variables; Railway handles port assignment dynamically via its own PORT variable, and DISBot's server will auto-detect it.
Once your Railway service is live, you must complete the webhook connection:
- Go to your Railway Project Settings -> Networking and click Generate Domain to get your public URL.
- Go to the Patreon Webhooks portal and register your URL as
https://your-app.up.railway.app/webhooks/patreon. - Select all 9 event triggers (such as
members:create,posts:publish,posts:update, etc.) and ensure the Patreon secret exactly matches your.envWEBHOOK_SECRET.
Why Deploy DISBot 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 DISBot 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.
Template Content

