A propos Compétences Expérience Services Blog Contact
Sovereign EU self-hosting: a technical playbook with Terraform and Ansible, architecture overview

La région « EU » ne suffit pas : le playbook du self-host souverain An "EU Region" Is Not Enough: The Sovereign Self-Hosting Playbook

TL;DR : héberger en Europe, c'est bien. Mais une région « EU » sur un cloud américain n'est pas de la souveraineté. Le CLOUD Act garde la porte ouverte. La vraie souveraineté, c'est une infra que tu possèdes, chez un hébergeur européen, décrite en Terraform et Ansible. Voici le playbook que j'utilise. Quels composants open-source remplacent quels services US. Où vivent tes données. Et comment rester prêt pour l'IA sans dépendre d'un fournisseur américain.

Cet article est pour les CTO et lead techs de PME et scale-ups européennes qui manipulent des données sensibles. Fintech, santé, secteur public.

La souveraineté n'est plus un discours. C'est une décision d'architecture.

En 2026, la souveraineté numérique est passée du slogan à la contrainte technique. La souveraineté numérique, c'est garder le contrôle de tes données et de ton infra. Qui peut y accéder, sous quelle loi, et depuis où.

Le cadre européen s'est empilé, texte après texte. Le RGPD protège les données personnelles depuis 2018. La directive NIS2 durcit les obligations cyber, et les États la transposent depuis fin 2024. DORA oblige les acteurs financiers à gérer leur dépendance au cloud, et elle s'applique depuis janvier 2025. Le Data Act facilite le changement de fournisseur cloud, et il s'applique depuis septembre 2025.

L'AI Act mérite une nuance importante. Il est entré en vigueur en août 2024. Ses règles de transparence s'appliquent bien en août 2026. Mais attention à un piège de calendrier. En mai 2026, l'UE a décidé de repousser les obligations des systèmes à haut risque à décembre 2027. Alors ne monte pas ta stack pour respecter une seule date. Monte-la parce que la pression est structurelle, pas ponctuelle.

L'autre moteur, c'est la résilience. L'été 2026 l'a rappelé sans douceur. AWS a connu plusieurs pannes en juillet. Le 16, un incident sur son service CloudFront a duré plus de trois heures. Le 24, une panne dans sa région d'Oregon a coupé Apple Pay, Reddit et d'autres, pendant environ 80 minutes. C'était le troisième incident notable en trois mois.

Un hyperscaler, c'est un géant du cloud comme AWS, Azure ou Google Cloud. Quand tout le monde dépend des mêmes hyperscalers, tout le monde tombe en même temps. Le mouvement de fond est réel, jusqu'au sommet. En avril 2026, la Commission européenne a attribué un marché de cloud souverain. Jusqu'à 180 millions d'euros sur six ans, pour ses propres institutions.

De mon côté, je monte des stacks self-host souveraines depuis un moment. J'ai deux projets perso qui me servent de base. Un forfait DevSecOps clé en main, et un mesh VPN zero-trust auto-hébergé. Les deux tournent sur Hetzner, un hébergeur allemand. Les deux se déploient entièrement en code, pas à la main.

Une région « EU » sur un cloud US n'est pas de la souveraineté

Voici l'erreur la plus fréquente. Tu coches « région Europe » chez ton cloud américain, et tu te crois en règle. Le problème n'est pas où la donnée est stockée. Le problème, c'est qui peut la réclamer.

Le CLOUD Act est une loi américaine de 2018. Elle permet aux autorités US d'exiger les données d'une entreprise américaine. Même quand ces données sont stockées en Europe. Donc la filiale européenne d'un groupe américain reste sous cette loi. La localisation du serveur n'y change rien.

La justice européenne a déjà pointé ce risque. L'arrêt Schrems II, en 2020, a invalidé le cadre de transfert de données vers les États-Unis. Le motif : l'accès possible des autorités étrangères à tes données.

Les hyperscalers proposent maintenant des offres dites « souveraines ». Des régions isolées, opérées en Europe. C'est mieux que rien. Mais la maison mère reste américaine, donc sous droit américain. La souveraineté, ce n'est pas juste un lieu de stockage. C'est le contrôle. Qui possède l'infra, qui détient les clés, qui répond aux réquisitions. La réponse la plus simple à ces trois questions, c'est d'héberger toi-même, chez un fournisseur européen.

Remplace chaque service US par un composant que tu contrôles

Bonne nouvelle : pour presque chaque service US, il existe un équivalent open-source que tu héberges toi-même. C'est le coeur du forfait DevSecOps que je déploie chez mes clients, sur leur propre infra. Voici la table de correspondance que j'utilise :

  • Identité et SSO : Keycloak remplace Okta, Auth0 ou Entra ID. Le SSO, ou single sign-on, c'est un seul login pour toutes tes apps. Keycloak gère aussi les rôles et le second facteur.
  • Réseau zero-trust : Netbird remplace Tailscale ou Zscaler. C'est un VPN maillé basé sur WireGuard. Le zero-trust part d'un principe simple : on ne fait confiance à personne par défaut, même à l'intérieur du réseau.
  • Secrets : Vaultwarden garde les mots de passe d'équipe. Pour les secrets des applications, tu ajoutes Vault ou Infisical. Tout reste chez toi, jamais dans un coffre tiers.
  • Monitoring et logs : Grafana, Prometheus et Loki remplacent Datadog ou New Relic. Tu vois tes métriques et tes logs sans les envoyer dehors.
  • Sauvegardes : Restic et pgBackRest écrivent vers MinIO. MinIO est un stockage objet compatible S3 que tu héberges toi-même.
  • Entrée HTTPS et DNS : Traefik gère le reverse proxy et les certificats Let's Encrypt. Pour le DNS, un acteur européen comme OVH suffit.

Chaque brique est open-source. Tu peux l'auditer, la forker, la faire tourner sans licence. Et surtout, tes données ne quittent jamais ton périmètre.

Déploie tout en Terraform et Ansible, pas à la main

Une stack montée à la main n'est pas souveraine longtemps. Elle dérive, et bientôt personne ne sait la reconstruire. Alors je décris tout en code. Deux outils se partagent le travail. Terraform crée l'infrastructure : la machine, le réseau, le pare-feu, le DNS. Ansible configure ensuite la machine : les paquets, les services, le durcissement.

Mon projet de VPN self-host le montre bien. Terraform provisionne une VM chez Hetzner et gère le DNS chez OVH. Deux fournisseurs européens, un seul fichier de code :

terraform {
  required_providers {
    hcloud = { source = "hetznercloud/hcloud", version = "~> 1.45" }  # VM on Hetzner (DE)
    ovh    = { source = "ovh/ovh",             version = "~> 0.50" }  # DNS on OVH (FR)
  }
}
# Then Ansible hardens the host and installs the service:
#   roles/system-hardening  -> updates, firewall, fail2ban
#   roles/netbird-install   -> the self-hosted service

Ansible prend le relais. Un rôle durcit le système. Un autre installe le service. Le tout passe par un pipeline GitHub Actions. Un plan sur chaque pull request. Un déploiement au merge. Un job séparé pour tout détruire proprement.

Le vrai gain, c'est la reproductibilité. Tu redéploies la même stack ailleurs en une commande. Si ton hébergeur augmente ses prix ou tombe, tu bouges sans repartir de zéro. Le même code me sert sur Hetzner, OVH, GCP ou DigitalOcean. C'est ça, l'inverse du lock-in.

Durcis l'hôte et chiffre tes sauvegardes

Posséder l'infra, c'est aussi la protéger. Personne ne le fait à ta place. Mon rôle Ansible de durcissement fait le minimum vital. Mises à jour de sécurité automatiques. Pare-feu fermé par défaut. fail2ban contre les attaques par force brute. Services inutiles coupés. fail2ban bannit une adresse IP après trop d'essais de connexion ratés.

Ensuite, les sauvegardes. Une infra que tu possèdes, c'est aussi toi qui réponds quand un disque meurt. Je chiffre les sauvegardes avec Restic. La base Postgres part avec pgBackRest. Les deux écrivent vers un stockage que tu contrôles, pas vers le S3 d'un tiers. Et je teste la restauration pour de vrai. Une sauvegarde jamais restaurée n'est pas une sauvegarde.

Ce point rejoint une exigence de DORA. Les acteurs financiers doivent pouvoir sortir d'un fournisseur, sans se retrouver bloqués. Avec du code et des sauvegardes portables, cette sortie est déjà prête. Tu ne l'improvises pas le jour de la panne.

Reste prêt pour l'IA sans donner tes données à un fournisseur US

Souverain ne veut pas dire coupé de l'IA. Ça veut dire garder la maîtrise. Le piège, c'est d'envoyer tes données brutes à une API américaine. Là, tu perds la résidence et le contrôle d'un seul coup.

Alors je traite le modèle comme une pièce détachée. Il se branche derrière une passerelle, et il se remplace. Je garde le modèle en bout de chaîne, jamais au centre du système. J'en ai fait un article entier. Et je masque les données personnelles avant qu'elles n'atteignent le modèle, comme pour sécuriser un agent.

Pour la souveraineté, tu as deux voies. Un fournisseur européen comme Mistral. Ou un modèle open-weight que tu héberges toi-même. Un modèle open-weight a ses poids publics. Tu peux donc le faire tourner sur ta propre machine. Tu le sers sur un GPU européen, chez OVHcloud ou Scaleway.

Ton plan de données reste chez toi. Le modèle devient un détail d'implémentation, pas une dépendance. Résultat : tu profites de l'IA, mais c'est toi qui décides où vont les données.

Le coût a changé en 2026. Fais le vrai calcul.

Le cloud s'est vendu sur deux promesses. Simple : plus de serveurs à gérer. Et pas cher : tu paies ce que tu consommes. En 2026, les deux ont pris un coup de vieux.

Simple, ça l'est de moins en moins. Suivre la facture est devenu un métier, avec son nom : le FinOps. Pas cher non plus. Le paiement à l'usage punit les charges qui tournent en continu. La sortie de données se facture, et les services managés s'empilent.

Du coup, des entreprises font le chemin inverse. On appelle ça la repatriation : revenir sur sa propre infra. 37signals a ramené sa facture cloud de 3,2 à 1,3 million de dollars par an. Une étude Flexera estime qu'environ un cinquième des charges parties au cloud sont déjà revenues.

Un mot honnête sur l'argent. Le self-host n'est pas toujours moins cher. En 2026, même les hébergeurs européens ont augmenté. Hetzner a relevé ses prix plusieurs fois. Au 1er avril, jusqu'à environ 37 %. Au 15 juin, certains plans à vCPU dédié ont plus que doublé. La cause n'est pas la marge. Le prix de la mémoire DRAM a bondi de plus de 90 % en un seul trimestre.

Donc fais le vrai calcul, avec de vrais chiffres. Trois réflexes aident :

  • Dimensionne juste. Beaucoup de stacks tournent sur bien moins que ce qu'on provisionne par réflexe.
  • Choisis le bon type d'instance. Les plans Arm ont bien moins augmenté que le vCPU dédié.
  • Compte le coût total, pas juste la VM. Chez un hyperscaler, la sortie de données et les services managés gonflent la facture.

Et compte ce que la souveraineté t'apporte en face. Pas de lock-in, une conformité plus simple, une sortie toujours possible. Le lock-in, c'est la dépendance qui rend un départ trop coûteux. Pour une PME à données sensibles, ce contrôle vaut souvent plus que quelques euros de VM.

La checklist du self-host souverain

Avant de te dire « souverain », coche toutes ces cases.

  • L'hébergeur est européen, et hors de portée du CLOUD Act
  • Tu ne confonds pas « région EU » et souveraineté réelle
  • Chaque service US a un équivalent open-source auto-hébergé : identité, secrets, réseau, monitoring, sauvegardes
  • Toute l'infra est décrite en Terraform et Ansible, pas montée à la main
  • Le même code peut redéployer la stack chez un autre hébergeur
  • L'hôte est durci : mises à jour auto, pare-feu, fail2ban, services inutiles coupés
  • Les sauvegardes sont chiffrées, portables, et tu as déjà testé une restauration
  • Le modèle IA est isolé derrière une passerelle, et remplaçable
  • Les données personnelles sont masquées avant d'atteindre le modèle
  • Tu as fait le vrai calcul de coût : dimensionnement, type d'instance, coût total
  • Une stratégie de sortie existe, prête à jouer, dans l'esprit de DORA

Ce qu'il faut retenir

La souveraineté n'est pas un badge marketing. C'est une chaîne de décisions techniques. Une région EU sur un cloud US ne suffit pas. Le contrôle vient de l'infra que tu possèdes vraiment.

La bonne nouvelle, c'est que les briques existent, toutes open-source. Terraform et Ansible les assemblent en une stack que tu maîtrises. Et cette stack reste prête pour l'IA, à tes conditions.

Tu veux monter une stack souveraine, ou vérifier que la tienne l'est vraiment ? C'est exactement ce que je fais. Écris-moi. Héberge en Europe. Mais héberge sur une infra qui est vraiment la tienne.

TL;DR: hosting in Europe is good. But an "EU region" on a US cloud is not sovereignty. The CLOUD Act keeps the door open. Real sovereignty is infrastructure you own, on a European host, described in Terraform and Ansible. Here is the playbook I use. Which open-source components replace which US services. Where your data lives. And how to stay AI-ready without depending on a US provider.

This article is for CTOs and tech leads at European SMBs and scale-ups that handle sensitive data. Fintech, healthcare, public sector.

Sovereignty is no longer a slogan. It is an architecture decision.

In 2026, digital sovereignty moved from slogan to technical constraint. Digital sovereignty means keeping control of your data and your infrastructure. Who can reach it, under which law, and from where.

The European framework kept stacking, text after text. GDPR has protected personal data since 2018. The NIS2 directive tightens cyber obligations, and member states have been transposing it since late 2024. DORA forces financial players to manage their cloud dependency, and it applies since January 2025. The Data Act makes switching cloud providers easier, and it applies since September 2025.

The AI Act deserves an important nuance. It entered into force in August 2024. Its transparency rules do apply in August 2026. But watch out for a calendar trap. In May 2026, the EU agreed to push high-risk system obligations to December 2027. So do not build your stack to beat a single date. Build it because the pressure is structural, not a one-off.

The other driver is resilience. The summer of 2026 was a blunt reminder. AWS had several outages in July. On the 16th, an incident on its CloudFront service lasted more than three hours. On the 24th, an outage in its Oregon region took down Apple Pay, Reddit and others for about 80 minutes. It was the third notable incident in three months.

A hyperscaler is a cloud giant like AWS, Azure or Google Cloud. When everyone depends on the same hyperscalers, everyone falls together. The underlying shift is real, right up to the top. In April 2026, the European Commission awarded a sovereign cloud contract. Up to 180 million euros over six years, for its own institutions.

On my side, I have been building sovereign self-hosted stacks for a while. Two personal projects serve as my base. A turnkey DevSecOps bundle, and a self-hosted zero-trust VPN mesh. Both run on Hetzner, a German host. Both deploy fully from code, never by hand.

An "EU region" on a US cloud is not sovereignty

Here is the most common mistake. You tick "Europe region" at your US cloud, and you feel compliant. The problem is not where the data is stored. The problem is who can demand it.

The CLOUD Act is a US law from 2018. It lets US authorities compel a US company to hand over data. Even when that data sits in Europe. So the European subsidiary of a US group stays under that law. The server location changes nothing.

European courts already flagged this risk. The Schrems II ruling, in 2020, invalidated the data transfer framework to the United States. The reason: possible access by foreign authorities to your data.

Hyperscalers now offer so-called "sovereign" options. Isolated regions, operated in Europe. It is better than nothing. But the parent company stays American, so under American law. Sovereignty is not just a storage location. It is control. Who owns the infrastructure, who holds the keys, who answers subpoenas. The simplest answer to those three questions is to host it yourself, on a European provider.

Replace every US service with a component you control

Good news: for almost every US service, there is an open-source equivalent you host yourself. This is the core of the DevSecOps bundle I deploy for clients, on their own infrastructure. Here is the mapping I use:

  • Identity and SSO: Keycloak replaces Okta, Auth0 or Entra ID. SSO, or single sign-on, means one login for all your apps. Keycloak also handles roles and a second factor.
  • Zero-trust network: Netbird replaces Tailscale or Zscaler. It is a mesh VPN built on WireGuard. Zero-trust starts from a simple rule: trust no one by default, even inside the network.
  • Secrets: Vaultwarden holds team passwords. For application secrets, you add Vault or Infisical. Everything stays with you, never in a third-party vault.
  • Monitoring and logs: Grafana, Prometheus and Loki replace Datadog or New Relic. You see your metrics and logs without sending them out.
  • Backups: Restic and pgBackRest write to MinIO. MinIO is S3-compatible object storage that you host yourself.
  • HTTPS entry and DNS: Traefik handles the reverse proxy and Let's Encrypt certificates. For DNS, a European player like OVH is enough.

Every block is open-source. You can audit it, fork it, run it without a license. And most of all, your data never leaves your perimeter.

Deploy everything with Terraform and Ansible, not by hand

A stack built by hand does not stay sovereign for long. It drifts, and soon nobody can rebuild it. So I describe everything in code. Two tools split the work. Terraform creates the infrastructure: the machine, the network, the firewall, the DNS. Ansible then configures the machine: the packages, the services, the hardening.

My self-hosted VPN project shows it well. Terraform provisions a VM on Hetzner and manages DNS on OVH. Two European providers, one code file:

terraform {
  required_providers {
    hcloud = { source = "hetznercloud/hcloud", version = "~> 1.45" }  # VM on Hetzner (DE)
    ovh    = { source = "ovh/ovh",             version = "~> 0.50" }  # DNS on OVH (FR)
  }
}
# Then Ansible hardens the host and installs the service:
#   roles/system-hardening  -> updates, firewall, fail2ban
#   roles/netbird-install   -> the self-hosted service

Ansible takes over. One role hardens the system. Another installs the service. The whole thing runs through a GitHub Actions pipeline. A plan on every pull request. A deploy on merge. A separate job to tear it all down cleanly.

The real win is reproducibility. You redeploy the same stack elsewhere in one command. If your host raises prices or goes down, you move without starting over. The same code serves me on Hetzner, OVH, GCP or DigitalOcean. That is the opposite of lock-in.

Harden the host and encrypt your backups

Owning the infrastructure also means protecting it. Nobody does it for you. My Ansible hardening role does the bare minimum. Automatic security updates. A firewall closed by default. fail2ban against brute-force attacks. Useless services turned off. fail2ban bans an IP address after too many failed login attempts.

Then, backups. When you own the infrastructure, you also answer when a disk dies. I encrypt backups with Restic. The Postgres database goes out with pgBackRest. Both write to storage you control, not to a third party's S3. And I test the restore for real. A backup you never restored is not a backup.

This point meets a DORA requirement. Financial players must be able to exit a provider, without getting stuck. With code and portable backups, that exit is already prepared. You do not improvise it on outage day.

Stay AI-ready without handing your data to a US provider

Sovereign does not mean cut off from AI. It means keeping control. The trap is sending your raw data to a US API. There, you lose residency and control in one move.

So I treat the model as a spare part. It plugs in behind a gateway, and it swaps out. I keep the model at the end of the chain, never at the center of the system. I wrote a whole article on that. And I mask personal data before it reaches the model, just like when securing an agent.

For sovereignty, you have two paths. A European provider like Mistral. Or an open-weight model you host yourself. An open-weight model has public weights. So you can run it on your own machine. You serve it on a European GPU, at OVHcloud or Scaleway.

Your data plane stays with you. The model becomes an implementation detail, not a dependency. The result: you get AI, but you decide where the data goes.

The cost changed in 2026. Do the real math.

The cloud sold itself on two promises. Simple: no more servers to manage. And cheap: you pay for what you use. In 2026, both have aged.

Simple, less and less. Tracking the bill became its own job, with a name: FinOps. Cheap, not really. Pay-as-you-go punishes workloads that run all the time. Data egress gets billed, and managed services pile up.

So some companies go the other way. It is called repatriation: moving back to your own infrastructure. 37signals brought its cloud bill down from 3.2 to 1.3 million dollars a year. A Flexera study estimates about a fifth of the workloads that moved to the cloud have already come back.

An honest word about money. Self-hosting is not always cheaper. In 2026, even European hosts raised prices. Hetzner increased its rates several times. On 1 April, by up to about 37%. On 15 June, some dedicated-vCPU plans more than doubled. The cause is not margin. The price of DRAM memory jumped by more than 90% in a single quarter.

So do the real math, with real numbers. Three habits help:

  • Size it right. Many stacks run on far less than what we provision by reflex.
  • Pick the right instance type. Arm plans rose far less than dedicated vCPU.
  • Count the total cost, not just the VM. On a hyperscaler, data egress and managed services inflate the bill.

And count what sovereignty gives you in return. No lock-in, simpler compliance, an exit that always stays open. Lock-in is the dependency that makes leaving too expensive. For an SMB with sensitive data, that control is often worth more than a few euros of VM.

The sovereign self-hosting checklist

Before you call yourself "sovereign", tick every box.

  • The host is European, and out of reach of the CLOUD Act
  • You do not confuse "EU region" with real sovereignty
  • Every US service has a self-hosted open-source equivalent: identity, secrets, network, monitoring, backups
  • All the infrastructure is described in Terraform and Ansible, not built by hand
  • The same code can redeploy the stack on another host
  • The host is hardened: auto updates, firewall, fail2ban, useless services off
  • Backups are encrypted, portable, and you already tested a restore
  • The AI model is isolated behind a gateway, and replaceable
  • Personal data is masked before it reaches the model
  • You did the real cost math: sizing, instance type, total cost
  • An exit strategy exists, ready to run, in the spirit of DORA

What to remember

Sovereignty is not a marketing badge. It is a chain of technical decisions. An EU region on a US cloud is not enough. Control comes from infrastructure you truly own.

The good news is that the building blocks exist, all open-source. Terraform and Ansible assemble them into a stack you master. And that stack stays AI-ready, on your terms.

Do you want to build a sovereign stack, or check that yours really is one? That is exactly what I do. Get in touch. Host in Europe. But host on infrastructure that is truly yours.