Pular para o conteúdo
← Back to Skalablog

Published article

How to Self-Host Typebot on a Cheap VPS

Self-host Typebot — open source since 2021 — on any VPS with Docker Compose, Traefik and a free Let's Encrypt certificate (free since 2015), then build no-code chat flows in minutes. See how.

What Is Typebot and Who Builds It?

Typebot is an open-source, no-code chatbot builder created and maintained primarily by French developer Baptiste Arnaud, and you can self-host it free of charge on your own infrastructure. You build conversation flows by dragging blocks in a visual editor built with TypeScript, then publish them as links, embedded bubbles or iframes. The project funds itself through an optional managed cloud offering, while the self-hosted edition carries no usage limits and no watermark.

The license deserves attention. It permits free use for any purpose except launching a competing product built on top of it, a fact that surprised the video's author enough to check it twice. Arnaud sustains the project through the paid cloud and donations, so the reasonable courtesy is to support the project financially if it becomes part of your business. The canonical entry points are the Typebot website, the official documentation and the source repository.

Builder, Viewer and Storage: How the Architecture Fits Together

A self-hosted Typebot deployment is not a single application: it runs a builder, a viewer, and a storage service side by side. The builder is where you design your bots, the viewer is what your visitors interact with, and storage keeps your data and uploaded files. Understanding how these pieces fit together explains every configuration choice you will make later.

### The Three Components

  • Typebot Builder is the visual editor where creators assemble flows, variables and conditional logic. It is what you log into and what needs your authentication provider configured.
  • Typebot Viewer is what end users interact with. It renders published bots and collects answers, so it faces the public internet.
  • Storage (S3-compatible) holds assets such as images, audio and video. It is optional to start, but templates that embed media will fail until you configure an S3 endpoint, whether on AWS or a local S3-compatible container.
  • PostgreSQL stores accounts, flows and results. Typebot expects a database URL in its environment configuration by default.

Treating Builder and Viewer as two distinct microservices matters operationally, because each needs its own public route even though both live in one Docker Compose file.

How Do You Deploy Typebot With Docker Compose and Traefik?

The deployment path shown in the video uses a VPS, Docker and Traefik as the reverse proxy. Docker supplies the container runtime, while Traefik handles two jobs at once: routing requests to Builder or Viewer and requesting Let's Encrypt certificates automatically. The author used a Hostinger VPS (hostinger.com), but any Linux server with SSH access works.

The setup follows a repeatable sequence:

### Deployment Steps

  1. Provision a VPS and connect over SSH. Install Docker and Docker Compose with a script or your distro's packages.
  2. Upload your project directory containing docker-compose.yml, a .env file with the database URL, encryption key, admin email, and Traefik's dynamic configuration.
  3. Configure Traefik so port 80 redirects to 443, and expose Builder on port 8081 and Viewer on port 8082, each with its own Let's Encrypt certificate, forwarding to internal ports (3000 inside the containers).
  4. Run docker compose up and watch the logs. The Builder runs its database migrations on first start; missing environment variables, such as an unconfigured Google OAuth string, appear as warnings here.
  5. Open your server's domain on port 8081 to reach the Builder.

One trick from the video solves a real problem: with a single domain and no subdomains available, both services must share a hostname. Because login redirects append paths like /typesets that could belong to either service, the author separated Builder and Viewer by port (8081 and 8082) so redirects never collide. Traefik happily issues certificates on non-standard ports, which the author admitted discovering through experimentation. Note that the video itself recommends Docker Swarm or Kubernetes for production rather than plain Compose, and the author reports running his own instance, which has served over 10,000 students, on a Kubernetes cluster.

How Do You Configure Google OAuth for Typebot?

Typebot's self-hosted edition has no built-in email-and-password login, so you must configure at least one OAuth provider, such as Google, GitHub or GitLab. Google is the simplest option and takes about five minutes.

In the Google Cloud Console, create a project, then create OAuth credentials of type 'Web application'. The redirect URI must point at the Builder, not the Viewer, following the documented callback pattern on your domain, for example port 8081 with the /api/auth/callback/google path. Copy the resulting client ID and client secret into the .env file, restart the stack, and the 'Continue with Google' button appears on the login screen. Set the admin email environment variable so your account receives the unlimited self-hosted plan automatically; no API key is required. Keep the client secret out of version control, since anyone holding it can consume your Google quota.

What Can You Build With the No-Code Editor?

The Builder is a drag-and-drop canvas where each block links to the next, and the video demonstrates the full loop in a few minutes. A typical flow starts with a text bubble, collects an email input saved into a variable, then branches on a button group asking for a favorite programming language. Conditional blocks compare variables (one early test failed simply because the operator was left empty), redirect to other flows, or emit media.

Three real use cases show the range. The author uses Typebot for student onboarding at his academy, with a resume feature that hides the bot for 24 hours if a student abandons it halfway and continues where they left off. A sales decision tree splits into multiple linked Typebots as flows grow large, redirecting respondents between separate bot groups. And a barbecue invitation bot asks conditionally about dietary restrictions and drinks, skipping the beer question for anyone who says they do not drink alcohol.

Publishing generates a public URL on the Viewer port, but you can also embed the bot as a bubble using a generated JavaScript snippet on any HTML page or a site builder. Results accumulate per response with partial saves, and a built-in analytics view shows response rates per question. Settings let you disable typing-emulation delays, restrict the bot to your own domain, and restyle themes and colors with no watermark anywhere.

Frequently Asked Questions

  • Is self-hosted Typebot really free? Yes. The self-hosted edition has no usage limits, no watermark and no paid key, and the license allows free use for any purpose except creating a competing product. Supporting the author through the cloud plan or donations is encouraged if the tool powers a business.
  • Can Typebot run without an S3 bucket? The Builder and Viewer run without one, but templates that embed images, audio or video require an S3 endpoint. You can point it at AWS or run an S3-compatible storage container in the same Docker Compose stack.
  • Is Docker Compose good enough for production? The video's author uses it for demonstrations but recommends Docker Swarm or Kubernetes for production, since they add service management, error handling and notifications. His own high-traffic onboarding bot runs on Kubernetes.
  • Does the bot work on WhatsApp? Published flows are delivered as URLs or embeddable scripts by default; placing them into WhatsApp or a web page is an integration step on top of the published bot rather than a built-in channel in the basic self-hosted setup shown here.
  • Why expose Builder and Viewer on different ports? With a single domain and no subdomains, login redirects could land on either service. Distinct ports (8081 for Builder, 8082 for Viewer in the video) keep the routing unambiguous, and Traefik issues separate Let's Encrypt certificates for each.

Turn Your Own Walkthroughs Into Written Guides

A 33-minute video like this one contains a complete deployment recipe, a licensing insight and three production war stories, but only people who press play ever see them. If you have similar knowledge sitting in your own videos, whether it is a setup guide, a tutorial or an architecture explanation, Skala Blog turns it into a structured written article. Paste the YouTube URL, let it transcribe the talk, and review a draft that keeps your steps and your evidence intact for readers who prefer to search rather than watch.

The same reasoning that makes self-hosting Typebot attractive, owning your content on infrastructure you control, applies to documentation. A searchable article on your own site serves your audience longer than a video buried in a channel feed, and Skala Blog gets you there from footage you already recorded.

Source video