---
title: "Deploy Typebot"
description: "Visual chatbot builder with viewer, Postgres, Redis, S3 and mail inbox"
category: "Bots"
url: https://railway.com/deploy/typebot-4
---

# Deploy Typebot

Visual chatbot builder with viewer, Postgres, Redis, S3 and mail inbox

**[Deploy Typebot on Railway](https://railway.com/template/typebot-4)**

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

- **Creator:** Agaz Self-Host
- **Category:** Bots

## Template content

### Viewer

- **Image:** baptistearno/typebot-viewer:3.19.1@sha256:1fba8b9a165c196af09c652e44feef01f6948204261d956cf7b545b2acd24425
- **Start command:** `/bin/sh -c 'export HOSTNAME="::" DISABLE_SIGNUP="${DISABLE_SIGNUP:-true}" SMTP_PORT="${SMTP_PORT:-1025}" SMTP_IGNORE_TLS="${SMTP_IGNORE_TLS:-true}" NEXT_PUBLIC_SMTP_FROM="${NEXT_PUBLIC_SMTP_FROM:-Typebot <noreply@typebot.local>}" S3_BUCKET="${S3_BUCKET:-typebot}" S3_PORT="${S3_PORT:-9000}" S3_SSL="${S3_SSL:-false}" S3_REGION="${S3_REGION:-us-east-1}"; exec ./viewer-entrypoint.sh'`
- **Health check:** /api/healthz
- **Public domain:** Yes

### Builder

- **Image:** baptistearno/typebot-builder:3.19.1@sha256:9b277e31c84773f49a07ef2d48c90dc83b01cabeaeef6eb1c43005264d194fdd
- **Start command:** `/bin/sh -c 'export HOSTNAME="::" DISABLE_SIGNUP="${DISABLE_SIGNUP:-true}" SMTP_PORT="${SMTP_PORT:-1025}" SMTP_IGNORE_TLS="${SMTP_IGNORE_TLS:-true}" NEXT_PUBLIC_SMTP_FROM="${NEXT_PUBLIC_SMTP_FROM:-Typebot <noreply@typebot.local>}" S3_BUCKET="${S3_BUCKET:-typebot}" S3_PORT="${S3_PORT:-9000}" S3_SSL="${S3_SSL:-false}" S3_REGION="${S3_REGION:-us-east-1}"; exec ./builder-entrypoint.sh'`
- **Health check:** /signin
- **Public domain:** Yes

### RustFS

- **Image:** rustfs/rustfs:1.0.5@sha256:b81d16a90ee25bd9511280127ca1471788c6e874cf0f0da759645f46b2dc1d74
- **Start command:** `/bin/sh -c 'echo bWtkaXIgLXAgL2RhdGEgL2xvZ3MKL3Vzci9iaW4vcnVzdGZzIC0tYWRkcmVzcyAiWzo6XTo5MDAwIiAvZGF0YSAmIFA9JCEKdHJhcCAna2lsbCAtVEVSTSAkUCcgVEVSTSBJTlQKQj0ke1RZUEVCT1RfQlVDS0VUOi10eXBlYm90fTsgQT0iJFJVU1RGU19BQ0NFU1NfS0VZOiRSVVNURlNfU0VDUkVUX0tFWSI7IFM9ImF3czphbXo6JHtSVVNURlNfUkVHSU9OOi11cy1lYXN0LTF9OnMzIjsgVT1odHRwOi8vMTI3LjAuMC4xOjkwMDAKZm9yIGkgaW4gJChzZXEgMSA5MCk7IGRvIGN1cmwgLWZzICRVL2hlYWx0aCA+L2Rldi9udWxsICYmIGJyZWFrOyBzbGVlcCAxOyBkb25lCmN1cmwgLXMgLW8gL2Rldi9udWxsIC0tYXdzLXNpZ3Y0ICIkUyIgLS11c2VyICIkQSIgLVggUFVUICIkVS8kQiIKcHJpbnRmICd7IlZlcnNpb24iOiIyMDEyLTEwLTE3IiwiU3RhdGVtZW50IjpbeyJTaWQiOiJQdWJsaWNSZWFkIiwiRWZmZWN0IjoiQWxsb3ciLCJQcmluY2lwYWwiOnsiQVdTIjpbIioiXX0sIkFjdGlvbiI6WyJzMzpHZXRPYmplY3QiXSwiUmVzb3VyY2UiOlsiYXJuOmF3czpzMzo6OiVzL3B1YmxpYy8qIl19XX0nICIkQiIgPiAvdG1wL3BvbGljeS5qc29uCmN1cmwgLWZzUyAtLWF3cy1zaWd2NCAiJFMiIC0tdXNlciAiJEEiIC1YIFBVVCAtVCAvdG1wL3BvbGljeS5qc29uICIkVS8kQj9wb2xpY3kiICYmIGVjaG8gIlt0eXBlYm90LWluaXRdIGJ1Y2tldCAkQiByZWFkeSwgcHVibGljIHJlYWQgb24gcHVibGljLyogb25seSIKd2FpdCAkUDsgd2FpdCAkUAo= | base64 -d > /tmp/start.sh && exec sh /tmp/start.sh'`
- **Health check:** /health
- **Public domain:** Yes

### Postgres https://devicons.railway.app/i/postgresql.svg

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

### Mailpit

- **Image:** axllent/mailpit:v1.33.1@sha256:aef2aacc11f075ec0fb6874275ee4a421e688e11a96ebb296134d1735c7761ce
- **Start command:** `/mailpit --listen [::]:8025 --smtp [::]:1025 --database /data/mailpit.db`
- **Health check:** /livez
- **Public domain:** Yes

### Redis https://cdn.sanity.io/images/sy1jschh/production/0ce0bfdcfbdbf69662b1116671f97c2dd788b655-157x157.svg

- **Image:** redis:8.2
- **Start command:** `/bin/sh -c "rm -rf $RAILWAY_VOLUME_MOUNT_PATH/lost+found/ && exec docker-entrypoint.sh redis-server --requirepass $REDIS_PASSWORD --save 60 1 --dir $RAILWAY_VOLUME_MOUNT_PATH"`

## Documentation

# Deploy and Host Typebot on Railway

Typebot is a source-available (fair source) chatbot builder. You design conversations in a visual flow editor with text, image and video bubbles, inputs, conditions, webhooks and AI blocks. Then you publish each bot as a standalone page, or embed it as a chat bubble or popup on any website.

## About Hosting Typebot

Typebot runs as two Next.js apps. The builder is the editor and dashboard; the viewer serves your published bots. Both use Postgres for bots and results, and Redis for rate limits and result exports. Both also need the same 32-character encryption key, and each needs the other's public URL. Sign-in works by e-mail code or OAuth only (there are no passwords), so an SMTP server is required. Uploaded images and file answers go to S3-compatible storage that serves `public/` files without login. This template wires all of that together: the two apps, Postgres, Redis, a Mailpit inbox for sign-in codes, and RustFS storage on a volume.

## Common Use Cases

* Lead capture and qualification forms that feel like a conversation
* Customer support and FAQ bots embedded on a website, with optional OpenAI or other AI blocks
* Quizzes, surveys and onboarding flows that send results to webhooks, Google Sheets or e-mail

## Dependencies for Typebot Hosting

* PostgreSQL (bots, users and results) and Redis (rate limits, background exports)
* An SMTP server for sign-in codes (Mailpit is included) and S3-compatible storage for uploads (RustFS is included)

### Deployment Dependencies

* Typebot source and releases: https://github.com/baptisteArno/typebot.io/releases/tag/v3.19.1
* Typebot self-hosting configuration: https://docs.typebot.io/self-hosting/configuration
* Mailpit: https://mailpit.axllent.org/docs/
* RustFS: https://github.com/rustfs/rustfs

### Implementation Details

**First sign-in.** Before you deploy, set `ADMIN_EMAIL` to your e-mail address. Then:

1. Open the **Builder** URL, enter that address and press **Submit**.
2. Open the **Mailpit** URL. The login is `MAILPIT_USERNAME` / `MAILPIT_PASSWORD`, from the Mailpit service's **Variables** tab.
3. Copy the 6-digit code from the "Sign in to Typebot" e-mail, or click its link.

The admin account gets the UNLIMITED plan. `DISABLE_SIGNUP` defaults to `true`, so other people can join only when you invite them from your workspace settings.

**Real e-mail.** Mailpit catches every e-mail Typebot sends and never delivers it. That includes sign-in codes, invitations and the Send Email block's default sender. To send real e-mail, set these variables on both the Builder and the Viewer: `SMTP_HOST`, `SMTP_PORT`, `SMTP_USERNAME`, `SMTP_PASSWORD`, `NEXT_PUBLIC_SMTP_FROM` (e.g. `'Typebot' `), and `SMTP_SECURE=true` for port 465. Set `SMTP_IGNORE_TLS=false` too. You can then delete the Mailpit service. Mailpit can also relay to a real server instead; see its docs.

**Defaults set in the start command.** These apply unless you add the variable yourself: `DISABLE_SIGNUP=true`, `SMTP_PORT=1025`, `SMTP_IGNORE_TLS=true`, `NEXT_PUBLIC_SMTP_FROM='Typebot '`, `S3_BUCKET=typebot`, `S3_PORT=9000`, `S3_SSL=false`, `S3_REGION=us-east-1`. Any other option from the configuration docs, such as Google or GitHub sign-in, OpenAI or WhatsApp, can be added as a variable on both apps.

**Storage.** On first start, RustFS creates the `typebot` bucket. Anyone can read files under `public/`, and nothing else in the bucket is public. Uploads go through the viewer's signed upload URL, so no CORS setup is needed. To use AWS S3, R2 or another provider instead, point the `S3_*` variables of both apps at it.

**Custom domains.** After adding your own domains, update `NEXTAUTH_URL` and `NEXT_PUBLIC_VIEWER_URL` on both apps.

Typebot is licensed under the Functional Source License (FSL 1.1, Apache 2.0 future license). Self-hosting for your own use is allowed; read the license before offering it as a competing service.

## Why Deploy Typebot 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 Typebot 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

- [Telegram JavaScript Bot](https://railway.com/deploy/5lRkWa) — A template for Telegram bot in JavaScript using grammY
- [Cobalt Tools [Updated Oct ’26]](https://railway.com/deploy/cobalt) — Cobalt Tools [Oct ’26] (Media Downloader, Converter & Automation) Self Host
- [Telegram Gateway](https://railway.com/deploy/railway-telegram-gateway) — Multi-bot Telegram webhook gateway with WebSocket event streaming

Open this page in a browser: https://railway.com/deploy/typebot-4
