Me­du­sa self-hos­ted auf Hetz­ner: TCO und Da­ten­sou­ve­rä­ni­tät ehr­lich ge­rech­net

Me­du­sa ist Post­greS­QL-na­tiv und voll­stän­dig self-host­bar. Auf Hetz­ner mit Coo­li­fy und Do­cker läuft der Com­mer­ce-Stack DSGVO-kon­form in Deutsch­land – und rech­net sich ge­gen SaaS plus Trans­ak­ti­ons­ge­büh­ren ab ei­nem kla­ren Um­satz­punkt. Was der Wech­sel wirk­lich kos­tet und wann er sich lohnt.
6 Min. LesezeitMatthias RadscheitMatthias Radscheit
Happycodingde-DE

TL;DR

Medusa läuft PostgreSQL-nativ und vollständig self-hosted auf Hetzner mit Coolify und Docker – DSGVO-konform in Deutschland. Gegen SaaS plus Transaktionsgebühren rechnet sich das ab einem bestimmten Umsatz, weil Fixkosten pro Bestellung sinken statt zu steigen. Bestell- und Kundendaten bleiben unter eigener Kontrolle. Voraussetzung: vorhandene Ops-Kompetenz und ehrlich eingepreiste eigene Stunden.

  • Medusa erhebt als Open-Source-Software selbst keine Transaktionsgebühr – es fallen nur Infrastruktur- und Payment-Provider-Kosten an. Genau hier entsteht der TCO-Vorteil gegenüber SaaS mit umsatzabhängigen Gebühren.
  • Der Produktiv-Stack braucht zwingend PostgreSQL und Redis, einen Server- und einen Worker-Prozess und mindestens 2 GB RAM. Ein Hetzner AX41 (~39 €/Monat) deckt das mit Reserve ab.
  • Realistisches 3-Jahres-Gesamtbild für eine mittelständische App: 40.000–80.000 € inklusive Setup (einmalig 5.000–20.000 €) und Wartung (2–5 h/Monat). Self-hosted Kosten sinken pro Bestellung, SaaS-Gebühren steigen mit dem Umsatz.
  • Bei Self-Hosting liegen Bestellungen und PII in der eigenen PostgreSQL-Instanz im EU-Rechenzentrum – kein Drittstaatentransfer für die Kerndaten. Zahlungsdaten bleiben beim Payment-Provider (AVV nötig).
  • Der Break-even ist eine Betriebsentscheidung, keine reine Rechenaufgabe: Ohne Ops-Kompetenz und ehrlich eingepreiste eigene Stunden ist Managed im Gesamtaufwand günstiger.

Der größ­te Kos­ten­block im E-Com­mer­ce steht in kei­nem An­ge­bot ei­ner SaaS-Platt­form als Zei­le: die Trans­ak­ti­ons­ge­bühr, die mit je­dem Euro Um­satz mit­wächst. Wer sie ernst nimmt, kommt bei ei­nem Post­greS­QL-na­ti­ven Stack wie Me­du­sa her­aus, den man voll­stän­dig selbst be­treibt.

Me­du­sa ist Open-Source un­ter MIT-Li­zenz und er­hebt als Soft­ware kei­ne Um­satz- oder Trans­ak­ti­ons­ge­bühr. Es fal­len nur In­fra­struk­tur- und Pay­ment-Pro­vi­der-Kos­ten an. Das klingt nach ei­ner De­tail­fra­ge der Buch­hal­tung, ist aber eine stra­te­gi­sche Wei­chen­stel­lung: Sie ent­schei­den da­mit, ob Ihre Kos­ten­kur­ve mit dem Um­satz nach oben zieht oder ob sie flach bleibt und pro Be­stel­lung so­gar sinkt. Und Sie ent­schei­den, wo Ihre Be­stell- und Kun­den­da­ten lie­gen – in ei­ner selbst kon­trol­lier­ten Da­ten­bank in Deutsch­land oder bei ei­nem US-An­bie­ter. Bei­de Fra­gen hän­gen zu­sam­men, und bei­de be­ant­wor­tet man am ehr­lichs­ten mit ei­ner ech­ten Rech­nung statt mit ei­nem Ver­spre­chen.

Was braucht Me­du­sa self-hos­ted auf Hetz­ner wirk­lich?

Fan­gen wir mit der Rea­li­tät des Be­triebs an, nicht mit dem Mar­ke­ting. Ein pro­duk­ti­ver Me­du­sa-Stack braucht zwin­gend zwei Da­ten­ban­ken: Post­greS­QL als Com­mer­ce-Store und Re­dis für Cache, Event Bus, Lo­cking und die Work­flow-En­gi­ne. Der of­fi­zi­el­le Do­cker-Gui­de re­fe­ren­ziert post­gres:15-al­pi­ne und re­dis:7-al­pi­ne auf ei­nem node:20-al­pi­ne-Ba­sis­image. Das ist kein exo­ti­scher Stack, son­dern Stan­dard­hand­werk, das je­der Ops-Mensch kennt.

Dazu kommt eine Ei­gen­heit, die vie­le beim ers­ten TCO-Ver­gleich über­se­hen: Me­du­sa muss in Pro­duk­ti­on in zwei Modi lau­fen. Der Ser­ver-Mo­dus be­dient API und Ad­min, der Wor­ker-Mo­dus ar­bei­tet Back­ground-Jobs und Sub­scri­ber ab, ge­steu­ert über ME­DU­SA_WOR­KER_MODE. Bei­de Pro­zes­se brau­chen die­sel­ben Se­crets und die­sel­be Da­ten­bank­ver­bin­dung. Die of­fi­zi­el­le Emp­feh­lung liegt bei min­des­tens 2 GB RAM und Node.js v20+ als LTS.

Für die­se An­for­de­rung ist ein Hetz­ner AX41 für rund 39 €/Mo­nat kein Kom­pro­miss, son­dern groß­zü­gig di­men­sio­niert. Er trägt Post­greS­QL, Re­dis, bei­de Me­du­sa-Pro­zes­se und die Next.js-Store­front mit Re­ser­ve. Wir or­ches­trie­ren das über Coo­li­fy und Do­cker – Coo­li­fy ist bei Me­du­sa nur über Com­mu­ni­ty-Gui­des do­ku­men­tiert, nicht of­fi­zi­ell, aber das Mus­ter ist ge­rad­li­nig: Con­tai­ner de­fi­nie­ren, Pre­de­ploy-Mi­gra­ti­on via me­du­sa db:mi­gra­te, de­ploy­en. Of­fi­zi­ell do­ku­men­tiert ist als De­ploy­ment-Ziel Rail­way; wer die Kon­trol­le über die ei­ge­ne Ma­schi­ne will, lan­det aber bei ei­nem Root-Ser­ver.

Me­du­sa TCO ge­gen SaaS: Wo die Kur­ven sich kreu­zen

Jetzt die Zah­len, und zwar ehr­lich mit Band­brei­te statt mit er­fun­de­ner Prä­zi­si­on. Eine sau­be­re Erst­im­ple­men­tie­rung ei­nes self-hos­ted Me­du­sa-Stacks liegt ein­ma­lig bei 5.000–20.000 €, je nach In­di­vi­dua­li­sie­rung von Store­front, Mo­du­len und In­te­gra­tio­nen. Der lau­fen­de Be­trieb kos­tet rea­lis­tisch 2–5 Stun­den pro Mo­nat an War­tung – Up­dates, Mo­ni­to­ring, Back­ups prü­fen. Bei ei­nem Misch­satz von rund 120 € pro Ent­wick­ler­stun­de und der In­fra­struk­tur lan­det ein mit­tel­stän­di­scher Shop im 3-Jah­res-Ge­samt­bild bei etwa 40.000–80.000 €. Das ist der ehr­li­che TCO, in­klu­si­ve der Stun­den, die vie­le Rech­nun­gen un­ter­schla­gen.

Dem stel­len Sie die SaaS-Sei­te ge­gen­über. Shop­i­fy Plus star­tet laut of­fi­zi­el­ler Preis­sei­te (Stand Juli 2026, in EUR geo­lo­ka­li­siert) bei 2.250 €/Mo­nat im 1-Jah­res-Term be­zie­hungs­wei­se 2.100 €/Mo­nat bei 3 Jah­ren – als rei­ne Base-Fee. Das sind über drei Jah­re grob 75.000–81.000 € al­lein an Grund­ge­bühr, be­vor eine ein­zi­ge Trans­ak­ti­ons­ge­bühr an­fällt. Ge­nau die ist der Punkt: Nut­zen Sie ei­nen Fremd-PSP, zah­len Sie des­sen Ge­bühr plus 0,20 % pro Trans­ak­ti­on an Shop­i­fy. Mit Shop­i­fy Pay­ments ent­fällt die­ser Auf­schlag, da­für bin­den Sie sich an ein Gate­way. Die voll­stän­di­ge Rech­nung mit al­len Fuß­no­ten ha­ben wir im di­rek­ten Ver­gleich Me­du­sa ge­gen Shop­i­fy Plus auf­ge­macht.

Der ent­schei­den­de Ef­fekt ist die Rich­tung der Kur­ven. Self-hos­ted Fix­kos­ten sind weit­ge­hend kon­stant; pro Be­stel­lung sin­ken sie mit stei­gen­dem Vo­lu­men. Um­satz­ab­hän­gi­ge SaaS-Ge­büh­ren tun das Ge­gen­teil – sie ex­plo­die­ren mit dem Er­folg. Bei nied­ri­gem GMV liegt Ma­na­ged vorn, weil die Grund­last er­drü­ckend wirkt. Ab ei­nem be­stimm­ten Um­satz kreu­zen sich die Li­ni­en, und da­nach zah­len Sie bei SaaS für Ih­ren ei­ge­nen Er­folg. Die­sel­be Me­cha­nik – kon­stan­te In­fra­struk­tur ge­gen mit dem Ver­brauch ska­lie­ren­de Ma­na­ged-Ge­büh­ren – wie­der­holt sich über die An­bie­ter hin­weg, von der Da­ten­bank bis zum Com­mer­ce-Ba­ckend.

Da­ten­sou­ve­rä­ni­tät: Wem ge­hö­ren die Be­stell­da­ten?

TCO ist die eine Hälf­te der Ent­schei­dung, die an­de­re ist Kon­trol­le. Bei Self-Hos­ting lie­gen Be­stel­lun­gen, Kun­den­pro­fi­le und die ge­sam­te PII in ei­ner Post­greS­QL-In­stanz, die Sie kon­trol­lie­ren, in ei­nem Re­chen­zen­trum, das Sie wäh­len – bei Hetz­ner also in Deutsch­land. Für die Kern­da­ten Ih­res Shops gibt es da­mit kei­nen Dritt­staa­ten­trans­fer, kei­ne Dis­kus­si­on über den CLOUD Act, kei­ne Ab­hän­gig­keit von der je­weils ak­tu­el­len Rechts­la­ge zum trans­at­lan­ti­schen Da­ten­ver­kehr. Das ist Da­ten­sou­ve­rä­ni­tät E-Com­mer­ce im wört­li­chen Sinn: Die Da­ten ver­las­sen Ih­ren Kon­troll­be­reich nicht.

Ehr­lich bleibt: Voll­stän­dig ent­kommt nie­mand ex­ter­nen Ver­ar­bei­tern. Zah­lungs­da­ten lie­gen beim Pay­ment-Pro­vi­der. Mit dem Stri­pe-Pro­vi­der be­rüh­ren Kar­ten­da­ten den Me­du­sa-Ser­ver nicht – die Ein­ga­be läuft cli­ent­sei­tig über Stri­pe Ele­ments, das Ba­ckend er­hält nur To­kens und Pay­ment-Int­ents. Das qua­li­fi­ziert die Kar­ten­ver­ar­bei­tung nach PCI-DSS-Lo­gik in der Re­gel für den kleins­ten Fra­ge­bo­gen, SAQ A, so­fern Sie selbst kei­ne Kar­ten­da­ten spei­chern oder über­tra­gen. Die kon­kre­te Ein­stu­fung hängt von der In­te­gra­ti­ons­art ab, und beim self-hos­ted Be­trieb blei­ben Sie für Sco­ping, jähr­li­che At­tes­tie­rung und Ser­ver­ab­si­che­rung selbst ver­ant­wort­lich. Für Stri­pe und je­des ex­ter­ne Mo­dul – Ana­ly­tics, File-Sto­rage, No­ti­fi­ca­ti­ons – brau­chen Sie ei­nen AVV. Das ist eine ar­chi­tek­to­ni­sche Ein­ord­nung, kei­ne Rechts­be­ra­tung.

War­um das mehr ist als eine Com­pli­ance-Fuß­no­te, ha­ben wir in Sind un­se­re Da­ten in den USA noch si­cher? aus­führ­li­cher be­grün­det. Die Kurz­fas­sung: Wer die Kern­da­ten sei­nes Ge­schäfts auf frem­der In­fra­struk­tur in ei­nem Dritt­staat hält, kauft sich ein Ri­si­ko ein, das kei­ne Preis­lis­te aus­weist – und das im Ernst­fall teu­rer wird als jede Trans­ak­ti­ons­ge­bühr. Ein DSGVO Shop, des­sen Da­ten­hal­tung Sie selbst ver­ant­wor­ten, ist kein Ideo­lo­gie­pro­jekt, son­dern ge­leb­tes Ven­dor-Risk-Ma­nage­ment.

Der un­be­que­me Punkt: Self-Hos­ting ei­nes Shops ist Be­triebs­ver­ant­wor­tung mit Um­satz­ri­si­ko

Jetzt der Teil, den die Sou­ve­rä­ni­täts-Rhe­to­rik gern über­springt. Ein Shop ist kei­ne in­ter­ne An­wen­dung, bei der ein Aus­fall am Frei­tag­abend nie­man­den stört. Aus­fall heißt kein Ver­kauf. Jede Mi­nu­te Down­ti­me ist un­mit­tel­bar ent­gan­ge­ner Um­satz, und die Ver­ant­wor­tung da­für tra­gen Sie, nicht ein SLA von Shop­i­fy.

Das hat kon­kre­te Fol­gen. Sale-Traf­fic-Spit­zen – Black Fri­day, ein er­folg­rei­cher News­let­ter, ein vi­ra­ler Mo­ment – müs­sen Sie selbst ab­fan­gen. Up­time-Mo­ni­to­ring, Fail­over, Back­up-Res­to­re-Tests, Se­cu­ri­ty-Patching von Node, Post­greS­QL und Re­dis: All das liegt bei Ih­nen. Pay­ment bringt zu­sätz­lich PCI-Scope, den Sie ak­tiv ma­na­gen müs­sen. Ein ein­zel­ner AX41 ist für den Nor­mal­be­trieb groß­zü­gig, aber ein Sin­gle Point of Fail­ure; ech­te Re­si­li­enz be­deu­tet Red­un­danz, se­pa­ra­te Da­ten­bank, Read-Re­pli­cas – und die kos­tet. Ein hoch­ver­füg­ba­res Set­up liegt eher bei 150–400 €/Mo­nat statt bei 39 €.

Des­halb ist die Er­spar­nis kein Au­to­ma­tis­mus. Sie ist nur echt, wenn zwei Be­din­gun­gen er­füllt sind. Ers­tens: Es gibt Ops-Kom­pe­tenz im Haus oder bei ei­nem ver­läss­li­chen Part­ner – je­man­den, der um drei Uhr nachts weiß, war­um der Wor­ker-Pro­zess hängt. Zwei­tens: Die ei­ge­nen Stun­den sind ehr­lich ein­ge­preist. Wer den Be­trieb als „macht der Kol­le­ge ne­ben­bei" ver­bucht, ver­gleicht eine ge­schön­te Self-Hos­ting-Rech­nung mit ei­ner voll­stän­di­gen SaaS-Rech­nung und wun­dert sich spä­ter. Für ei­nen ein­fa­chen Stan­dard-B2C-Ka­ta­log ohne de­di­zier­tes Team ist der Bau­kas­ten schlicht über­di­men­sio­niert; da ist Ma­na­ged die ver­nünf­ti­ge Wahl.

Was ich Ent­schei­dern rate

Rech­nen Sie den Break-even mit Ih­ren ech­ten Zah­len, nicht mit ei­nem Fo­li­en­satz. Neh­men Sie Ih­ren er­war­te­ten GMV der nächs­ten drei Jah­re, tra­gen Sie die um­satz­ab­hän­gi­gen Ge­büh­ren als stei­gen­de Kur­ve ein und stel­len Sie die fla­che Self-Hos­ting-Li­nie da­ne­ben – in­klu­si­ve Set­up, War­tungs­stun­den zum vol­len Satz und der 150–400 €/Mo­nat für ein re­si­li­en­tes Set­up, nicht nur der 39 € für die Bas­tel­ma­schi­ne. Der Kreu­zungs­punkt ist Ihre Ent­schei­dungs­gren­ze, und er liegt für je­den an­ders.

Wenn Sie ober­halb die­ser Gren­ze lie­gen und die Ops-Kom­pe­tenz vor­han­den ist, ist der Fall klar: Me­du­sa ist Post­greS­QL-na­tiv, voll­stän­dig self-host­bar und läuft auf Hetz­ner mit Coo­li­fy und Do­cker DSGVO-kon­form in Deutsch­land. Sie spa­ren die Trans­ak­ti­ons­ge­bühr, die mit Ih­rem Er­folg wächst, und Sie be­hal­ten Ihre Be­stell- und Kun­den­da­ten un­ter ei­ge­ner Kon­trol­le. Lie­gen Sie dar­un­ter oder fehlt das Team, ist Ma­na­ged die ehr­li­che­re Ant­wort – kein Ge­sichts­ver­lust, son­dern Be­triebs­öko­no­mie. Die tech­ni­sche Tie­fe zu Ar­chi­tek­tur, Mo­du­len und Work­flows, die die­se Sou­ve­rä­ni­tät über­haupt trag­bar macht, fin­den Sie in un­se­rer Pil­lar-Über­sicht zu Me­du­sa als Head­less-Com­mer­ce-Platt­form.

Die ei­gent­li­che Fra­ge ist nicht „Self-hos­ted oder SaaS?", son­dern: Wol­len Sie, dass Ihre Kos­ten­kur­ve und Ihre Da­ten­ho­heit dem In­ter­es­se Ih­res Dienst­leis­ters fol­gen – oder Ih­rem ei­ge­nen? Wer die­se Fra­ge nicht stellt, hat sie trotz­dem be­ant­wor­tet.

Häufige Fragen

Was kostet Medusa self-hosted auf Hetzner wirklich?
Die Software selbst ist MIT-lizenziert und erhebt keine Transaktionsgebühr. Es fallen Infrastrukturkosten an – ein Hetzner AX41 liegt bei rund 39 €/Monat und deckt PostgreSQL, Redis, Server- und Worker-Prozess mit Reserve ab. Dazu kommen einmalig 5.000–20.000 € saubere Erstimplementierung und 2–5 h/Monat Wartung. Ein realistisches 3-Jahres-Gesamtbild für eine mittelständische App liegt bei 40.000–80.000 €. Der entscheidende Unterschied zu SaaS: Diese Kosten sind weitgehend fix und sinken pro Bestellung, während SaaS-Gebühren mit dem Umsatz steigen.
Ist ein self-hosted Medusa-Shop auf Hetzner DSGVO-konform?
Architektonisch ja: Bestellungen und personenbezogene Daten liegen in Ihrer eigenen PostgreSQL-Instanz im gewählten Rechenzentrum, etwa in Deutschland. Für die Kerndaten gibt es keinen Drittstaatentransfer. Zahlungsdaten bleiben beim Payment-Provider – für Stripe und externe Module wie Analytics oder File-Storage brauchen Sie einen Auftragsverarbeitungsvertrag. Das ist eine architektonische Einordnung, keine Rechtsauskunft; die konkrete Bewertung gehört zu Ihrem Datenschutz.
Ab wann lohnt sich Self-Hosting gegenüber Shopify oder Medusa Cloud?
Der Vorteil entsteht bei hohem Umsatz und/oder wenn ein Fremd-PSP im Spiel ist, weil dann umsatzabhängige Transaktionsgebühren den größten Kostenblock bilden. Für kleine Shops ohne Ops-Team ist Managed im Gesamtaufwand günstiger. Self-Hosting rechnet sich oberhalb klarer Umsatz- und Volumenschwellen – und nur, wenn Betriebskompetenz vorhanden ist und die eigenen Stunden ehrlich eingepreist werden.
Welche Infrastruktur braucht Medusa im Produktivbetrieb?
Zwingend PostgreSQL als Commerce-Store und Redis für Cache, Event Bus, Locking und Workflow-Engine. Medusa muss in zwei Modi laufen: Server-Modus für API und Admin, Worker-Modus für Background-Jobs. Empfohlen sind mindestens 2 GB RAM und Node.js v20+. Auf Hetzner betreiben wir das über Coolify und Docker – ein AX41 hat genug Reserve für alle Komponenten plus Storefront.

Quellen

Ähnliche Artikel

Offen für ausgewählte Projekte

Lassen Sie uns über Ihr Projekt sprechen

Bu­chen Sie ei­nen un­ver­bind­li­chen Ter­min, schrei­ben Sie uns eine E-Mail oder nut­zen Sie das For­mu­lar – wir freu­en uns auf Ihre Nach­richt.

150+
Abgeschlossene Projekte
15
Jahre Erfahrung
8
Senior‑Level Teammitglieder