Die Google App Engine ist ein äusserst bequemer, stabiler weg Software zu deployen und zu betreiben. Das ist auch der Grund warum ich mit yakisch vieles über die GAE betreibe. Da ich nun von HUGO static pages zu ghost Publishing Plattform umgestiegen bin habe ich auch diese auf die GAE deployed. Und hier möchte ich aufzeigen wie dies funktioniert.

Vorarbeiten

Als erstes muss ghost als npm package installiert werden und nicht via ghost-cli, dazu kann ghost mittel npm -i ghost --save  installiert werden oder mit diesem package.json und danach npm install

Um ghost als npm package zu starten muss es in einem wrapper gepackt werden, wie hier als Beispiel:

Deploy Ghost on GAE Tutorial

Als nächstes muss noch:

  • Cloud SQL eingerichtet werden
  • GAE app.yaml erzeugt werden
  • Hugo für Cloud SQL configuriert werden

Diese Punkte werden im Community Tutorial  von GAE behandelt und können dort durchgearbeitet werden. Das Tutorial behandelt eine ältere ghost Version, die cloud sql und config haben sich seitdem nicht maßgeblich verändert.

DEPLOY GHOST COMMUNITY TUTORIAL

Persistente Speicherung Uploads

Nun ist die GAE eingerichtet, Cloud SQL und Hugo sind verbunden. Aber die Uploads landen noch im Docker Container der GAE im upload path.

Um dieses Problem zu Lösen benötigst Du einen Storage Adapter für Hugo. Da wir auf der GAE deployed haben empfiehlt sich der Google Cloud Storage. Und dazu nehmen wir folgenden Adapter: google-cloud-storage-new

Adapter via npm installieren:

npm i ghost-google-cloud-storage-new --save

Danach die config.production.js und oder die config.development.js anpassen

"storage": {
    "active": "gcloud",
    "gcloud": {
        "projectId": "Your_project_id",
        "key": "Your_key_path",
        "bucket": "Your_bucket_name",
        "insecure": false,
        "maxAge": "2678400"
    }
}