Vom Ersatzteil zur echten Power: Warum wir auf Raspberry Pi Self-Hosting lieben

Vom Ersatzteil zur echten Power: Warum wir auf Raspberry Pi Self-Hosting lieben

Mai 07, 2026 self-hosting raspberry-pi node.js devops dns github-actions astro web-infrastructure

Der kleine Server aus der Schublade

Ein Webserver auf einem Gerät, das billiger ist als ein guter Espresso? Klingt verrückt, funktioniert aber. Cloud-Dienste wie Vercel sind prima für den Alltag. Doch manchmal passt Self-Hosting auf einem Raspberry Pi perfekt – vor allem, wenn Serverless-Lösungen mit deinen Tools streiten.

Stell dir vor: Dein Projekt mit Astro, SvelteKit oder React braucht Bibliotheken, die nicht statisch gebündelt werden können. Oder du willst volle Kontrolle über den Laufzeitverhalten. Da wird dein Pi zur günstigen Alternative gegen teure Clouds.

Schritt 1: Router öffnen – Der Weg ins Netz

Zuerst muss dein Pi mit der Welt reden. Richte Port-Forwarding in deinem Router ein. Das leitet Traffic von deiner öffentlichen IP direkt zum Pi.

Nimm Caddy als Reverse Proxy – super einfach und modern. Eine Konfig so:

yoursite.com {
    root * /home/username/projects/yoursite
    
    file_server
    reverse_proxy localhost:4321
}

Port anpassen: Astro nutzt 4321, SvelteKit 5173, Node.js oft 3000. Caddy neu laden – und los geht's.

Schritt 2: Domain auf den Pi lenken

Bei Registraren wie NameOcean geht das easy. Erstelle einen A-Record:

A Record: yoursite.com → your.public.ip.address

Dein Router übernimmt den Rest. Traffic landet automatisch beim Pi.

Schritt 3: Bauen und ewig laufen lassen

Baue dein Projekt:

npm run build

Im dist-Ordner liegt alles Fertige, inklusive Einstiegspunkt wie entry.mjs.

PM2 hält den Node.js-Prozess am Leben:

npm install -g pm2
cd dist/
pm2 start entry.mjs

Kein Terminal mehr nötig – der Server läuft rund um die Uhr.

Schritt 4: Updates per GitHub Actions automatisieren

Manuelles SSH-Zocken? Vergiss es. GitHub Actions macht Deployments zum Kinderspiel.

Erstelle .github/workflows/deploy.yml:

name: Deploy to Raspberry Pi
on: [push]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Deploy via SSH
        uses: appleboy/ssh-action@v1
        with:
          host: ${{ secrets.PI_HOST }}
          username: ${{ secrets.PI_USER }}
          password: ${{ secrets.PI_PASSWORD }}
          script: |
            ~/bin/deploy.sh

Pi-IP und Zugangsdaten als Repo-Secrets speichern. Dazu ein Deploy-Skript:

#!/usr/bin/env bash
set -euo pipefail

BASE_DIR="$HOME/projects"
PORTS=(4321 4322)
PORT_INDEX=0

echo "Code ziehen..."
for dir in "$BASE_DIR"/*/ ; do
    if [[ -d "$dir/.git" ]]; then
        (cd "$dir" && git pull)
    fi
done

echo "Projekte bauen..."
for dir in "$BASE_DIR"/*/ ; do
    if [[ -f "$dir/package.json" ]]; then
        CURRENT_PORT=${PORTS[$PORT_INDEX]}
        (
            cd "$dir"
            npm run build -- --port "$CURRENT_PORT"
        )
        PORT_INDEX=$(( (PORT_INDEX + 1) % ${#PORTS[@]} ))
    fi
done

echo "Services neu starten..."
pm2 restart all

Jeder git push baut neu, startet um – vollautomatisch.

Die Rechnung ohne Wirt

Pi-Selfhosting ist nichts für alle. Keine Redundanz, kein globaler CDN. Bandbreite begrenzt, Internet-Ausfall killt die Seite. Aber: Du sparst Kohle, hast totale Kontrolle und baust deinen Stack selbst.

Dazu lernst du DNS, Reverse Proxies, PM2 und CI/CD richtig kennen – Cloud-Dashboards lehren das nicht.

Dein alter Pi? Kein Staubfänger, sondern echter Production-Server. Proof: Enterprise-Lösungen sind nicht immer Pflicht.

Read in other languages:

RU BG EL CS UZ TR SV FI RO PT PL NB NL HU IT FR ES DA ZH-HANS EN