GlobaLeaks: Self-Hosted Reporting Software for Whistleblowing
GlobaLeaks is a free and open-source whistleblowing software enabling anyone to easily set up and maintain a secure reporting platform.
At a glance
- What is it?
- GlobaLeaks is a Python-based, self-hosted whistleblowing platform for organizations that need a controlled reporting channel. Its repository includes a backend, browser client, packaging assets, keys, and documentation, while deployment instructions are maintained outside the README.
- Who is it for?
- Organizations that need a self-hosted reporting platform should evaluate GlobaLeaks when Python, web application administration, and secure infrastructure operations are already within their competence. It is a poor fit for a reporter who wants only a service operated by someone else, or for an adopter who cannot investigate the current deployment documentation, backup procedures, and release history.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Star history
- globaleaks/globaleaks-whistleblowing-software1,525 ★ · +2
| Repository | 2026-10-16 | 2026-10-23 |
|---|---|---|
| globaleaks/globaleaks-whistleblowing-software | 1.5k | 1.5k |
2 Stars in the last 7 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
GlobaLeaks targets organizations operating a reporting channel
GlobaLeaks addresses a specific operational problem: creating and maintaining a web-based channel through which people can submit reports. The README describes it as free and open-source whistleblowing software that enables an organization or individual operator to set up and maintain a secure reporting platform. The intended administrator is therefore not simply a system administrator. The operator also has to think about how submissions are received, who can access them, how the service is exposed, and what happens to sensitive report data.
The project is associated with whistleblowing, corruption reporting, privacy, anonymity, and digital human rights. It is not presented as a general-purpose file-upload service or an ordinary customer-support inbox. That distinction matters because a reporting platform must handle sensitive narratives and attachments, while an administrator must control the boundary between public access and restricted operational access. The README identifies security and privacy as project topics, but it does not describe the exact access-control roles, attachment policy, retention schedule, or incident-response process.
The repository also contains `SECURITY.md`, `GOVERNANCE.md`, `CONTRIBUTING.md`, `CHANGELOG`, and `CODE_OF_CONDUCT.md`. Those files indicate that the project includes project governance, contribution, security, and change-history documentation. The README does not reproduce their procedures, so an adopter cannot infer a vulnerability-reporting process, patch policy, or contributor workflow from the top-level listing alone.
The repository separates server, client, packaging, and operations
The repository layout gives a useful architectural view without claiming details that the README leaves unstated. The `backend/` directory is the main server-side area, and the project is primarily written in Python. Its topic list includes SQLAlchemy and Twisted, which are consistent with a Python application that uses a relational data layer and an asynchronous networking framework. The project also lists libsodium as a dependency or technology area, but the README does not identify which operations use it.
The `client/` directory contains the browser-facing portion. The repository topics include Angular and TypeScript, and the quality section refers to Lighthouse checks for performance, accessibility, best practices, and SEO. Those clues point to a separate web client rather than a server-rendered page-only interface. The README does not explain the exact API routes, database schema, authentication sequence, or state transitions used when a person opens a submission page and sends a report, so those parts should be verified in the source tree and official documentation before an architectural commitment.
Operational concerns are represented by concrete directories as well. `docker/` contains Docker-related assets, `debian/` contains Debian packaging, and `scripts/` contains repository scripts. `keys/` is present at the top level, while `documentation/` contains project documentation. This separation can make it easier to locate packaging or deployment work, although the directory names do not establish that Docker and Debian are equally supported production paths.
Tor is both a repository topic and part of the project's security context. The README does not state whether every deployment must expose an onion service, whether Tor support is optional, or how the application handles an administrator who publishes a clearnet address. The architecture is broader than a single Python script, but the network boundary and threat model need direct review.
Stable installation requires following the project documentation
The README links to the official documentation at `https://docs.globaleaks.org/en/stable/` and identifies `https://globaleaks.org/` as the project homepage. It does not include an installation command, a configuration file, a default port, or a first-submission procedure. The repository has Docker and Debian directories, but directory names alone are not installation instructions, so reproducing a guessed command would be misleading.
For a first real use, start with the stable documentation rather than the default branch naming alone. Confirm whether the documented path is a native Python installation, a Docker deployment, a Debian package, or another supported route. Then identify the public address and any onion-service address, create the initial administrative state using only the documented procedure, and open the reporter-facing submission page. The expected result is a configured GlobaLeaks instance that can present its reporting interface. The README does not state what visual confirmation, health-check endpoint, database output, or log message should appear, so those details must come from the versioned installation guide.
The `stable` branch is named as the default branch, and the README's documentation links distinguish stable documentation from devel documentation. That separation is useful when operators need to avoid undocumented development behavior. The repository does not, however, provide enough information in the README to guarantee compatibility between the stable branch and the Docker assets in `docker/`. An operator should record the exact release or commit selected before configuring the service.
Security claims require deployment-level verification
The repository's security-related topics include anonymity, privacy, libsodium, Tor, DOMPurify, and HTTPS-related quality signals in the README. The README links to MDN HTTP Observatory, Security Headers, and SSLLabs results for a demo host, and it displays Lighthouse quality badges. These links indicate that the project evaluates web security and quality signals. They are not proof that an arbitrary deployment will receive the same results, especially when reverse proxies, certificates, DNS, browser clients, and hosting configuration differ.
The README does not specify the threat model, encryption boundaries, key management procedure, report retention policy, administrator authentication requirements, or backup encryption. The presence of `keys/` is notable, but it does not tell an operator whether those files are examples, development material, deployment inputs, or generated artifacts. Similarly, the Tor topic does not establish whether network metadata is minimized in every configuration.
That gap is a real limitation for adoption. A reporting platform can be technically available while still depending on hosting controls outside the application. The operator must verify TLS configuration, access restrictions, database protection, key handling, update procedures, and log handling in the actual deployment. GlobaLeaks may address a sensitive reporting workflow, but sensitivity makes undocumented operational choices more consequential, not less.
Maintenance is visible, while upgrade mechanics are not
The repository is not archived, and the last push was on 2026-10-15. The listed releases include `v5.0.99` dated 2026-07-26, `v5.0.98` dated 2026-07-12, and `v5.0.97` dated 2026-07-12. This gives an operator concrete release history to inspect, but the README does not describe whether releases are production-ready, how upgrades migrate a database, or whether configuration changes occur between versions.
The default branch is `stable`, which is a useful starting point for deployment planning because it separates it from `devel`. The presence of `CHANGELOG` suggests that release changes are recorded, yet the README does not show its contents. An adopter should read the changelog for the exact version under consideration and compare it with the documentation version and Docker or Debian packaging instructions.
The project is licensed under `AGPL-3.0`, as shown by the README badge and repository metadata. That license has implications for distributing modified versions and providing corresponding source under its terms, but this review does not provide legal advice. Organizations considering hosted service, customization, or redistribution should obtain appropriate license review. The upgrade decision should be based on the documented migration path for the chosen deployment, not only on the existence of a newer tag.
GlobaLeaks differs from a general web form backend
A real alternative is a conventional self-hosted web form backed by a general application framework or database service. That approach may be simpler when reports are routine internal complaints, when attachments do not require a dedicated whistleblowing workflow, and when the operator does not need the project-specific Tor and anonymity focus. It also shifts more responsibility to the organization designing its own access controls, retention rules, encryption, abuse handling, and browser security.
GlobaLeaks instead packages the reporting-platform role into software that is explicitly presented as whistleblowing software. That can reduce the amount of application design required for a specialized intake process, while introducing a larger platform with Python backend code, an Angular or TypeScript client, packaging assets, keys, documentation, and security responsibilities. The alternative therefore does not disappear when GlobaLeaks is used. It moves into hosting, TLS, Tor exposure, database operations, patching, backup decisions, and review of the deployment configuration.
The relevant comparison is not feature count. It is whether the operator needs a purpose-built reporting system and can support its security and maintenance surface. A team that cannot document its own retention and access policy should not assume that installing a project labeled secure is enough. GlobaLeaks is more relevant when the reporting workflow itself is part of the product requirement.
Editorial conclusion
Organizations that need a self-hosted reporting platform should evaluate GlobaLeaks when Python, web application administration, and secure infrastructure operations are already within their competence. It is a poor fit for a reporter who wants only a service operated by someone else, or for an adopter who cannot investigate the current deployment documentation, backup procedures, and release history. Before adopting it, verify the stable-branch installation instructions, the supported deployment model, the intended Tor configuration, and the operator responsibilities described in the official documentation.
Frequently asked questions
What is GlobaLeaks used for?
GlobaLeaks is free and open-source whistleblowing software for setting up and maintaining a reporting platform. The repository positions it for organizations or operators that need a controlled reporting channel.
How do I install GlobaLeaks?
The README links to the stable documentation at `https://docs.globaleaks.org/en/stable/`, but it does not provide installation commands. The repository includes `docker/` and `debian/` directories, although the README does not explain their supported setup paths.
Does GlobaLeaks support Tor?
Tor is listed as a repository topic, so Tor is part of the project's stated technology and privacy context. The README does not specify whether Tor is mandatory, optional, or configured automatically for every deployment.
What license does GlobaLeaks use?
The repository identifies `AGPL-3.0`. The README also displays an AGPLv3 license badge.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/globaleaks-globaleaks-whistleblowing-software)Star history chart for your README
[](https://hysenlabs.com/projects/globaleaks-globaleaks-whistleblowing-software)Was this useful?