Skip to main content

🏗️ Kompletní instalace Nginx Proxy Manageru (NPM) s Cloudflare certifikátem

Tento návod popisuje instalaci reverzní proxy na Raspberry Pi 5 s využitím 15letého SSL certifikátu přímo od Cloudflare.

1. Příprava systému (Terminál)

Nejdříve vytvoříme strukturu složek v /opt/ a nastavíme správná oprávnění, aby kontejner mohl zapisovat data.

sudo mkdir -p /opt/nginx-proxy-manager/data
sudo mkdir -p /opt/nginx-proxy-manager/letsencrypt
sudo chown -R $USER:$USER /opt/nginx-proxy-manager
sudo chmod -R 775 /opt/nginx-proxy-manager

🔑
2. Získání 15letého certifikátu (Cloudflare Dashboard)Origin Certifikát

MístoTento neustáléhocertifikát obnovováníslouží Let'svýhradně Encryptpro použijemešifrování Origintrasy Certifikát:mezi Cloudflare a tvým RPi5.

  1. V Cloudflare: SSL/TLS -> Origin Server -> Create Certificate.

  2. NastaveníNastavení: ponechat (RSA 2048, platnost 15 years).let.

  3. DŮLEŽITÉ: Zkopíruj si text Origin Certificate a Private Key. Budeš je vkládat do NPM.

[!CAUTION] BEZPEČNOSTNÍ VAROVÁNÍ: Cloudflare Origin certifikát není veřejně důvěryhodný pro prohlížeče. Pokud se na server pokusíš připojit přímo (mimo Cloudflare), prohlížeč nahlásí chybu zabezpečení.

📦 3. Konfigurace Portainer Stack (YAML)

Vytvoř nový stack v Portaineru.stack. Používáme SQLite (vhodné pro jednoduchosthomelab, ašetří stabilitu.RAM, nepoužívat pro HA/produkční nasazení s vysokou zátěží).


version: "3.9"

services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: nginx-proxy-manager
    restart: unless-stopped
    ports:
      - '80:80'
      # Povinné pro HTTP
      - '443:443' # Povinné pro HTTPS
      - '81:81' # WebováAdministrace administraceNPM
    environment:
      - TZ=${TZ} # Definováno v Portainer UI
    volumes:
      - /opt/nginx-proxy-manager/data:/data
      - /opt/nginx-proxy-manager/letsencrypt:/etc/letsencrypt
4. Nastavení Environment Variables (Portainer UI)

Pod YAML kódem přidej proměnnou:

Name Value
TZ Europe/Prague
🔒 4. Zabezpečení přímého přístupu

Aby nedošlo k obejití Cloudflare (WAF, rate-limiting), je kriticky důležité zajistit, aby server nebyl přístupný napřímo z internetu.

  • Doporučené řešení: Použij Cloudflare Tunnel (z předchozího návodu), který porty 80/443 do internetu vůbec neotevírá.

  • Alternativa: Pokud nepoužíváš tunel, nastav na routeru/firewallu (UFW) povolení pouze pro IP rozsahy Cloudflare.

⚙️ 5. Konfigurace NPM a SSL v rozhraní NPM

🛡️
6. Nastavení vCloudflare SSL Režimu

V Cloudflare (Zabezpečení)

Aby vše fungovalo, musíš v Cloudflaredashboardu v sekci SSL/TLS -> Overview přepnoutpřepni režim na Full (strict). Tím zajistíš, že Cloudflare bude komunikovat s tvým RPi5 pouze skrze tento bezpečný certifikát.

Proč je tento postup nejlepší?