Hvad du skal bruge

FORUDSÆTNINGER

  • Raspberry Pi (hvilken som helst model) med Raspberry Pi OS Bookworm, 64-bit anbefalet til Pi 4/5
  • En Cloudflare-konto (gratis) med et domæne tilknyttet Cloudflares navneservere
  • SSH-adgang til din Pi
  • Docker + Docker Compose (valgfrit, men anbefalet hvis du allerede bruger det)
💡 Domænet behøver ikke at være købt hos Cloudflare. Du kan flytte navneservere fra en eksisterende registrar (Namecheap, GoDaddy osv.) til Cloudflare gratis og bibeholde registreringen der, du startede.

Trin 1 – Opret tunnelen i Cloudflare Zero Trust

Gå til dash.cloudflare.com → Zero Trust → Networks → Tunnels og klik Create a tunnel. Vælg Cloudflared som connector-type og giv tunnelen et navn, f.eks. home-pi.

Cloudflare genererer et unikt token til din tunnel. Du bruger det i næste trin. Hold browserfanen åben.

Trin 2 – Installer cloudflared på Pi'en

Cloudflare viser en installationskommando direkte i dashboardet. Den ser ca. sådan her ud:

Metode A: Debian-pakke (anbefalet til Pi 4/5)

# Download ARM64-pakken
curl -L -o cloudflared.deb \
  https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64.deb

sudo dpkg -i cloudflared.deb

# Registrer og start som systemd-service
sudo cloudflared service install DIT_TOKEN_HER

Brug cloudflared-linux-arm.deb (ARMv7) i stedet, hvis du kører en Pi 3 eller ældre med 32-bit OS.

Metode B: Docker Compose

Tilføj dette til din docker-compose.yml:

cloudflared:
  image: cloudflare/cloudflared:latest
  restart: unless-stopped
  command: tunnel --no-autoupdate run
  environment:
    - TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN}

Gem tokenet i en .env-fil i samme mappe:

CLOUDFLARE_TUNNEL_TOKEN=indsæt_dit_token_her
⚠️ Commit aldrig .env-filen til git. Tilføj den til .gitignore med det samme.

Trin 3 – Tilføj en public hostname

Tilbage i Cloudflare-dashboardet under Public Hostnames tilføjer du:

Cloudflare opretter automatisk en DNS-post. Din tjeneste er nu tilgængelig på home.eksempel.dk via HTTPS. Cloudflare håndterer certifikatet.

Trin 4 – Cloudflare Access (valgfrit men anbefalet)

Uden Access er din tjeneste offentlig. Vil du kræve login, gå til Zero Trust → Access → Applications → Add an application.

Vælg Self-hosted, angiv din URL, og vælg en identity provider: Google, GitHub, eller blot en "One-time PIN" sendt til e-mail. Det koster ingenting og giver dig en login-mur uden at skulle skrive en linje kode.

Tjek status

# Systemd-installation:
sudo systemctl status cloudflared

# Docker:
docker compose logs cloudflared

Du bør se Connection registered i loggen og tunnelstatus som Healthy i dashboardet.

Fejlfinding

Kilder