Schritt-für-Schritt-Anleitung für die Einrichtung von ERPNextSwiss mit Frappe Docker:
ERPNext ist eine Open-Source-Unternehmensressourcenplanungssoftware (ERP), die darauf abzielt, verschiedene Geschäftsprozesse wie Buchhaltung, Vertrieb, Lagerverwaltung und Personalwesen in einer integrierten Plattform zu vereinen. Es bietet eine benutzerfreundliche Oberfläche und ermöglicht Unternehmen, ihre Ressourcen effizient zu verwalten, ihre Abläufe zu optimieren und fundierte Entscheidungen zu treffen.
ERPNextSwiss:
ERPNextSwiss ist eine spezielle Anpassung von ERPNext, die darauf ausgerichtet ist, die Bedürfnisse und Anforderungen des Schweizer Marktes zu erfüllen. Die Anpassungen beinhalten spezifische gesetzliche Anforderungen, Währungen, Steuercodes und andere schweizerspezifische Geschäftsprozesse. Durch diese Anpassungen wird ERPNextSwiss zu einer geeigneten Lösung für Unternehmen in der Schweiz, die eine lokalisierte und konformere ERP-Lösung suchen, um ihre betrieblichen Anforderungen zu erfüllen. Damit bietet ERPNextSwiss eine massgeschneiderte ERP-Lösung, die den lokalen Anforderungen und Bestimmungen gerecht wird und Unternehmen in der Schweiz dabei unterstützt, ihre Geschäftsprozesse effektiv zu verwalten.
Wir helfen dir gerne beim Einrichten und Hosten deiner ERPNext Lösung! Kontaktiere uns noch heute!
1. Frappe Docker Repository klonen:
git clone https://github.com/frappe/frappe_docker
cd frappe_docker
2. apps.json Datei erstellen:
Erstelle eine apps.json Datei mit dem folgenden Inhalt:
[
{
"url": "https://github.com/frappe/payments",
"branch": "develop"
},
{
"url": "https://github.com/frappe/erpnext",
"branch": "version-15"
},
{
"url": "https://github.com/libracore/erpnextswiss.git",
"branch": "v15"
}
]
3. Export in Variable
Exportiere den Inhalt der Datei als BASE64 String in die Variable APPS_JSON_BASE64
export APPS_JSON_BASE64=$(base64 -w 0 /path/to/apps.json)
4. Image erstellen
Nun kann das Image mithilfe von docker build
erstellt werden
docker build \
--build-arg=FRAPPE_PATH=https://github.com/frappe/frappe \
--build-arg=FRAPPE_BRANCH=version-15 \
--build-arg=PYTHON_VERSION=3.10.12 \
--build-arg=NODE_VERSION=18.18.2 \
--build-arg=APPS_JSON_BASE64=$APPS_JSON_BASE64 \
--tag=databyte.ch/user/repo/custom:1.0.0 \
--file=images/custom/Containerfile .
Wichtig!
Sollte die Erstellung fehlschlagen aufgrund der Meldung, dass gewisse Adresse nicht erreichbar sind, versuche das Netzwerk zu spezifizieren mit:
--network=host
5. Erstellen des compose.yaml file
Mithilfe des easy-install.py skriptes wird nun ein compose.yaml file erstellt. Dazu wir dem Skript mitgegeben, welche Domain für den Betrieb der Seite verwendet wird. Dies ist nur relevant, falls traefik verwenden werden soll.
–image gibt hier das zuvor erstellte, lokale, image an.
–version definiert den versions tag des zuvor erstellten image.
wget https://raw.githubusercontent.com/frappe/bench/develop/easy-install.py
python3 easy-install.py --prod --email -s --image databyte.ch/user/repo/custom --version=1.0.0
Sollte dieser Schritt fehlschlagen, prüfe das yml in root/frappe-compose.yml ob die version korrekt eingetragen wurde. Wenn nicht, dann erstelle einfach ein neues image mit passendem tag.
6. Starten der Container
Nun können alle Container mithilfe von docker compose gestartet werden. Wichtig! Es ist Docker Compose V2 erforderlich!
/usr/bin/docker compose -p frappe -f /root/frappe-compose.yml up -d
7. Installieren fehlender Packages
Mit hoher Wahrscheinlichkeit, werden im Container noch ein paar Tools für die Installation von ERPNextSwiss fehlen. Diese lassen sich wie folgt installieren:
docker compose -p frappe exec -it -u 0 backend bash
apt update && apt install ffmpeg libsm6 libxext6
8. Erstellen der Seite
Nun muss zum Schluss noch eine neue Seite erstellt werden und die Apps (ERPNext und ERPNextSwiss) installiert werden. Dies geschieht mit folgendem Befehl. Dabei findest du die Passwörter in der durch das Skript erstellten Datei passwords.txt
docker compose -p frappe exec backend bench new-site --no-mariadb-socket --db-root-password --admin-password --install-app erpnext --install-app erpnextswiss --set-default
Mehrere Seiten
Möchtest du ein Multitenant (Multiuser) System aufbauen, so kannst du den obigen Befehl mehrfach mit unterschiedlichen domains ausführen.
Externer Reverse Proxy
Möchtest du einen eigenen Reverse Proxy verwenden anstelle von traefik, dann kannst du im compose file beim frontend service eine ports Direktive hinzufügen. Dadurch wird das Frontend direkt erreichbar und du benötigst den traefik container nicht mehr. Wichtig ist, dass du den hostname bei der Anfrage mitsendest. Ein direkter Aufruf der IP genügt nicht!
image: databyte.ch/user/repo/custom:1.0.0
ports:
- 8080:8080