Opsætning af Cloudflare Tunnel med Nginx Proxy Manager (NPM) og Let's Encrypt

Introduktion

Denne guide viser, hvordan du opsætter en Cloudflare Tunnel til at eksponere en intern applikation via et domæne beskyttet af Cloudflare. Vi anvender Nginx Proxy Manager (NPM) som reverse proxy og Let's Encrypt til SSL-certifikater.


Forudsætninger

Før du går i gang, skal du have følgende:

  • Registreret domæne: Dit domæne skal være registreret og tilføjet til Cloudflare.
  • Cloudflare-konto: Opret en konto på Cloudflare Dashboard og tilføj dit domæne.
  • Linux-server: En Debian/Ubuntu-server med SSH-adgang og sudo-rettigheder.
  • Docker og Docker Compose: Installeret på din server til at køre Nginx Proxy Manager.
  • Intern applikation: En service, der kører lokalt, f.eks. på port 8000, eller se følgende guide:
Installation af osTicket med Docker og Docker Compose
Denne guide vil trin-for-trin guide dig gennem installationen og konfigurationen af osTicket ved hjælp af Docker og Docker Compose. Dette gør det nemt at opsætte og administrere osTicket på enhver server, der understøtter Docker.

1. Tilføj domæne til Cloudflare

  1. Log ind på Cloudflare og tilføj dit domæne.
  2. Opdater dine DNS servere hos domæneregistratoren til dem, Cloudflare angiver.

Velkommen til RapidHub – Din Teknologiske Base
Vi deler hands-on erfaringer med virtualisering, sikkerhed og skalerbar kode. Fokus er på infrastruktur, automation og sikre systemarkitekturer, så du kan bygge stabile og fremtidssikrede løsninger.

2. Installer cloudflared

Kør følgende for at installere Cloudflare Tunnel klienten:

curl -fsSL https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb

3. Opret og konfigurer Cloudflare Tunnel

Log ind og opret en tunnel:

cloudflared tunnel login
cloudflared tunnel create min-tunnel

Konfigurer tunnelen:

Opret/rediger ~/.cloudflared/config.yml:

tunnel: [TUNNEL_ID]
credentials-file: /home/$USER/.cloudflared/[TUNNEL_ID].json

ingress:
  - hostname: app.example.com
    service: http://localhost:8000
  - service: http_status:404

Udskift [TUNNEL_ID] med tunnelens ID.

Opret DNS-record:

cloudflared tunnel route dns min-tunnel app.example.com

Start tunnelen:

cloudflared tunnel run min-tunnel

4. Installér og konfigurer Nginx Proxy Manager (NPM)

Installer Docker og Docker Compose via denne guide:

Installation af Docker via Officielt Installationsscript
Lær hvordan du installerer Docker på Ubuntu og Debian via det officielle installationsscript. Denne guide viser dig trin-for-trin, hvordan du opdaterer systemet, downloader og kører scriptet, samt konfigurerer Docker til automatisk opstart. Kom hurtigt i gang med containerisering!

Opret Docker Compose-fil til NPM

Opret en mappe til NPM:

mkdir -p ~/npm && cd ~/npm

Opret en docker-compose.yml fil:

nano docker-compose.yml

Indsæt følgende:

services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '443:443'
      - '81:81'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt'

Gem filen, og start Nginx Proxy Manager:

docker compose up -d

Nginx Proxy Manager vil nu være tilgængelig på http://<server-ip>:81.


5. Konfigurer NPM til at bruge Cloudflare Tunnel

  1. Log ind på Nginx Proxy Manager (Standard login: [email protected] / changeme).
  2. Naviger til HostsProxy Hosts.
  3. Klik på Add Proxy Host og udfyld:
    • Domain Names: app.example.com
    • Scheme: http
    • Forward Hostname / IP: localhost
    • Forward Port: 8000
    • Block Common Exploits:
    • Websockets Support:
  4. Under fanen SSL:
    • Vælg Request a new SSL Certificate.
    • Aktivér Force SSL.
    • Vælg Use Cloudflare DNS Challenge.
    • Indtast din Cloudflare API Key.
  5. Klik på Save.

6. Bekræft opsætningen

Gå til https://app.example.com i din browser og verificér, at din applikation nu er tilgængelig via Cloudflare Tunnel med Nginx Proxy Manager.


Se flere guides her: Guides

Guide til at Installere og konfigurere Twingate på Debian 12
Denne guide gennemgår, hvordan du opsætter Twingate på en Debian 12-server eller -desktop. Du lærer at oprette en Twingate-konto, installere klienten, konfigurere en connector og teste forbindelsen. Derudover dækker guiden fejlfinding og vedligeholdelse for at sikre en stabil opsætning.