Nachdem ich hier von zahlreichen Misserfolgen bei der Installation von ERPNext lesen musste, kommt hiermit eine weitere Anleitung. Es handelt sich um eine halbautomatische Variante, bei der auch die grundlegende Serverkonfiguration enthalten ist. Der automatisierte Teil ist, dass wir das Ansible Playbook von bench
nutzen, um MariaDB, NodeJ, Redis etc. zu installieren.
Diese Schritte habe ich genau so durchgeführt und wer es genau so macht, bei dem wird es wahrscheinlich funktionieren. Wir verwenden hier ein Ubuntu 18.04 in der Hetzner Cloud. Wer einen LXC-Container auf einem Raspberry Pi verwendet, Schritte weglässt oder hinzufügt, muss sich leider selbst um seine Fehlermeldungen kümmern.
P.S.: Wem das alles zu viel ist, der erhält unter alyf.de/jetzt-starten innerhalb von wenigen Sekunden eine fertige, kostenlose ERPNext-Instanz.
In Hetzner Cloud Console anmelden.
Projekt öffnen.
Server hinzufügen.
- Standort: Nürnberg
- Image: Ubuntu 18.04 (oder 20.04)
- Typ: Standard, Lokal (NVMe SSD), CX31
- Volume: keines
- Netzwerk: keines
- Zusätzliche Features: Backups
- SSH-Key: auswählen oder hinzufügen
- Name: wie vorgegeben
IP-Adresse kopieren.
Zugriff via SSH.
> ssh root@123.45.67.89
The authenticity of host '123.45.67.89 (123.45.67.89)' can't be established.
ECDSA key fingerprint is SHA256:KugfJBGSL+HKdsfkjLmnadsf8awjernl.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Software auf den neuesten Stand bringen.
> apt-get update && apt-get upgrade
Grundlegende Pakete installieren (vim
und zsh
sind Geschmackssache).
> apt-get install curl wget vim git ufw zsh
Admin und Frappe-Benutzer erstellen.
> adduser admin
Adding user `admin' ...
Adding new group `admin' (1000) ...
Adding new user `admin' (1000) with group `admin' ...
Creating home directory `/home/admin' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for admin
Enter the new value, or press ENTER for the default
Full Name []: Admin
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] Y
> adduser frappe
Adding user `frappe' ...
Adding new group `frappe' (1001) ...
Adding new user `frappe' (1001) with group `frappe' ...
Creating home directory `/home/frappe' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for frappe
Enter the new value, or press ENTER for the default
Full Name []: Frappe
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] Y
Admin zu sudoers hinzufügern.
> usermod -aG sudo admin
SSH-Keys von root zu Admin kopieren.
> rsync --archive --chown=admin:admin /root/.ssh /home/admin
Python3 und andere Abhängigkeiten installieren.
> apt-get install python3-minimal build-essential python3-setuptools python3-dev python3-pip libffi-dev
Pip-Module installieren.
> python3 -m pip install wheel ansible frappe-bench
Firewall konfigurieren (mehr dazu hier).
> ufw default allow outgoing
> ufw default deny incoming
> ufw allow ssh
> ufw allow http
> ufw allow https
Firewall aktivieren:
> ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
SSH-Zugriff absichern.
> vim /etc/ssh/sshd_config
# Zeile "PermitRootLogin yes" ersetzen durch "PermitRootLogin no"
# Zeile "#PasswordAuthentication yes" ersetzen durch "PasswordAuthentication no"
> service sshd reload
SSH-Session mit strg + d beenden.
Als Admin anmelden (als root sollte nicht mehr möglich sein).
> ssh admin@123.45.67.89
Benchs Ansible Playbook ausführen. Installiert weitere Abhängigkeiten wie MariaDB und NodeJS.
> sudo ansible-playbook -c local /usr/local/lib/python3.8/dist-packages/bench/playbooks/site.yml -vvvv -e "production=true container=false frappe_user=frappe mariadb_version=10.4 mysql_root_password=MEIN_PASSWORT without_bench_setup=true run_travis=false" --become --become-user=frappe
Bitte
MEIN_PASSWORT
durch ein sicheres Passwort ersetzen!
Zum Frappe-Benutzer wechseln:
> sudo su - frappe
Neue Bench erstellen. Mit dem Parameter --frappe-branch
kann die Version spezifiziert werden. Zur Auswahl stehen version-12
(stabile Version), version-13-beta
(Vorschau der nächsten Version) und develop
(aktuellster Stand der Entwicklung).
> bench init --frappe-branch version-12 frappe-bench
In den Bench-Ordner wechseln. In Zukunft werden alle bench
-Befehle in diesem Ordner ausgeführt.
> cd frappe-bench/
Neue Site erstellen.
> bench new-site site1.local
MySQL root password:
Restoring Database file...
11.9KiB 0:00:00 [ 146MiB/s] [=====================================================================>] 100%
Installing frappe...
Updating DocTypes for frappe : [========================================] 100%
Updating country info : [========================================] 100%
Set Administrator password:
Re-enter Administrator password:
*** Scheduler is disabled ***
Current Site set to site1.local
Socketio einrichten.
> bench setup socketio
Per strg + d wieder zum Admin und in den Bench-Ordner wechseln.
> cd /home/frappe/frappe-bench
Den Production Modus aktivieren.
> sudo bench setup production frappe
Nun sollte die Site unter der IP-Adresse des Servers erreichbar sein:
Damit ist zunächst das Frappe-Framework installiert. ERPNext ist lediglich eine zusätzliche App, die wie folgt installiert werden kann.
Zum Frappe-Benutzer und in den Bench-Odner wechseln.
> sudo su - frappe
> cd frappe-bench/
ERPNext herunterladen. Mit dem Parameter --branch
kann die Version spezifiziert werden. Zur Auswahl stehen version-12
(stabile Version), version-13-beta
(Vorschau der nächsten Version) und develop
(aktuellster Stand der Entwicklung). Der ERPNext-branch muss mit dem Frappe-Branch übereinstimmen (es kann bspw. nicht Frappe version-12
zusammen mit ERPNext develop
verwendet werden).
> bench get-app --branch version-12 erpnext
ERPNext installieren.
> bench install-app erpnext
Datenbank mit ERPNext neu aufsetzen.
> bench reinstall
Bei etwaigen Fehlern helfen diese Befehle oft weiter:
# Abhängigkeiten der Frappe-Apps installieren
> bench setup requirements
# JavaScript und CSS neu generieren
> bench build
# Konfiguration des Webservers aktualisieren
> bench setup nginx && service nginx reload
# Cache leeren
> bench clear-cache
# Neustarten
> bench restart