Webseiten migrieren: Ordner kopieren, fertig

Kein SQL-Export, kein URL-Ersetzen, kein Plugin-Drama. CMF-Migration ist ein Kopiervorgang.

Was bei datenbankbasierten Systemen ein mehrstufiger Prozess mit Fehlerquellen ist, reduziert sich beim CMF auf einen Kopiervorgang. Alles ist eine Datei – also ist Migration nur Dateien verschieben. Kein Spezialwissen nötig, kein Risiko für Datenverlust.

Migration in 3 Schritten

1

Kopieren

Projektordner per FTP, SCP oder Git auf den neuen Server übertragen. Alle Dateien und Ordner – das ist die komplette Webseite.

2

URL anpassen

In config/site.json die baseUrl auf die neue Domain ändern. Oder im Backend unter Einstellungen.

3

Sitemap generieren

Im Backend unter Einstellungen oder per API ?a=sitemap_generate. Die Sitemap enthält dann die neuen URLs.

Fertig. Keine Datenbank-Migration, keine Plugin-Kompatibilität prüfen, keine Theme-Anpassung. Die Webseite sieht auf dem neuen Server exakt gleich aus wie auf dem alten.

Vier Wege zum Backup

Backend-Export

Im Backend unter Einstellungen → Export. Per Checkboxen wählen was enthalten sein soll: Header, Footer, Seiten, Medien.

Ergebnis: cmf-backup-YYYY-MM-DD.zip – eine Datei, alles drin. Der einfachste Weg für Nicht-Techniker.

API-Export

GET ?a=site_export liefert die komplette Webseite als JSON: Site-Konfiguration, Styles, Header, Footer, Custom CSS und alle Seiten.

Ideal für automatisierte Backups per Cron-Job oder n8n-Workflow. Ein Request, ein JSON-Objekt.

Ordner kopieren

Den gesamten Projektordner per FTP, SCP oder rsync sichern. Enthält alles: Code, Inhalte, Medien, Konfiguration.

Kein separater Datenbank-Dump nötig. Was auf dem Server liegt, ist das komplette Backup.

Git

Da alle Inhalte JSON-Dateien sind, funktioniert Git-Versionierung für den gesamten Content. Jede Änderung ein Commit, vollständige Historie, Rollback jederzeit möglich.

Auch Diffs sind lesbar – man sieht genau, welcher Block sich geändert hat.

Was gesichert werden muss – und was nicht

Kritisch (Inhalte)

  • content/pages.json – Seitenindex
  • content/pages/ – alle Seiteninhalte
  • content/blog.json – Blogindex
  • content/blog/ – alle Blogbeiträge
  • content/globals/ – Header + Footer
  • public/media/ – alle Uploads

Wichtig (Konfiguration)

  • config/site.json – Name, Sprache, URL
  • config/styles.json – Design-Tokens
  • config/users.json – Benutzer + Token-Hashes
  • public/assets/css/custom.css – eigene Klassen

Regenerierbar

  • theme.css – wird aus styles.json generiert
  • sitemap.xml – wird aus Seitenindex generiert
  • robots.txt – wird mit Sitemap generiert
  • login_attempts.json – temporäre Daten

Tipp: Diese Dateien werden beim Speichern im Backend oder per API automatisch neu erzeugt.

Migrations-Szenarien

Hoster wechseln

Ordner per FTP zum neuen Hoster kopieren. baseUrl in site.json ändern. DNS auf den neuen Server zeigen lassen. Sitemap neu generieren.

Die Webseite funktioniert sofort – kein Setup-Wizard, keine Datenbank anlegen, keine PHP-Extensions prüfen (ab PHP 8.1 reicht alles).

Staging-Umgebung

Ordner in ein Unterverzeichnis kopieren oder auf eine Subdomain legen. Eigene baseUrl setzen. Fertig – eine identische Testumgebung.

Änderungen auf Staging testen, dann per site_export / site_import auf Production übertragen. Oder einfach die geänderten JSON-Dateien kopieren.

Vorlagen verteilen

Eine fertige Webseite als ZIP-Vorlage verteilen. Jeder Empfänger entpackt, ändert baseUrl und Benutzer, und hat eine funktionierende Seite.

Ideal für Agenturen die mehrere Kunden mit dem gleichen Grundlayout bedienen – oder für CMF-Installationen die als Startpunkt dienen sollen.

Der Vergleich

WordPress
  1. Datenbank exportieren (phpMyAdmin)
  2. Dateien per FTP herunterladen
  3. Auf neuem Server Datenbank anlegen
  4. Datenbank importieren
  5. wp-config.php anpassen
  6. URLs in serialisierten Daten ersetzen (Search-Replace-Tool)
  7. Permalinks neu speichern
  8. Plugins prüfen und ggf. neu aktivieren
  9. Theme-Einstellungen prüfen
  10. Cache leeren
CMF
  1. Ordner kopieren
  2. baseUrl in site.json ändern
  3. Sitemap generieren

Fertig. Gleiche Webseite, neuer Server.

Automatisierte Migration per API

Export (Quelle)

GET /api.php?a=site_export
Authorization: Bearer TOKEN_QUELLE

Liefert ein JSON-Objekt mit: site, styles, header, footer, custom_css und pages (Array mit Index + Inhalt jeder Seite).

Dieses JSON ist die komplette Webseite – ohne Medien. Medien müssen separat per media aufgelistet und übertragen werden.

Import (Ziel)

POST /api.php?a=site_import
Authorization: Bearer TOKEN_ZIEL
Content-Type: application/json

{ komplettes Export-JSON }

Alle mitgesendeten Felder werden überschrieben. Felder die fehlen bleiben unverändert. Nichts wird gelöscht.

Vorhandene Seiten werden aktualisiert (gleiche ID), neue werden erstellt. Ideal für Synchronisation zwischen Staging und Production.

CMF herunterladen API-Referenz Maschinengesteuerte Seitenerstellung