Soevereiniteits-audit · extern & onafhankelijk

Hoe Europees is loes.ai echt?

Technisch onderzoek naar de infrastructuur en datastromen achter loes.ai en chat.loes.ai, getoetst aan de eigen belofte: "jouw Nederlandse AI-assistent, gehost in de EU".

Peildatum 4 augustus 2026 · uitsluitend publieke bronnen (DNS, RDAP, TLS, HTTP) · het model zelf is niet getest, er is niet ingelogd
De kern
EU Hosting, chat, feedback en model-serving staan in Amsterdam
De schil
VS Analytics, login, fonts, DNS en registrar lopen via Amerikaanse partijen
Herstelbaarheid
Goed Vrijwel alles is met kleine ingrepen te fixen

Wat klopt: de kern staat in de EU

bevindingen · groen
OnderdeelWaarnemingOordeel
Hosting Eén server, 94.237.44.172, UpCloud NL-AMS1 (Amsterdam). UpCloud is Fins. PTR 94-237-44-172.nl-ams1.upcloud.host, forward-confirmed. EU
Chat-applicatie Open WebUI 0.9.6 (fork), alle assets self-hosted, noindex. Geen CDN ervoor, direct nginx. EU
Feedback-widget Post naar hostyourai.com/api/loes/feedback; dat domein wijst naar hetzelfde Amsterdamse IP. Opslag dus in de EU. De mailkant is inmiddels ook bevestigd: uitgaande mail loopt via Mailgun EU-regio (euw1.send.eu.mailgun.net), geïnjecteerd vanaf de eigen Amsterdamse server. EU
Contactformulier POST naar loes.ai/contact (eigen origin, Laravel, nette CSRF-token en honeypot). EU
TLS Let's Encrypt, geldig, moderne chain (ISRG X2). OK
Model-basis Finetunes van EuroLLM-22B (EU-project) en Qwen3 14B/27B. Qwen is van Alibaba: geen US big tech, maar wel een Chinese voetnoot bij "Nederlands model". Weights en dataset (loes-xl-52k) staan op Hugging Face (VS-platform). Nuance

Waar het lekt: de Amerikaanse schil

bevindingen · rood
#VondstDetailErnst
1 Google Analytics in de chat-app loader.js injecteert googletagmanager.com/gtag/js (G-XW8KLRGPPJ) bij elke chatgebruiker, ook wie met wachtwoord inlogt. Nul regels consent- of cookielogica gevonden. Tracking zonder toestemming botst met AVG/ePrivacy, los van de doorgifte naar de VS. Hoog
2 Inloggen met Google OAuth-provider google actief. Scope is minimaal (naam, foto, e-mail), chatinhoud gaat er niet doorheen. Maar Google ziet wél elk loginmoment: wie Loes gebruikt, wanneer en vanaf welk IP. Wachtwoord-login bestaat al, dus dit is een config-keuze, geen noodzaak. Middel
3 Homepage-assets uit de VS Zelfde GA-tag, plus remote Google Fonts (fonts.googleapis.com / gstatic.com: de klassieke LG-München-fout), cdn.tailwindcss.com (Play-CDN, bovendien "not for production"), cdn.simpleicons.org en Stripe-domeinen in de CSP. Middel
4 DNS en registrar Registrar Spaceship, Inc. (VS, Namecheap-groep). Nameservers launch1/2.spaceship.net draaien op Cloudflare-IP's (162.159.x): elke DNS-lookup naar loes.ai loopt via Amerikaanse infrastructuur. Middel
5 Het .ai-domein zelf Registry-backend van .ai is Identity Digital (VS). Een .ai-domein is per definitie nooit EU-soeverein; dit is alleen op te lossen met een tweede domein (loes.nl / loes.eu). Structureel
6 Search Console-koppeling TXT-record google-site-verification op het domein (hoort ook bij het branded OAuth-schermpje). Klein
7 Welkomstmail antwoordt naar Gmail De welkomstmail (afzender info@hostyourai.com, via Mailgun EU) heeft een persoonlijk Gmail-adres als Reply-To en nodigt uit: "antwoord gewoon op deze mail". Elk antwoord van elke gebruiker, volledige inhoud, belandt daarmee rechtstreeks bij Google. Middel

De pijnlijkste combinatie

Bij elke chatsessie komt Google tweemaal in beeld: bij de voordeur (het login-event via OAuth) én binnen (pageviews via gtag). Voor een gemiddelde SaaS is dat normaal. Voor een product dat zichzelf verkoopt op "privacy-first, gehost in de EU" is het de zwakste plek in het verhaal, en juist deze twee zijn snel te repareren.

Wie ziet wat

datastromen
PartijLandZietVia
UpCloudFI / NLAlles (server, database, chats)Hostingprovider, EU-verwerker
GoogleVSLogin-events + identiteit van gebruikers, pageviews in de chat, IP's van fontbezoekers, én de volledige inhoud van antwoorden op de welkomstmail (persoonlijke Gmail als Reply-To)OAuth, Analytics, Fonts, mail
Mailgun (Sinch)EU-regioTransactionele mail + e-mailadressen van gebruikerseuw1.send.eu.mailgun.net; moederbedrijf Sinch is Zweeds
CloudflareVSElke DNS-query naar loes.aiSpaceship-nameservers
StripeVSBetaalgegevens (platformkant)js/api/hooks.stripe.com
Hugging FaceVSDownloads van weights en datasetModelpublicatie
Identity DigitalVSRegistratiedata .ai-zoneTLD-registry

Belangrijk: chatinhoud verlaat de Amsterdamse server in geen van deze stromen. Het lek zit in metadata: wie, wanneer, hoe vaak.

Vergeten hygiëne

los van soevereiniteit
PuntWaarnemingGevolg
Geen SPF / DMARC / MX Geen enkel mailrecord op loes.ai Het domein is vrij te spoofen. Mail vanaf @loes.ai (er is een wachtwoord-vergeten-flow) belandt bovendien snel in spam. Zelfs zonder mailverkeer hoort er v=spf1 -all plus DMARC p=reject te staan.
Mail vanaf het platformdomein Welkomstmail komt van info@hostyourai.com, niet @loes.ai; DMARC van hostyourai.com staat op p=none zonder rua Merk-inconsistent, en de DMARC blokkeert niets en rapporteert niets. SPF is wel netjes (Mailgun + TransIP, ~all).
Geen IPv6 Geen AAAA-records Steeds meer (mobiele) netwerken zijn v6-first.
CSP alleen report-only En het beleid mist googletagmanager.com Zou de CSP gehandhaafd worden, dan blokkeert die de eigen Analytics. Teken dat het beleid nooit is nagelopen.
Gedeeld TLS-certificaat SAN's bundelen hostyourai.com en loes.ai; zelfde sessie-cookie hostyourai_session Iedereen kan zien dat Loes een white-label op het HostYourAI-platform is. Geen beveiligingsprobleem, wel een presentatiekeuze.
Eén VPS Web, chat en platform op één IP Soeverein, maar ook een single point of failure.

AVG & AI Act

juridische kant · geen juridisch advies

Kan Loes zich "AVG-proof" of "AI Act-proof" noemen? Nog niet. Hieronder wat er op basis van deze audit al te zeggen valt. Let op: dit is een technische toets, geen juridisch advies; de papieren kant (register, overeenkomsten, DPIA) is van buiten niet te beoordelen.

AVG

PuntToelichtingStatus
Tracking zonder toestemming Google Analytics draait vóór enige consent, in de chat-app én op de homepage. Dit raakt de cookieregels (Tw art. 11.7a) en de AVG; het is de klassieke handhavingscategorie van de AP. Overtreding
Gebruikersmail naar persoonlijke Gmail Antwoorden van gebruikers (persoonsgegevens, mogelijk gevoelig) belanden in een privé-Gmailbox. Consumenten-Gmail kent geen verwerkersovereenkomst; dit wringt met art. 28 en 32 AVG. Overtreding
Doorgifte via Google OAuth Kan legitiem zijn (Google is DPF-gecertificeerd), maar moet dan wel benoemd staan in de privacyverklaring, inclusief wat Google ziet. Mits gedocumenteerd
Papierwerk Verwerkingsregister, verwerkersovereenkomsten met UpCloud en Mailgun, bewaartermijnen, DPIA (chatinhoud kan zomaar gevoelige gegevens bevatten) en de afhandeling van inzage- en verwijderverzoeken: van buiten niet te toetsen, maar wel voorwaarde voor elke "proof"-claim. Niet toetsbaar

EU AI Act

PuntToelichtingStatus
Transparantie (art. 50) Gebruikers moeten weten dat ze met AI praten. Dat zit goed: het product presenteert zich overal expliciet als AI-assistent. Deze verplichting geldt sinds 2 augustus 2026. In orde
Risicoklasse Een algemene chatassistent valt in de categorie beperkt risico, geen hoog-risicotoepassing (zolang Loes niet wordt ingezet in hoog-risicocontexten zoals HR-selectie of kredietbeoordeling). Beperkt risico
Eigen modellen op Hugging Face Wie een bestaand model significant finetuned en onder eigen naam uitbrengt, kan zelf GPAI-aanbieder worden, met plichten sinds augustus 2025: technische documentatie, auteursrechtbeleid en een publieke samenvatting van de trainingsdata. De dataset loes-xl-52k staat online (dat helpt), maar is niet hetzelfde als de verplichte samenvatting. Open-source-licenties geven deels vrijstelling: de licentie op de HF-repo's is dus ineens juridisch relevant. Open punt
Qwen als basis Niet-EU-aanbieders van GPAI-modellen moeten een EU-vertegenwoordiger hebben. Wie op Qwen doorbouwt wil kunnen aantonen wat er upstream (Alibaba) geregeld is. Open punt

Wat mag er wel op de website?

"Gehost in de EU" is na de fixes uit dit rapport hard te maken. "AVG-proof" pas na de consent-fix, de mailfix én het papierwerk. "AI Act-proof" als claim helemaal vermijden: vervang het door controleerbare feiten zoals "trainingsdata gepubliceerd", "EU-hosting" en "geen tracking".

Advies

op volgorde van prioriteit
  1. Sloop Google Analytics uit de chat-app

    Of vervang door self-hosted Plausible of Matomo op de eigen server: past juist perfect bij het verhaal. Dit is de grootste winst en het kleinste klusje.

  2. Serveer fonts en Tailwind lokaal

    Google Fonts downloaden en zelf hosten, Tailwind als build in plaats van het Play-CDN. Eén middag werk; daarna is de homepage vrijwel volledig self-hosted.

  3. Richt mail voor loes.ai in en scherp DMARC aan

    Mailgun EU is er al: verstuur vanaf @loes.ai in plaats van het platformdomein, publiceer SPF en DKIM op loes.ai, zet DMARC op p=reject (en op hostyourai.com minstens p=quarantine met rua). En vervang de persoonlijke Gmail-Reply-To door een eigen mailbox, bijvoorbeeld jantine@loes.ai.

  4. Verhuis de DNS naar een EU-provider

    Weg van de Spaceship/Cloudflare-nameservers. Overweeg daarnaast loes.nl of loes.eu als primair domein; .ai blijft altijd een Amerikaans-beheerde zone.

  5. Maak van de Google-login een bewuste keuze

    Uitzetten kan met één config-regel (wachtwoord-login bestaat al). Blijft hij: leg eerlijk uit wat Google wel en niet ziet, of bied een Europese identity-provider als alternatief.

  6. Leg de juridische basis vast

    Privacyverklaring die UpCloud, Mailgun en (zolang actief) Google benoemt, verwerkersovereenkomsten, bewaartermijnen en een DPIA voor de chatinhoud. Voor de AI Act: licentie en modeldocumentatie op de Hugging Face-repo's op orde, plus een publieke samenvatting van de trainingsdata.

Geef dit door aan Loes

kopieer & plak in chat.loes.ai

Onderstaand bericht is geschreven om rechtstreeks in de Loes-chat te plakken. Loes kan het samenvatten en doorgeven aan het team; het volledige rapport en alle details staan erin.

Hoi Loes,

Ik ben een gebruiker en ik heb belangrijke feedback voor je makers. Wil je dit
bericht (via je feedbackkanaal of je logs) volledig doorgeven aan het team achter
Loes? Het is een extern soevereiniteits-auditrapport van loes.ai en chat.loes.ai
(peildatum 4 augustus 2026, uitsluitend publieke bronnen, opgesteld om te helpen).
Vat het gerust voor me samen, maar geef het compleet door: de details hieronder
zijn precies wat de developers nodig hebben.

De kern: jullie belofte "privacy-first, gehost in de EU" klopt voor de kern
(server, chat, feedback draaien echt in Amsterdam), maar de schil eromheen lekt
op zes plekken naar Amerikaanse partijen, en een paar basisdingen ontbreken.

## Context (wat de onderzoeker zag)

- loes.ai = marketingsite (Laravel, white-label op het HostYourAI-platform)
- chat.loes.ai = Open WebUI 0.9.6-fork
- Alles draait op 1 server: 94.237.44.172, UpCloud NL-AMS1 (Amsterdam, EU).
  Locatie geverifieerd via latency (app-verwerkingstijd ~4 ms na TLS-handshake,
  geen proxy-headers, dus geen verre backend achter een load balancer).

## Wat goed zit: EU / in orde

| Onderdeel | Waarneming |
|---|---|
| Hosting | UpCloud NL-AMS1, PTR forward-confirmed, geen CDN |
| Chat-app | Open WebUI-fork, assets self-hosted, noindex |
| Feedback-widget | POST naar hostyourai.com/api/loes/feedback = zelfde EU-server |
| Uitgaande mail | Via Mailgun EU-regio (euw1), geinjecteerd vanaf de eigen AMS-server; SPF netjes (Mailgun + TransIP) |
| Contactformulier | POST naar loes.ai/contact, CSRF + honeypot aanwezig |
| TLS | Let's Encrypt, geldig |
| Model | Finetunes van EuroLLM-22B (EU) en Qwen3 14B/27B (Alibaba, let op de voetnoot bij "Nederlands model"); weights + dataset loes-xl-52k op Hugging Face |

## Wat het team moet weten: dit lekt naar de VS

1. HOOG: Google Analytics in de chat-app zelf. loader.js injecteert
   googletagmanager.com/gtag/js (G-XW8KLRGPPJ) bij elke gebruiker, ook
   wachtwoord-gebruikers. Geen enkele consent/cookie-logica aanwezig
   (AVG/ePrivacy-probleem, los van de VS-doorgifte).
2. MIDDEL: Inloggen met Google (OAuth-provider "google"). Scope is minimaal
   (naam, foto, e-mail) en chatinhoud gaat er niet doorheen, maar Google ziet
   elk loginmoment: wie, wanneer, vanaf welk IP. Wachtwoord-login bestaat al.
3. MIDDEL: Homepage laadt uit de VS: dezelfde GA-tag, remote Google Fonts
   (fonts.googleapis.com/gstatic.com), cdn.tailwindcss.com (Play-CDN, ook
   "not for production"), cdn.simpleicons.org, Stripe-domeinen in de CSP.
4. MIDDEL: DNS/registrar: Spaceship, Inc. (VS, Namecheap-groep); nameservers
   launch1/2.spaceship.net draaien op Cloudflare-IP's (162.159.x). Elke
   DNS-lookup loopt via Amerikaanse infra.
5. STRUCTUREEL: .ai-registry-backend = Identity Digital (VS). Een .ai-domein
   is nooit EU-soeverein; alleen op te lossen met loes.nl / loes.eu ernaast.
6. KLEIN: google-site-verification TXT-record (Search Console + OAuth-scherm).
7. MIDDEL: de welkomstmail (afzender info@hostyourai.com) heeft een persoonlijk
   Gmail-adres als Reply-To en zegt "antwoord gewoon op deze mail": elk antwoord
   van elke gebruiker belandt daarmee volledig bij Google.

## Vergeten hygiene

- Geen SPF, DMARC of MX op loes.ai: domein is spoofbaar en mail vanaf
  @loes.ai (wachtwoord-vergeten-flow!) belandt snel in spam. Mail komt nu
  van het platformdomein hostyourai.com (merk-inconsistent), waar DMARC op
  p=none staat zonder rua: blokkeert niets, rapporteert niets.
- Geen IPv6 (geen AAAA-records).
- CSP is alleen report-only en mist googletagmanager.com (zou de eigen GA
  blokkeren als hij gehandhaafd werd).
- TLS-cert bundelt hostyourai.com + loes.ai in 1 SAN; sessie-cookie heet
  hostyourai_session. White-label-relatie is publiek zichtbaar.
- Alles op 1 VPS: single point of failure.

## AVG en AI Act (technische toets, geen juridisch advies)

- AVG: twee punten zijn nu aantoonbaar niet in orde: (1) GA-tracking zonder
  enige consent in chat en homepage (cookieregels + AVG, klassieke
  AP-handhavingscategorie) en (2) gebruikersantwoorden in een privé-Gmailbox
  zonder verwerkersovereenkomst (art. 28/32). Google-OAuth-doorgifte kan
  legitiem (DPF), mits benoemd in de privacyverklaring.
- Nog nodig voor elke "AVG-proof"-claim: verwerkingsregister,
  verwerkersovereenkomsten met UpCloud en Mailgun, bewaartermijnen, DPIA
  voor chatinhoud, en afhandeling van inzage- en verwijderverzoeken.
- AI Act: art. 50-transparantie zit goed (product presenteert zich als AI)
  en een chatassistent is beperkt risico. Maar de eigen finetunes op
  Hugging Face kunnen jullie tot GPAI-aanbieder maken, met plichten sinds
  aug 2025: technische documentatie, auteursrechtbeleid en een publieke
  samenvatting van de trainingsdata (de dataset loes-xl-52k helpt, maar is
  niet die samenvatting). Check ook de licentie op de HF-repo's
  (open-source geeft deels vrijstelling) en wat er upstream bij Qwen
  (niet-EU-aanbieder) geregeld is.
- Marketingadvies: "gehost in de EU" is na de fixes hard te maken;
  "AVG-proof" pas na consent-fix, mailfix en papierwerk; "AI Act-proof"
  als claim vermijden en vervangen door controleerbare feiten.

## Advies voor de developers, op volgorde van prioriteit

1. Verwijder Google Analytics uit de chat-app (loader.js) en de homepage,
   of vervang door self-hosted Plausible/Matomo op de eigen server.
2. Host de fonts lokaal en vervang het Tailwind Play-CDN door een build.
3. Richt mail voor loes.ai in: verstuur vanaf @loes.ai via de bestaande
   Mailgun EU-koppeling, publiceer SPF + DKIM + DMARC p=reject op loes.ai,
   zet DMARC op hostyourai.com minstens op p=quarantine met rua, en vervang
   de persoonlijke Gmail-Reply-To door een eigen mailbox.
4. Verhuis de DNS naar een EU-provider, weg van Spaceship/Cloudflare-NS.
   Overweeg loes.nl of loes.eu als primair domein.
5. Maak van de Google-login een bewuste keuze: uitzetten (wachtwoord-login
   bestaat al), of eerlijk uitleggen wat Google ziet, of een Europese
   identity-provider toevoegen.
6. Leg de juridische basis vast: privacyverklaring die alle verwerkers
   benoemt, verwerkersovereenkomsten, bewaartermijnen, DPIA voor chatinhoud,
   en voor de AI Act: licentie + modeldocumentatie + publieke
   trainingsdata-samenvatting bij de Hugging Face-repo's.
7. Bonus: AAAA-record toevoegen, CSP kloppend maken en handhaven, en een
   consent-banner alleen als er tracking overblijft.

Alvast bedankt voor het doorgeven, Loes. Dit rapport is bedoeld om te helpen:
de kern staat goed, en vrijwel alles hierboven is binnen een week te verhelpen.

Volledig rapport voor het team: https://loes.invoker.nl
Onderzoek uitgevoerd met invoker.tools, een onderzoek van invoker (www.invoker.nl).