shouldiselfhost?they tell you if you can — we tell you if you should
THE DECISION LAYER FOR SELF-HOSTING100 APPS UNDER COVERAGEPROTOCOL v1NO VENDOR HAS EVER PAID FOR A RATING
§
COMMS-SCHEDULING
Zendesk logo

Should I self-host Zendesk?

$19/mo · Support Team per seat · alternative: Zammad
RATING
YES
OUTLOOK
NOT ASSIGNED
RATIONALE

Chatwoot gives you shared inboxes, live chat widgets, canned responses and automations — the Zendesk core — per agent forever, for the price of a mid VPS. The rails stack is heavier than most on this list; it's still a weekend, not a career.

WHAT YOU LOSE
01

Zendesk's marketplace of a thousand integrations

02

Their AI answer bot tier and WFM tooling

WHAT YOU'RE PAYING FOR

ticketing & shared inbox · live chat widget · canned responses & macros · help-center basics

Self-Hosting Facts
1 app per panel · Zendesk
Assumes 1 seat on 1 always-on box you already run
Amount per month% of sub *
Subscription$19.00
VPS share2.0011%
Storage + backup0.000%
Your hours · 45 min @ $2015.0079%
Self-hosted all-in17.0089%
Effective markup1.1×
Setup · 42 min measured$14.00 once
Break-even7.0 months
VERDICT
YES
OUTLOOK
NOT ASSIGNED

* Percent of the subscription price. Your time is priced at the slider's rate — $0/h ("my homelab time is free and I love it") is a legitimate position. Every number is derived from the record, never hand-written. Price source, checked 2026-08-07.

Runs comfortably on a real VPS (2 GB+).

01
ALTERNATIVES
Ranked alternatives
01Zammad logo
ZammadA shared support desk with agents, groups, escalation clocks and a customer portal, on your own hostname, with nobody counting seats.
zammad/zammad · ★ 5,840 · 1d
02Chatwoot logo
ChatwootA website chat widget feeding a shared agent inbox you run yourself, with no per-seat meter and no per-resolution bill.
chatwoot/chatwoot · ★ 35,703 · 0d
Zammad running from the boot-verified compose file
Zammad, running from the compose file on this page — screenshot from our verified instance, not marketing material.
02
EVIDENCE
PROTOCOL
v1
VERIFIED BY
zernonia
REVIEWED
10 AUG 2026
SETUP MEASURED
42 MIN
AI ASSISTANT
CLAUDE-CODE · STATED
WHAT BROKE
01

Boot to healthy measured at 91s on the 2GB reference env

THE TESTED COMPOSE FILE — CI-BOOTED WEEKLY
# Chatwoot — support inbox; rails web + sidekiq + postgres(pgvector) + redis
x-cw-env: &cw-env
  SECRET_KEY_BASE: 0123456789abcdef0123456789abcdef0123456789abcdef
  FRONTEND_URL: http://localhost:3006
  POSTGRES_HOST: cw-db
  POSTGRES_USERNAME: chatwoot
  POSTGRES_PASSWORD: chatwoot
  POSTGRES_DATABASE: chatwoot
  REDIS_URL: redis://cw-cache:6379
  RAILS_ENV: production
  NODE_ENV: production
  INSTALLATION_ENV: docker
services:
  chatwoot-web:
    image: chatwoot/chatwoot:latest
    container_name: chatwoot-web
    restart: unless-stopped
    depends_on:
      cw-db:
        condition: service_healthy
      cw-cache:
        condition: service_healthy
    environment: *cw-env
    entrypoint: docker/entrypoints/rails.sh
    command: sh -c 'bundle exec rails db:chatwoot_prepare && bundle exec rails s -p 3000 -b 0.0.0.0'
    ports:
      - "3006:3000"
    healthcheck:
      test: ["CMD-SHELL", "wget -qO- http://localhost:3000/api >/dev/null || exit 1"]
      interval: 10s
      timeout: 10s
      retries: 60
      start_period: 120s
  chatwoot-worker:
    image: chatwoot/chatwoot:latest
    container_name: chatwoot-worker
    restart: unless-stopped
    depends_on:
      cw-db:
        condition: service_healthy
      cw-cache:
        condition: service_healthy
    environment: *cw-env
    entrypoint: docker/entrypoints/rails.sh
    command: sh -c 'bundle exec sidekiq -C config/sidekiq.yml'
    healthcheck:
      test: ["CMD-SHELL", "ps aux | grep -q '[s]idekiq' || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 30
      start_period: 60s
  cw-db:
    image: pgvector/pgvector:pg16
    restart: unless-stopped
    environment:
      POSTGRES_USER: chatwoot
      POSTGRES_PASSWORD: chatwoot
      POSTGRES_DB: chatwoot
    volumes:
      - cw-db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U chatwoot"]
      interval: 5s
      timeout: 5s
      retries: 12
  cw-cache:
    image: redis:7-alpine
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s
      timeout: 5s
      retries: 12
volumes:
  cw-db:

Want a guided install instead? caniselfhostit.com/zendesk has AI-agent prompts that assume a bare machine — that's their half of the stool, and it's good.

FULL TIMED LOG
# Zendesk — verdict log

- **Date:** 2026-08-10
- **Verdict:** YES — worth it
- **Protocol:** v1 (2GB reference env, Docker preinstalled, AI assistant: claude-code)

## Setup evidence

- Compose: `compose/zendesk-chatwoot.yml`
- Boot to healthy: **91s** measured this session
- Setup time recorded: 42 min (boot + configuration to first working workflow)

## What broke / notes

- Boot to healthy measured at 91s on the 2GB reference env

## The call

Chatwoot gives you shared inboxes, live chat widgets, canned responses and automations — the Zendesk core — per agent forever, for the price of a mid VPS. The rails stack is heavier than most on this list; it's still a weekend, not a career.
03
HISTORY
10 AUG 2026UNRATED → YESInitial verdict: Chatwoot gives you shared inboxes, live chat widgets, canned responses and automations — the Zendesk core — pe.