Confida – Self-Hosted Whistleblowing Portal
Self-hosted whistleblowing channel that tracks the EU Directive's 7-day and 3-month clocks.
The problem it solves
The EU Whistleblowing Directive requires organisations of 50+ staff to run a secure internal reporting channel that acknowledges a report within 7 days and gives feedback within 3 months. A shared "[email protected]" inbox is none of those things — it isn't anonymous, it doesn't track deadlines, and it leaves no audit trail.
- No real anonymity in a shared inbox
- No tracking against the 7-day / 3-month statutory clocks
- No audit trail of what happened and when
What you get
Genuine anonymity
No name, email, phone, or IP is ever asked for or stored; a reporter gets a case code and sets a passphrase as the only way back in.
SLA deadline tracking
The dashboard counts acknowledge-overdue, feedback-overdue, and due-within-7-days cases using exact calendar-month math.
Two-way anonymous messaging
A handler posts a message on a case; the reporter reads and replies using their code and passphrase, still anonymous.
Self-hosted, no vendor in the loop
Reports live on your own PHP + MySQL/SQLite server — no API keys, no external service, no data-processing agreement to negotiate.
Configurable acknowledgment window
Set the acknowledgment window in Settings to match your jurisdiction's transposition of the Directive.
Handler console with audit trail
A console that tracks every case against its clock, with an append-only audit trail on every change.
Installable mobile app (PWA)
Add it to a phone or tablet home screen straight from the browser — a full-screen app served from your own server, with no app store involved. Business data is never cached offline, so what you see is always live.
Own It 2.0 — API, 2FA, backups, dark mode
Confida 2.0 adds the 2.0 owner layer. Upgrade by replacing the files — the database migrates itself, and it is still the same one-time purchase.
- REST API with an OpenAPI spec and signed webhooks
- Two-factor sign-in (TOTP)
- Email notifications through your own SMTP
- One-click backups
- Dark mode
Own It 3.0 — works for your AI, not just for you
Two-person case access is the headline: seal a case and it stays sealed until two different handlers are on the record — the requester cannot be the confirmer, and admins are not exempt. The MCP endpoint works under the same handler guards, and reporter anonymity survives every new surface.
- Roles with email invitations and a last-admin guard
- Append-only audit trail across browser, API and agent
- Printable PDFs
- Your logo and colours throughout
- Scheduled backups with a guided dry-run restore
- Optional single sign-on (OIDC)
Pricing — one-time, yours forever
- ✔ Full source included — PHP you can read and change
- ✔ No subscription. One payment, yours forever
- ✔ It never phones home
- ✔ Your data stays on your server
No reviews yet — so here is what we offer instead. Every competitor price on our comparison pages is source-linked and dated, and when a vendor’s price won’t load we say so rather than guess. See the sources for yourself →
Screenshots
Honest limitations
- Single organisation per install (not multi-tenant)
- No SSO, no e-discovery, no supervisory-authority e-filing
- Optional handler email notifications carry no report content
- Anonymity is an application guarantee, not a network/hosting guarantee — HTTPS and sane server logging are on you
- Aligns with the Directive's timers and workflow; it is not legal advice
- Public holidays aren't auto-counted in the deadline math
2-minute installer, plain PHP 8.1+ with MySQL or SQLite, no Composer or Node — includes a 74-assertion offline test suite and Dockerfile.
Covered in these guides
The EU Whistleblowing Directive requires a secure reporting channel — and the SaaS options are quote-gated enterprise. Here is a self-hosted, anonymous channel you own outright.
An honest field guide to EU-Directive reporting channels: GlobaLeaks and SecureDrop reviewed on their real strengths, the quote-gated SaaS field, and where a simple owned channel fits.
Deadline timers and audit records are software problems. Legal sufficiency is not. Here is the honest line between them, why a one-time licence suits one side and not the other, and the question to ask any vendor in this category.
Where your business data physically lives, who can be compelled to hand it over, and what "EU hosting" does and does not buy you. The questions to ask any SaaS vendor, and the case where self-hosting answers all of them at once.
Of 83 tracked pricing figures, 16 vendors publish no price at all and require a sales call. Here they are by name, what the other no-price cases actually are, and what quote-gating costs a small buyer in time and leverage.
Frequently asked questions
What exactly is stored about a reporter?
A category, subject line, the details they typed, case status/dates, the message thread, and a hash of their chosen passphrase — no identity fields exist, and the passphrase hash is never exported.
Is it really anonymous?
At the application level, yes — no name, email, phone, or IP is collected or stored, and follow-up is by case code + passphrase only, kept as a one-way hash that's never shown or exported.
A reporter lost their case code or passphrase — can we recover it?
No — there's no account and no email, so there's no reset; that's the trade-off for genuine anonymity, and it's stated clearly on the "save these" screen.
Can the handler and reporter actually communicate?
Yes, via a two-way message thread on each case — the handler posts, the reporter reads and replies with their code and passphrase, still anonymous.
MySQL or SQLite?
Either — SQLite for a zero-config single-file setup or a quick trial, MySQL/MariaDB for production on shared hosting.



