Docker-Stack: Frappe CRM + ERPNext (branch main) aufsetzen #1
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Kontext
Ablösung des alten Mautic-basierten Lead-Scrapers (
wsc_py_leadscraper) durch einen Workflow, der Leads direkt in Frappe CRM anlegt. Der LeadScraper wird als Frappe Custom App (Plugin) umgesetzt, nicht als Standalone-Service per REST — dafür wird zuerst eine laufende Frappe-Instanz benötigt. CRM und ERPNext laufen bewusst in einem Stack/einer Bench, da beides Apps auf derselben Frappe-Site sind (Standard-Frappe-Architektur, kein Kompromiss).Zugehöriges Plugin-Repo:
Frappe-Projekte/LeadScraper-Google(siehe dortiges Issue "LeadScraper als Frappe Custom App statt Standalone-Service" — abhängig von diesem Stack).Recherche-Grundlage
frappe/frappe_docker-Repo geprüft:compose.yaml, Overrides (compose.mariadb.yaml,compose.redis.yaml,compose.migrator.yaml,compose.backup-cron.yaml,compose.noproxy.yaml), Doku (Build-Setup, Start-Setup, Overview, Custom-App-Konzept).FRAPPE_BRANCH=mainexistiert kein vorgebautes Docker-Hub-Image (frappe/build:maingibt es nicht, nur versionierte Branches wieversion-16). Der schnellerelayered-Image-Typ scheidet damit aus — es muss dercustom-Image-Typ verwendet werden (kompletter Build aus Source viaimages/custom/Containerfile, Basispython:slim). Erstbuild dauert ca. 20–40 Minuten.Docker-Stacks/projekt-sw6als WSC-Standardmuster herangezogen (Traefik-Labels, Autoheal-Labels, Ofelia-Cronjob-Labels, shyim/docker-backup-Labels,.envwird getrackt mit Platzhaltern,volumes/wird ignoriert).Entschiedene Eckpunkte
mainerpnext(branchmain) +crm(branchmain) direkt mit installiertcustom(keinlayered, da kein Docker-Hub-Image fürmainexistiert)HTTP_PUBLISH_PORT, Default8080)projekt-sw6: Traefik-Labels,traefik_proxy_network, Autoheal, Ofelia, shyim-Backup11.8(von Frappe für aktuelle Version getestet, bewusste Abweichung vonprojekt-sw6s11.4)redis-cache+redis-queue, mit Passwortschutz (Ergänzung ggü. Frappe-Standard, konsistent zu WSC-Muster).envprojekt-sw6), Platzhalter/Test-Werte lokal, echte Secrets erst liveGeplante Repo-Struktur
apps.jsonbuild.sh(kein Vendoring von frappe_docker nötig — Remote-Git-Build-Context)BuildKit-Secret statt
--build-argfürapps.json(sonst in Image-Historie sichtbar). Erfordert Docker Engine v23+.docker-compose.ymlServicesconfigurator,backend,frontend(Nginx, Ansatzpunkt für lokale/live Unterschiede),websocket,queue-short,queue-long(hier läuft später der LeadScraper-Job),scheduler(führt späterscheduler_eventsdes Plugins aus),migrator(bench --site all migratebei jedem Start),db(MariaDB 11.8, Healthcheck, Autoheal, shyim-Backup-Labels),redis-cache+redis-queue(mit Passwortschutz),backup-helper(Ofelia-tar-Backup dessites-Volumes, analogprojekt-sw6). WSC-Standard:logging.driver: json-file(max-size 10m/max-file 3),restart: unless-stopped.docker-compose.override.yml(lokal, Default)docker-compose.prod.yml(live, explizit mit-f)1:1 nach dem Traefik-Label-Muster aus
projekt-sw6/docker-compose.yml, nur Port8080statt8000.Manuelle Schritte nach erstem Start (nicht automatisiert, analog zu Shopware-Install bei projekt-sw6)
Verifikation
docker compose configgegen Base+Override validieren./build.sherfolgreich (Custom-Image-Build, ~20–40 Min.)docker compose up -d,configuratorläuft erfolgreich durch, alle Services healthyhttp://localhost:8080erreichbar (Login-Seite Frappe/CRM)bench --site crm.local list-apps→frappe,erpnext,crmvorhandenNächster Schritt
Umsetzung Schritt für Schritt (Build-Skript → Compose-Dateien →
.env→ Doku), jeweils mit Bestätigung vor dem nächsten Schritt.Umgesetzt, mit einer Korrektur gegenüber der ursprünglichen Planung:
frappe/frappeundfrappe/erpnexthaben keinen Branchmain(gegen die GitHub-API geprüft) — der erste Build brach entsprechend mitInvalidRemoteException: Invalid branch or tag: mainab. Der tatsächliche aktuelle/bleeding-edge Branch heißt bei beidendevelop. Alle Stellen (apps.json,build.sh,.env,docker-compose.yml, Doku) wurden entsprechend aufdevelopumgestellt.Verifiziert:
frappe-crm-erp:develop, custom-Image-Typ)configurator+migratormit Exit-Code 0crm.localangelegt mitfrappe+erpnext+crmAdministratorend-to-end getestet (Session-Cookie +frappe.auth.get_logged_userbestätigt)./volumes/*) empirisch gegendocker compose down --volumes --rmi allgeprüft: Daten bleiben erhaltenCommit:
a7600be— Doku unterdocs/install.md(Schritt-für-Schritt für spätere Live-Installation).