Fra gammelt skrot til produksjonsserver: Hvorfor vi er hekta på Raspberry Pi-selfhosting

Fra gammelt skrot til produksjonsserver: Hvorfor vi er hekta på Raspberry Pi-selfhosting

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

Den lille serveren i skuffen din

Tenk å drive en ekte nettside fra en maskin billigere enn en god kaffemaskin. Cloud-tjenester som Vercel fikser det meste, men det finnes gode grunner til å hoste selv på en Raspberry Pi. Ikke bare fordi det er kult.

Situasjonen er klar: Du bruker Node.js-rammeverk som Astro, SvelteKit eller React. Noen avhengigheter krangler med serverløse plattformer. Kanskje en gammel i18n-bibliotek som funker perfekt, men ikke kan pakkes statisk. Eller du vil styre kjøretiden nøyaktig. Da blir Pi-en din et smart valg mot dyr cloud.

Trinn 1: Koble Pi-en til nettet

Først må routeren din sende trafikk til Pi-en. Sett opp port forwarding – det er veien fra din offentlige IP til den lille boksen.

Bruk Caddy som reverse proxy. Den er enkel og moderne. Lag en konfig sånn:

yoursite.com {
    root * /home/bruker/prosjekter/yoursite
    
    file_server
    reverse_proxy localhost:4321
}

Porten varierer: Astro liker 4321, SvelteKit 5173, Node.js ofte 3000. Last inn konfiggen på nytt, så er du i gang.

Trinn 2: Pek domenet mot Pi-en

Hos registrar som NameOcean er det lett. Lag en A-record i DNS:

A Record: yoursite.com → din.offentlige.ip

Routeren tar seg av resten. All trafikk til domenet havner hos Pi-en.

Trinn 3: Bygg og kjør stabilt

Kjør build-kommandoen din:

npm run build

Da får du en dist-mappe med appen og inngangspunkt som entry.mjs eller lignende.

PM2 holder det i gang for godt:

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

Nå lever siden uten at du må holde terminalen åpen.

Trinn 4: Automatiser oppdateringer med GitHub Actions

Selvhosting blir ubrukelig hvis du må logge inn via SSH hele tiden. GitHub Actions fikser det.

Lag .github/workflows/deploy.yml i repoet:

name: Deploy til Pi
on: [push]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Kjør 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

Legg IP og login i repoets secrets. Så lager du et deploy-script:

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

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

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

echo "Bygger prosjekter..."
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 "Starter tjenestene på nytt..."
pm2 restart all

Nå bygger hver git push ny kode, bygger og restarter – helt auto.

Bunnlinjen

Pi-hosting passer ikke alle. Du dropper redundans, CDN og ubegrenset båndbredde fra cloud. Netto faller, siden faller. Men hvis du vil ha kontroll, lave kostnader og eie alt selv, funker det utmerket.

Du lærer masse: DNS, reverse proxies, process managers og CI/CD på ekte. Bedre enn å klikke i cloud-dashboarder.

Den gamle Pi-en i skuffen er ikke bare leke. Den er seriøs infrastruktur. Bevis på at produksjon ikke alltid trenger store enterprise-løsninger.

Read in other languages:

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