Tutorial

Installieren eines ERPNext-Stacks unter Ubuntu 20.04

Published on August 20, 2020
Deutsch
Installieren eines ERPNext-Stacks unter Ubuntu 20.04

Der Autor hat Software in the Public Interest dazu ausgewählt, im Rahmen des Programms Write for DOnations eine Spende zu erhalten.

Einführung

ERPNext ist eine Suite für Enterprise Resource Planning (ERP), die die Leistung und Flexibilität von Open-Source-Technologien nutzt. Sie eignet sich bestens zur Verwaltung von wichtigen Geschäftsprozessen wie Finanzen, Vertrieb, Personalverwaltung, Herstellung, Einkauf, Dienstleistungen, Helpdesk und vielem mehr. Zu den Vorteilen der Implementierung eines Systems wie ERPNext gehören:

  • Höhere Produktivität durch Automatisieren wiederholter Geschäftsprozesse
  • Verbesserte IT-Effizienz durch Freigabe einer Datenbank für alle Abteilungen innerhalb des Unternehmens
  • Bessere Entscheidungsprozesse dank einer integrierten Übersicht darüber, wie Geschäftseinheiten miteinander verbunden sind

ERPNext basiert auf Frappe, einem Full-Stack-Webanwendungsframework, das in Python geschrieben wurde. Es nutzt umfassend die Node-/JavaScript-Laufzeitumgebung und verwendet MariaDB als Datenbank-Backend. Einer der vielen Vorteile von Frappe-basierten Anwendungen wie ERPNext ist das Befehlszeilentool bench. Die bench-CLI spart Administratoren Zeit, indem sie Aufgaben wie Installation, Aktualisierung, Konfiguration und Verwaltung verschiedener Frappe-/ERPNext-Sites automatisiert.

In diesem Tutorial installieren und konfigurieren Sie einen ERPNext-Stack auf einem Server, auf dem Ubuntu 20.04 ausgeführt wird. Dadurch können Sie Ihren Stack je nach Bedarf für verschiedene Entwicklungs- oder Produktionsumgebungen konfigurieren. So erhalten Sie die Möglichkeit, eine komplexere und fehlertolerantere Architektur einzurichten.

Voraussetzungen

Anmerkung: Bei der Auswahl der Spezifikationen Ihres Servers sollten Sie daran denken, dass ERP-Systeme ressourcenintensiv sind. Dieser Leitfaden erfordert einen Server mit 4 GB RAM, was für grundlegende Anwendungsfälle ausreicht. Die spezifischen Hardwareanforderungen können jedoch je nach Anzahl der Benutzer sowie der Unternehmensgröße variieren.

Schritt 1 — Konfigurieren der Firewall

Zwar ist die Konfiguration einer Firewall für Entwicklungsumgebungen optional, für die Produktion ist sie jedoch eine obligatorische Sicherheitsmaßnahme.

Sie müssen auf Ihrem ERPNext-Server die folgenden Ports öffnen:

  • 80/tcp und 443/tcp für HTTP bzw. HTTPS
  • 3306/tcp für die MariaDB-Verbindung (nur empfohlen, wenn Sie Remotezugriff auf die Datenbank benötigen)
  • 143/tcp und 25/tcp für IMAP bzw. STMP
  • 22/tcp für SSH (wenn Sie OpenSSH in Ihren UFW-Einstellungen nicht bereits aktiviert haben)
  • 8000/tcp zum Testen Ihrer Plattform vor Bereitstellung in der Produktion

Zum Öffnen verschiedener Ports auf einmal können Sie folgenden Befehl verwenden:

  1. sudo ufw allow 22,25,143,80,443,3306,8000/tcp

Alternativ können Sie Verbindungen von bestimmten IP-Adressen zu bestimmten Ports mit diesem Befehl zulassen:

  1. sudo ufw allow from server_IP to any port port_number

Nach dem Öffnen aller erforderlichen Ports aktivieren Sie die Firewall:

  1. sudo ufw enable

Überprüfen Sie nun den Status Ihrer Firewall:

  1. sudo ufw status

UFW gibt eine Liste Ihrer aktivierten Regeln aus. Stellen Sie sicher, dass die erforderlichen Ports von ERPNext geöffnet sind:

Output
Status: active To Action From -- ------ ---- 22,25,80,143,443,3306,8000/tcp ALLOW Anywhere 22,25,80,143,443,3306,8000/tcp (v6) ALLOW Anywhere (v6)

Weitere Informationen zur Konfiguration von UFW finden Sie in unserem Leitfaden zum Einrichten einer Firewall mit UFW unter Ubuntu 20.04.

Das Einrichten einer ordnungsgemäß funktionierenden Firewall ist der erste von zwei Vorbereitungsschritten. Jetzt konfigurieren Sie die Tastenbelegung und Zeichencodierung auf Ihrem Server.

Schritt 2 — Konfigurieren von Gebietsschemas

Es wird dringend empfohlen, die Tastenbelegung für die Konsole sowie die Sprache und die Zeichencodierung auf Ihrem Host zu konfigurieren. Dies ist notwendig, um mögliche Probleme bei der ERPNext 12-Installation zu verhindern. Beachten Sie, dass diese Konfiguration nichts mit der UI-Sprache in Ihrer eigentlichen ERPNext-Plattform zu tun hat, sondern mit der Systemkonfiguration des Gebietsschemas.

Aktualisieren Sie zunächst Ihren Server:

  1. sudo apt update

Konfigurieren Sie nun die Tastenbelegung, Sprache und Zeichencodierung:

  1. sudo localectl set-keymap us && sudo localectl set-locale LANG=en_US.utf8

Das Dienstprogramm localectl wird von Ubuntu 20.04 und anderen Linux-Distributionen verwendet, um systemweite Einstellungen für das Gebietsschema und die Tastaturbelegung zu steuern und zu ändern, bevor der Benutzer sich anmeldet. Das ist genau das, was ERPNext 12 benötigt.

Sie müssen Ihrer Datei /etc/environment außerdem die folgenden Zeilen hinzufügen. Verwenden Sie nano oder Ihren bevorzugten Texteditor, um die Datei zu öffnen:

  1. sudo nano /etc/environment

Fügen Sie jetzt den folgenden Inhalt hinzu.

/etc/environment
LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LANG=en_US.UTF-8

Speichern und schließen Sie die Datei.

Starten Sie Ihren Server neu, um alle Änderungen anzuwenden:

  1. sudo reboot

Geben Sie Ihrem Server einige Minuten zum Neustarten und verwenden Sie dann ssh, um Ihre Instanz neu einzugeben. Sie sind nun bereit, Ihre Datenbank zu installieren.

Schritt 3 — Installieren von MariaDB

Jetzt fügen Sie MariaDB Ihrem Server-Stack hinzu. ERPNext 12 erfordert MariaDB 10.2 oder höher für einen ordnungsgemäßen Betrieb. Da Ubuntu 20.04 MariaDB 10.3 in seinen offiziellen Repositorys enthält, können Sie diese Version mit dem Befehl apt installieren:

  1. sudo apt install mariadb-server

Wenn Sie alternativ eine neuere MariaDB-Version bevorzugen, können Sie Schritt 3 unseres Leitfadens zum Installieren eines ERPNext-Stacks unter Ubuntu 18.04 folgen. Dieser Schritt führt Sie durch den Online-Repository-Assistenten von MariaDB, der Ihnen beim Installieren der neuesten Version (MariaDB 10.5) hilft.

Installieren Sie nach der Installation von mariadb-server die folgenden Pakete:

  1. sudo apt install python3-mysqldb libmysqlclient-dev

ERPNext 12 ist eine Python-Anwendung und erfordert daher die Bibliothek python3-mysqldb für das Datenbankmanagement. libmysqlclient-dev ist für den Zugriff auf bestimmte MariaDB-Entwicklerfunktionen erforderlich.

Fügen Sie als Nächstes dem MariaDB-Server eine zusätzliche Sicherheitsschicht hinzu, indem Sie das Skript mysql_secure_installation ausführen:

  1. sudo mysql_secure_installation

Das Skript mysql_secure_installation wird Ihnen mehrere Fragen stellen:

  • Die erste Eingabeaufforderung wird Sie nach dem root-Passwort fragen. Da jedoch noch kein Passwort konfiguriert ist, drücken Sie ENTER.
  • Als Nächstes antworten Sie mit N, wenn Sie dazu aufgefordert werden, das root-Passwort für Maria DB zu ändern. Eine Verwendung des Standardpassworts zusammen mit Unix-Authentifizierung ist das empfohlene Verfahren für Ubuntu-basierte Systeme, da das root-Konto eng mit automatisierten Systemwartungsaufgaben verbunden ist.
  • Die übrigen Fragen haben mit dem Entfernen des anonymen Datenbankbenutzers zu tun, wobei das root-Konto so beschränkt wird, dass es sich remote bei localhost anmeldet, die Testdatenbank entfernt wird und Berechtigungstabellen neu geladen werden. Sie können alle diese Fragen mit Y beantworten.

Nach Abschluss des Skripts mysql_secure_installation wird MariaDB mit ihrer Standardkonfiguration gestartet. Die standardmäßige ERPNext-Installation verwendet für alle Datenbankoperationen den root-Benutzer von MariaDB. Zwar mag dieser Ansatz für einzelne Serverkonfigurationen praktisch sein, doch gilt er nicht als besonders sicher. Im nächsten Abschnitt erfahren Sie daher, wie Sie das Problem vermeiden können, indem Sie einen neuen Benutzer mit speziellen Berechtigungen erstellen.

Erstellen eines MariaDB Super Admin-Benutzers

ERPNext erwartet, dass zur Verwaltung von Datenbankverbindungen der root-Benutzer von MariaDB verwendet wird. Dies ist jedoch nicht immer ideal. Um diese Einschränkung zu umgehen und MariaDB von einem Nicht-root-Benutzer verwalten zu lassen, erstellen Sie nun manuell eine Datenbank, die nach diesem Benutzer benannt ist. Dann können Sie dem neuen Benutzer spezielle Berechtigungen zuweisen, um ihm ERPNext-Datenbankoperationen zu ermöglichen.

Öffnen Sie die Eingabeaufforderung von MariaDB:

  1. sudo mysql

Erstellen Sie nun eine neue Datenbank, die nach dem Benutzer benannt ist, den Sie für MariaDB-Verbindungen zuweisen möchten. In diesem Tutorial wird sammy verwendet, Sie können jedoch einen anderen Namen wählen:

  1. CREATE DATABASE sammy;

Prüfen Sie mit dieser SQL-Anweisung, ob die Datenbank erstellt wurde:

  1. SHOW DATABASES;

Sie sehen eine Ausgabe, die dieser ähnelt:

Output
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sammy | +--------------------+

Erstellen Sie nun den MariaDB-Benutzer sammy mit Berechtigungen, die denen von root ähneln, und weisen Sie dem Benutzer ein starkes Passwort Ihrer Wahl zu. Bewahren Sie das Passwort an einem sicheren Ort auf; Sie werden es später benötigen:

  1. GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'%' IDENTIFIED BY 'mariadb_password' WITH GRANT OPTION;

Prüfen Sie nun sowohl die Erstellung des Benutzers als auch die Berechtigungen des neuen Benutzers:

  1. SELECT host, user, Super_priv FROM mysql.user;

Sie werden eine Ausgabe wie diese sehen:

Output
+-----------+-------+------------+ | Host | User | Super_priv | +-----------+-------+------------+ | localhost | root | Y | | localhost | mysql | Y | | % | sammy| Y | +-----------+-------+------------+ 3 rows in set (0.001 sec)

Bereinigen Sie nun Berechtigungen, um alle Änderungen anzuwenden:

  1. FLUSH PRIVILEGES;

Abschließend beenden Sie die Sitzung:

  1. exit

Nachdem Sie einen Datenbankbenutzer erstellt haben, müssen Sie nun nur noch MariaDB optimieren, um einen ordnungsgemäßen Betrieb von ERPNext 12 sicherzustellen. Das ERPNext-Team verfügt zum Glück über eine ausgezeichnete Konfigurationsvorlage, die Sie als Ausgangspunkt für Ihre Implementierung verwenden werden. Im nächsten Abschnitt erfahren Sie, wie Sie die MariaDB-Datenbank mit dieser Vorlage richtig konfigurieren.

Schritt 4 — Konfigurieren von MariaDB für ERPNext

Nach dem Installieren und Schützen von MariaDB ist es nun Zeit für die Optimierung der ERPNext-Verbindungen.

Halten Sie zunächst mariadb.service an:

  1. sudo systemctl stop mariadb

Verwenden Sie nun nano oder Ihren bevorzugten Texteditor, um eine MariaDB-Konfigurationsdatei namens mariadb.cnf zu erstellen:

  1. sudo nano /etc/mysql/mariadb.conf.d/mariadb.cnf

Fügen Sie nun die offizielle Konfigurationsvorlage von ERPNext hinzu:

/etc/mysql/mariadb.conf.d/mariadb.cnf
[mysqld]

# GENERAL #
user                           = mysql
default-storage-engine         = InnoDB
socket                         = /var/lib/mysql/mysql.sock
pid-file                       = /var/lib/mysql/mysql.pid

# MyISAM #
key-buffer-size                = 32M
myisam-recover                 = FORCE,BACKUP

# SAFETY #
max-allowed-packet             = 256M
max-connect-errors             = 1000000
innodb                         = FORCE

# DATA STORAGE #
datadir                        = /var/lib/mysql/

# BINARY LOGGING #
log-bin                        = /var/lib/mysql/mysql-bin
expire-logs-days               = 14
sync-binlog                    = 1

# REPLICATION #
server-id                      = 1

# CACHES AND LIMITS #
tmp-table-size                 = 32M
max-heap-table-size            = 32M
query-cache-type               = 0
query-cache-size               = 0
max-connections                = 500
thread-cache-size              = 50
open-files-limit               = 65535
table-definition-cache         = 4096
table-open-cache               = 10240

# INNODB #
innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-log-file-size           = 512M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 5462M
innodb-file-format             = barracuda
innodb-large-prefix            = 1
collation-server               = utf8mb4_unicode_ci
character-set-server           = utf8mb4
character-set-client-handshake = FALSE
max_allowed_packet             = 256M

# LOGGING #
log-error                      = /var/lib/mysql/mysql-error.log
log-queries-not-using-indexes  = 0
slow-query-log                 = 1
slow-query-log-file            = /var/lib/mysql/mysql-slow.log

# CONNECTIONS #

pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
bind-address    = 0.0.0.0

[mysql]
default-character-set = utf8mb4

[mysqldump]
max_allowed_packet=256M

Speichern und schließen Sie die Datei. Weitere Informationen zu diesen Konfigurationen finden Sie in dieser Vorlagendatei im Github-Repository von ERPNext. Dies ist ein nützlicher Ausgangspunkt für die Erkundung der Optionen.

Die Konfigurationsdatei /etc/mysql/mariadb.conf.d/mariadb.cnf ergänzt und überschreibt auch einige Werte, die in der Standardkonfiguration von MariaDB unter /etc/mysql/my.cnf enthalten sind. Diese Datei dient Ihnen als kuratierte Vorlage, die die Datenbankleistung für ERPNext erheblich verbessert. Denken Sie daran, dass diese Vorlage zwar ein guter Ausgangspunkt ist, Sie die Leistung von MariaDB jedoch noch weiter verbessern können, indem Sie die Parameter an Ihre Bedürfnisse anpassen.

Testen der MariaDB-Verbindung

Da ERPNext bei fast allen internen Operationen auf die Datenbankverbindung angewiesen ist, ist es sinnvoll, die Verbindung vor dem Fortfahren zu testen.

Starten Sie mariadb.service:

  1. sudo systemctl start mariadb

Zum Testen der Verbindung können Sie folgenden Befehl verwenden. Denken Sie daran, sammy und mariadb_password durch Ihre Anmeldedaten zu ersetzen:

  1. mysql --user sammy --password mariadb_password --host=localhost --protocol=tcp --port=3306 test

Sie erhalten eine Ausgabe mit dem grundlegenden Hilfeinhalt von MariaDB und mehreren Parametern. Das bedeutet, dass Ihre Verbindung erfolgreich hergestellt wurde:

Output
mysql Ver 15.1 Distrib 10.4.13-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Usage: mysql [OPTIONS] [database] Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf ... --ssl-verify-server-cert Verify server's "Common Name" in its cert against hostname used when connecting. This option is disabled by default. -t, --table Output in table format. --tee=name Append everything into outfile. See interactive help (\h) also. Does not work in batch mode. Disable with --disable-tee. This option is disabled by default. -u, --user=name User for login if not current user. -U, --safe-updates Only allow UPDATE and DELETE that uses keys. -U, --i-am-a-dummy Synonym for option --safe-updates, -U. -v, --verbose Write more. (-v -v -v gives the table output format). ... max-join-size 1000000 secure-auth FALSE show-warnings FALSE plugin-dir (No default value) default-auth (No default value) binary-mode FALSE connect-expired-password FALSE

Wenn Sie Änderungen an den Einstellungen von MariaDB vornehmen oder Fehler beheben müssen, können Sie den Dienst mit dem folgenden Befehl neu laden:

  1. sudo systemctl restart mariadb

Aktivieren Sie anschließend MariaDB:

  1. sudo systemctl enable mariadb

Nachdem Sie die Datenbankverbindung getestet haben, können Sie nun mit der Installation Ihrer ERPNext-Anwendung fortfahren.

Schritt 5 — Einrichten von ERPNext 12

Nachdem Ihr Datenbank-Backend nun bereit ist, können Sie mit der Einrichtung Ihrer ERPNext-Webanwendung fortfahren. In diesem Abschnitt erfahren Sie, wie Sie alle von ERPNext 12 benötigten Komponenten installieren und konfigurieren und dann die Anwendung selbst installieren.

Bereiten Sie zunächst mit allen Systempaketen, die ERPNext 12 benötigt, den Server vor. Installieren Sie systemweite Abhängigkeiten mit dem folgenden Befehl:

  1. sudo DEBIAN_FRONTEND=noninteractive apt install -y curl build-essential python3-testresources python3-setuptools python3-dev libffi-dev python3-pip libcurl4 dnsmasq fontconfig git htop libcrypto++-dev libfreetype6-dev liblcms2-dev libwebp-dev libxext6 libxrender1 libxslt1-dev libxslt1.1 libffi-dev ntpdate postfix python3-dev python-tk screen vim xfonts-75dpi xfonts-base zlib1g-dev apt-transport-https libsasl2-dev libldap2-dev libcups2-dev pv libjpeg8-dev libtiff5-dev tcl8.6-dev tk8.6-dev libdate-manip-perl logwatch

Die Variable DEBIAN_FRONTEND=noninteractive wurde an den Installationsbefehl übergeben, um Postfix-Eingabeaufforderungen zu vermeiden. Detaillierte Informationen zur Postfix-Konfiguration finden Sie in unserem Leitfaden zum Installieren und Konfigurieren von Postfix unter Ubuntu 20.04.

Aktualisieren Sie als Nächstes pip3, den standardmäßigen Paketmanager von Python, und installieren Sie dann die neuesten Versionen von drei zusätzlichen Python-Modulen:

  1. sudo -H python3 -m pip install --upgrade setuptools cryptography psutil

setuptools erleichtert die Installation und Aktualisierung von Python-Paketen, cryptography fügt Ihrem Stack Verschlüsselungsfunktionen hinzu und psutil hilft Ihnen bei der Systemüberwachung. Nachdem Sie alle erforderlichen globalen Abhängigkeiten installiert haben, installieren Sie nun sämtliche Dienste und Bibliotheken, die ERPNext 12 benötigt.

Einrichten von Node.js und Yarn

ERPNext 12 kann mit Version 8 der Node.js-Serverumgebung und höher zusammenarbeiten. Zum Zeitpunkt der Verfassung dieses Dokuments verwendet das offizielle ERPNext easy_install-Skript Node 8. Aus Sicherheitsgründen ist es jedoch ratsam, eine neuere Version zu installieren, da Node 8 2020 sein Lebensende (End of Life, EOL) erreicht hat und somit keine Sicherheitspatches mehr erhält. Ubuntu 20.04 enthält zum Zeitpunkt der Verfassung dieses Dokuments Node.js-Version 10.19. Zwar wird diese Version weiterhin unterstützt, doch aus ähnlichen Gründen (EOL in weniger als einem Jahr) ist es sehr ratsam, deren Verwendung zu vermeiden. Für diesen Leitfaden wird Node.js-Version 12 LTS zusammen mit den entsprechenden npm- und yarn-Paketmanagern installiert. Bitte beachten Sie, dass das Frappe-Framework yarn zum Installieren von Abhängigkeiten verwendet. Wenn Sie sich dazu entscheiden, eine alternative Installationsmethode zu nutzen, stellen Sie sicher, dass am Ende Version 1.12 von yarn oder höher in Ihrem System ausgeführt wird.

Fügen Sie das NodeSource-Repository zu Ihrem System hinzu:

  1. curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh

Sie können nun den Inhalt des heruntergeladenen Skripts überprüfen:

  1. sudo nano nodesurce_setup.sh

Sobald Sie mit den Inhalten des Skripts zufrieden sind, können Sie das Skript ausführen:

  1. sudo bash nodesource_setup.sh

Dieses Skript aktualisiert automatisch die Liste apt. Sie können nodejs nun auf Ihrem Server installieren:

  1. sudo apt install nodejs

Installieren Sie als Nächstes yarn global mit dem npm-Paketmanager:

  1. sudo npm install -g yarn

Nachdem Sie Node installiert haben, können Sie nun mit der Konfiguration von wkhtmltopdf für Ihre Plattform fortfahren.

ERPNext verwendet das Open-Source-Tool wkhtmltopdf, um HTML-Inhalte mit der Qt WebKit-Rendering-Engine in PDF zu konvertieren. Diese Funktion dient hauptsächlich zum Drucken von Rechnungen, Angeboten und anderen Berichten. Für ERPNext 12 wird eine spezifische Version von wkhtmltopdf (0.12.5) mit gepatchtem Qt benötigt.

Wechseln Sie zum Installieren von wkhtmltopdf zunächst in ein geeignetes Verzeichnis, in das Sie das Paket herunterladen möchten, in diesem Fall /tmp:

  1. cd /tmp

Laden Sie die entsprechende wkhtmltopdf-Version und das Paket für Ubuntu 20.04 von der Projektseite herunter:

  1. wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb

Installieren Sie das Paket nun mit dem Tool dpkg:

  1. sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb

Kopieren Sie als Nächstes alle relevanten ausführbaren Dateien in Ihr Verzeichnis /usr/bin:

  1. sudo cp /usr/local/bin/wkhtmlto* /usr/bin/

Ändern Sie anschließend ihre Berechtigungen, um sie ausführbar zu machen:

  1. sudo chmod a+x /usr/bin/wk*

Nachdem wkhtmltopdf richtig installiert ist, fügen wir nun Redis unserem Datenbank-Stack hinzu.

Installieren von Redis

ERPNext 12 verwendet Redis, um die Leistung von MariaDB zu verbessern. Insbesondere hilft Redis beim Caching.

Installieren Sie zunächst Redis aus dem offiziellen Ubuntu 20.04-Repository:

  1. sudo apt install redis-server

Aktivieren Sie anschließend Redis beim Start:

  1. sudo systemctl enable redis-server

Nachdem Sie Redis Ihrem Stack hinzugefügt haben, können wir uns nun einen Moment Zeit nehmen, um zusammenzufassen, was Sie bisher erreicht haben. Wir haben alle wichtigen Komponenten installiert, die ERPNext 12 benötigt, darunter:

  • Ein MariaDB-Datenbank-Backend
  • Die Node.js-JavaScript-Serverumgebung
  • Den Yarn-Paketmanager
  • Einen Redis-Datenbankcache
  • Den wkhtmltopdf-Generator für PDF-Dokumente

Egal, ob Sie das ERP-System für die Entwicklung oder Produktion installieren, sind Sie nun bereit für den nächsten Schritt, bei dem das Frappe-Full-Stack-Framework und die eigentliche ERPNext-12-Webanwendung installiert werden.

Schritt 6 — Installieren der Frappe Bench-CLI

Nachdem Sie alle Stack-Voraussetzungen für ERPNext installiert haben, können Sie nun die Flexibilität des Befehlszeilentools bench von Frappe nutzen. Die bench-CLI wurde mit dem Ziel entwickelt, Benutzer beim Installieren, Einrichten und Verwalten von Anwendungen wie ERPNext, die auf dem Frappe-Framework basieren, zu unterstützen. In den kommenden Abschnitten installieren Sie die bench-CLI und verwenden diese dann zum Abschließen der Einrichtung von ERPNext 12.

Stellen Sie sicher, dass der Frappe-Benutzer (in diesem Fall sammy) über die richtigen Berechtigungen für das Verzeichnis home verfügt:

  1. sudo chown sammy -R /home/sammy

Klonen Sie nun das frappe/bench-Repository in Ihr Stammverzeichnis. Denken Sie daran, sammy durch Ihren Systembenutzernamen zu ersetzen:

  1. git clone https://github.com/frappe/bench /home/sammy/.bench --depth 1 --branch master

Installieren Sie die bench-CLI:

  1. sudo pip3 install -e /home/sammy/.bench

Dieser Leitfaden geht davon aus, dass Sie ERPNext 12 für Test- bzw. Produktionsszenarien installieren und daher die Verzweigung master verwenden. Wenn Sie jedoch Anwendungen oder benutzerdefinierte ERPNext-Module entwickeln möchten, kann die Verzweigung develop eine bessere Option sein. In jedem Fall sind Sie nun bereit, das Frappe-Framework zu installieren. Dies ist der letzte Schritt vor der Installation von ERPNext selbst.

Einrichten der Frappe-Framework-Umgebung

In diesem Abschnitt erstellen Sie eine Frappe-Umgebung mithilfe der bench-CLI.

Bei der Installation von Frappe überschreiten Sie ggf. das File-Watch-Limit von Ubuntu, das standardmäßig auf 8192 festgelegt ist. Legen Sie mit dem folgenden Befehl ein höheres Limit fest, um das zu verhindern:

  1. echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Der Befehl tee fügt den Inhalt Ihres Befehls echo der aufgerufenen Datei an; außerdem wird die Ausgabe in Ihrer Konsole gedruckt.

Initialisieren Sie als Nächstes Frappe Framework 12. Ersetzen Sie Sammy durch Ihren Systembenutzernamen:

  1. bench init /home/sammy/frappe-bench --frappe-path https://github.com/frappe/frappe --frappe-branch version-12 --python python3

Bei der Ausführung werden möglicherweise ein Fehler zu Ihrem Pfad sowie mehrere Warnungen angezeigt. Lassen Sie den Prozess bis zum Ende fortlaufen. Nach seinem Abschluss sehen Sie eine Ausgabe, die der folgenden ähnelt; das bedeutet, dass Ihre Umgebung erfolgreich erstellt wurde:

Output
... Done in 82.23s. INFO:bench.utils:setting up backups no crontab for sammy SUCCESS: Bench /home/sammy/frappe-bench initialized

Anmerkung: Der Prozess bench init kann angehalten werden, wenn ein Fehler vom Typ spawn ENOMEM auftritt. Dieser Fehler wird ausgelöst, wenn Ihr System nicht mehr genügend Arbeitsspeicher hat. Sie müssen das Problem vor dem Fortfahren beheben, entweder durch Installieren von mehr physischem Arbeitsspeicher oder durch Zuweisen eines Auslagerungsbereichs.

Sehen wir uns den Befehl genauer an, mit dem die Umgebung erstellt wird:

  • /home/sammy/frappe-bench ist der Pfad, in dem das Frappe-Framework, die Websites und zugehörige Anwendungen installiert werden. Es wird ein neues Verzeichnis (in diesem Beispiel namens frappe-bench) erstellt, um alle erforderlichen Dateien unterzubringen.
  • --frappe-path verweist auf das Frappe-Repository, das in diesem Fall das offizielle Github-Repository ist.
  • --frappe-branch ist die zu installierende Frappe-Version. Da Sie ERPNext 12 installieren möchten, ist die gewählte Version Frappe 12.
  • --python ist die zu verwendende Python-Version. ERPNext 12 erfordert Python 3.6 oder höher. Frühere Versionen nutzen jedoch immer noch Python 2.7.

Weitere Informationen zu bench-CLI-Befehlen finden Sie im Spickzettel mit Bench-Befehlen.

Die Flexibilität, die das Frappe-Framework bietet, geht weit über die Verwendung isolierter Umgebungen hinaus. Sie können auch verschiedene Websites erstellen und Anwendungen in ihnen installieren.

Schritt 7 — Installieren der ERPNext 12-Webanwendung

In diesem Abschnitt richten Sie eine auf Frappe basierende Site ein und installieren dann darin die ERPNext 12-Anwendung.

Wechseln Sie zu dem Verzeichnis, in dem Frappe initialisiert wurde.

  1. cd /home/sammy/frappe-bench

Bevor Sie fortfahren, müssen Sie bestimmte Versionen von Python-Bibliotheken numpy und pandas in der virtuellen Frappe-Umgebung installieren. Installieren Sie diese Pakete mit dem folgenden Befehl:

  1. ./env/bin/pip install numpy==1.18.5 && ./env/bin/pip install pandas==0.24.2

An diesem Punkt stoppt die Installation möglicherweise etwa 10 bis 20 Minuten lang, während die folgende Nachricht angezeigt wird:

Output
... Building wheel for pandas (setup.py) ... -

Dies hat mit einem Fehler in Verbindung mit pandas und Ubuntu 20.04 zu tun, das zum Zeitpunkt der Verfassung dieses Dokuments noch relativ neu war. Dennoch werden die Pakete erstellt. Danach sehen Sie eine Ausgabe, die wie folgt aussieht:

Output
... Successfully built pandas Installing collected packages: pandas Successfully installed pandas-0.24.2

Sie können nun mit der Installation fortfahren. Laden Sie ERPNext 12 aus dem Repository mit der bench-CLI herunter:

  1. bench get-app erpnext https://github.com/frappe/erpnext --branch version-12

Erstellen Sie als Nächstes die neue Site und ersetzen Sie your_domain durch die Domäne, die Sie mit der IP-Adresse dieses Servers verknüpft haben:

  1. bench new-site your_domain --admin-password 'erpnext_admin_password' --mariadb-root-username sammy --mariadb-root-password 'mariadb_password'

Nehmen wir uns einen Moment Zeit, um die im obigen Befehl verwendeten Optionen zu betrachten:

  • bench new-site erstellt eine neue Site basierend auf dem Frappe-Framework.
  • your_domain ist der Name für die neue Site. Stellen Sie sicher, dass das DNS Ihrer Domäne über einen A-Eintrag verfügt, der auf die IP-Adresse Ihres Servers verweist.
  • erpnext_admin_password ist das gewünschte Passwort für den ERPNext-Benutzer Administrator. Bewahren Sie dieses Passwort an einem sicheren Ort auf; Sie werden es in Kürze benötigen.
  • mariadb_password ist das Passwort, das Sie am Anfang des Leitfadens für den MariaDB-Benutzer sammy erstellt haben.

Installieren Sie anschließend die ERPNext-Anwendung in der Site:

  1. bench --site your_domain install-app erpnext

Nach Abschluss der Installation verfügen Sie über eine funktionierende ERPNext 12-Anwendung. Testen wir dies nun mit einem bench-Befehl:

  1. bench start

Mit dem oben genannten Schritt wird eine Konsole zur Echtzeitüberwachung gestartet, die Ihnen verschiedene Nachrichten zum Webserver und anderen Diensten anzeigt. Öffnen Sie einen Webbrowser und navigieren Sie zu localhost:8000 (bei lokalen Installationen) oder your_domain:8000 (wenn Sie einen Remoteserver verwenden). Sie sehen den ERPNext-Anmeldebildschirm (wir werden in einem späteren Schritt mit der Anmeldung und Einrichtung fortfahren, wenn unsere Site produktionsfertig ist).

Kehren Sie nach dem Besuch Ihrer Testbereitstellung zu Ihrem Terminal zurück und drücken Sie Strg+C. Dadurch wird ERPNext angehalten und die Überwachungskonsole beendet.

Wenn Ihr Hauptziel darin besteht, Module zu erstellen oder ERPNext 12 zu modifizieren, können Sie an diesem Punkt aufhören. Für Entwicklungszwecke sind keine Komponenten mehr erforderlich. Wenn Sie jedoch ein produktionsfähiges System benötigen, das keine manuelle Initialisierung voraussetzt, müssen Sie noch einige zusätzliche Komponenten installieren und konfigurieren. Dies ist Ihr nächster Schritt.

Schritt 8 — Einrichten von ERPNext 12 für die Produktion

Zwar ist Ihre ERPNext 12-Anwendung fertig, doch ist das System insgesamt noch nicht bereit für die Produktion. Um die Zuverlässigkeit und Sicherheit von ERPNext zu gewährleisten, müssen Sie einige zusätzliche Dienste aktivieren:

  • Fail2ban bietet eine zusätzliche Schutzschicht vor Brute-Force-Angriffen durch bösartige Benutzer und Bots.
  • Nginx dient hauptsächlich als Webproxy, der den gesamten Datenverkehr von Port 8000 zu Port 80 (HTTP) oder Port 443 (HTTPS) umleitet.
  • Supervisor sorgt dafür, dass die wichtigsten Prozesse von ERPNext kontinuierlich ausgeführt und bei Bedarf neu gestartet werden.

Bisher haben Sie ERPNext 12 manuell installiert und konfiguriert, sodass Sie den Prozess an einen bestimmten Anwendungsfall anpassen konnten. Für den Rest der Produktionseinrichtung können Sie jedoch aus Gründen der Einfachheit die bench-CLI nutzen und die Installation und Konfiguration der verbleibenden Dienste automatisch erledigen lassen.

Stellen Sie sicher, dass Sie sich im Arbeitsverzeichnis Frappe befinden:

  1. cd /home/sammy/frappe-bench

Verwenden Sie nun folgenden Befehl, um die Einrichtung von ERPNext 12 für die Produktion abzuschließen:

  1. sudo bench setup production sammy --yes

Dadurch werden Nginx, Supervisor und Fail2Ban installiert und konfiguriert und wird sammy als Eigentümer der Produktionsumgebung festgelegt.

Die Konfigurationsdateien, die mit dem Befehl bench erstellt werden, sind:

  • Zwei Nginx-Konfigurationsdateien, die sich unter /etc/nginx/nginx.conf und /etc/nginx/conf.d/frappe-bench.conf befinden
  • Ein Fail2Ban-Proxy-Jail unter /etc/fail2ban/jail.d/nginx-proxy.conf und ein Filter unter /etc/fail2ban/filter.d/nginx-proxy.conf

Diese Standardkonfigurationen reichen für dieses Tutorial aus; Sie sollten diese Dateien jedoch erkunden und an Ihre Anforderungen anpassen. Sie können alle Dienste anhalten, indem Sie Folgendes ausführen:

  1. sudo supervisorctl stop all

Und wenn Sie bereit dazu sind, können Sie Ihre Dienste neu starten:

  1. sudo supervisorctl start all

Sie sind nun in der Lage, Ihre Installation zu testen.

Testen Ihrer ERPNext 12-Installation

Vergewissern Sie sich zunächst, dass wichtige Produktionsdienste ausgeführt werden. Verwenden Sie folgenden Befehl systemctl und übergeben Sie ihn dann an grep:

  1. systemctl list-unit-files | grep 'fail2ban\|nginx\|supervisor'

Sie werden eine Ausgabe wie diese sehen:

Output
fail2ban.service enabled nginx.service enabled supervisor.service enabled

Nachdem Sie sich vergewissert haben, dass alles wie erwartet funktioniert, können Sie ERPNext 12 auf Ihrem Server live testen. Öffnen Sie Ihren bevorzugten Browser und navigieren Sie zu your_domain oder dort hin, wo Sie Ihre ERPNext 12-Anwendung hosten.

Nach wenigen Sekunden sollten Sie den Anmeldebildschirm von ERPNext 12 sehen. Verwenden Sie Administrator als Benutzernamen (email) und das zuvor für das Passwort erstellte erpnext_admin_password.

Anmeldefenster von ERPNext

Im nächsten Bildschirm sehen Sie ein Dropdownmenü, in dem Sie die Sprache der Benutzeroberfläche für die Anwendung auswählen können:

Sprachauswahl

Nach der Sprachauswahl wird Sie ERPNext zur Eingabe Ihres Lands, Ihrer Zeitzone und der Währung auffordern:

Wählen Sie Ihre Region aus

Sobald Sie die Regionsinformationen festgelegt haben, können Sie Ihren ersten ERPNext-Benutzer erstellen. Die von Ihnen angegebenen Informationen werden als Anmeldedaten des Benutzers verwendet.

Erster ERPNext-Benutzer

Im nächsten Bildschirm werden Sie nach etwas gefragt, das ERPNext Domänen nennt. Wenn Sie sich nicht sicher sind, wie Ihre Domäne lautet, wählen Sie als Nächstes Distribution und klicken Sie auf die Schaltfläche Weiter.

Wählen Sie Ihre Domänen aus

Als Nächstes müssen Sie einen Firmennamen und eine Abkürzung angeben.

Firmenname

Im letzten Bildschirm fragt Sie ERPNext nach dem, was Ihre Firma tut, nach dem Namen ihrer Bank, nach der Art der Kontenpläne und nach der Geschäftsjahresperiode. Sie können später weitere Banken eingeben. Füllen Sie vorerst alle Felder wie gewünscht aus und klicken Sie dann auf die Schaltfläche Complete Setup (Einrichtung abschließen).

Finanzdaten

Als Nächstes sehen Sie eine Fortschrittsleiste.

Einrichten von ERPNext

Nach Abschluss der Einrichtung wird das Haupt-Dashboard von ERPNext 12 angezeigt.

ERPNext 12-Dashboard

Sie haben nun eine ERPNext 12-Anwendung fertig installiert und konfiguriert.

Zusammenfassung

Nachdem Sie Ihre ERPNext 12-Anwendung richtig installiert haben, können Sie nun mit der Anpassung des Systems an Ihre geschäftlichen Bedürfnisse beginnen. Ein guter Ausgangspunkt ist ein Klick auf die Schaltfläche Getting Started (Erste Schritte) im ERPNext-Dashboard. ERPNext hilft Ihnen dann bei der Konfiguration der Plattform für alle Ihre geschäftlichen und E-Commerce-Anforderungen.

Erste Schritte

Vielleicht möchten Sie auch die Geschwindigkeit von ERPNext erhöhen. In diesem Fall können Sie mehr über die Leistungsoptimierung bei ERPNext erfahren; hier erhalten Sie Informationen über bewährte Praktiken und die Behebung von Leistungsproblemen.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors


Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Featured on Community

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more