Änderungen von Dokument N8n Workflow Engine

Zuletzt geändert von Daniel Herrmann am 2026/02/22 21:17

Von Version Icon 7.1 Icon
bearbeitet von Daniel Herrmann
am 2026/02/22 19:35
Änderungskommentar: Neuen Anhang 1771785309574-242.png hochladen
Auf Version Icon 2.1 Icon
bearbeitet von Daniel Herrmann
am 2025/08/31 19:24
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Icon Seiteneigenschaften
Inhalt
... ... @@ -1,61 +1,108 @@
1 1  n8n ist ein **Open-Source-Tool zur Workflow-Automatisierung**, das man selbst hosten kann. Über eine **visuelle Oberfläche** baut man Workflows per Drag-and-drop aus sogenannten „Nodes“, die verschiedene Dienste und Aktionen miteinander verbinden. Es gibt Hunderte vorgefertigte Integrationen, z. B. für Slack, Mail oder MQTT. Ebenfalls gibt es eine große Auswahl an für uns relevante Community Nodes (Vikunja, Listmonk, und so weiter) sowie die Möglichkeit, eigene Nodes zu schreiben (beispielsweise Paperless oder NATS).
2 2  
3 -= Workflow Übersicht =
3 += {{id name="N8nWorkflowEngine-WorkflowÜbersicht"/}}Workflow Übersicht =
4 4  
5 -Workflows bestehen grundsätzlich aus einem oder mehreren **Triggern** und einer oder mehreren **Aktionen**. Im Folgenden werden nur die für die Mitgliederverwaltung relevanten Workflows beschrieben, N8n kann aber natürlich auch für andere Automatisierung verwendet werden.
5 +asd
6 6  
7 -== Workflows für Dokumente ==
7 += {{id name="N8nWorkflowEngine-CommunityNodes"/}}Community Nodes =
8 8  
9 -=== Document Consumed Workflow ===
10 -
11 -ToDO
12 -
13 -=== Paperless Papierkorb ===
14 -
15 15  asd
16 16  
17 -== Cron Jobs - Sync von Daten ==
11 += {{id name="N8nWorkflowEngine-TechnischesSetup"/}}Technisches Setup =
18 18  
19 -=== Sync Tags für Einweisungen ===
13 +== {{id name="N8nWorkflowEngine-Lizenz"/}}Lizenz ==
20 20  
21 -ToDo
15 +N8n hat eine so genannte "Sustainable Use License". Für den internen Gerbauch frei verwendbar, solange man keine Produkte damit verkauft. Auszug aus der FAQ:
22 22  
23 -=== Sync Document Types ===
17 +>Our license restricts use to "internal business purposes". In practice this means all use is allowed unless you are selling a product, service, or module in which the value derives entirely or substantially from n8n functionality.
24 24  
25 -ToDo
19 +Wir verwenden im Makerspace die kostenlose [[Community License>>url:https://docs.n8n.io/hosting/community-edition-features/||shape="rect"]], den Lizenzkey erhält man online durch Ausfüllen eines Formulars.
26 26  
27 -== Backend Event Workflows ==
21 +== {{id name="N8nWorkflowEngine-HostingundKubernetes"/}}Hosting und Kubernetes ==
28 28  
29 -Bestimmte Events aus dem Backend werden über NATS als Event gepublished. Details dazu sind auf der [[Seite zu NATS>>doc:PROJ.Digitale Mitgliederverwaltung.Technische Dokumentation.NATS Setup.WebHome]] beschrieben. Hier werden die Events beschrieben, die Paperless betreffen:
23 +N8n soll hauptsächlich mit unserer Paperless Instanz interagieren und läuft aus diesem Grund ebenfalls im Makerspace auf unserem Kubernetes Cluster. Für die Installation kommt das [[Helm Chart von 8gears>>url:https://artifacthub.io/packages/helm/open-8gears/n8n||shape="rect"]] zum Einsatz.
30 30  
31 -=== mksp.docuseal.signature.completed ===
25 +Der Code für die ArgoCD App ist in Gitlab gespeichert und wird automatisch über ArgoCD synchronisiert: [[https:~~/~~/git.makerspace-darmstadt.de/makerspace-it-infrastructure/gitops/main-apps/n8n/-/tree/main?ref_type=heads>>url:https://git.makerspace-darmstadt.de/makerspace-it-infrastructure/gitops/main-apps/n8n/-/tree/main?ref_type=heads||shape="rect"]]
32 32  
33 -ToDo
27 +[[image:attach:image-2025-8-31_19-10-32.png||height="250"]]
34 34  
35 -=== mksp.backend.user.created ===
29 +Die Komponenten beschränken sich hierbei auf:
36 36  
37 -Dieser Workflow wird immer dann getriggert, wenn im Backend ein **neuer User** angelegt wird. Die Informationen aus der NATS Nachricht werden dann verwendet, um den **Korrespondenten in Paperless anzulegen**.
31 +* Die N8n Applikation selbst, das sind die Ressourcen aus dem Helm Chart
32 +* Eine Datenbank-Instanz (PostgeSQL, auf dem zentralen DB Server)
33 +* Secrets, die aus Hashicorp Vault synchronisiert werden
38 38  
39 -[[image:1771784637258-114.png||height="200"]]
35 +== {{id name="N8nWorkflowEngine-HelmChartParameter"/}}Helm Chart Parameter ==
40 40  
41 -Die folgenden Aktionen werden ausgeführt:
37 +Das Helm Chart akzepziert einige Parameter, mit denen das Deployment genauer konfiguriert werden kann. In unserem Fall kurz erklärt:
42 42  
43 -1. Parallel werden alle Gruppen und Benutzer aus Paperless ausgelesen
44 -1. Es wird auf die relevanten Gruppen und Benutzer gefiltert. Wir sind interessiert an den Gruppen für die Mitgliederverwaltung und die IT Admins sowie dem statischen Owner.
45 -1. D
39 +\\
46 46  
47 -=== mksp.backend.user.converted_to_guest ===
41 +{{code}}
42 +{
43 + values(ns, version, url, db_name, sc, size, db_hostname='pgsql-postgresql.mksp-services.svc.cluster.local')::
44 + {
45 + image: {
46 + tag: version,
47 + },
48 + main: {
49 + config: {
50 + db: {
51 + type: 'postgresdb',
52 + postgresdb: {
53 + database: ns + '-' + db_name,
54 + host: db_hostname,
55 + user: ns + '-' + db_name,
56 + },
57 + },
58 + },
59 + extraEnv: {
60 + DB_POSTGRESDB_PASSWORD: {
61 + valueFrom: {
62 + secretKeyRef: {
63 + name: 'db-' + db_name + '-creds',
64 + key: 'POSTGRES_PASSWORD',
65 + },
66 + },
67 + },
68 + },
69 + persistence:
70 + {
71 + enabled: true,
72 + type: 'dynamic',
73 + storageClass: sc,
74 + accessModes: ['ReadWriteOnce'],
75 + size: size,
76 + },
77 + },
78 + ingress:
79 + {
80 + enabled: true,
81 + annotations: {
82 + 'cert-manager.io/cluster-issuer': 'letsencrypt',
83 + },
84 + className: 'nginx',
85 + hosts: [
86 + {
87 + host: url,
88 + paths: ['/'],
89 + },
90 + ],
91 + tls: [
92 + { secretName: 'n8n-tls', hosts: [url] },
93 + ],
94 + },
95 + },
96 +}
48 48  
49 -ToDo
50 50  
51 -=== mksp.backend.user.converted_to_member ===
99 +{{/code}}
52 52  
53 -ToDo
101 +Hervorzuheben sind hier insbesondere:
54 54  
55 -= Community Nodes =
103 +* Das **Image **- Hier wird die Version von N8n konfiguriert. Eine Versions-Änderung des Helm Charts hat nicht zwangsweise auch eine Versions-Änderung der Applikation selbst (N8n) zur Folge, sodass dieses separat übergeben wird
104 +* **DB Config + Extra Env** - Hier werden die Zugangsdaten für die Datenbank übergeben. Host, Benutzername und Datenbankname werden an Hand des App-Namens erzeugt, das Passwort wird beim Anlegen der Datenbank dynamisch erzeugt und von einem Kubernetes Secret gemounted
105 +* **Persistence **- Hier wird angegeben, wie die Daten persistent gespeichert werden - im Prinzip eine Art Festplatte für ein Kubernetes Pod. Im Makerspace gibt es dafür zwei Storage Classes, die werden im Artikel über unseren [[confluencePage:page:IN.Kubernetes Cluster]] genauer beschrieben
106 +* **Ingress **- Hier wird angegeben, unter welcher Domain N8n erreichbar sein soll und wie das Zertifkat erzeugt wird.
56 56  
57 -asd
58 -
59 -= =
60 -
61 -
108 +\\
Icon 1771784637258-114.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.dherrman
Größe
... ... @@ -1,1 +1,0 @@
1 -201.1 KB
Inhalt Icon
Icon 1771785245954-780.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.dherrman
Größe
... ... @@ -1,1 +1,0 @@
1 -63.2 KB
Inhalt Icon
Icon 1771785309574-242.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.dherrman
Größe
... ... @@ -1,1 +1,0 @@
1 -63.0 KB
Inhalt Icon