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:

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

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:

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
- Log ind på Nginx Proxy Manager (Standard login: [email protected] / changeme).
- Naviger til Hosts → Proxy Hosts.
- 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: ✅
- Domain Names:
- 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.
- 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
