← Blog Agentur-Playbooks • 9 Min. Lesezeit Wie Agenturen 40+ isolierte Staging- und Produktions-Apps für Kunden auf Hetzner-Servern für 60 $/Monat betreiben (mit automatischen PR-Previews und sauberer Kundenübergabe)
Jede Agentur, die Kundenarbeit hostet, stößt irgendwann auf dieselbe Wand: Die Hosting-Rechnung wächst mit der Kundenliste, aber der eigene Preis der Agentur an den Kunden tut das nicht. Eine Plattform, die pro Sitzplatz, pro Projekt oder pro Gigabyte berechnet, macht jeden neuen Kunden zu einer kleineren Marge als den letzten, bis Hosting der Posten ist, den der Kunde auf der Rechnung hinterfragt. Diese Rechnung ist der eigentliche Grund, warum Agenturen nach einer Alternative suchen, nicht eine Abneigung gegen Vercel oder Render als Produkte.
Die Lösung ist keine günstigere Plattform pro Sitzplatz. Es geht darum, überhaupt nicht pro Kunde abzurechnen. Unten ist ein durchgerechnetes Beispiel: 20 Kunden, jeder mit einer Staging- und einer Produktionskopie seiner App (40 laufende Umgebungen), voneinander isoliert, mit echten Hetzner-Serverpreisen und einem pauschalen Railyard-Teampreis, verglichen mit dem, was dieselben 40 Umgebungen auf Vercels oder Renders eigenen veröffentlichten Plänen kosten würden.
TL;DR
| Vercel | Render | Railyard + Hetzner | |
|---|---|---|---|
| Preismodell | Pro: 20 $/Monat pro Mitglied, inklusive 20 $ Nutzung, danach nutzungsbasiert | Pro-Workspace: pauschal 25 $/Monat + Rechenleistung ab ~7 $/Monat pro Service | 99 $/Monat Team, pauschal, unbegrenzte Server und Apps |
| 40 laufende Kundenumgebungen | Nicht pro App bepreist: Die Kosten sind Nutzung (Bandbreite, Funktionsaufrufe) über alle 40 hinweg, genau dort überschreiten Agenturen den Basisplan | 40 Services × ~7 $/Monat Minimum = 280 $/Monat Rechenleistung + 25 $ Workspace = 305 $/Monat Grundkosten, noch bevor ein Service mehr als die günstigste Instanz braucht | Enthalten in der Pauschalgebühr; die einzigen zusätzlichen Kosten sind die Server selbst |
| Ein Kunde, der SSO braucht | SAML-SSO ist ein Add-on für 300 $/Monat zusätzlich zu Pro | Scale-Plan (pauschal 499 $/Monat) fügt SSO und SCIM hinzu | Enthalten bei 99 $/Monat Team |
| Serverkosten für 40 Umgebungen | Nicht zutreffend (kein Server, es ist Vercels Infrastruktur) | Nicht zutreffend (kein Server, es ist Renders Infrastruktur) | 10 Hetzner-CX23-Server (2 vCPU, 4 GB, je 5,99 €/Monat) = 59,90 €/Monat, direkt von Hetzner abgerechnet |
| Isolierung pro Kunde | Projektebene, gemeinsame Plattform | Serviceebene, gemeinsame Plattform | Ein dedizierter Server (oder eine Umgebung) pro Kunde, privates Netzwerk, separate Datenbank |
Allein die Render-Zeile überschreitet 500 $/Monat, noch bevor die App eines einzigen Kunden mehr RAM braucht, als Renders Starter-Instanz gibt. Die Vercel-Zeile hat keine saubere Zahl pro App, weil ihre Abrechnung nicht pro App erfolgt, und genau das ist das Problem: Eine Agentur kann einem Kunden keine Hosting-Kosten aus Vercels Preisseite nennen, nur aus der Rechnung des letzten Monats.
Warum Abrechnung pro Sitzplatz und pro App speziell für eine Agentur nicht funktioniert
Ein Team mit einem einzigen Produkt auf Vercel oder Render zahlt für seine eigene Nutzung. Eine Agentur zahlt für die Nutzung von zwanzig verschiedenen Kunden auf einem Account, und jeder Traffic-Spike, jeder fehlgeschlagene Build und jeder Preview-Deploy dieser Kunden landet auf der eigenen Rechnung der Agentur, nicht auf der des Kunden. Renders Zahl von 7 $/Monat ist ein Startpreis für die kleinste Instanzgröße; die echte Produktions-App eines Kunden, die tatsächlich seine Kunden bedient, braucht mehr als das, sobald sie kein Spielzeug ist. Multipliziere jede realistische Zahl pro Service mit 40 laufenden Umgebungen, und die Agentur verwaltet eine Rechnung, die sich jeden Monat aus Gründen bewegt, die nichts mit der eigenen Arbeit der Agentur zu tun haben.
Railyards Team-Plan für 99 $/Monat ist pauschal: unbegrenzte Server und Apps, Deploy-Freigaben, Single Sign-on und SCIM, und ein Audit-Log, zu einem Preis, unabhängig davon, wie viele Kunden auf dem Account sind. Die einzige Zahl, die sich bewegt, ist das, was Hetzner, DigitalOcean oder welcher Anbieter auch immer die Agentur schon nutzt, für die Server selbst verlangt, und diese Rechnung kommt direkt vom Anbieter, ohne irgendetwas obendrauf.
Das Isolationsmodell: ein Kunde, ein Server (oder eine Umgebung)
Es gibt zwei ehrliche Wege, Kundenarbeit auf Railyard zu isolieren, und welcher passt, hängt vom Kunden ab.
Ein dedizierter Server pro Kunde. Die Agentur verbindet einen Hetzner- (oder DigitalOcean-, Vultr-, AWS-)Account, und jeder Kunde bekommt seinen eigenen Server. Seine Staging- und Produktions-Apps, seine Datenbank, seine Logs, alles lebt auf dieser einen Maschine, ohne dass irgendetwas vom Account eines anderen Kunden auch nur in der Nähe ist. Das ist das einfachste Modell, um es einem Kunden zu erklären, der fragt, “wo leben meine Daten,” und es ist das, das die durchgerechnete Tabelle unten nutzt.
Ein gemeinsamer Server, eine Umgebung pro Kunde. Für kleinere Kunden, bei denen ein dedizierter Server übertrieben ist, können sich mehrere Kundenprojekte einen Server teilen. Die Isolierung hält trotzdem: Jede App bekommt ihre eigene Datenbank, provisioniert pro App mit eigenem Nutzer und eigenen Zugangsdaten, und der private Name jeder App (<name>.railyard.internal) löst sich nur zum eigenen Container dieser App auf: Eine Referenz zwischen den Apps zweier verschiedener Kunden existiert schlicht nicht, es gibt keinen gemeinsamen Netzwerkpfad, den man falsch konfigurieren könnte. Netzwerk behandelt, wie diese private Auflösung über Server hinweg tatsächlich funktioniert, sobald privates Netzwerk für das Team aktiviert ist.
In beiden Fällen sind Umgebungen vollständige Kopien eines Projekts: Eine Umgebung zu aktivieren gibt einem Kunden eine echte Staging-Kopie mit eigener Datenbank, keine gemeinsam genutzte Sandbox, die zufällig denselben Code hat.
Die durchgerechnete Kostentabelle: 40 Umgebungen, 60 $/Monat Hetzner
Zehn Hetzner-CX23-Server (2 vCPU, 4 GB RAM, 40 GB Festplatte, je 5,99 €/Monat, Hetzners günstigster Shared-vCPU-Plan zum Zeitpunkt dieses Schreibens) kommen auf 59,90 €/Monat, direkt von Hetzner abgerechnet. Setze einen Kunden auf jeden Server, mit einem Web-Prozess und einem Worker, jeweils mit einer Staging- und einer Produktionskopie:
| Pro Kunde | × 10 Kunden | |
|---|---|---|
| Services | Web + Worker | 20 Prozesse |
| Umgebungen | Staging + Produktion | 40 laufende Apps |
| Server | 1 dedizierter Hetzner CX23 (5,99 €/Monat) | 59,90 €/Monat gesamt |
Vier Container pro Kunde klingt knapp bei 4 GB RAM, und das wäre es auch, wenn alle vier gleichzeitig unter Volllast liefen. Das tun sie nicht: Staging-Umgebungen schlafen standardmäßig nach 30 Minuten ohne Traffic ein und geben RAM für die Produktion zurück, die Maschine eines Kunden muss also die meiste Zeit nur ihre Produktionslast tragen, plus gelegentlichen Staging-Traffic, wenn die Agentur oder der Kunde tatsächlich hinschaut. Das ist genug Spielraum für die Art von Kundenarbeit, die die meisten Agenturen betreiben (Marketing-Sites, kleine interne Tools, frühe Produkte), nicht für einen Kunden, dessen Produktions-App schon unter schwerer Last steht, genau der Kunde, dem du eine größere Maschine oder einen eigenen Server geben würdest.
Skaliere das über 10 Kunden hinaus, und die einzige Zahl, die sich ändert, ist, wie viele Hetzner-Server die Agentur mietet, zu Hetzners Preis, ohne Aufschlag. 20 Kunden sind 20 Server für etwa 120 €/Monat; die Railyard-Seite der Rechnung bleibt pauschal bei 99 $/Monat, egal ob das 10 Kunden oder 200 sind.
PR-Previews, die Kunden wirklich verstehen
Mit verbundenem GitHub und aktivierten Previews für eine App bekommt jeder Pull Request seine eigene Live-Kopie, automatisch entfernt, wenn der PR geschlossen wird. Das ist eine URL, die die Agentur direkt in einen Kunden-Slack-Thread oder eine E-Mail setzen kann, etwa “hier ist das Homepage-Redesign, klick dich durch,” ohne für jede Feedbackrunde von Hand einen separaten Staging-Deploy hochzufahren. Das ist bei Pro und Team enthalten, kein Posten, der auftaucht, sobald der Agentur-Account irgendeine Nutzungsschwelle überschreitet.
Saubere Übergabe, wenn das Projekt endet
Am Ende eines Engagements können zwei verschiedene Dinge passieren, und das sind nicht dieselben Features.
Wenn die Arbeit jedes Kunden innerhalb des eigenen Teams der Agentur gelebt hat, ist an der Übergabe nichts automatisch: Die Agentur behält die Server, oder überträgt den Besitz des jeweiligen Servers und der App-Einträge von Hand auf den eigenen Account des Kunden.
Wenn die Agentur stattdessen Kunden-Workspaces genutzt hat (ein Feature des Agency-Plans für 199 $/Monat, das Kunden-Workspaces unter einer Agenturrechnung hinzufügt, zusätzlich zu allem, was Team enthält: SSO, SCIM, Deploy-Freigaben, Audit-Log, in jeden Workspace repliziert), lebt jeder Kunde von Tag eins an schon in seinem eigenen Team, mit eigenen Servern, die auf seinen eigenen Cloud-Account abgerechnet werden. Das Engagement zu beenden ist eine Kundenübergabe: Die Agentur lädt die eigene E-Mail-Adresse des Kunden als neuen Besitzer dieses Workspaces ein, und der Kunden-Workspace trennt sich sauber von der Abrechnung und dem Admin-Zugriff der Agentur. Der Kunde endet damit, genau die Infrastruktur zu besitzen, auf der er schon lief, nicht mehr.
Team für 99 $/Monat ist die richtige Wahl für eine Agentur, die einen Ort will, um die Apps jedes Kunden unter ihrem eigenen Account zu verwalten, mit dem Margenvorteil eines festen Preises. Agency für 199 $/Monat ist die richtige Wahl, sobald “dem Kunden seine eigene Rechnung und einen sauberen Ausstieg geben” tatsächlich Teil davon ist, wie die Agentur Engagements verkauft.
Teams, SSO und das Audit-Log
Sobald der eigene Sicherheits-Review eines Kunden nach Single Sign-on fragt, antwortet Vercel mit einem Add-on für 300 $/Monat, und Render antwortet, indem es die Agentur auf seinen Scale-Plan für 499 $/Monat drängt. Bei Railyards Team-Plan sind SSO über OpenID Connect oder SAML, SCIM-Provisionierung und das Audit-Log, das jeden Deploy, jede Variablenänderung und jede Freigabe aufzeichnet, schon bei 99 $/Monat enthalten. Siehe Teams, SSO und Zugriff, wie OpenID Connect, SAML und SCIM tatsächlich verdrahtet sind, und wie Team-SSH-Schlüssel zu jedem Server in ihrem eigenen verwalteten Block hinzugefügt werden, ohne Schlüssel anzufassen, die die Agentur selbst hinzugefügt hat.
Für wen das wirklich gedacht ist
Das ist kein Pitch für jede Agentur. Eine Agentur, die zwei oder drei Kunden auf einem Server betreibt, bei der niemand nach SSO fragt, braucht wahrscheinlich nichts davon; der kostenlose Plan oder ein einzelnes Pro-Team deckt das gut ab. Das ist für die Agentur, die schon 500 $ oder mehr im Monat über Kundenprojekte auf einer Plattform pro Sitzplatz zahlt, eine Rechnung verwaltet, die sich aus Gründen außerhalb ihrer Kontrolle bewegt, und die Hosting-Kosten will, die sie einem Kunden tatsächlich aus einer Preisliste nennen kann, statt aus der Rechnung des letzten Monats. Siehe Preise für die vollständige Plan-Übersicht, oder Agenturen für den Rest dessen, was der Agency-Plan enthält.
FAQ
Brauche ich den Agency-Plan, oder deckt Team das ab?
Team (99 $/Monat) deckt unbegrenzte Server und Apps, SSO, Deploy-Freigaben und ein Audit-Log unter einem Account ab, genug für eine Agentur, die die Apps jedes Kunden selbst verwaltet. Agency (199 $/Monat) fügt Kunden-Workspaces hinzu: separate Workspaces pro Kunde, jeder mit Teams eigenen Features, sauber an den Kunden übergeben, wenn das Engagement endet.
Braucht jeder Kunde seinen eigenen Server?
Nein. Ein dedizierter Server pro Kunde ist das einfachste Modell und das, das die durchgerechnete Tabelle dieses Beitrags nutzt, aber kleinere Kunden können sich einen Server teilen, jeder mit eigener Umgebung, Datenbank und privatem Namen, voneinander isoliert, ohne dass jeder eine dedizierte Maschine braucht.
Was passiert mit der App eines Kunden, wenn der Railyard-Account der Agentur gekündigt wird?
Die App ist ein Container auf einem Server, der vom eigenen Cloud-Anbieter der Agentur abgerechnet wird; eine Kündigung des Railyard-Abos stoppt sie nicht. Ein Kunden-Workspace, der bereits an den Kunden übergeben wurde, ist von irgendetwas, das auf dem eigenen Account der Agentur passiert, überhaupt nicht betroffen, da es bis dahin ein separates Team ist.
Wie ist das günstiger als Render, wenn man die Serverkosten dazurechnet?
Es ist nicht automatisch günstiger für einen Kunden; es ist günstiger im großen Maßstab, weil Railyards Gebühr nicht pro Kunde wächst, wie es Renders Rechenleistung pro Service tut. Zehn Kunden kosten 99 $/Monat plus etwa 60 €/Monat an Hetzner-Servern; zwanzig Kunden kosten dieselben 99 $/Monat plus etwa 120 €/Monat an Servern. Renders Rechenleistungsposten wächst mit jedem hinzugefügten Service, zusätzlich zu einer Workspace-Gebühr von 25 $ oder 499 $.
Kann ich bestehende Kunden von Vercel oder Render umziehen?
Ja, gezielt für Heroku, Render, Railway und Fly.io. Der Import von einer anderen Plattform bringt Konfiguration, Prozesstypen und verwaltete Datenbanken direkt aus einem API-Token mit. Vercel-Projekte ziehen als frischer Deploy aus dem Repository des Kunden um, statt als automatisierter Import, da Vercels eigene API nicht dieselbe Konfiguration auf Prozessebene offenlegt wie die anderen.