Skip to main content

🚀 Dein erstes AI & Automation Lab

🚀 Dein erstes AI & Automation Lab — Linux Mint Edition

Ziel: In ca. 60 Minuten baust du dir auf deinem Laptop ein eigenes AI-Chat-System und eine Automationsplattform — mitalles einemlokal, leistungsstarkenohne KI-ModellCloud, ausohne der IONOS Cloud.Accounts.

Was du am Ende hast:

  • ZugriffEin auf ein leistungsstarkeslokales Large Language Model (MistralLLM), Smalldas 24B) ĂŒber die IONOS Cloud
Eine Chat-OberflĂ€chedu im Browser,Browser diebefragen aussieht wie ChatGPTkannst Eine Automationsplattform (n8n), die das LLM automatisiert nutzen kann GrundverstĂ€ndnis fĂŒr Docker, LLMs und Workflow-Automation

Teil 01 — SystemDocker vorbereiten und Benutzer einrichteninstallieren (10 Min.)

BevorDocker esist losgeht,wie bringeneine wir"App-Box": dasDu SystemlĂ€dst auffertige denSoftware-Pakete neuesten(Container) Standherunter und startest sie, ohne irgendetwas kompliziert installieren diezu nötigenmĂŒssen. Grundlagen.Stell Meldedir dichvor, dazudu zunĂ€chstbekommst alseine Rootkomplett odereingerichtete mitvirtuelle einemMaschine bestehenden— Administrator-Accountaber an.viel kleiner und schneller.

Schritt 1: Terminal öffnen

Klicke unten in der Taskleiste auf das Terminal-Symbol oder drĂŒcke Ctrl + Alt + T.

Das Terminal ist deine "Kommandozeile". Hier tippst du Befehle ein, die der Computer direkt ausfĂŒhrt — ohne grafische OberflĂ€che. Das klingt erstmal ungewohnt, aber du wirst sehen: FĂŒr viele Aufgaben ist es schneller als Klicken.

Schritt 2: System aktualisieren

sudo apt update && sudo apt upgrade -y

Was passiert hier im Detail:

  • sudo — steht fĂŒr "Super User Do". Damit sagst du dem System: "FĂŒhre den folgenden Befehl mit Administrator-Rechten aus." Du wirst nach deinem Passwort gefragt.
apt — der Paketmanager von Linux. Er verwaltet Software-Installation und Updates, Ă€hnlich wie ein App Store, aber per Kommandozeile. update — aktualisiertholt die neueste Liste aller verfĂŒgbaren Softwarepakete.Software-Pakete Deinvom SystemServer. weißEs danach,installiert welchenoch Programmenichts, insondern welchenschaut Versionennur: verfĂŒgbar"Was sind —gibt es wird aber noch nichts installiert oder geĂ€ndert.Neues?" && — bedeutetverknĂŒpft "undzwei danach".Befehle. Der zweite Befehl wird nur ausgefĂŒhrt, wenn der erste erfolgreich war. apt upgrade -y — installiert dietatsĂ€chlich neuestenalle VersionenverfĂŒgbaren aller bereits installierten Pakete.Updates. Das -y beantwortetsteht alle RĂŒckfragen automatisch mitfĂŒr "Ja",yes" damitund ĂŒberspringt die RĂŒckfrage "Möchtest du nichtwirklich jedes Update einzeln bestĂ€tigen musst.aktualisieren?".

Schritt 2:3: curlDocker installieren

sudo apt install curl -y docker.io docker-compose
  • apt install — installiert einneue neuesSoftware-Pakete Softwarepaket.auf deinem System.
  • curldocker.io — das eigentliche Docker-Programm. Es ermöglicht dir, Container (isolierte Mini-Umgebungen) zu starten.
docker-compose — ein Kommandozeilen-Werkzeug,Zusatztool, das Dateien ausmit dem Internetdu herunterladenmehrere kann.Container Wirgleichzeitig brauchenin eseiner gleich,einzigen umDatei dasdefinieren Docker-Installationsskriptund herunterzuladen.starten kannst. Ohne Compose mĂŒsstest du jeden Container einzeln mit langen Befehlen starten. -y — wie oben: automatisch mitwieder "Ja"yes", bestĂ€tigen.damit du nicht manuell bestĂ€tigen musst.

Schritt 3:4: ZeitzoneDocker setzenohne sudo nutzbar machen

timedatectlsudo set-timezoneusermod Europe/Berlin-aG docker $USER
  • timedatectlusermod — ein WerkzeugBefehl zurzum VerwaltungÄndern dervon Systemzeit und Zeitzone.Benutzer-Einstellungen.
  • set-timezone-aG Europe/Berlindocker — stelltfĂŒgt (-a = append/hinzufĂŒgen) deinen Benutzer zur Gruppe (-G = Group) namens docker hinzu. Gruppen sind wie Berechtigungs-Clubs: Wer in der Gruppe "docker" ist, darf Docker-Befehle ohne sudo ausfĂŒhren.
$USER — eine Variable, die Zeitzoneautomatisch aufdeinen MitteleuropĂ€ischeaktuellen ZeitBenutzernamen (MEZ/MESZ).enthĂ€lt. Das istSystem wichtig,ersetzt damit$USER Zeitstempelbeim inAusfĂŒhren Logsdurch unddeinen zeitgesteuerte WorkflowsNamen (z.B. in n8n) die richtige Uhrzeit verwenden."praktikant").

Teil

⚠ 1Wichtig: —Danach Dockereinmal installierenab- und wieder anmelden (10oder Min.)Laptop neu starten), damit die Änderung greift. Linux liest Gruppenrechte nur beim Login ein.

Schritt 1:5: Testen ob Docker herunterladen und installierenlÀuft

curldocker -fsSLrun https://get.docker.com -o get-docker.sh
sh get-docker.shhello-world
  • curldocker -fSL https://get.docker.comrun — lĂ€dtder wichtigste Docker-Befehl. Er macht drei Dinge auf einmal: (1) PrĂŒft ob das offizielleImage Docker-Installationsskript"hello-world" herunter.lokal
      vorhanden ist, (2) lÀdt es herunter falls nicht, (3) startet einen Container daraus.
    -fhello-world — schlĂ€gtein beiwinziges HTTP-FehlernTest-Image leisevon fehlDocker, (stattdas nur eine FehlerseiteErfolgsnachricht herunterzuladen).ausgibt. -sPerfekt —zum "silent", unterdrĂŒckt den Fortschrittsbalken. -S — zeigt trotzdem Fehlermeldungen an (in Kombination mit -s). -L — folgt automatisch Weiterleitungen (falls die URL auf eine andere Adresse umleitet).Testen.

    Wenn

    -odu get-docker.sheine Nachricht siehst, die mit "Hello from Docker!" beginnt — speichert die heruntergeladene Datei unter dem Namen get-docker.sh. sh get-docker.sh — fĂŒhrt das heruntergeladene Skript aus. Es erkennt automatisch dein Betriebssystem und installiertperfekt, Docker mit allen nötigen AbhĂ€ngigkeiten.

    Schritt 2: Docker Compose Plugin installieren

    apt install docker-compose-plugin -y
    
      docker-compose-plugin — installiert Docker Compose als Plugin fĂŒr Docker. Docker Compose ermöglicht es, mehrere Container mit einer einzigen Konfigurationsdatei zu starten und zu verwalten.

      Schritt 3: Docker Compose Version prĂŒfen

      docker compose version
      

      Du solltest eine aktuelle Version sehen (z.B. v2.x.x).funktioniert!


      Teil 2 — Alles starten mit Docker Compose (10 Min.)

      Statt jeden Dienst einzeln zu starten, beschreiben wir alles in einer einzigen Datei. Docker Compose liest diese Datei und startet alle Services automatisch — mit den richtigen Einstellungen, Verbindungen und AbhĂ€ngigkeiten.

      Schritt 1: Projektordner anlegen

      mkdir ~/ai-lab && cd ~/ai-lab
      
      • mkdir — steht fĂŒr "make directory" und erstellt einen neuen Ordner.
      • ~/ai-lab — die Tilde ~ ist eine AbkĂŒrzung fĂŒr dein Home-Verzeichnis (z.B. /home/praktikant). Der Ordner heißt also ai-lab und liegt direkt in deinem Benutzerordner.
      • cd — steht fĂŒr "change directory" und wechselt in den angegebenen Ordner. Danach bist du "drin" und alle weiteren Befehle beziehen sich auf diesen Ordner.

      Schritt 2: Docker-Compose-Datei erstellen

      nano docker-compose.yml
      
      • nano — ein einfacher Texteditor im Terminal. Er öffnet sich direkt im selben Fenster. Bedienung: Tippen zum Schreiben, Ctrl + O zum Speichern, Ctrl + X zum Schließen.
      • docker-compose.yml — der Dateiname, den Docker Compose automatisch sucht. .yml (auch .yaml) ist ein Dateiformat fĂŒr strukturierte Konfigurationen — Ă€hnlich wie eine Einkaufsliste mit EinrĂŒckungen statt Klammern.

      FĂŒge folgenden Inhalt ein (mit Rechtsklick → EinfĂŒgen):

      services:
      # "services" ist der Hauptblock — hier werden alle Container definiert,
      # die zusammen gestartet werden sollen.
      # (Hinweis: "version:" wird seit Docker Compose v2 nicht mehr benötigt.)
      
        # =====================================================
        # OLLAMA — Das KI-Gehirn: fĂŒhrt das LLM lokal aus
        # =====================================================
        ollama:
          image: ollama/ollama
          # Welches Docker-Image benutzt wird. Docker lÀdt es automatisch
          # von Docker Hub herunter (wie ein App Store fĂŒr Container).
          container_name: ollama
          # Ein fester Name fĂŒr den Container, damit wir ihn leicht
          # finden und ansprechen können (z.B. in anderen Containern).
          ports:
            - "11434:11434"
          # Port-Weiterleitung: Der Container lauscht intern auf Port 11434.
          # Wir leiten ihn auf den gleichen Port deines Laptops weiter.
          # Format: "Laptop-Port:Container-Port"
          # Du könntest also auch "9999:11434" schreiben — dann wĂ€re
          # Ollama auf deinem Laptop unter Port 9999 erreichbar.
          volumes:
            - ollama_data:/root/.ollama
          # Ein Volume ist wie ein USB-Stick fĂŒr den Container:
          # Daten bleiben erhalten, auch wenn der Container neu gestartet wird.
          # Hier werden die heruntergeladenen KI-Modelle gespeichert.
          # Ohne Volume wÀren die Modelle nach jedem Neustart weg!
          restart: unless-stopped
          # Startet den Container automatisch neu, falls er abstĂŒrzt —
          # außer du stoppst ihn bewusst mit "docker-compose down".
      
        # =====================================================
        # OPEN WEBUI — Die Chat-OberflĂ€che (sieht aus wie ChatGPT)
        # =====================================================
        open-webui:
          image: ghcr.io/open-webui/open-webui:main
          # Dieses Image kommt von GitHub Container Registry (ghcr.io)
          # statt Docker Hub — einfach ein anderer "App Store".
          # ":main" bedeutet: die neueste Version vom Hauptzweig.
          container_name: open-webui
          ports:
            - "3000:8080"
          # Der Container lÀuft intern auf Port 8080, aber wir leiten
          # auf Port 3000 weiter. Im Browser also: localhost:3000
          env_file:
            - /root/.token   # 👈 Token wird von hier geladen
      
          environment:
            - OPENAI_API_BASE_URL=https:OLLAMA_BASE_URL=http://openai.inference.de-txl.ionos.com/v1ollama:11434
          # Eine Umgebungsvariable — wie eine Einstellung fĂŒr den Container.
          # Hier sagen wir Open WebUI, wo es Ollama findet.
          # "ollama" funktioniert als Hostname, weil Docker Compose
          # alle Services automatisch in ein gemeinsames Netzwerk steckt.
          # Die URLContainer derkönnen IONOSsich AIgegenseitig ModelĂŒber Hubihre API.Service-Namen
          # ansprechen — als wĂ€ren es Computernamen im selben Netzwerk.
          depends_on:
            - ollama
          # Startreihenfolge: Open WebUI sprichterst starten, nachdem
          # das OpenAI-kompatible Protokoll — deshalb können wir die
            # IONOS-API direkt als "OpenAI-Endpunkt" eintragen.
            # OPENAI_API_KEY wird aus der .tokenOllama-Container Dateigestartet gezogenwurde.
          volumes:
            - webui_data:/app/backend/data
          restart: unless-stopped
          # Startet den Container automatisch neu, falls er abstĂŒrzt —
          # außer du stoppst ihn bewusst mit "docker compose down".
      
        # =====================================================
        # N8N — Automationsplattform: Workflows per Drag & Drop
        # =====================================================
        n8n:
          image: docker.n8n.io/n8nio/n8n
          # Das offizielle n8n-Image aus der eigenen n8n-Registry.
          # n8n hat seine Images von Docker Hub auf eine eigene
          # Registry (docker.n8n.io) umgezogen — das ist die
          # aktuelle und empfohlene Quelle.
          container_name: n8n
          ports:
            - "5678:5678"
          # n8n lĂ€uft auf Port 5678 — das ist der Standard-Port.
          volumes:
            - n8n_data:/home/node/.n8n
          # Hier speichert n8n deine erstellten Workflows,
          # Zugangsdaten (Credentials) und AusfĂŒhrungsprotokolle.
          environment:
            - N8N_DEFAULT_LOCALE=de
            # Setzt die Sprache der n8n-OberflÀche auf Deutsch.
            # n8n ist nicht zu 100% ĂŒbersetzt — manche Texte
            # bleiben auf Englisch, aber die wichtigsten MenĂŒs
            # und Beschreibungen sind auf Deutsch.
            - GENERIC_TIMEZONE=Europe/Berlin
            # Setzt die Zeitzone. Wichtig fĂŒr zeitgesteuerte
            # Workflows (z.B. "Jeden Morgen um 9 Uhr ausfĂŒhren"),
            # damit die richtige Uhrzeit verwendet wird.
            - N8N_SECURE_COOKIE=false
            # Deaktiviert HTTPS-Pflicht fĂŒr Cookies. Nötig, weil wir
            # lokal ĂŒber http:// (nicht https://) arbeiten.
            # In einer Produktivumgebung sollte das auf true stehen
            # und HTTPS konfiguriert sein.
            - N8N_RUNNERS_ENABLED=true
            # Aktiviert den neuen Task-Runner von n8n. Dieser fĂŒhrt
            # JavaScript/Python-Code in Nodes sicher in einem
            # separaten Prozess aus — sicherer und stabiler als
            # die alte Methode.
          - WEBHOOK_URL=http://ip-des-containers:5678/
          restart: unless-stopped
      
      # =====================================================
      # VOLUMES — Persistente Speicherbereiche
      # =====================================================
      volumes:
        ollama_data:
        webui_data:
        n8n_data:
      # Hier werden die Volumes "registriert". Docker erstellt dafĂŒr
      # automatisch Speicherbereiche auf deiner Festplatte.
      # Solange du diese Volumes nicht löschst, bleiben alle deine
      # Modelle, Chat-VerlĂ€ufe und Workflows erhalten — auch wenn
      # du die Container stoppst und neu startest.
      

      Speichern mit Ctrl + O, Enter, dann schließen mit Ctrl + X.

      Was ist hier anders als bei einer lokalen KI? Statt ein KI-Modell auf deinem Rechner laufen zu lassen (was viel RAM und eine starke GPU braucht), nutzen wir die IONOS AI Model Hub API. Das ist ein Cloud-Dienst, der leistungsstarke KI-Modelle bereitstellt und ĂŒber eine standardisierte Schnittstelle (OpenAI-kompatibel) erreichbar ist. Dein Laptop schickt die Fragen ĂŒber das Internet an IONOS, und IONOS schickt die Antworten zurĂŒck. Der Vorteil: Du kannst ein viel grĂ¶ĂŸeres und schlaueres Modell nutzen (Mistral Small mit 24 Milliarden Parametern), als dein Laptop jemals lokal berechnen könnte.

      Schritt 3: Alles starten

      docker docker-compose up -d
      
      • docker docker-compose up — liest die docker-compose.yml im aktuellen Ordner, lĂ€dt alle nötigen Images herunter und startet die Container.
      • -d — steht fĂŒr "detached" (losgelöst). Die Container laufen im Hintergrund, sodass du das Terminal weiter nutzen kannst. Ohne -d wĂŒrden die Logs direkt im Terminal angezeigt und du könntest nichts anderes mehr tippen.

      Docker lĂ€dt jetzt die Container herunter. Das dauert beim ersten Mal einige Minuten — hol dir einen Kaffee ☕

      Schritt 4: PrĂŒfen ob alles lĂ€uft

      docker ps
      
      • docker ps — zeigt alle aktuell laufenden Container an. ps steht fĂŒr "process status". Du siehst eine Tabelle mit Container-Namen, Status, Ports und Laufzeit.

      Du solltest zweidrei Container sehen: ollama, open-webui und n8n.


      Teil 3 — VerbindungDein zurerstes ChatoberflĂ€cheLLM laden und chatten (10 Min.)

      Schritt 1: Ein KI-Modell herunterladen

      docker exec ollama ollama pull phi3:mini
      
        docker exec — fĂŒhrt einen Befehl innerhalb eines laufenden Containers aus, ohne ihn neu zu starten. Stell dir vor, du rufst in die Box hinein: "Hey, mach mal das!" ollama (erster) — der Name des Containers, in dem der Befehl ausgefĂŒhrt werden soll. ollama pull phi3:mini (zweiter Teil) — der Befehl, der im Container lĂ€uft. ollama pull lĂ€dt ein KI-Modell herunter, Ă€hnlich wie apt install Software installiert. phi3:mini — das Modell "Phi-3" von Microsoft in der kleinen Variante (ca. 2 GB). Es ist schnell genug fĂŒr Ă€ltere Laptops und trotzdem erstaunlich schlau.

        Hintergrund: Ein LLM (Large Language Model) ist das HerzstĂŒck hinter ChatGPT & Co. Es verstehtist eine riesige Datei mit "gelerntem Wissen", die Text versteht und erzeugtText Text.erzeugt. StattDu eslĂ€dst lokaldir hier eines direkt auf deinemdeinen RechnerLaptop laufen— zukein lassen,Internet nutzennötig wirzum hierChatten, einen Cloud-Dienst von IONOS, der das Modell auf leistungsstarken Servern in Deutschland betreibt. Deinekeine Daten bleibenverlassen dabeideinen in der EU.Rechner.

        Schritt 2: Chat-OberflÀche öffnen

        Öffne im Browser: http://localhost:3000

          azubi1: https://azubi1.family.ipv64.net/

          azubi2: https://azubi2.family.ipv64.net/ azubi3: https://azubi3.family.ipv64.net/
          1. Erstelle einen lokalen Account (bleibt alles nur auf deinem Rechner)
          2. WĂ€hle oben das Modell mistralai/Mistral-Small-24B-Instructphi3:mini aus
          3. Stell eine Frage!

          💡 Probier mal diese Prompts:

          • ErklĂ€re mir Docker in 3 SĂ€tzen, als wĂ€re ich 10 Jahre alt.
          • Was ist der Unterschied zwischen einer VM und einem Container?
          • Schreibe mir ein kurzes Python-Skript, das "Hallo Welt" ausgibt.

          🎉 GlĂŒckwunsch! Du hast gerade dein eigeneseigenes, Chat-Systemprivates mit einem leistungsstarken KI-ModellChatGPT aufgebaut.


          Teil 4 — Dein erster Automations-Workflow in n8n (20 Min.)

          Jetzt verbinden wir das LLM mit einer Automation. n8n ist eine visuelle Plattform, in der du per Drag & Drop "Nodes" (Bausteine) zu einem Workflow verbindest — wie eine Kette, durch die Daten fließen.

          Schritt 1: n8n öffnen

          Öffne im Browser:

            azubi1: https:http://azubi1n8n.family.ipv64.net/ azubi2localhost:5678: https://azubi2n8n.family.ipv64.net/ azubi3: https://azubi3n8n.family.ipv64.net/

            Beim ersten Mal: Erstelle einen lokalen Account (nur auf deinem Rechner).

            Die n8n-OberflĂ€che istsollte grĂ¶ĂŸtenteils auf EnglischDeutsch sein — n8ndank unterstĂŒtztder offiziellEinstellung nurN8N_DEFAULT_LOCALE=de Englisch.in Inunserer dieserCompose-Datei. AnleitungEinige verwendenTexte wirsind dahermöglicherweise durchgehendnoch dieauf englischenEnglisch, Bezeichnungen.wenn sie noch nicht ĂŒbersetzt wurden.

            Schritt 2: IONOS API als Credential einrichten

            Bevor wir einen Workflow bauen, sagen wir n8n einmal, wo unser KI-Modell erreichbar ist. Das muss nur einmal gemacht werden — danach können alle Workflows darauf zugreifen.

              Gehe oben linsk auf das plus und wĂ€hle "Credentials" Klicke auf "Add Credential" Suche nach "OpenAI" → auswĂ€hlen Im Feld API Key trĂ€gst du den folgenden Token ein: (diesen findest du in der Terminalconsole von Proxmox)
              nano .token
              

              azubi1

              eyJ0eXAiOiJKV1QiLCJraWQiOiJiYTEzNzY2Mi00NmRkLTQzMTMtYjAzYy0yYTNmNDMyY2FlZmIiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJpb25vc2Nsb3VkIiwiaWF0IjoxNzc2Njg2NTEzLCJjbGllbnQiOiJVU0VSIiwiaWRlbnRpdHkiOnsicHJpdmlsZWdlcyI6WyJEQVRBX0NFTlRFUl9DUkVBVEUiLCJTTkFQU0hPVF9DUkVBVEUiLCJJUF9CTE9DS19SRVNFUlZFIiwiTUFOQUdFX0RBVEFQTEFURk9STSIsIkFDQ0VTU19BQ1RJVklUWV9MT0ciLCJQQ0NfQ1JFQVRFIiwiQUNDRVNTX1MzX09CSkVDVF9TVE9SQUdFIiwiQkFDS1VQX1VOSVRfQ1JFQVRFIiwiQ1JFQVRFX0lOVEVSTkVUX0FDQ0VTUyIsIks4U19DTFVTVEVSX0NSRUFURSIsIkZMT1dfTE9HX0NSRUFURSIsIkFDQ0VTU19BTkRfTUFOQUdFX01PTklUT1JJTkciLCJBQ0NFU1NfQU5EX01BTkFHRV9DRVJUSUZJQ0FURVMiLCJBQ0NFU1NfQU5EX01BTkFHRV9MT0dHSU5HIiwiTUFOQUdFX0RCQUFTIiwiQUNDRVNTX0FORF9NQU5BR0VfRE5TIiwiTUFOQUdFX1JFR0lTVFJZIiwiQUNDRVNTX0FORF9NQU5BR0VfQ0ROIiwiQUNDRVNTX0FORF9NQU5BR0VfVlBOIiwiQUNDRVNTX0FORF9NQU5BR0VfQVBJX0dBVEVXQVkiLCJBQ0NFU1NfQU5EX01BTkFHRV9OR1MiLCJBQ0NFU1NfQU5EX01BTkFHRV9LQUFTIiwiQUNDRVNTX0FORF9NQU5BR0VfTkVUV09SS19GSUxFX1NUT1JBR0UiLCJBQ0NFU1NfQU5EX01BTkFHRV9BSV9NT0RFTF9IVUIiLCJDUkVBVEVfTkVUV09SS19TRUNVUklUWV9HUk9VUFMiLCJBQ0NFU1NfQU5EX01BTkFHRV9JQU1fUkVTT1VSQ0VTIl0sInV1aWQiOiJmNjYwMDU5Ni04MmQxLTQ1ZGUtOTY1Yi0yZDUwZmRmZGNkNWEiLCJyZXNlbGxlcklkIjoxLCJyZWdEb21haW4iOiJpb25vcy5kZSIsInJvbGUiOiJvd25lciIsImNvbnRyYWN0TnVtYmVyIjozNjU3ODA2OSwiaXNQYXJlbnQiOmZhbHNlfSwiZXhwIjoxNzc3MjkxMzEzfQ.KemmxzRAAFHVV5PMwWrkLkBwGTJ15ALFoV9pmcwjOKfG7AzggiGVh2HY5wyL-_uVmwWxXi4ZP9_O7VyWmOtv2UIeWAQzmxHjOGxqR0rISUxYFCkVTax5qtVEmFEJgOYeDVO4rmwg3TaKGCKkYsY-NCiIBXhrQpUEyK0AUOQiqeiKPWxX3JV-ry5qw8P_Qoz5fPvxEPg8sbjFecImEit_L19cSKctCvuEYaO7mdGjRW9QcpTUVUccVwzrFumhVKAuo7vQZJGUtKYJ1nh9Pl86gAjrornutFZTzsch-utu4zgxcufYm6guMJpCna9-To64lqeEK9-6sayZGj74jAo1QQ
              

              azubi2

              eyJ0eXAiOiJKV1QiLCJraWQiOiJiMzY1NjhmZS0xNTVhLTRjNTUtOGNjYi1hZjFkYzAxMWYxMmUiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJpb25vc2Nsb3VkIiwiaWF0IjoxNzc2Njg2NjYyLCJjbGllbnQiOiJVU0VSIiwiaWRlbnRpdHkiOnsiaXNQYXJlbnQiOmZhbHNlLCJjb250cmFjdE51bWJlciI6MzY1NzgwNjksInJvbGUiOiJvd25lciIsInJlZ0RvbWFpbiI6Imlvbm9zLmRlIiwicmVzZWxsZXJJZCI6MSwidXVpZCI6ImY2NjAwNTk2LTgyZDEtNDVkZS05NjViLTJkNTBmZGZkY2Q1YSIsInByaXZpbGVnZXMiOlsiREFUQV9DRU5URVJfQ1JFQVRFIiwiU05BUFNIT1RfQ1JFQVRFIiwiSVBfQkxPQ0tfUkVTRVJWRSIsIk1BTkFHRV9EQVRBUExBVEZPUk0iLCJBQ0NFU1NfQUNUSVZJVFlfTE9HIiwiUENDX0NSRUFURSIsIkFDQ0VTU19TM19PQkpFQ1RfU1RPUkFHRSIsIkJBQ0tVUF9VTklUX0NSRUFURSIsIkNSRUFURV9JTlRFUk5FVF9BQ0NFU1MiLCJLOFNfQ0xVU1RFUl9DUkVBVEUiLCJGTE9XX0xPR19DUkVBVEUiLCJBQ0NFU1NfQU5EX01BTkFHRV9NT05JVE9SSU5HIiwiQUNDRVNTX0FORF9NQU5BR0VfQ0VSVElGSUNBVEVTIiwiQUNDRVNTX0FORF9NQU5BR0VfTE9HR0lORyIsIk1BTkFHRV9EQkFBUyIsIkFDQ0VTU19BTkRfTUFOQUdFX0ROUyIsIk1BTkFHRV9SRUdJU1RSWSIsIkFDQ0VTU19BTkRfTUFOQUdFX0NETiIsIkFDQ0VTU19BTkRfTUFOQUdFX1ZQTiIsIkFDQ0VTU19BTkRfTUFOQUdFX0FQSV9HQVRFV0FZIiwiQUNDRVNTX0FORF9NQU5BR0VfTkdTIiwiQUNDRVNTX0FORF9NQU5BR0VfS0FBUyIsIkFDQ0VTU19BTkRfTUFOQUdFX05FVFdPUktfRklMRV9TVE9SQUdFIiwiQUNDRVNTX0FORF9NQU5BR0VfQUlfTU9ERUxfSFVCIiwiQ1JFQVRFX05FVFdPUktfU0VDVVJJVFlfR1JPVVBTIiwiQUNDRVNTX0FORF9NQU5BR0VfSUFNX1JFU09VUkNFUyJdfSwiZXhwIjoxNzc3MjkxNDYyfQ.qDIErgaU_mX_D4utaR1YmLBQ9cGZBOPI-Cdy8LNOaOg1ObTbUxWOYJAqTuZfbQMQpPpwx8X3kvdEjosouXc4mjbVt0SJhnIZ4sXeXqdOkMAbodpVSuo_KQqOFNRRUbFN0s3QCSljD7GSGzUfloqXO4oOT3qVXIILDijS0jW6_DBol_G2zqgV448b3DDE91dEC8ncL2UvTF9IaI0iiwSfjHgIqXnMf184UGNWlnKpa95hFZldkxq80jHiybCn8l7xe8c6xTFZuz2-pzx0tU8aAKxdUy-W2ut0kPfBBNVhO9Djm4yFLq432UDlufyilUFfe1rcItw7m4X6m6T0MLa8FA
              

              azubi3

              eyJ0eXAiOiJKV1QiLCJraWQiOiIyMTQ3YTA3ZC1jYjA5LTRiZDktYjRmYS1hZDc2MGE4Njc5ZDciLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJpb25vc2Nsb3VkIiwiaWF0IjoxNzc2Njg2Njg2LCJjbGllbnQiOiJVU0VSIiwiaWRlbnRpdHkiOnsiY29udHJhY3ROdW1iZXIiOjM2NTc4MDY5LCJpc1BhcmVudCI6ZmFsc2UsInByaXZpbGVnZXMiOlsiREFUQV9DRU5URVJfQ1JFQVRFIiwiU05BUFNIT1RfQ1JFQVRFIiwiSVBfQkxPQ0tfUkVTRVJWRSIsIk1BTkFHRV9EQVRBUExBVEZPUk0iLCJBQ0NFU1NfQUNUSVZJVFlfTE9HIiwiUENDX0NSRUFURSIsIkFDQ0VTU19TM19PQkpFQ1RfU1RPUkFHRSIsIkJBQ0tVUF9VTklUX0NSRUFURSIsIkNSRUFURV9JTlRFUk5FVF9BQ0NFU1MiLCJLOFNfQ0xVU1RFUl9DUkVBVEUiLCJGTE9XX0xPR19DUkVBVEUiLCJBQ0NFU1NfQU5EX01BTkFHRV9NT05JVE9SSU5HIiwiQUNDRVNTX0FORF9NQU5BR0VfQ0VSVElGSUNBVEVTIiwiQUNDRVNTX0FORF9NQU5BR0VfTE9HR0lORyIsIk1BTkFHRV9EQkFBUyIsIkFDQ0VTU19BTkRfTUFOQUdFX0ROUyIsIk1BTkFHRV9SRUdJU1RSWSIsIkFDQ0VTU19BTkRfTUFOQUdFX0NETiIsIkFDQ0VTU19BTkRfTUFOQUdFX1ZQTiIsIkFDQ0VTU19BTkRfTUFOQUdFX0FQSV9HQVRFV0FZIiwiQUNDRVNTX0FORF9NQU5BR0VfTkdTIiwiQUNDRVNTX0FORF9NQU5BR0VfS0FBUyIsIkFDQ0VTU19BTkRfTUFOQUdFX05FVFdPUktfRklMRV9TVE9SQUdFIiwiQUNDRVNTX0FORF9NQU5BR0VfQUlfTU9ERUxfSFVCIiwiQ1JFQVRFX05FVFdPUktfU0VDVVJJVFlfR1JPVVBTIiwiQUNDRVNTX0FORF9NQU5BR0VfSUFNX1JFU09VUkNFUyJdLCJ1dWlkIjoiZjY2MDA1OTYtODJkMS00NWRlLTk2NWItMmQ1MGZkZmRjZDVhIiwicmVzZWxsZXJJZCI6MSwicmVnRG9tYWluIjoiaW9ub3MuZGUiLCJyb2xlIjoib3duZXIifSwiZXhwIjoxNzc3MjkxNDg2fQ.XZ9e5VOkXeIbvIpraUra1lVI9i8n4ow7a7hWIt0eo1S5N0sWM85DQYMpSIHCDrLiERPylGDYahlALN2rKlT-RLbgLeLp8iIEatJ88zTPQ6ZF4oIbDXGDSO1ZGLAMPElcVjjf1qpo9k2j_5imojc8DAHyNRbl6NL7GKhCAeqtlA4zsUtFPh9qLsE1GLn_2aJisrf0HM3E51A7a-vgujcZPpRXTicB7t5PjKvOOB1mQj15V3v0ZcfxFSJ2iaGUC4c6p760abjIwk40vqbcVRh_VWMJ36dF02eGYlryZDsxQNima05C_DRXhFpTjISrsBFDAJ-8a_YeJT_4l-16bKIyQQ
              
                Im Feld Base URL trÀgst du ein:
                https://openai.inference.de-txl.ionos.com/v1
                
                  Klicke auf "Save"

                  Warum "OpenAI" als Credential? Die IONOS AI Model Hub API ist OpenAI-kompatibel. Das bedeutet, sie spricht das gleiche Protokoll wie die OpenAI-API. Deshalb können wir in n8n einfach die OpenAI-Credential verwenden und nur die Base URL auf die IONOS-Adresse Ă€ndern. n8n merkt keinen Unterschied — es denkt, es spricht mit OpenAI, aber die Anfragen gehen an IONOS.

                  Schritt 3: Neuen Workflow erstellen

                  Gehe oben linskKlicke auf das"Neuen plusWorkflow understellen" wÀhle(bzw. "Create new workflow").

                  Schritt 4:3: Workflow zusammenbauen

                  Wir bauen einen Chat-Mini-Workflow: Du schreibstschickst eineeinen NachrichtText rein → das LLM antwortetfasst dirihn — direkt in n8n als Chat-OberflĂ€che.zusammen.

                  Node 1: ChatTrigger Trigger(manuell)

                  1. Klicke auf das + in der Mitte
                  2. Suche "ChatManueller Trigger" (bzw. "Manual Trigger") → auswĂ€hlen

                  Die Standardeinstellungen(Damit kannst du soden lassen.Workflow Derper ChatKnopfdruck Triggerstarten) öffnet ein Chat-Fenster direkt in n8n, ĂŒber das du mit dem LLM sprechen kannst.

                  Was ist ein Chat Trigger? Jeder Workflow braucht einen Auslöser — das Ereignis, das die Kette startet. DerEin "ChatManueller Trigger" startetheißt: denDu WorkflowdrĂŒckst jedesselbst Mal,auf wenn"Test". duAndere Trigger könnten sein: "Jeden Morgen um 9 Uhr" oder "Wenn eine Nachrichtneue imE-Mail Chat-Fenster abschickst. Du bekommst eine richtige Chat-OberflĂ€che, Ă€hnlich wie bei ChatGPT.kommt".

                  Node 2: AIText Agentvorbereiten

                  1. Klicke auf das + rechts vom Chat Trigger
                  2. Suche "AIFelder Agent"bearbeiten" (bzw. "Edit Fields") unter "Datentransformation" → auswĂ€hlen
                  Klicke

                  Die Standardeinstellungen passen fĂŒr unseren Zweck. Optional kannst du unterauf Add"Feld OptionhinzufĂŒgen" im Feld→ System"String"

                  MessageName: unterprompt eineValue Rollenbeschreibung— eintragen,kopiere z.B.:diesen Text rein:
                  DuFasse bistden einfolgenden hilfreicherText Assistent.in Antworte2 immerSĂ€tzen aufzusammen: Deutsch.KĂŒnstliche Intelligenz verĂ€ndert die Arbeitswelt grundlegend. Besonders in der Pharmaindustrie werden Prozesse automatisiert, die frĂŒher Stunden gedauert haben. Von der DokumentenprĂŒfung bis zur Datenanalyse helfen KI-Systeme dabei, schneller und genauer zu arbeiten. Gleichzeitig entstehen neue Berufsbilder rund um Prompt Engineering und KI-Integration.
                  

                  Was istmacht "Felder bearbeiten"? Dieser Node erzeugt ein AIDatenpaket Agent?mit Dereinem AIFeld Agentnamens ist n8n's zentraler Baustein fĂŒr KI-Workflows. Er nimmt die Nachricht vom Chat Trigger entgegen, leitet sie an"prompt", das Sprachmodellden weiterText enthĂ€lt. Stell dir vor, du steckst einen Brief in einen Umschlag und gibtbeschriftest die Antwort zurĂŒck. Ein Agent kann auch "nachdenken" und Werkzeuge (Tools) nutzenihn — z.B.der imnĂ€chste InternetNode suchenweiß oderdann, Berechnungenwo durchfĂŒhren. FĂŒrer den AnfangText nutzen wir ihn ohne Tools als reinen Chat-Assistenten.findet.

                  Node 3: OpenAILLM Chat Model (Sub-Node)aufrufen

                  Jetzt verbinden wir den AI Agent mit dem IONOS-Modell:

                  1. Klicke auf den AI Agent Node, um ihn zu öffnen
                  Du siehst unten am Node einen Connector-Punkt mit der Beschriftung "Model" — klicke auf das + danebenrechts Suche "OpenAIHTTP-Anfrage" Chat(bzw. Model""HTTP Request") → auswĂ€hlen Konfiguriere:
                    Methode: POST URL: http://ollama:11434/api/generate Send Body aktivieren Body-Inhaltstyp: JSON Im Feld CredentialJSON tofolgendes connect witheintragen wÀhle die OpenAI-Credential aus, die du in Schritt 2 erstellt hast Im Feld Model wÀhle aus der Dropdown-Liste mistralai/Mistral-Small-24B-Instruct aus
                    {
                      "model": "phi3:mini",
                      "prompt": "{{ $json.prompt }}",
                      "stream": false
                    }
                    

                    Was passiert hier?

                      HTTP-Anfrage — so kommunizieren Programme miteinander ĂŒbers Netzwerk. Du schickst eine Anfrage ("Request") an Ollama. POST — die HTTP-Methode. POST heißt: "Ich schicke dir Daten und will eine Antwort." (GET wĂ€re: "Gib mir etwas.") http://ollama:11434/api/generate — die Adresse der Ollama-API. Wir nutzen ollama statt localhost, weil die Container sich untereinander ĂŒber ihre Service-Namen ansprechen (das Docker-Compose-Netzwerk macht es möglich). {{ $json.prompt }} — das ist n8n-Syntax: "Nimm den Wert aus dem Feld prompt vom vorherigen Node." Die doppelten geschwungenen Klammern {{ }} sagen n8n: "Das hier ist kein normaler Text, sondern ein Sub-Node?Verweis auf Daten." stream: false — normalerweise schickt Ollama die Antwort Wort fĂŒr Wort (Streaming). Wir wollen aber die komplette Antwort auf einmal, deshalb false.

                      Node 4: Ergebnis anzeigen

                      Das Ergebnis kommt im Feld response der HTTP-Antwort zurĂŒck. Du kannst es direkt im Ausgabe-Panel von n8n unterscheidetsehen zwischen— normalenklicke Nodeseinfach (dieauf inden der Kette liegen) und Sub-Nodes (die an einen anderenletzten Node "angedockt" werden). Der OpenAI Chat Model ist ein Sub-Node — er wird nicht in den Datenfluss eingereiht, sondern an den AI Agent angehĂ€ngt, um ihm zu sagen: "Nutze dieses Sprachmodell." Das ist wie ein Werkzeug, das dunach dem Agenten in die Hand gibst.AusfĂŒhren.

                      Schritt 5:4: Workflow testen!ausfĂŒhren!

                        Klicke oben auf "Chat"Workflow testen" (dasbzw. Sprechblasen-Symbol)"Test —Workflow") es→ öffnetder sichWorkflow einlĂ€uft Chat-Fenster

                        durch Schreibealle eineNodes. Nachricht,

                        Im z.B.:letzten ErklÀreNode mirsiehst Docker in 3 SÀtzen, als wÀre ich 10 Jahre alt.

                        Warte kurz — deine Nachricht wird andu die IONOSZusammenfassung, Cloud gesendet unddie das ModellLLM antwortetgeneriert Die Antwort erscheint direkt im Chat!

                        💡 Probier diese Fragen im Chat:

                          Was ist der Unterschied zwischen einer VM und einem Container? Schreibe mir ein kurzes Python-Skript, das "Hallo Welt" ausgibt. Was sind die wichtigsten Vorteile von Workflow-Automation? hat.

                          🎉 Du hast gerade deine erste KI-Automation gebaut — mit einer richtigen Chat-OberflĂ€che!gebaut!


                          Teil 5 — Bonus-Challenges (wenn noch Zeit ist)

                          Challenge 1: Anderes Modell testen

                          Die

                          docker IONOSexec AIollama Modelollama Hubpull bietetllama3.2:1b
                          mehrere Modelle an. Probiere ein anderes aus, indem du in Open WebUI oben das Modell wechselst. VerfĂŒgbare Modelle sind z.B.:
                          • meta-llama/Llama-3.3-70B-Instructllama3.2:1b — Metas großes"Llama 70B-Modell,3.2" sehr hohe AntwortqualitĂ€t
                          mistralai/Mistral-Nemo-Instruct-2407 — ein kleineres 12B-Modell vonmit Mistral,1 schnellereMilliarde AntwortenParametern. Kleiner als Phi-3, aber interessant zum Vergleichen: Verschiedene Modelle haben unterschiedliche StĂ€rken.

                          Vergleiche die Antworten verschiedenervon ModellePhi-3 und Llama 3.2 auf die gleiche Frage!Frage in Open WebUI. Wechsle dazu oben in der Chat-OberflÀche einfach das Modell.

                          Challenge 2: n8n-Workflow erweitern

                          • ÄndereFĂŒge dasvor Modelldem imLLM einen OpenAI Chat Model"Wenn" Sub--Node auf(bzw. meta-llama/Llama-3.3-70B-Instruct"If") hinzu, der prĂŒft ob der Text lĂ€nger als 100 Zeichen ist
                          • TesteWenn dieja gleichen→ FragenZusammenfassung erneutdurch und vergleiche die Antworten mit Mistral SmallLLM
                          • ProbiereWenn verschiedenenein System→ Messagesdirekt aus, z.B.:ausgeben

                          Tipp: Der Wenn-Node findet sich unter "Ablaufsteuerung" (bzw. "Flow"). Bedingung: Du{{ bist$json.prompt.length ein}} Experte→ fĂŒr"ist diegrĂ¶ĂŸer Pharmaindustrie.als" ErklĂ€re→ alles100

                          einfach und verstÀndlich.

                          Challenge 3: Eigenes System-Prompt

                          Ändere dieden System MessagePrompt im AI"Felder Agent bearbeiten"-Node zu:

                          Du bist ein Experte fĂŒr die Pharmaindustrie. ErklĂ€re das folgende Thema einfach und verstĂ€ndlich: Was ist ein ERP-System?
                          

                          Was ist ein System-Prompt? Das ist die "Rollenbeschreibung" fĂŒr das LLM. Du sagst ihm damit, wer es sein soll und wie es antworten soll — bevor es die eigentliche Frage bekommt. In Unternehmen werden System-Prompts genutzt, um KI-Assistenten auf bestimmte Aufgaben zu spezialisieren.


                          🧠 Was du gelernt hast

                          Thema Was du gemacht hast
                          Linux-Basics
                          System aktualisiert, Pakete installiert, Zeitzone gesetzt Docker Docker installiert, Container gestartet, Docker Compose genutzt, Services verwaltet KI-API Über die IONOS AI Model Hub API ein LLM per OpenAI-kompatibler Schnittstelle angebunden LLM Ein KI-Modell (Mistrallokal Small 24B) ĂŒber die Cloud genutztgeladen und im Chat getestetgenutzt Automation Einen n8n-Workflow gebaut, der ein LLM alsautomatisiert Chat-Assistenten nutztaufruft AI AgentAPI-Grundlagen Einen AIHTTP AgentPOST mitRequest OpenAIan Chateine ModelREST-API undgeschickt Chat TriggerkonfiguriertLinux-Basics Terminal-Befehle, Paketmanager, Dateien erstellen, Benutzerrechte

                          🔧 NĂŒtzliche Befehle zum Nachschlagen

                          Befehl Was er tut
                          docker ps Zeigt laufende Container (ps = process status)
                          docker ps -a Zeigt alle Container, auch gestoppte
                          docker docker-compose up -d Startet alle Services im Hintergrund
                          docker docker-compose down Stoppt alle Services und entfernt die Container
                          docker docker-compose logs -f Zeigt Live-Logs aller Container (-f = follow, folgt neuen EintrÀgen)
                          docker docker-compose logs -f open-webuiollama Zeigt Live-Logs nur von OpenOllama
                          WebUI docker exec ollama ollama list Zeigt alle installierten KI-Modelle docker exec ollama ollama pull <modell> LÀdt ein neues Modell herunter docker exec ollama ollama rm <modell> Löscht ein Modell (spart Speicherplatz) docker stats Zeigt CPU- und RAM-Verbrauch aller Container live

                          ❓ Troubleshooting

                          Open WebUI zeigt kein Modell an? → PrĂŒfeWarte ob1–2 dieMinuten, UmgebungsvariablenOllama OPENAI_API_BASE_URLbraucht undZeit OPENAI_API_KEYzum inStarten. derDann docker-compose.ymlSeite korrektneu eingetragen sind. → Starte den Container neu: docker compose restart open-webui

                          Open WebUI zeigt einen Fehler bei der Modellauswahl? → Der API-Token könnte abgelaufen sein. Frage deinen Kursleiter nach einem neuen Token.laden.

                          n8n Chat zeigt keine Antwort / AI AgentHTTP-Anfrage schlĂ€gt fehl? → PrĂŒfe ob diestream OpenAI-Credentialwirklich korrekt eingerichtet ist: Base URL mussauf https://openai.inference.de-txl.ionos.com/v1false sein.steht (als Boolean, nicht als Text). → PrĂŒfe obdie das ModellURL: mistralai/Mistral-Small-24B-Instructhttp://ollama:11434/api/generate im(nicht OpenAIlocalhost Chat— Modeldie NodeContainer korrektsprechen eingetragensich ist.ĂŒber ihre Namen an).

                          n8n ist nicht auf Deutsch? → PrĂŒfe obin der API-TokenCompose-Datei nochob gĂŒltigN8N_DEFAULT_LOCALE=de korrekt gesetzt ist.

                          "Unauthorized"Danach oderContainer "401"neu Fehler?starten: →docker-compose Derdown API-Token&& istdocker-compose abgelaufenup oder-d. ungĂŒltig.Manche FrageTexte nachbleiben einemauf neuenEnglisch Token.— die deutsche Übersetzung deckt nicht 100% der OberflĂ€che ab.

                          Docker-Befehle brauchen sudo? → Du hast dich nach usermod nicht neu angemeldet. Einmal ausloggen und wieder einloggen.

                          "Permission denied" bei docker docker-compose? → PrĂŒfe mit groups ob "docker" in deiner Gruppenliste auftaucht. Falls nicht: Schritt 4 aus Teil 1 wiederholen und neu anmelden.

                          Laptop wird langsam? → Modelle brauchen RAM. Phi-3 Mini braucht ca. 3–4 GB. Schließe andere Programme. → Mit docker stats kannst du sehen, welcher Container wie viel Ressourcen verbraucht. → Da das KI-Modell in der Cloud lĂ€uft, braucht dein Laptop deutlich weniger RAM als bei einer lokalen Installation.

                          Container startet nicht? → docker docker-compose logs -f <containername> zeigt dir die Fehlermeldung des Containers.