---
title: "Deploy Typebot"
description: "Self-hosted Typebot: visual chatbot and form builder. Landbot alternative."
category: "Automation"
url: https://railway.com/deploy/typebot-self-hosted
---

# Deploy Typebot

Self-hosted Typebot: visual chatbot and form builder. Landbot alternative.

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

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

- **Creator:** blueorange
- **Category:** Automation

## Template content

### Viewer https://raw.githubusercontent.com/baptisteArno/typebot.io/b0d1b113259c4e820f0b5e45d3b2d45df5776513/apps/docs/static/img/logo.svg

- **Image:** baptistearno/typebot-viewer:latest
- **Health check:** /
- **Public domain:** Yes

### Console https://res.cloudinary.com/h5kvzw/image/upload/v1706062979/MINIO_Bird_vbtpet.png

- **Source:** railwayapp-templates/minio-console
- **Start command:** `/bin/sh -c "exec console server --host 0.0.0.0 --port $PORT"`
- **Health check:** /login
- **Public domain:** Yes

### MinIO https://res.cloudinary.com/h5kvzw/image/upload/v1706062979/MINIO_Bird_vbtpet.png

- **Source:** railwayapp-templates/minio
- **Start command:** `/bin/sh -c "exec minio server --address [::]:$PORT $RAILWAY_VOLUME_MOUNT_PATH"`
- **Health check:** /minio/health/ready
- **Public domain:** Yes

### Builder https://raw.githubusercontent.com/baptisteArno/typebot.io/b0d1b113259c4e820f0b5e45d3b2d45df5776513/apps/docs/static/img/logo.svg

- **Image:** baptistearno/typebot-builder:latest
- **Health check:** /signin
- **Public domain:** Yes

### MinIO Bucket Creator https://res.cloudinary.com/h5kvzw/image/upload/v1706062979/MINIO_Bird_vbtpet.png

- **Image:** minio/mc:RELEASE.2025-04-16T18-13-26Z
- **Start command:** `/bin/sh -c "sleep 10 && /usr/bin/mc config host add minio ${MINIO_ENDPOINT} ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD} && /usr/bin/mc mb minio/${MINIO_BUCKET} && /usr/bin/mc anonymous set public minio/${MINIO_BUCKET}/public && exit 0"`

### Valkey https://res.cloudinary.com/h5kvzw/image/upload/v1713278076/Valkey-logo_yrnlsx.svg

- **Image:** valkey/valkey:latest
- **Start command:** `/bin/sh -c "exec docker-entrypoint.sh valkey-server --port ${VALKEY_PORT} --requirepass ${VALKEY_PASSWORD}"`

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

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

## Documentation

# Deploy and Host Typebot on Railway

![Typebot — build advanced chatbots visually](https://raw.githubusercontent.com/baptisteArno/typebot.io/main/.github/images/banner.png)

Typebot is a visual chatbot builder with **10,500+ GitHub stars**: drag-and-drop conversational flows for lead capture, support and quizzes, embeddable on any website or connected to WhatsApp. Typebot Cloud's Starter plan is $39/month for 2,000 chats — self-host Typebot on Railway for ~$10–20/month with unlimited chats and bots on your own infrastructure.

---

## What This Template Deploys

| Service | Purpose |
|---|---|
| **Builder** | Typebot editor where you design bots (port 3000, public HTTPS domain, `/signin` health check). |
| **Viewer** | Serves the published bots your visitors chat with (separate public domain). |
| **Postgres** | PostgreSQL 16 storing workspaces, bots and results. |
| **Valkey** | Redis-compatible cache used by builder and viewer. |
| **MinIO** | S3-compatible storage for file uploads, images and videos in bots. |
| **Console** | MinIO admin console. |
| **MinIO Bucket Creator** | One-off job that creates the `typebot` bucket with public read for uploads. |
| **Persistent Volumes** | Postgres data, Valkey data and MinIO files survive redeploys. |

Seven services wired together through Railway variable references; the encryption secret is generated once and shared by builder and viewer.

---

## About Hosting Typebot

Self-hosting Typebot means two Next.js apps, a database, Redis, S3 storage with a public bucket, a shared encryption secret and a way for users to sign in. Done by hand, that's a long Docker Compose file and an S3 setup.

On Railway, all of it starts together: the builder and viewer know each other's URLs, MinIO and its bucket are created automatically, and `ENCRYPTION_SECRET` and database passwords are generated at deploy time.

**Set up sign-in before your first login.** Typebot signs users in by email link (SMTP) or OAuth. SMTP is empty in this template, and Railway blocks outbound SMTP on the Hobby plan — so add GitHub or Google OAuth credentials, or SMTP on Railway Pro, and set `ADMIN_EMAIL` to your address for an unlimited workspace. Typebot is source-available under the Functional Source License, not OSI open source.

Typical cost: **~$10–20/month** on Railway for the seven-service stack. Typebot Cloud is $39/month for 2,000 chats and $89 for 10,000.

---

## Deploy Typebot in Under 10 Minutes

1. Click **Deploy on Railway** — all seven services start and the bucket is created (~3–5 minutes).
2. On **Builder**, add `GITHUB_CLIENT_ID`/`GITHUB_CLIENT_SECRET` (or Google OAuth, or SMTP on Railway Pro).
3. Set `ADMIN_EMAIL` on Builder to your email so your workspace gets the unlimited plan, then redeploy.
4. Open the Builder URL, sign in and create your first bot.
5. Publish it and embed the Viewer link or script on your site; set `DISABLE_SIGNUP` to `true` to stop strangers registering.

No Docker Compose. No S3 account. No per-chat billing.

---

## Common Use Cases

- **Self-hosted Landbot alternative** — "open source chatbot builder" without chat limits
- **Lead capture** — conversational forms that convert better than static forms
- **Customer support bots** — answer FAQs and hand off to humans
- **WhatsApp flows** — connect bots to WhatsApp Business
- **AI chatbots** — call OpenAI or other models inside a flow
- **Pairs with n8n** — send results to your automations through webhooks

---

## Configuration

| Variable | Required | Description |
|---|---|---|
| `ADMIN_EMAIL` | ✅ Set this | Email that gets the UNLIMITED plan. Defaults to the empty SMTP username. |
| `GITHUB_CLIENT_ID` / `GOOGLE_AUTH_CLIENT_ID` (+ secrets) | ✅ One sign-in method | OAuth sign-in. Needed on Railway Hobby, where SMTP is blocked. |
| `SMTP_HOST`, `SMTP_USERNAME`, `SMTP_PASSWORD` | Optional | Email sign-in and notifications. Requires Railway Pro. |
| `ENCRYPTION_SECRET` | 🔐 Auto-generated | Encrypts credentials; shared with Viewer. Never change it. |
| `DISABLE_SIGNUP` | Optional | `false` by default — set `true` after your team signs up. |
| `NEXTAUTH_URL`, `NEXT_PUBLIC_VIEWER_URL` | ✅ Auto-injected | Public URLs of Builder and Viewer. |
| `S3_*`, `REDIS_URL`, `DATABASE_URL` | ✅ Auto-injected | MinIO, Valkey and Postgres connections. |

**No sign-in method means no login.** With SMTP empty and no OAuth configured, the sign-in page has nothing to send — add OAuth or SMTP first.

---

## Typebot vs. Alternatives

| | Typebot on Railway | Typebot Cloud | Landbot | Botpress |
|---|---|---|---|---|
| **Monthly cost** | ~$10–20 usage | $39 (2,000 chats), $89 (10,000) | Paid plans by chat volume | Free tier, paid plans |
| **Self-hosted** | ✅ Yes | ❌ No | ❌ No | ⚠️ Older versions |
| **Chat limits** | ✅ None | ❌ Per plan | ❌ Per plan | ❌ Per plan |
| **Visual flow builder** | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
| **Data stays on your infra** | ✅ Yes | ❌ No | ❌ No | ⚠️ Self-host only |
| **License** | ⚠️ FSL-1.1 (source-available) | ⚠️ FSL-1.1 | ❌ Proprietary | ✅ MIT |

---

## Dependencies for Typebot Hosting

- Railway account — plan for ~1–1.5 GB RAM across seven services; Pro if you want email sign-in.
- GitHub or Google OAuth app credentials (or an SMTP provider on Railway Pro).

### Deployment Dependencies

- [Typebot GitHub](https://github.com/baptisteArno/typebot.io) — source and releases
- [Typebot Self-Hosting Docs](https://docs.typebot.com/self-hosting/configuration) — configuration
- [MinIO](https://min.io/) — S3-compatible storage
- [Railway Volumes Documentation](https://docs.railway.com/volumes) — persistence

### Implementation Details

Builder and Viewer run the official `baptistearno/typebot-builder` and `typebot-viewer` images against Postgres 16, Valkey for caching and MinIO for uploads. A short-lived MinIO client job creates the `typebot` bucket and makes its `public/` folder readable so bots can show uploaded media.

`ENCRYPTION_SECRET` is generated on Builder and referenced by Viewer — keep it fixed. Both apps reference each other's public domains, so update `NEXTAUTH_URL` and `NEXT_PUBLIC_VIEWER_URL` together if you add custom domains.

---

## Frequently Asked Questions

**What is Typebot and why self-host it?**
Typebot is a visual builder for chatbots and conversational forms. Self-hosting removes per-chat pricing and keeps every conversation in your own database.

**How much does it cost compared to Typebot Cloud?**
About $10–20/month on Railway with no chat limits. Typebot Cloud is $39/month for 2,000 chats and $89/month for 10,000.

**Why can't I sign in to my self-hosted Typebot?**
Typebot needs either SMTP (email link) or OAuth. Railway blocks SMTP on Hobby, so add GitHub or Google OAuth variables on Builder, or use SMTP on Railway Pro, then redeploy.

**Do I lose bots or uploads when I redeploy?**
No. Bots and results are in Postgres, and uploaded files are in MinIO, both on persistent volumes.

**Can I connect Typebot to WhatsApp or OpenAI?**
Yes. Typebot has blocks for OpenAI and other AI providers, webhooks for any API, and a WhatsApp integration.

**Is Typebot open source?**
It's source-available under the Functional Source License (FSL-1.1): free to self-host and modify for your own use, and each release converts to Apache-2.0 after two years. Offering a competing hosted Typebot service isn't allowed.

---

## Why Deploy and Host 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 get a full chatbot builder — editor, viewer, database, cache and file storage — with unlimited chats for a flat usage cost.


## Similar templates

- [N8N Main + Worker](https://railway.com/deploy/n8n-main-worker) — Deploy and Host N8N with Inactive worker.
- [Evolution API with n8n](https://railway.com/deploy/evolution-api-with-n8n) — Automate WhatsApp workflows with Evolution API, n8n, and Postgres.
- [Postgres Backup](https://railway.com/deploy/postgres-s3-backups) — Cron-based PostgreSQL backup to bucket storage

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