TYPO3 Hosting
Hosting und Applikationsbetrieb in einem nahtlosen Gesamtpaket
Hosting für TYPO3 ist bei individuellen Setups immer mehr als „Server hinstellen und fertig“: Es braucht eine Infrastruktur, die zuverlässig läuft und technisch aktuell bleibt.
Viele Hoster liefern genau diesen Unterbau – die Verantwortung für Betrieb, Wartung und Pflege der Anwendung (TYPO3) liegt dann aber beim Betreiber. CosmoCode geht hier einen Schritt weiter: Wir verbinden Hosting und Applikationsbetrieb zu einem nahtlosen Gesamtpaket.
Grundlage sind Server in einem deutschen Rechenzentrum, z. B. bei Hetzner – wahlweise als klassisches Setup auf virtualisierten Systemen oder containerisiert (Kubernetes). Und wenn Sie bereits einen Hoster haben, schließen wir die Lücke mit einem Applikations-Support.
Unser Update-Prozess für TYPO3 ist weitgehend automatisiert: Mit Renovate, einem Tool zur intelligenten Dependency-Automatisierung, überwachen und aktualisieren wir den TYPO3 Core, Erweiterungen, Bibliotheken und Sicherheits-Patches kontinuierlich.
Ein automatisierter QS-/Test-Prozess gewährleistet, dass die Applikation mit den Updates weiterhin funktionsfähig ist, bevor die Übertragung auf die Staging-/Produktionsumgebung erfolgt.
Wie schnell eine TYPO3-Seite antwortet, entscheidet sich zu einem großen Teil im Betrieb: Cache-Warmup nach dem Deploy, Datenbank- und Webserver-Einstellungen. Was davon messbar etwas bringt, beschreiben wir unter TYPO3 schneller machen: erst messen, dann optimieren.
Planbarer Betrieb – mit fester Zuständigkeit.Leistungsbeschreibung: TYPO3 Hosting & Betrieb
Serverstandort Deutschland
Betrieb auf Servern in Deutschland (Hetzner, DE). Pro Projekt eine logisch getrennte Umgebung (z. B. eigene Instanz/Namespace/Container/VM – je nach Setup), damit Ressourcen, Zugriffe und Risiken separiert sind.
CPU/RAM/Storage werden passend zur erwarteten Last dimensioniert und können später skaliert werden. Je nach Projektprofil sind getrennte Komponenten für Datenbank, Objektspeicher (z.B. S3), Cache und Webserver möglich.
Staging- und Produktivsystem
Optional zwei Umgebungen: Staging (Test/Abnahme) und Produktion (Livebetrieb). Staging ist ein möglichst reales Abbild der Produktion (Konfiguration, PHP-Version, Extensions, Caching, Parameter), damit Updates und Deployments zuverlässig validiert werden können.
Änderungen werden zuerst im Staging geprüft und nach Freigabe in Produktion übernommen. Für geplante Releases können Wartungsfenster vereinbart werden; für kritische Security-Fixes gelten verkürzte Abläufe nach SLA. Bei Bedarf sind weitere Umgebungen möglich (z. B. für neue Schnittstellen).
Automatisierte Deployments (CI/CD)
Deployments erfolgen automatisiert und reproduzierbar (CI/CD) – inkl. Code, Konfiguration, Tests und ggf. Datenbankmigrationen. Der Prozess ist versioniert (Git), nachvollziehbar (Logs/Artefakte) und enthält eine Rollback-Strategie.
Ziel: standardisierte Releases mit weniger Handarbeit, weniger Risiko und schnellerer Reaktionsfähigkeit.
Backups & Wiederherstellung
Regelmäßige, automatisierte Backups vom Dateisystem (z. B. fileadmin, Konfiguration, ggf. Deploy-Artefakte) und der Datenbank. Zusätzlich: Einzeldatei-Wiederherstellung (Restore einzelner Dateien/Verzeichnisse) sowie kompletter Restore bei schweren Fehlern.
Der Applikations-Quellcode ist in einem Versionskontrollsystem (Git) abgelegt und erlaubt eine Wiederherstellung von früheren Zuständen der Code-Basis.
Backup-Frequenz und Aufbewahrungszeiten (Retention) werden gemeinsam definiert.
Updates & Security Maintenance
Einspielen von Updates für TYPO3 Core (Security-/Bugfix-/Maintenance-Releases der verwendeten LTS Version), Extensions (TER/Composer) und PHP/Composer Libraries (Dependencies). Updates werden zuerst im Staging eingespielt und per Smoke-Tests geprüft (Backend-Login, zentrale Seitentypen/Layouts, Formulare, Caching, Logs).
Nach Freigabe erfolgt der Rollout in Produktion. Für Security-Advisories gilt ein beschleunigter Prozess nach SLA (zeitnahes Patchen). Ziel ist ein dauerhaft wartbarer Zustand ohne „Upgrade-Schulden“.
Unser Update-Prozess für TYPO3 ist weitgehend automatisiert: Mit Renovate, einem Tool zur intelligenten Dependency-Automatisierung, überwachen und aktualisieren wir den TYPO3 Core, Erweiterungen, Bibliotheken und Sicherheits-Patches kontinuierlich. Ein automatisierter QS-/Test-Prozess gewährleistet, dass die Applikation mit den Updates weiterhin funktionsfähig ist, bevor die Übertragung auf die Staging-/Produktionsumgebung erfolgt.
Zertifikatsmanagement (TLS/SSL)
Zertifikatsmanagement inkl. Einrichtung, Erneuerung und Prüfung. Umfasst TLS-Zertifikate (z. B. Let’s Encrypt oder kundeneigene Zertifikate), HTTPS-Weiterleitungen und sichere Basiskonfiguration.
Monitoring & Alerting
Überwachung von Uptime, Fehlerquoten, Antwortzeiten und Ressourcen (CPU/RAM/Disk) inkl. Alarmierung. Optional: Log-Monitoring (500er, PHP-Fatals, TYPO3-Exceptions) und proaktives Erkennen von Engpässen.
Benachrichtigungen erfolgen, je nach Priorität, über verschiedene Kommunikationskanäle (Push-Notification, Slack, E-Mail), um eine schnelle Reaktionsfähigkeit zu gewährleisten.
Sicherheit & Härtung
Basishärtung (Firewalls, Fail2ban/Rate limiting, restriktive Zugriffe, SSH-Key-Only, Minimalrechte). Optional: WAF/Reverse-Proxy-Regeln.
Zusätzlich: Security-Headers, CSP-Konzept, CORS, HSTS Header, SSRF Abwehr
Performance & Skalierung
Performance-Optimierung (Caching-Strategie, Redis/Valkey, Varnish/Static File Cache, CDN, S3, Bildoptimierung, Datenbank-Tuning). Ziel ist stabile Performance – auch bei Lastspitzen.
Mailzustellung & DNS
Einrichtung stabiler Mailzustellung via SMTP-Relay sowie SPF/DKIM/DMARC-Konfiguration. Optional Bounce-Handling/Monitoring, wenn viele Formulare oder Newsletter-Integrationen im Einsatz sind.
Was TYPO3 vom Hosting braucht
Die Anforderungen der TYPO3-Versionen, die heute noch Updates bekommen – kostenlos oder über ELTS.
| TYPO3 | PHP | MariaDB ab | MySQL ab | PostgreSQL ab | Kostenloser Support bis |
|---|---|---|---|---|---|
| 14.3 LTS | 8.2 – 8.5 | 10.4.3 | 8.0.17 | 10.0 | 30.6.2029 |
| 13.4 LTS | 8.2 – 8.5 | 10.4.3 | 8.0.17 | 10.0 | 31.12.2027 |
| 12.4 LTS | 8.1 – 8.4 | 10.3 | 8.0.17 | 10.0 | 30.4.2026 |
| 11.5 LTS | 7.4.1 – 8.3 | 10.2.7 | 5.7.9 | – | 31.10.2024 |
| 10.4 LTS | 7.2 – 7.4 | 10.2.7 | 5.5 | – | 30.4.2023 |
Dazu kommt für jede dieser Versionen:
- PHP-Einstellungen:
memory_limit256M,max_execution_time240,max_input_vars1500 undpcre.jitan;post_max_sizeundupload_max_filesizepassend zur größten Datei, die Redakteure hochladen. - PHP-Erweiterungen: PDO mit
pdo_mysql(bevorzugt) odermysqli, dazu intl, mbstring, XML, session und tokenizer; empfohlen sind fileinfo, GD, zip, zlib und OpenSSL. - Bildverarbeitung: GraphicsMagick ab 1.3 oder ImageMagick ab 6.
- Webserver: Apache mit mod_rewrite oder NGINX.
- Cronjob für den TYPO3-Scheduler (
vendor/bin/typo3 scheduler:run), meist minütlich. - Composer im Build; auf dem Server selbst nur, wenn dort gebaut wird.
Welche PHP-Version zu welcher TYPO3-Version passt, zeigt die Seite Welche PHP-Version braucht TYPO3? Wie Core-Updates im Betrieb ablaufen, beschreibt Wie spielt man ein TYPO3 Core-Update ein?
TYPO3 im Container betreiben
Webserver: Keep-Alive kurz, Worker am Speicher bemessen
Mit Apache im Prefork-Modus belegt jede offene Keep-Alive-Verbindung einen ganzen Worker. Hinter einem Reverse Proxy hat Debians Voreinstellung von 5 Sekunden den Pool leerlaufen lassen, Anfragen warteten sekundenlang auf einen freien Worker. In unserem Basis-Image steht der Wert deshalb auf 1 Sekunde.
Die Zahl der Worker ergibt sich aus dem Speicher, denn jeder darf bis zum PHP-memory_limit wachsen:
8 Worker mit 256 MB brauchen im ungünstigsten Fall rund 2,3 GiB, und das Speicherlimit des Containers muss das tragen.
Welche Stellschrauben sonst messbar etwas bringen, steht unter
TYPO3 schneller machen.
GraphicsMagick an die Grenzen des Containers binden
GraphicsMagick läuft als eigener Prozess, das PHP-memory_limit gilt für ihn nicht. Seinen Speicher bemisst
er am Arbeitsspeicher des Servers, nicht am Limit des Containers: Ein einziges übergroßes Bild kann auf 5 bis 6 GB
anwachsen, und der Container wird wegen Speichermangels beendet.
Abhilfe schaffen Grenzen über Umgebungsvariablen, bei uns MAGICK_LIMIT_MEMORY und
MAGICK_LIMIT_MAP mit je 256 MB und MAGICK_LIMIT_PIXELS als harte Obergrenze. Den Überlauf lenkt
MAGICK_TMPDIR auf ein Volume auf der Platte, nicht im Arbeitsspeicher. Große Bilder werden dann langsamer
verarbeitet statt gar nicht.
Dasselbe gilt für die Threads: GraphicsMagick richtet sich nach den Kernen des Servers, nicht nach dem CPU-Kontingent des
Containers, und bremst sich damit selbst aus. Mit OMP_NUM_THREADS=1 war jede Umwandlung bei uns rund 17 %
schneller.
Beim Start aufräumen
Liegt var/cache/ auf einem Volume, überlebt der Cache einen Neustart des Containers, auch einen harten wegen
Speichermangels mitten im Schreiben. Der neue Container startet dann mit halb geschriebenen Cache-Dateien und meldet
Fehler, bis jemand die Caches leert.
Unser Basis-Image räumt deshalb beim Start auf, bevor der Webserver Anfragen annimmt: Cache-Verzeichnis leeren, fehlende
Ordner anlegen (install:fixfolderstructure), den System-Cache aufwärmen
(cache:warmup --group system). Beide TYPO3-Befehle laufen mit festem Zeitlimit, sodass sich die Startprüfung
des Containers (startupProbe) daran bemessen lässt.
Sprachpakete gehören ins Image
Im Container ist das Dateisystem meist schreibgeschützt, language:update kann beim Deploy dort nichts
ablegen. Wir legen die Sprachpakete deshalb ins Image. Ein geplanter CI-Job aktualisiert sie regelmäßig und öffnet dafür
einen Merge Request.
Scheduler während des Deploys anhalten
Läuft der Scheduler als eigener Cronjob, kann er während eines Deploys gegen eine Datenbank laufen, deren Schema noch nicht aktualisiert ist. Wir halten ihn vor dem Deploy an und warten laufende Aufgaben ab – der Neuaufbau des Referenzindex kann Minuten dauern. Danach schalten wir ihn wieder ein, auch wenn der Deploy scheitert.
Neustart von Redis erkennen
Liegt der Seitencache in Redis, ist er nach einem Neustart von Redis leer, während die übrigen Caches in der Datenbank weiterleben. Die beiden Stände passen dann nicht mehr zusammen, und TYPO3 antwortet mit Fehler 503, bis jemand alle Caches leert.
Mit b13/graceful-cache übersteht die Seite einen kurzen Ausfall von Redis. Für den Neustart prüft bei uns
ein Scheduler-Task jede Minute die Kennung, die Redis bei jedem Start neu vergibt (run_id). Ändert sie sich,
leert er alle Caches.
Eine Umgebung, ein Datenbankserver
Teilen sich Staging und Produktion einen Datenbankserver, kann eine Schemaänderung oder eine ausufernde Abfrage auf Staging die Live-Seite treffen. Wir geben jeder Umgebung einen eigenen Server.
Galera-Cluster meiden wir für TYPO3. Galera repliziert nur InnoDB-Tabellen, Schreibzugriffe auf MyISAM- oder
Aria-Tabellen landen ohne Fehlermeldung nur auf einem Knoten. Schemaänderungen laufen unter einer Sperre für den ganzen
Cluster, und database:updateschema löst sie wiederholt aus. Tabellen ohne Primärschlüssel repliziert Galera
nicht zuverlässig.
Hinter dem Reverse Proxy
TYPO3 wertet die X-Forwarded-*-Header nur für Anfragen von Adressen aus reverseProxyIP aus.
Deckt die Einstellung das Netz des Ingress ab, aber nicht die Loopback-Adresse, liefert eine Anfrage an
127.0.0.1 im Container eine 404-Seite statt der Seite: TYPO3 hält die Verbindung für http,
und die Site mit https-Basis passt nicht. Zum Testen im Container deshalb die IP des Pods ansprechen, mit
Host- und X-Forwarded-Proto-Header.
Beim Wechsel der Domain gehören vier Stellen zusammen: Ingress-Host, TLS-Zertifikat, die Basis-URL der Site und
trustedHostsPattern. Passt das Muster nicht, lehnt TYPO3 jede Anfrage mit dem neuen Host ab.
Erstgespräch vereinbaren
Gerne beraten wir Sie in einem kostenlosen Erstgespräch.
Was passiert nach dem Absenden?
- Wir melden uns in der Regel innerhalb eines Werktages.
- Wir klären kurz Ihr Anliegen und schlagen die nächsten Schritte vor.
- Auf Wunsch vereinbaren wir ein kostenloses Erstgespräch (ca. 60 Min.).
Danke!
Wir haben Ihre Nachricht erhalten und melden uns umgehend.