Skip to content

Data sovereignty

Running software on your own server answers one question: where the data sits. It does not answer who governs the software, what it still sends outward, or who reads the traffic on its way in.

Those are three separate questions. Self-hosting only settles the first.

Every stack records its licence and the entity behind it. The table is generated from those records, so it cannot fall out of step with what actually ships.

59 stacks26 EU27 non-EU51 open source
StackLicenceWho owns it
acme-certscoreOpen sourceGPL-3.0AustriaZeroSSL GmbH
adminerappsOpen sourceApache-2.0Czech RepublicJakub Vrána
authentikcoreOpen sourceMITNetherlandsAuthentik Security
beszelmonitoringOpen sourceMITUSHenry Gd (community)
beszel-agentmonitoringOpen sourceMITUSHenry Gd (community)
bookstackappsOpen sourceMITUKDan Brown (BookStack)
borgmaticbackupOpen sourceGPL-3.0-or-laterCommunityborgmatic-collective (Dan Helfman)
caldiyappsOpen sourceMITForkrubennati
changedetectionmonitoringOpen sourceApache-2.0Australiadgtlmoon
collaboracoreOpen sourceMPL-2.0UKCollabora Productivity Ltd
crowdseccoreOpen sourceMITFranceCrowdSec SAS
dashyappsOpen sourceMITUKAlicia Sykes (Lissy93)
dnsmasqcoreOpen sourceGPL-2.0 or GPL-3.0, at your discretionUKSimon Kelley
dockhandcoreSource-availableBSL 1.1Finsys**no country or legal entity stated** — no imprint on fnsys.pro or dockhand.pro
documensobusinessOpen sourceAGPL-3.0USDocumenso Inc
dolibarrbusinessOpen sourceGPL-3.0FranceDolibarr Association
easyappointmentsappsOpen sourceGPL-3.0GreeceAlex Tselegidis
euro-officecoreOpen sourceAGPL-3.0EUeuro-office consortium (Nextcloud, IONOS, XWiki, Proton)
gatusmonitoringOpen sourceApache-2.0CanadaTwinProduction
ghostappsOpen sourceMITIrelandGhost Foundation
hawsercoreOpen sourceMITFinsys**no country or legal entity stated** — no imprint on fnsys.pro
healthchecksmonitoringOpen sourceBSD 3-ClauseLatviaPēteris Caune
heimdallappsOpen sourceMITUKlinuxserver.io community
homarrappsOpen sourceMITCommunityhomarr-labs
homepageappsOpen sourceGPL-3.0UScommunity (gethomepage)
immichappsOpen sourceAGPL-3.0USAlex Tran
infisicalcoreOpen coreMITUSInfisical Inc
invoiceninjabusinessSource-availableElastic License 2.0USInvoice Ninja LLC
it-toolsappsOpen sourceGNU GPL v3.0FranceCorentinTh
kimaibusinessOpen sourceAGPL-3.0GermanyKevin Papst
librephotosappsOpen sourceMITCommunityno single company
listmonkbusinessOpen sourceAGPL-3.0IndiaZerodha (Kailash Nadh)
lycheeorgappsOpen sourceMITCommunityLycheeOrg
matomobusinessOpen sourceGPL-3.0New ZealandInnoCraft Ltd
monicahqappsOpen sourceAGPL-3.0CanadaMonica HQ
n8nappsSource-availableGermanyn8n GmbH
nextcloudappsOpen sourceAGPL-3.0GermanyNextcloud GmbH
nocodbappsOpen sourceAGPL-3.0USNocoDB Inc
ntfymonitoringOpen coreApache-2.0 / GPL-2.0GermanyPhilipp Heckel
onlyofficecoreOpen sourceAGPL-3.0LatviaAscensio System SIA
openprojectbusinessOpen coreGPL-3.0GermanyOpenProject GmbH
opensignbusinessOpen sourceAGPL-3.0IndiaOpenSign Inc
opnformappsOpen sourceAGPL-3.0FranceJulien Nahum
paperless-ngxappsOpen sourceMITCommunityno single company
photoprismappsOpen sourceAGPL-3.0GermanyPhotoPrism AG
photoviewappsOpen sourceGPL-3.0Denmarkcommunity
portainercoreOpen sourcezlibNew ZealandPortainer.io Ltd
portainer-agentcoreOpen sourcezlibNew ZealandPortainer.io Ltd
seafileappsOpen sourceAGPL-3.0ChinaSeafile Ltd
seafile-proappsProprietaryCommercialChinaSeafile Ltd
traefikcoreOpen sourceMITFranceTraefik Labs
unifiappsOpen coreEULAUSUbiquiti Inc
uptime-kumamonitoringOpen sourceMITHong KongLouis Lam
urbackupbackupOpen sourceAGPL-3.0-or-laterGermanyMartin Raiber (uroni)
vaultwardenappsOpen sourceGPL-3.0Communityunofficial Bitwarden reimplementation
vikunjabusinessOpen sourceAGPL-3.0GermanyKonrad Langenberg Software
whoamicoreOpen sourceApache-2.0FranceTraefik Labs
wordpressappsOpen sourceGPL-2.0USAutomattic / WordPress Foundation
zammadbusinessOpen sourceAGPL-3.0GermanyZammad GmbH

“Open source” is claimed more often than it applies. Four stacks are open core — the base is free, some features are not. Three publish their source under a licence that restricts use: Dockhand, Invoice Ninja and n8n all permit personal and internal business use but not reselling the software as a hosted service. Seafile Pro is commercial outright. None of that is a reason to avoid them; it is a reason to read the licence before building a business on reselling one.

The entity governs, not the developers. Documenso is built largely from Hamburg but the company is US-registered — a court order reaches the company, not the postcode of whoever wrote the code. Where a project states no company and no country at all, the table says so rather than guessing.

Some components talk to their vendor by design, and two do so by their own default.

CrowdSec exchanges data both ways. It receives around 15,000 blocked addresses from other installations, and sends its own detections back: the address, which attack pattern matched, a timestamp. Not the request itself — URLs, headers and bodies stay on your machine. The exchange is what makes the blocklist work, and it can be switched off, which also ends the incoming half.

Traefik’s version check is off here. Upstream it is on by default and sends your server’s public IP to the vendor, who state it is used to identify companies running Traefik and approach them about support contracts. This blueprint disables it.

Every publicly trusted certificate publishes its hostname. They are logged publicly the moment they are issued — mandatory, and no public issuer can opt out. Certificates from an internal CA are not logged this way. A hostname like backup-admin.example.com becomes searchable within minutes of getting its certificate. A wildcard certificate publishes only *.example.com, which is the reason to use one when the names themselves are worth not advertising.

A hostname absent from the certificate logs is harder to find. It is not protected by that absence — anything reachable from the internet has to survive being found.

Thirty-six applications, read against each project’s own documentation and source. What matters is not whether a service contacts its maker — many do, to see whether a newer version exists — but whether the message carries an identifier that survives restarts. Without one, the maker learns that somebody somewhere is running the software. With one, they can count installations and follow yours over time.

Seven carry such an identifier. Invoice Ninja is one of them, and it took watching the traffic to see how much: its crash reporter sends stack traces and the surrounding log lines to the vendor, tagged with the account’s own key, and over an hour it was four times busier than the version check that gets more attention. It is switched off in the shipped configuration.

The other six: Documenso, OpnForm and Homarr each report to an analytics service keyed on an ID stored in their own database. OpenProject’s security badge sends one with the version. Dolibarr posts a unique hash together with your company’s country, taken from the record inside the software — and the checkbox that enables it is ticked during installation, so it is easy to click past.

PhotoPrism cannot be stopped. It sends a permanent serial number with the version, operating system and processor count, and the project offers no setting to prevent it. The only remedy is a firewall rule on the server. If that matters to you, the other photo libraries do not do it.

WordPress reports its size. Alongside the version it sends the number of sites and the number of user accounts. There is no setting in the official image.

Two published switches do not work. Lychee and Dashy both document a way to turn their update check off, and in both cases the call still happens. This was found by reading the code; neither project’s documentation says so.

Three send information about people rather than about the installation — the easiest kind to miss:

  • BookStack sends a fingerprint of every user’s e-mail address to Gravatar whenever an avatar is displayed
  • LibrePhotos sends the location of every photo you scan to a mapping service to turn coordinates into place names
  • Zammad looks up contacts and organisations against its own servers as you work

What was switched off here. Where a setting exists and costs nothing, telemetry is off in the shipped configuration. Where it costs a feature — Gravatar avatars, photo place names — the configuration says so on the line above, so it can be reversed in one edit. Where the setting lives inside the application and cannot be pre-set, the service’s page says where to find it after installation.

Push notifications to phones are the exception that cannot be switched off. Apple and Google will only accept push from a registered application, so any service that reaches your phone routes a small relay message through the project’s own servers. What travels is a message identifier — the content stays on your machine, and the phone comes back to fetch it.

The biggest decision here is usually made by clicking an icon in a DNS panel. If a CDN proxies your traffic, it decrypts it — that is not a misconfiguration, it is how a CDN works.

What proxying actually changes →

Not legal advice, and not a compliance statement. Where software comes from and where personal data is processed are related questions but not the same one: a US-owned project running entirely on your own server may be perfectly fine, and an EU-owned one that reports home may not be.

These are the inputs. The weighing depends on what you are running — a public blog and a practice’s patient records do not share a threshold.

The table is generated from per-stack records in the repository, so it cannot drift from what ships. Those records were compiled by reading each project’s own licence and company details, and they carry no external citation of the kind the security pages use — how sources are chosen and checked explains that standard, and this page does not yet meet it.

Corporate ownership, registration and licensing change, and a fork or an acquisition can move a project between jurisdictions without the software looking any different. Read anything here as of 31 July 2026 and verify the entries that matter to your decision against the project itself.

The telemetry findings come from reading each project’s own documentation and source code, and each positive was then checked a second time by someone trying to disprove it — one claim did not survive that and was dropped. They were not observed on the wire. Reading the code establishes that a call exists; it cannot establish that no other one does. Where nothing was found, this page says nothing rather than calling a service clean.