Installation und Konfiguration des Atom-Packages remote-sync

Bisher haben wir direkt auf dem Raspberry Pi gearbeitet und dabei den Editor nano verwendet. Das war gut so, ist aber auf Dauer nicht wirklich komfortabel. Wir haben uns ein wenig mehr Komfort verdient.

Lokal arbeiten, per SSH hochladen

Eine SSH-Verbindung stellt eine verschlüsselte Verbindung zum Server her, sodass wir anschließend im Terminal arbeiten können. Die Befehlseingaben finden zwar immer noch auf unserem Laptop statt, ausgeführt werden sie aber auf dem Raspberry Pi. Diese Übertragungstechnik werden wir uns nun zunutze machen, indem wir ein Package für Atom installieren, das bei jedem Speichern einer Datei die gemachten Änderungen auf den Raspberry überträgt.

Vorbereitung

Bevor wir uns konkret mit der Installation und Konfiguration des Packages beschäftigen, sollten wir unsere lokale Arbeitsumgebung entsprechend vorbereiten. Dafür werden wir mit FileZilla zunächst das Verzeichnis secondhandblumen_flask, das sich auf dem Raspberry befindet, auf unseren Laptop herunterladen.

  1. Stellen Sie mit FileZilla eine SSH-Verbindung zum Raspberry her.
  2. Laden Sie den Ordner secondhandblumen_flask an einen sinnvollen Ort auf Ihrem Rechner herunter.
  3. Öffnen Sie diesen Ordner in Atom.

Installation des Packages remote-sync

  1. Rufen Sie in Atom (auf Deinem Laptop!) die Settings auf.
  2. Wählen Sie links in der Leiste Install aus und geben Sie remote-sync in die Suchleiste ein.
  3. Ein Klick auf die Überschrift der Suchergebnisse bringt Sie zur Website des Packages. Dort sind seine Funktionen beschrieben und Sie finden genaue Angaben zur Installation und Konfiguration.
  4. Klicken Sie in Atom auf Install, um remote-sync zu installieren.
  5. Führen Sie einen Reload von Atom durch, damit das neue Package erkannt wird. Ein Reload kann per Maus in Atom über den Klickweg Menüleiste: View -> Developer -> Reload Window ausgeführt werden.

Bei vielen Packages ist es damit getan. remote-sync muss nun aber noch konfiguriert werden.

Konfiguration von remote-sync

Im Folgenden werden wir remote-sync so konfigurieren, dass wir unsere Flask-Dateien lokal, also in Atom auf dem Laptop bearbeiten können, sie aber beim Speichern auf den Raspberry hochgeladen und dort ausgeführt werden.

Sie finden Ihre installierten Packages immer über die Settings und dann über Packages.

  1. Wenn Sie remote-sync in den Settings gefunden haben, klicken Sie auf Settings in der Zeile des Packages.
  2. Hier sind nicht viele Einstellungen möglich, da das Konzept für die Konfiguration des Packages eine Konfigurationsdatei vorsieht. Diese heißt standardmäßig .remote-sync.json. Würden Sie diesen Dateinamen ändern wollen, könnten Sie es hier tun.

Damit sind wir an dieser Stelle schon durch mit den Einstellungen und müssen uns stattdessen der Konfigurationsdatei widmen.

Die Konfigurationsdatei remote-sync.json erstellen

Für den nächsten Schritt wird dafür ausgegangen, dass das Verzeichnis des Projekts in Atom wie folgt aussieht:

secondhandblumen_flask/
├── app.py
├── app.pyc
├── dummy.txt
├── .remote-sync.json
├── static
│   ├── css
│   └── img
└── templates
    ├── angebot.html
    ├── .git
    ├── .gitignore
    ├── img
    ├── impressum.html
    ├── index.html
    ├── kontakt.html
    ├── LICENSE
    └── team.html

Das Package remote-sync tut nur klaglos seinen Dienst, wenn der Ordner, der synchronisiert werden soll, direkt in Atom geöffnet ist.

Gemäß der gezeigten Projektstruktur könnte die Konfigurationsdatei wie folgt aussehen:

{
  "transport": "scp",
  "hostname": "134.28.125.132",
  "port": 22,
  "username": "pi",
  "password": "raspberry",
  "target": "/home/pi/www/secondhandblumen_flask",
  "uploadOnSave": true,
  "saveOnUpload": true,
  "watch": [
    "/app.py",
    "/templates/index.html"
  ],
  "ignore": [
    ".remote-sync.json",
    ".git/**"
  ]
}

Die jeweiligen Parameter sind der Dokumentation des Packages auf der Website zu entnehmen.

Die Erfahrung zeigt, dass ein Reload von Atom nach einer Änderung der Konfiguration notwendig ist.

Konfiguration testen

Legen Sie eine neue Datei an und führen Sie einen Rechtsklick darauf aus. Wählen Sie im Kontextmenü Remote Sync -> Upload File. Beobachten Sie in der Logzeile, ob der Vorgang gelingt.

Tipps

  1. Der Parameter watch dient der Überwachung von Dateien im Projekt. Werden sie geändert, findet automatisch ein Upload statt.
  2. Nach wie vor muss die Flask-Anwendung auf dem Raspberry gestartet werden. Um das Verhalten der Anwendung dort zu verbessern, sollte eine Anpassung in app.py vorgenommen werden:

     # [...]
    
     # Ende der Datei app.py
    
     if __name__ =='__main__':
         app.run(host="0.0.0.0", debug=True)
    

    Nun kann die Anwendung mit python app.py gestartet werden. Der vorherige Export der Umgebungsvariablen FLASK_APP ist nicht mehr notwendig.