Lokal Vibecoding und LLMs Laufen lassen
December 25, 2025
Echtes und Gutes Lokales LLM laufen lassen
Vibecoding Lokal
devstral-small-2:latest
Mein erstes LLM das ich Lokal Laufen lassen kann, das wirklich ernst zu nehmend Coden Kann und in meiner AMD Radeon RX 6800 XT (Powercolor) in den VRAM Rein Passt, ist devstral-small-2:latest.
Installieren der Software
Wie habe ich das gemacht? Naja, einfach Ollama installiert. Naja, die Vulkan Variante davon aus der Arch Linux Packetverwaltung. Damit läuft alles an LLMs auf GPU, was in den VRAM Rein passt.
Man benötigt für ein Webinterface dazu noch ein Open-WebUI, das man auch aus der Packetverwaltung speziell im AUR: aur/open-webui bekommen kann. Damit läuft es praktisch Sofort, nach dem man sich darum bemüht hat, die Service zum Laufen zu bringen.
Wichtig ist, das ollama.service läuft. Dann läuft dieser auf localhost:11434 das man bei Open-WebUI eintragen muss. In Administration -> Einstellungen -> Verbindungen und dort bei Ollama-API eintragen. Schon läuft eine Lokale KI, sobald man eines Heruntergeladen hat, das man auch in diesem Webinterface direkt laden Kann.
Herunterladen des Modells
Da wir ja schon in den Einstellungen waren, unter Verbindungen befindet sich das Modelle Menü, in dem wir genau das tun können. Da ist ein Download Knopf, ganz Rechts neben dem Zahnrad, wo wir drauf klicken. Da können wir jetzt in Modell von Ollama.com beziehen devstral-small-2:latest eingeben und drücken rechts daneben den Downlaod Knopf. Das Backend Service ollama.service übernimmt den Download und Open-WebUI macht einfach so weiter. Wenn du schon ein Modell hast, kannst du wärend des Downloads noch andere Modelle verwenden. Es informiert dich wenn es fertig geladen ist und du kannst solange weiter Prompten wie du möchtest.
Empfehlungen
Ich empfehle noch Ministral-3 Herunterzuladen.
Es gibt ministral-3:latest, ministral-3:8b und ministral-3:14b, welches der Größe nach geordnet sind (Klein nach Groß). Alle Passen in eine normale Gaming GPU Rein. Vorrausgesetzt es Läuft kein Spiel oder andere 3D Anwendungen, die viel VRAM belegen im Hintergrund.
Sinnvolle Tools
Ich empfehle außerdem noch amdgpu_top vom AUR zu installieren, wenn es nicht schon mit pacman installierbar ist. Es ist ein in Rust geschriebenes AMD GPU Monitoring Tool, welches ich gerne verwende. Generell bin ich fan von in Rust geschriebene Software.
Vibecoding Testen
Äh ja, einfach mal deses Devstarl fragen und auf Antwort warten würde ich mal sagen. Da kann ich dann auch nicht mehr viel zu erzählen, außer das du dich dann selbst informierst.
SearXNG Suchmaschienen Integration
Was ist SearXNG
Es ist einfach eine Lokal ausführbare Meta Suchmaschiene, welches einfach wie google funktioniert, aber Lokal ausgeführt wird. Es sucht dabei ganz normal bei google, duckduckgo und andere Suchmaschienen Gleichzeitig und findet deutlich mehr suchergebnisse als google alleine. Diese werden wir verwenden um es in Open-WebUI einzubauen, da es die einzige Lokale Möglichkeit ist, um nicht eine Bestimmte Suchmaschiene zu verwenden.
Installieren
Ich habe hier Podman verwendet. Hier was ich gemacht habe:
[Unit]
Wants=podman-user-wait-network-online.service
After=podman-user-wait-network-online.service
Description=SearXNG container
SourcePath=/home/<user>/.config/containers/systemd/searxng.container
RequiresMountsFor=%t/containers
# Containers can depend on one another using systemd dependencies, but with a ".service" suffix.
# For example, to make another container wait until this one starts, add "After=syncthing-lsio.service"
# to its [Unit] section.
# Von <user>
[X-Container]
ContainerName=searxng
Image=docker.io/searxng/searxng
# Enable auto-update container
AutoUpdate=registry
# Volume=/path/to/searxng/config:/config
# Volume=/path/to/data1:/data1
HostName=searxng
PublishPort=0.0.0.0:4000:8080/tcp
# PublishPort=22000:22000/tcp
Environment=PUID=1000
Environment=PGID=1000
Environment=TZ=Etc/UTC
# UID mapping is needed to run linuxserver.io container as rootless podman.
# This will map UID=1000 inside the container to intermediate UID=0.
# For rootless podman intermediate UID=0 will be mapped to the UID of current user.
UIDMap=1000:0:1
UIDMap=0:1:1000
UIDMap=1001:1001:64536
[Service]
Restart=on-failure
# Extend Timeout to allow time to pull the image
TimeoutStartSec=300
Environment=PODMAN_SYSTEMD_UNIT=%n
KillMode=mixed
ExecStop=/usr/bin/podman rm -v -f -i --cidfile=%t/%N.cid
ExecStopPost=-/usr/bin/podman rm -v -f -i --cidfile=%t/%N.cid
Delegate=yes
Type=notify
NotifyAccess=all
SyslogIdentifier=%N
ExecStart=/usr/bin/podman run --name searxng --cidfile=%t/%N.cid --replace --rm --cgroups=split --hostname
searxng --sdnotify=conmon -d --uidmap 1000:0:1 --uidmap 0:1:1000 --uidmap 1001:1001:64536 --label io.cont
ainers.autoupdate=registry --publish 0.0.0.0:4000:8080/tcp --env PGID=1000 --env PUID=1000 --env TZ=Etc/UT
C docker.io/searxng/searxng
# The [Install] section allows enabling the generated service.
[Install]
WantedBy=default.target
Dann macht man volgendes:
[Unit]
Description=SearXNG container
# Containers can depend on one another using systemd dependencies, but with a ".service" suffix.
# For example, to make another container wait until this one starts, add "After=syncthing-lsio.service"
# to its [Unit] section.
# Von <user>
[Container]
ContainerName=searxng
Image=docker.io/searxng/searxng
# Enable auto-update container
AutoUpdate=registry
# Volume=/etc/searxng/limiter.toml
# Volume=/etc/searxng/uwsgi.ini
# Volume=/path/to/data1:/data1
Volume=/etc/searxng:/etc/searxng
HostName=searxng
PublishPort=0.0.0.0:4000:8080/tcp
# PublishPort=22000:22000/tcp
Environment=PUID=1000
Environment=PGID=1000
Environment=TZ=Etc/UTC
# UID mapping is needed to run linuxserver.io container as rootless podman.
# This will map UID=1000 inside the container to intermediate UID=0.
# For rootless podman intermediate UID=0 will be mapped to the UID of current user.
UIDMap=1000:0:1
UIDMap=0:1:1000
UIDMap=1001:1001:64536
[Service]
Restart=on-failure
# Extend Timeout to allow time to pull the image
TimeoutStartSec=300
# The [Install] section allows enabling the generated service.
[Install]
WantedBy=default.target
wichtig ist, das man in der settings.yml unter search:, formats: das hier einträgt, sonnst funktioniert das nicht. Hier: - json.
Damit dürfte es dann auch schon Konfiguriert sein.
Podman
Podman Installieren
sudo pacman -S podman
SearXNG über Podman Installieren
Ich habe es als Docker bekommen. podman pull docker.io/searxng/searxng:latest.
Es geht aber auch podman pull ghcr.io/searxng/searxng:latest (laut devstral-small-2 mit searxng) (Ja ich hab mir auch hier helfen lassen.).
Fazit
Ich bekomme jetzt auch nicht mehr alles auf die Kette, aber man kann es sehr gut mit dem LLM fixen, wenn du sie Fragst. Es kann sein, das sie falsch Antworten, aber sie zu Korrigieren, kann auch mal als Sinnvolle lernhilfe gedacht werden. Denn so kann man durchaus lernen, weil man ein besseres gefühl dafür bekommen kann, wie etwas funktioniert. Und man ist nicht mehr auf Profis angewiesen (wie mich), der nie Zeit oder Lust hat zu Antworten.
Danke fürs Lesen.