Infrastructuur
Laatst bijgewerkt: mei 2026
Op deze pagina beschrijven we hoe de infrastructuur achter Privé Wellness is opgebouwd: welke onderdelen er zijn, met welke technologie ze draaien en waar ze staan. Het doel is dat je een helder beeld krijgt van waar je gegevens worden verwerkt, zonder dat je daarvoor diep in de techniek hoeft te duiken.
Opbouw van de infrastructuur
Privé Wellness is een Symfony-applicatie (PHP 8.1+) die als Docker-containers draait. De onderstaande tabel geeft de belangrijkste onderdelen weer.
| Onderdeel | Technologie | Locatie |
|---|---|---|
| Applicatie | Symfony 6.4 / PHP 8.1+, in Docker | Hetzner, Neurenberg (Duitsland) |
| Database | PostgreSQL | Hetzner, Neurenberg (Duitsland) |
| Zoekindex | Elasticsearch (FOSElasticaBundle) | Hetzner, Neurenberg (Duitsland) |
| Bestandsopslag | Flysystem (lokaal op de VPS) | Hetzner, Neurenberg (Duitsland) |
| Betalingen | Stripe (incl. Connect) | Stripe (EU) |
| Postmark | Postmark | |
| AI-helpdesk | AWS Bedrock | AWS, EU-regio |
Hosting & uitrol
De applicatie wordt verpakt als Docker-image en uitgerold via Coolify, dat draait op een beheerde VPS bij Hetzner in Neurenberg (Duitsland). Coolify regelt het bouwen, starten en bijwerken van de containers. Bij een nieuwe versie wordt een nieuw image uitgerold; loopt er iets mis, dan kunnen we terug naar de vorige versie.
Omdat alles in containers draait, is de omgeving reproduceerbaar: dezelfde image die we testen kunnen we ook in productie zetten, zonder handmatige aanpassingen op de server.
Database & zoekindex
De gegevens van bookings, gebruikers, betalingen en overige bedrijfslogica liggen in een PostgreSQL-database. Voor zoekfunctionaliteit gebruiken we Elasticsearch, aangestuurd via de FOSElasticaBundle. De zoekindex is afgeleide data: hij wordt opgebouwd vanuit de informatie in PostgreSQL en kan opnieuw worden aangemaakt als dat nodig is.
Bestandsopslag
Bestanden (zoals afbeeldingen van locaties en units) worden beheerd via Flysystem, een laag die de opslag abstraheert. Bestanden worden lokaal op de VPS opgeslagen; we gebruiken geen externe opslagdienst zoals AWS S3. Dankzij de Flysystem-laag kunnen we later van opslaglocatie wisselen zonder de applicatiecode te wijzigen.
Betaal- en e-mailinfrastructuur
Betalingen verlopen volledig via Stripe, inclusief Stripe Connect voor uitbetalingen aan locatie-eigenaren. Kaartgegevens komen niet op onze eigen infrastructuur terecht: het invoeren en verwerken van betaalgegevens gebeurt bij Stripe. Wij bewaren alleen de verwijzingen en statussen die we nodig hebben om bookings en uitbetalingen te koppelen.
Transactionele e-mail (bevestigingen, herinneringen en dergelijke) versturen we via Postmark. De volledige lijst van externe partijen waar we mee werken, met hun rol en locatie, staat op de pagina subverwerkers.
Back-ups
Van de database maken we elke dag een back-up, die we 30 dagen bewaren. Zo kunnen we de gegevens herstellen na een storing of een fout. De zoekindex back-uppen we niet apart, omdat die opnieuw uit de database is op te bouwen.
Gescheiden omgevingen
We werken met gescheiden omgevingen voor productie, test en ontwikkeling. Wijzigingen worden eerst in een test- of ontwikkelomgeving beproefd voordat ze naar productie gaan. Test- en ontwikkelomgevingen draaien op losse data en raken de gegevens van echte gebruikers niet.
Locatie van de data
De VPS staat bij Hetzner in Neurenberg (Duitsland), en de AI-helpdesk draait op AWS Bedrock in een EU-regio. De kerninfrastructuur — applicatie, database, zoekindex en back-ups — staat dus volledig binnen de Europese Unie. Een aantal subverwerkers verwerkt gegevens (mede) buiten de EU; welke dat zijn en met welke waarborgen, staat op de pagina subverwerkers.
Toegangsbeheer
Toegang tot de productieomgeving is beperkt tot de mensen die deze nodig hebben voor beheer en onderhoud. Beheer verloopt via Coolify en via beveiligde verbindingen met de server. De manier waarop we beveiliging en toegang inrichten staat verder beschreven op de pagina beveiliging.
Wijzigingen
Onze infrastructuur ontwikkelt mee met de applicatie. Als er iets verandert dat voor jou relevant is, passen we deze pagina aan en werken we de datum bovenaan bij. De afspraken over beschikbaarheid en onderhoud vind je op de pagina beschikbaarheid.