Sovereign Apps
Odoo 19 · Community & Enterprise

Your ERP should not phone home.

Every Odoo installation ends up calling a handful of American services — a CAPTCHA here, a signature provider there. Each one is a data transfer, a consent banner and a dependency you did not choose. Sovereign Apps replaces them with modules that run entirely on your own server.

The problem

Small integrations, large consequences

Odoo ships integrations for Google reCAPTCHA and Cloudflare Turnstile. The app store is full of DocuSign connectors. All of them work well. All of them send your visitors and your documents to a third country, set cookies you have to disclose, and require an account with a vendor who can change terms and pricing at will.

For most of these services there is a self-hosted equivalent that is just as good. What has been missing is the piece that connects it to Odoo. That is what we build.

Typical integration Sovereign Apps
Where visitor data goes To the vendor, usually outside the EU Nowhere — it stays on your server
Cookies and fingerprinting Yes, and you must disclose them None
Vendor account Required — keys, quotas, rate limits None
Ongoing cost per request Metered or capped by a free tier Zero
If the vendor changes terms You adapt or migrate Nothing happens
Modules

What we ship

ALTCHA Spam Protection

Replaces reCAPTCHA on website forms with a self-hosted proof-of-work challenge. One checkbox, no image grids — which is also what WCAG 2.2 AA and the European Accessibility Act ask for.

Ready Odoo 19
v19.0.1.0.0

DocuSeal Connector

Electronic signatures through your own DocuSeal instance instead of DocuSign. Send, pre-fill and receive signed documents without the document ever leaving your infrastructure.

In preparation Odoo 19

Not yet on the Odoo Apps Store. The modules are in preparation for publication. If you want to try one before it is listed, write to us — we would rather have early feedback than a perfect launch.

Principles

How these modules are built

No outbound calls A module either works without contacting anyone, or it talks only to a server you operate. There is no middle option and no telemetry.
Fail closed A misconfigured security module rejects rather than waves through. If a signing key is missing, verification fails — it does not silently pass.
Measure before you block Anything that can reject a visitor ships in monitor mode first. You see in the log what would have been blocked before anything is.
Vendored code stays readable Third-party libraries are included unmodified and reviewable, never minified into an opaque blob.
Tests that can fail Every security-relevant behaviour has a test that fails when the behaviour is removed — including the replay, expiry and forged-signature cases.
Accessibility is not optional Anything a visitor interacts with works with a keyboard and a screen reader. Under the EAA this is law, not courtesy.
Contact

Questions, a module you would like to see, or an Odoo installation with a dependency you want removed — florian@neuhuber.net.