Helpdock: An Open-Source, Self-Hosted Help Desk With Grounded AI

Executive Summary
- What it is: Helpdock is an open-source (AGPL-3.0) customer support platform: ticketing, a help center, a live chat widget and grounded AI, in one deploy that serves many brands.
- Why I built it: Zendesk, Zoho Desk, Freshdesk and Jira Service Management all charge per agent, per month. Helpdock runs on your own server with no per-agent seats.
- Every channel, one inbox: email, WhatsApp, Instagram, Messenger, Telegram, the chat widget and a hosted web form all become tickets.
- AI you can trust: answers come only from your own knowledge, with citations. Personal data is masked first, and the assistant hands off to a person when it is not sure.
- Status: pre-1.0. Version 0.5.0 shipped on October 13, 2026, and runs with one
docker compose up -d.
I made a short video tour of Helpdock on X; this post is the written version, with the setup steps.

Zendesk, Zoho Desk, Freshdesk and Jira Service Management, each billed per agent per month
Why another help desk
Support tools price by seat. Every agent you add, and often every light user, is another monthly line. Your customer conversations also live on someone else's servers.
Helpdock flips both: you run it on a Linux server you control, with Docker Compose, and you add as many agents as you need. The code is public under the AGPL-3.0 license, so you can read exactly how your data is handled.
Every channel lands in one inbox
A customer can write by email, WhatsApp, Instagram, Messenger, Telegram, the website chat widget or a web form. Each message opens a ticket or continues the open one, and the agent's reply goes back on the same channel.
People also move between channels. Helpdock resolves one person across their email addresses, phone number and messaging accounts, so their whole history sits on one contact. Automatic merges only happen on verified identities, and every merge can be undone.

One inbox with tickets from email, WhatsApp, Instagram, Telegram and chat, and one customer across channels
A ticket desk built for busy teams
Everything happens on one screen: reply, internal notes, assignment, tags, custom fields and status. A few things I wanted from day one:
- SLA clocks on every ticket, counted in business hours, with escalation steps. At 75% of the target, team leads are notified; at 100%, the ticket escalates.
- Internal notes that only your team sees, right in the thread.
- Live collision detection: you see when a colleague is viewing or replying to the same ticket, so two people never answer the same customer.
- Merge and split tickets, saved views, macros and canned responses in English and Arabic.

A ticket's SLA panel: first response met, resolution clock running, team leads notified at 75%

Live collision: the ticket shows that Jules is viewing it too
Automation and SLAs
Workflow rules follow a simple when, if, then shape, built in a visual editor. You can test a rule against a real ticket before you turn it on, and the run log shows every time a rule applied or was skipped, and why. Time-based rules handle the rest, like bumping the priority of tickets open for two days or closing tickets that wait on the customer.

The visual rule builder: when a ticket is created, if the subject contains refund, then raise the priority
AI that answers from your docs, and knows when to stop
Every AI feature in Helpdock is a switch, and every one is grounded:
- Answers come only from your knowledge: help center articles, uploaded files, crawled sites, Notion and Google Drive. Each answer cites its sources, and made-up citations are dropped.
- Personal data is masked before any model sees it. Card numbers, phone numbers and emails become placeholders like
[CARD_1]. - Low confidence hands off to a person instead of guessing, and the assistant pauses on that conversation.
- Agent assist in the composer: suggest a reply, summarize a ticket, suggest tags and priority, translate between Arabic and English, rewrite the tone, or draft a help article from a solved ticket.
- Budgets: daily and monthly spending caps per brand, and any LLM provider by API key.
In the video, the AI runs on a local test model with demo data, so nothing leaves the machine. In production you connect your own provider.

A customer's card number, phone and email masked before the AI sees the message

A suggested reply that cites the matching help center article

The assistant hands off to a person when its confidence is below the threshold
A chat widget under 40 KB
The widget drops into any site with one script tag. It can run as live chat, chat with suggested articles, help center only, or a contact form, and it takes your brand's colour, position and greeting. Visitors get AI answers with sources, and a "Talk to a human" button is always there.

The chat widget on a demo site: an AI answer with its source and a Talk to a human button

The same widget in Arabic, right to left
A help center per brand, in two languages
Each brand gets its own help center with categories, articles with images and callouts, typo-tolerant search in Arabic and English, SEO tags and sitemaps, and a custom domain with automatic HTTPS. "Still need help?" opens the widget with the article attached.

A help center article with steps, screenshots and a tip box
Many brands on one install
One Helpdock installation can host any number of brands, each with its own inboxes, help center, widget theme, channels and AI knowledge. Isolation is enforced in the database with PostgreSQL row-level security, so one brand cannot read another brand's tickets.

Three brands, each with its own widget or help center, wired to one Helpdock install
Reports
Ticket volume by channel, first response and resolution times, SLA compliance, backlog, CSAT and per-agent workload, all filterable by date, department, channel and agent, with CSV export.

The reports page: tickets created, median first response, SLA met and CSAT
Self-host it with Docker Compose
You need Docker Engine with Compose v2, a Linux server with 2 vCPU and 4 GB of memory, two DNS names pointing at it, and ports 80 and 443 open. Each release is published as a container image.
git clone --depth 1 --branch v0.5.0 https://github.com/Docker-Hunterpedia/Helpdock.git
cd Helpdock/docker
cp ../.env.example .env
# Fill in .env: HELPDOCK_VERSION, APP_URL, APP_MASTER_KEY (openssl rand -base64 32),
# the database passwords, the S3 bucket, ADMIN_HOST and API_HOST.
docker compose up -dThen open your admin host and finish the first-run wizard. One important note from the README: back up .env together with the database. Without APP_MASTER_KEY, nothing encrypted can be read back.

docker compose up -d starting Postgres, the API, the worker and Caddy
What is next
Helpdock is pre-1.0. Version 0.5.0 added WhatsApp, Messenger and Instagram as channels, plus the hardening work towards 1.0: an OWASP ASVS Level 2 review, fixes from an internal pre-pentest review and automated accessibility checks. An external pentest is planned before 1.0.
If a self-hosted help desk is something you need, star the repo on GitHub, try it, and open an issue with what is missing for your team.
Sources
- Helpdock on GitHub (README, install guide and changelog)
- Helpdock 0.5.0 release (October 13, 2026)
- Zendesk pricing, Zoho Desk pricing, Freshdesk pricing and Jira Service Management pricing (checked October 13, 2026)
Comments
Share your thoughts and join the conversation



