Skip to content
BotServBotServ
TypebotChatbot BuilderNo-CodeSelf-HostingOpen SourceChatbot

Typebot self-hosted: No-Code Chatbot Builder

Self-host Typebot: open-source chatbot builder with drag-and-drop. Build chat flows, integrate Ollama, embed on websites, automate conversations.

S

schutzgeist

4 min read
Typebot self-hosted: No-Code Chatbot Builder

Typebot Self-Hosted: No-Code Chatbot Builder

What this article covers

  • What Typebot is: an open-source chatbot builder with drag-and-drop conversation flows.
  • Docker setup (Typebot requires two services: Builder and Viewer).
  • Building chat flows: blocks, conditions, variables, and jumps.
  • Connecting Ollama for AI responses in your no-code flow.
  • Website embedding and comparison to custom-built bots.

Introduction

Typebot is the best open-source alternative to Landbot or Tidio: a visual chatbot builder where you construct conversation flows by dragging and dropping text blocks, buttons, inputs, conditions, and integrations. No code needed to define your flow logic.

For AI self-hosters, the real appeal is this: Typebot can execute HTTP requests, letting you call Ollama directly from your flow and build a fully local, no-code AI chatbot for your website.

Common use cases

  • Website support bot: FAQ content plus an AI fallback for open-ended questions, all without writing code.
  • Lead qualification: flows that ask budget and timeline questions, AI scores responses, and routes hot leads to your CRM.
  • Onboarding assistant: guide new users through setup steps in a conversational format.
  • Feedback collection: structured surveys delivered as chat dialogs.
  • Internal FAQ bot: answer employee questions using RAG over your knowledge base.

Installation: Docker

Typebot needs two services: the Builder (the flow editor) and the Viewer (the public bot runtime), plus PostgreSQL and optionally MinIO for file storage:

services:
  typebot-builder:
    image: baptistearno/typebot-builder:latest
    ports: ["127.0.0.1:3000:3000"]
    environment:
      - DATABASE_URL=postgresql://typebot:geheim@db:5432/typebot
      - NEXTAUTH_URL=https://builder.deine-domain.de
      - NEXT_PUBLIC_VIEWER_URL=https://bot.deine-domain.de
      - ENCRYPTION_SECRET=zufaellig-32-chars
      - SMTP_HOST=smtp.dein-server.de
      - SMTP_PORT=587
      - SMTP_USERNAME=bot@deine-domain.de
      - SMTP_PASSWORD=...
      - NEXT_PUBLIC_SMTP_FROM=bot@deine-domain.de
      - S3_ENDPOINT=minio
      - S3_BUCKET=typebot
      - S3_ACCESS_KEY=minioadmin
      - S3_SECRET_KEY=minio-geheim
    depends_on: [db]
    restart: always

  typebot-viewer:
    image: baptistearno/typebot-viewer:latest
    ports: ["127.0.0.1:3001:3000"]
    environment:
      - DATABASE_URL=postgresql://typebot:geheim@db:5432/typebot
      - NEXT_PUBLIC_VIEWER_URL=https://bot.deine-domain.de
      - ENCRYPTION_SECRET=zufaellig-32-chars
    depends_on: [db]
    restart: always

  db:
    image: postgres:16
    environment:
      POSTGRES_USER: typebot
      POSTGRES_PASSWORD: geheim
      POSTGRES_DB: typebot
    volumes: [pg_data:/var/lib/postgresql/data]
    restart: always

volumes:
  pg_data:

Building flows: the building blocks

  • Bubbles: text, images, videos, anything your bot displays.
  • Inputs: text fields, email, buttons, file uploads, numbers; what users enter.
  • Logic: conditionals (if/else), variable assignment, jumps, A/B tests.
  • Integrations: HTTP requests, Google Sheets, OpenAI blocks (which you can point to Ollama), webhooks.

Ollama in your flow: AI without code

Typebot includes an HTTP Request block that lets you call Ollama:

Block: HTTP Request
  Method: POST
  URL: http://ollama:11434/api/chat
  Body:
    {
      "model": "llama3.1:8b",
      "messages": [
        {"role": "system", "content": "Du bist ein freundlicher FAQ-Bot. Kurze Antworten."},
        {"role": "user", "content": "{{user_input}}"}
      ],
      "stream": false
    }
  → Store response in variable {{ki_antwort}} (message.content)

Then add a text bubble block with {{ki_antwort}} and you have a working AI chatbot with zero code.

Using Typebot’s OpenAI block with Ollama

Typebot has a native OpenAI block. Since Ollama is compatible with OpenAI’s API, simply configure the base URL as http://ollama:11434/v1 instead of api.openai.com and select a local model. It works out of the box.

Website embedding

The Viewer generates a snippet you paste into your site:

<script type="module">
  import Typebot from 'https://bot.deine-domain.de/js/web.js'
  Typebot.initBubble({
    typebot: "mein-faq-bot",
    apiHost: "https://bot.deine-domain.de",
  });
</script>

Options include a bubble (chat icon in the corner), popup, standard embed (inline in your content), or full-page mode.

Advanced patterns

RAG in your no-code flow

User input → HTTP block: generate embedding (Ollama /api/embeddings)
    → HTTP block: search Qdrant with that embedding
    → HTTP block: call Ollama chat with top results in system prompt
    → answer bubble

All Typebot blocks, no custom code, but a real RAG pipeline.

Lead scoring

Buttons for budget and timeline → variables → condition: score > threshold → HTTP block posts lead to Twenty CRM or n8n webhook.

Fallback to human

Condition “AI uncertain” → hand off to Chatwoot for a human agent or send an email notification.

Security

  • Separate URLs: host the Builder (admin only) and Viewer (public) on different domains. Never expose the Builder publicly.
  • HTTPS: your Viewer must use TLS (required for website embedding).
  • SMTP: needed for login magic links; use your own mail server.
  • Rate limiting: the Viewer is public, so implement abuse protection.

Typebot vs. custom-built bots

AspectTypebotCustom-built
Effortdrag-and-drop, no codefull control, more development
AI integrationHTTP block or OpenAI block → Ollamadirect API calls
Flexibilitylimited by flow logicunlimited
Best forwebsite FAQ, lead qualification, no-codecomplex agents, custom logic

Further reading

Key takeaways:

  • Typebot is an open-source chatbot builder with drag-and-drop flows and no code required.
  • Use the HTTP Request block or OpenAI block (pointed at your Ollama instance) to add AI to your flow.
  • Two services required: Builder (admin) and Viewer (public).
  • Killer use case: website FAQ bot powered by local AI, zero lines of code.
  • For complex agent logic, custom code is more powerful; Typebot is your no-code entry point.

FAQ

Can Typebot handle AI responses?

Yes, via the HTTP Request block (call Ollama directly) or the OpenAI block (Ollama is API-compatible, just point the base URL to your server). This lets you build an AI chatbot without any coding.

Why two services?

The Builder (flow editor, admin) and Viewer (public bot runtime) are separate for security and performance reasons. The Viewer can be public; the Builder should never be.

How do I get the bot on my website?

The Viewer generates a JavaScript snippet you can embed as a bubble (chat icon), popup, inline embed, or full page. Copy and paste into your site, done.

Typebot or build it myself?

Use Typebot for standard flows (FAQ, lead qualification, surveys); it’s faster and requires no maintenance. Build custom for complex agents, special logic, or multi-step reasoning.

Where are chat messages stored?

In your own PostgreSQL database, on-premise. No data goes to third parties. GDPR-friendly, but you still need to secure the collected user data (authentication, HTTPS).

Is it free?

Yes: open source (AGPL). There is a cloud-hosted version with managed hosting, but self-hosting is completely free.

Sources and further reading

Back to Blog
Share:

Related Posts