Anleitung: App installieren

Im ERPNext-Universum gibt es diverse Apps. Das Frappe Framework ist sogar selbst eine App, die jedoch zwangsläufig immer installiert sein muss. Alle anderen Apps, beispielsweise ERPNext, bauen darauf auf. Wenn eine neue “Bench” erstellt wird, wird die App “frappe” automatisch mitinstalliert.

Neue Bench mit Frappe erstellen

bench init frappe-bench

Optional kann der Parameter --frappe-branch $BRANCH_NAME verwendet werden, um die gewünschte Hauptversion zu spezifizieren:

bench init frappe-bench --frappe-branch version-13

Mit dem obigen Befehl erhalten wir eine sogenannte “Bench”, eine Verzeichnis, in dem sich unsere Konfiguration, Apps und Sites befinden:

tree -L 2 frappe-bench 

# frappe-bench
# ├── apps
# │   └── frappe
# ├── config/
# ├── env/
# ├── logs/
# ├── patches.txt
# ├── Procfile
# └── sites/

ERPNext als erste App hinzufügen

Als Nächstes können wir die App “erpnext” zu unserer Bench hinzufügen:

cd frappe-bench/
bench get-app https://github.com/frappe/erpnext.git

Weil ERPNext so häufig installiert wird gibt es für diesen Befehl auch eine Kurzform:

bench get-app erpnext

Auch hier können wir wieder die gewünschte Hauptversion angeben:

bench get-app erpnext --branch version-13

Der Befehl bench get-app klont die App aus einem Git-Repository, installiert sie und ihre Abhängigkeiten in der virtuellen Python-Umgebung und baut ihre JavaScript- und CSS-Dateien. Einzelne Schritte können aus verschiedenen Gründen fehlschlagen. Dann kann man diese manuell erneut ausführen:

# Abhängigkeiten installieren
bench setup requirements

# JavaScript- und CSS-Dateien bauen
bench build

Site erstellen und Apps installieren

Um die Apps nun nutzen zu können müssen wir zunächst eine neue Site erstellen:

bench new-site demo

Dort wird automatisch immer die App “frappe” installiert. Alle anderen Apps müssen explizit hinzugefügt werden:

bench --site demo install-app erpnext

Bei ERPNext ist zu beachten, dass diese App nur installiert werden kann, wenn der Setup Wizard (erstmaliges Einrichten der Site über den Webbrowser) noch nicht abgeschlossen wurde. Die meisten Apps lassen sich jedoch auch später noch auf eine bestehende Site nachinstallieren.

2 Likes

Danke für diese schöne Zusammenfassung. :sunglasses:

Ich möchte noch anmerken, dass, wenn man weitere Apps in eine bestehende Instanz nachinstalliert, manchmal die Menüs nicht vollständig angezeigt werden. Dieses Problem habe ich hier beschrieben.
Das lässt sich vermeiden, indem man

  • sicherheitshalber vor jeder Installation einen Snapshot anlegt
  • vor jeder Installation den Server neustartet und vermeidet, dass ein Webaufruf stattfindet (beispielsweise mit systemctl disable nginx vor dem Neustart)