Raspberry Pi-nk saját szervere: miért kattantunk rá a self-hostingre?

Raspberry Pi-nk saját szervere: miért kattantunk rá a self-hostingre?

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

A fiókodban lapuló szerver titkai

Képzeld el: egy igazi éles weboldal pörög egy olyan hardveren, ami olcsóbb, mint egy jobb kávéfőző. A nagy cloud szolgáltatók, mint a Vercel, kényelmesek, de néha jobb választás a saját Raspberry Pi-d. Nem csak nosztalgiából – komoly indokok szólnak mellette.

Tegyük fel, Node.js alapú keretrendszert használsz, mondjuk Astro-t, Svelte Kit-et vagy React-et. Van benne olyan függőség, ami serverless környezetben gondot okoz? Például egy régi i18n könyvtár, ami tökéletesen működik, de nem statikusan bundle-lhető. Vagy teljes kontrollt akarsz a futás felett. Ilyenkor a Pi olcsó és megbízható megoldás a drága cloud helyett.

1. lépés: Hálózati irányítás – Nyisd meg az utat a net felé

Először a routereden állítsd be a port forwardingot. Ez köti össze a publikus IP-det a halkan zümmögő Pi-vel.

Telepítsd fel a Caddy-t, ez egy szuper egyszerű reverse proxy. Írj neki egy alap configot, kb. így:

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

A port a keretrendszertől függ: Astro 4321-en indul, Svelte Kit 5173-on, sima Node.js appok 3000-on. Frissítsd a Caddy-t, és már félúton vagy.

2. lépés: Domain a Pi-re mutasson

NameOcean-szerű regisztrátorral ez gyerekjáték. Csak egy sima DNS A rekord kell:

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

Ennyi. A router átirányítja a forgalmat a Pi-re.

3. lépés: Buildelj egyszer, és fusson örökké

Futtasd le a szokásos build parancsot:

npm run build

Kész a dist mappa, benne a lefordított app és a belépési pont, pl. entry.mjs.

Itt jön képbe a PM2, ami process manager és életben tartja a Node.js appot:

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

Most már él a site, nem kell nyitva tartani a konzolt.

4. lépés: Automatizáld a deployt GitHub Actions-szel

Önmagában hosting jó, de ha minden frissítésnél SSH-zolnod kell, az kínszenvedés. GitHub Actions ezt megoldja.

Hozz létre egy .github/workflows/deploy.yml fájlt a repódban:

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

Add hozzá a Pi IP-jét és hitelesítőit a repo secretjei közé. Írj egy deploy scriptet (deploy.sh), ami mindent elintéz:

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

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

echo "Frissítem a kódot..."
for dir in "$BASE_DIR"/*/ ; do
    if [[ -d "$dir/.git" ]]; then
        (cd "$dir" && git pull)
    fi
done

echo "Buildelés..."
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 "Újraindítom a szolgáltatásokat..."
pm2 restart all

Minden git push után a Pi lehúzza a kódot, buildel, és újraindul – magától.

A számítás vége

Nem mindenkinek való a Pi-s self-hosting. Nincs redundancia, globális CDN, a sávszélesség korlátozott, és ha net outage van, a site is leáll. De ha cserébe kontrollt, spórolást és azt az érzést akarod, hogy a teljes stack a tiéd, akkor simán működik.

Ráadásul rengeteget tanulsz: DNS, reverse proxy, process management, CI/CD – ezekről cloud gombnyomkodással nem szerezhetsz ilyen tudást.

A porosodó Raspberry Pi nem csak hobbi kütyü. Igazi infrastruktúra, ami bizonyítja: production workloadhoz nem kell mindig enterprise cucc.

Read in other languages:

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