Der Autor hat Software in the Public Interest dazu ausgewählt, im Rahmen des Programms Write for DOnations eine Spende zu erhalten.
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:
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.
sudo
-Berechtigungen. Sie können Ihren Server und Benutzer einrichten, indem Sie unserem Leitfaden zur Ersteinrichtung des Servers unter Ubuntu 20.04 folgen.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.
your_domain
verwendet.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. HTTPS3306/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. STMP22/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 ProduktionZum Öffnen verschiedener Ports auf einmal können Sie folgenden Befehl verwenden:
- 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:
- sudo ufw allow from server_IP to any port port_number
Nach dem Öffnen aller erforderlichen Ports aktivieren Sie die Firewall:
- sudo ufw enable
Überprüfen Sie nun den Status Ihrer Firewall:
- sudo ufw status
UFW gibt eine Liste Ihrer aktivierten Regeln aus. Stellen Sie sicher, dass die erforderlichen Ports von ERPNext geöffnet sind:
OutputStatus: 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.
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:
- sudo apt update
Konfigurieren Sie nun die Tastenbelegung, Sprache und Zeichencodierung:
- 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:
- sudo nano /etc/environment
Fügen Sie jetzt den folgenden Inhalt hinzu.
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:
- 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.
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:
- 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:
- 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:
- sudo mysql_secure_installation
Das Skript mysql_secure_installation
wird Ihnen mehrere Fragen stellen:
ENTER
.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.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.
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:
- 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:
- CREATE DATABASE sammy;
Prüfen Sie mit dieser SQL-Anweisung, ob die Datenbank erstellt wurde:
- 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:
- 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:
- 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:
- FLUSH PRIVILEGES;
Abschließend beenden Sie die Sitzung:
- 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.
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:
- sudo systemctl stop mariadb
Verwenden Sie nun nano
oder Ihren bevorzugten Texteditor, um eine MariaDB-Konfigurationsdatei namens mariadb.cnf
zu erstellen:
- sudo nano /etc/mysql/mariadb.conf.d/mariadb.cnf
Fügen Sie nun die offizielle Konfigurationsvorlage von ERPNext hinzu:
[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.
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
:
- 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:
- 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:
Outputmysql 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:
- sudo systemctl restart mariadb
Aktivieren Sie anschließend MariaDB:
- sudo systemctl enable mariadb
Nachdem Sie die Datenbankverbindung getestet haben, können Sie nun mit der Installation Ihrer ERPNext-Anwendung fortfahren.
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:
- 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:
- 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.
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:
- curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh
Sie können nun den Inhalt des heruntergeladenen Skripts überprüfen:
- sudo nano nodesurce_setup.sh
Sobald Sie mit den Inhalten des Skripts zufrieden sind, können Sie das Skript ausführen:
- sudo bash nodesource_setup.sh
Dieses Skript aktualisiert automatisch die Liste apt
. Sie können nodejs
nun auf Ihrem Server installieren:
- sudo apt install nodejs
Installieren Sie als Nächstes yarn
global mit dem npm
-Paketmanager:
- 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
:
- cd /tmp
Laden Sie die entsprechende wkhtmltopdf
-Version und das Paket für Ubuntu 20.04 von der Projektseite herunter:
- 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
:
- 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
:
- sudo cp /usr/local/bin/wkhtmlto* /usr/bin/
Ändern Sie anschließend ihre Berechtigungen, um sie ausführbar zu machen:
- sudo chmod a+x /usr/bin/wk*
Nachdem wkhtmltopdf
richtig installiert ist, fügen wir nun Redis unserem Datenbank-Stack hinzu.
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:
- sudo apt install redis-server
Aktivieren Sie anschließend Redis beim Start:
- 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:
wkhtmltopdf
-Generator für PDF-DokumenteEgal, 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.
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:
- 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:
- git clone https://github.com/frappe/bench /home/sammy/.bench --depth 1 --branch master
Installieren Sie die bench
-CLI:
- 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.
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:
- 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:
- 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.
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.
- 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:
- ./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:
- 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:
- 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:
- 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:
- 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.
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:
8000
zu Port 80
(HTTP) oder Port 443
(HTTPS) umleitet.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:
- cd /home/sammy/frappe-bench
Verwenden Sie nun folgenden Befehl, um die Einrichtung von ERPNext 12 für die Produktion abzuschließen:
- 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:
/etc/nginx/nginx.conf
und /etc/nginx/conf.d/frappe-bench.conf
befinden/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:
- sudo supervisorctl stop all
Und wenn Sie bereit dazu sind, können Sie Ihre Dienste neu starten:
- sudo supervisorctl start all
Sie sind nun in der Lage, Ihre Installation zu testen.
Vergewissern Sie sich zunächst, dass wichtige Produktionsdienste ausgeführt werden. Verwenden Sie folgenden Befehl systemctl
und übergeben Sie ihn dann an grep
:
- systemctl list-unit-files | grep 'fail2ban\|nginx\|supervisor'
Sie werden eine Ausgabe wie diese sehen:
Outputfail2ban.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
.
Im nächsten Bildschirm sehen Sie ein Dropdownmenü, in dem Sie die Sprache der Benutzeroberfläche für die Anwendung auswählen können:
Nach der Sprachauswahl wird Sie ERPNext zur Eingabe Ihres Lands, Ihrer Zeitzone und der Währung auffordern:
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.
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.
Als Nächstes müssen Sie einen Firmennamen und eine Abkürzung angeben.
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).
Als Nächstes sehen Sie eine Fortschrittsleiste.
Nach Abschluss der Einrichtung wird das Haupt-Dashboard von ERPNext 12 angezeigt.
Sie haben nun eine ERPNext 12-Anwendung fertig installiert und konfiguriert.
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.
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.
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!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.