
Anleitungen im Zusammenhang mit Beach
Wie man eine Neos-Website zu Beach migriert
Dieses Tutorial führt dich durch die Schritte zum Erstellen eines Projekts und einer Instanz auf Beach und zum Importieren bestehender Inhalte einer Neos-Website.
Übersicht
Dieses Tutorial führt dich durch die Schritte zum Erstellen eines Projekts und einer Instanz auf Beach und zum Importieren bestehender Inhalte einer Neos-Website.
Bevor du mit diesem Tutorial beginnst, benötigst du Folgendes:
- ein Git-Repository mit einer Neos-Distribution
- ein funktionierendes Composer-Setup (d.h. du musst Composer für die Paketverwaltung verwenden und composer.lock als Teil deines Git-Repos haben)
- einen MySQL- oder MariaDB-Datenbankexport, der alle Tabellen deiner Neos-Website enthält
- assets (Flow-Ressourcen) deiner Website, die in einem lokalen Verzeichnis gespeichert sind (normalerweise in Data/Persistent/Resources)
- einen Computer, auf dem SSH und der MySQL/MariaDB-Client installiert sind
Bereite dein Projekt vor
Installiere flownative/google-cloudstorage
Dieser Schritt ist unerlässlich, wenn du etwas mit persistenten Ressourcen machen willst (z. B. Bilder oder andere Assets hochladen). Es ist aber ganz einfach:
composer require flownative/google-cloudstorage
Jetzt musst du nur noch die geänderte composer.lock-Datei committen und pushen und schon bist du fertig. Solange das Paket nicht konfiguriert ist, beeinträchtigt es nichts, du musst dir also keine Sorgen machen. Die notwendige Konfiguration für Beach wird später in diesem Leitfaden erklärt.

Ein Projekt und eine Instanz erstellen
Melde dich im Beach Control Panel unter https://beach.flownative.com an und gehe zur Ansicht "Projekte" deiner Organisation. Klicke auf "Projekt erstellen".
Als nächstes musst du einen Namen für dein Projekt angeben. Wähle einen Namen, der es dir leicht macht, das Projekt wiederzuerkennen. Für viele Projekte ist der Hauptdomainname eine gute Wahl.
Gib dann die vollständige URL des Git-Repository ein, das deine Neos- oder Flow-Distribution enthält. Die Distribution muss eine composer.json und composer.lock Datei enthalten.
Wenn dein Git-Repository nicht öffentlich ist, musst du den angegebenen öffentlichen SSH-Schlüssel als Verteilungsschlüssel für dein Repository festlegen. Bitte stelle auch sicher, dass alle anderen Pakete, die in deiner composer.json / composer.lock erwähnt werden, entweder öffentlich oder mit dem angegebenen SSH-Schlüssel zugänglich sind. Beach braucht nur Lesezugriff auf dein Repository.
Wenn du das Projekt erstellt hast, gehst du auf die Registerkarte "Instanzen" und klickst auf die Schaltfläche "Neue Instanz". Im folgenden Dialog musst du den Namen deiner neuen Instanz (etwas wie "Production", "Staging Relaunch", ...), einen passenden Instanztyp und einen Zweig deines Git-Repositorys angeben, der verwendet werden soll.
Nachdem du die Instanz erstellt hast, wird dir ein Bildschirm mit Details und Aktionen für deine neue Instanz angezeigt. Beach sucht automatisch nach dem neuesten Commit und erstellt ein Docker-Image für den neuesten Code.
Wenn der Build abgeschlossen ist, wird die Schaltfläche "Bereitstellen" aktiv. Setze deine neue Instanz zum ersten Mal ein.
Die eigentliche Bereitstellung des Containers ist nach ein paar Sekunden abgeschlossen, aber die Instanz braucht etwas mehr Zeit, um die erste Datenbankstruktur zu erstellen (bei jeder Bereitstellung wird "./flow doctrine:migrate" aufgerufen). Es kann 1-2 Minuten dauern, bis die Instanz bereit ist.
Importiere die Website-Assets
Deine Beach-Instanz nutzt Google Cloud Storage zum Speichern und Bereitstellen der dauerhaften Ressourcen der Neos-Website oder Flow-Anwendung. Alle Dateien im Docker-Container deiner Beach-Instanz sind temporär (ephemer), es gibt kein persistentes Dateisystem, das damit verbunden ist. Auch wenn das ein wenig Umdenken erfordert, ist das eigentlich eine gute Sache: Du kannst deine Instanzen hoch- und runterskalieren und sie starten und stoppen, ohne darüber nachdenken zu müssen, wie du eine Festplatte oder ein gemeinsames Dateisystem anschließen kannst.
Importiere Assets mit dem Site-Import
Am einfachsten ist es, deine Assets zu importieren, wenn sie in deinem Neos-Site-Paket vorhanden sind (z.B. wenn du die Neos Demo-Site verwendest oder gerade an einem neuen Website-Projekt arbeitest). In diesem Fall loggst du dich einfach per SSH in deine Instanz ein und führst einen Site-Import durch:
./flow site:import --package-key YourCompany.YourPackage
Assets mit Local Beach importieren
Wenn du viele Assets hast oder eine Website migrierst, die bereits in Produktion ist, empfehlen wir dir, Local Beach zu verwenden. Local Beach ist eine leichtgewichtige Client-Anwendung, die für MacOS und Linux verfügbar ist und in Sekundenschnelle installiert werden kann.
Die Installation von Local Beach wird in diesem Leitfaden erklärt.
Öffne ein Terminal und wechsle in das Verzeichnis mit deinem Neos-Projekt (das Verzeichnis mit der composer.json deiner Neos-Distribution). Wenn du Local Beach noch nicht mit diesem Projekt verwendet hast, führe den folgenden Befehl aus, um es zu initialisieren:
beach init
Caches an einen dauerhaften Ort verschieben
Das Dateisystem deiner Beach-Instanzen ist nicht dauerhaft und wird bei jedem Deployment durch ein neues ersetzt. Das ist natürlich nicht gut für das Caching und einige Caches sollten an einem dauerhaften Ort gespeichert werden.
Wir werden in unserem Snippet unten die Datenbank verwenden. Wenn du Redis für dein Projekt zur Verfügung hast , kannst du auch das verwenden. Wir würden aus Leistungsgründen nicht empfehlen, die Datenbank für den Neos_Fusion_Content-Cache zu verwenden.
Flow_Security_Cryptography_HashService: &pdoBackend
backend: 'Neos\Cache\Backend\PdoBackend'
backendOptions:
dataSourceName: 'mysql:host=%env:BEACH_DATABASE_HOST%;dbname=%env:BEACH_DATABASE_NAME%'
username: '%env:BEACH_DATABASE_USERNAME%'
password: '%env:BEACH_DATABASE_PASSWORD%'
defaultLifetime: 0
Flow_Session_Storage: *pdoBackend
Flow_Session_MetaData: *pdoBackend
Weitere Verbesserungen
VIPS-Unterstützung installieren
Das kann die Bildbearbeitung beschleunigen. Wenn du das tun möchtest, schau dir unsere Anleitung zur Verwendung von VIPS mit Neos an.
Redis für das Caching verwenden
Redis ist ein sehr schneller Key/Value-Store, der die Geschwindigkeit beim Caching erhöhen kann, insbesondere bei Caches, in denen viel mit Tags gearbeitet wird. Konfiguriere ihn wie in unserem Leitfaden zur Verwendung von Redis mit Neos und Flow beschrieben.