docker-fobi/Caddy als reverseproxy einrichten.md
Jesko Anschütz 5defc3d129 Für Rüdiger
2025-11-05 16:19:09 +01:00

1.9 KiB

Caddy als reverseproxy einrichten

Netzwerk anlegen

docker network create \
  --driver bridge \
  --ipv6 \
  --subnet 172.31.0.0/16 \
  --subnet fd42:0815:4711:1::/64 \
  reverseproxy_netz

Verzeichnisse für Caddy und seine Configs anlegen

mkdir -p /srv/docker/caddy/config
mkdir -p /srv/docker/caddy/data

docker-compose.yml erstellen

services:
  caddy:
    image: caddy:latest
    container_name: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./caddy:/etc/caddy/
      - ./site:/srv  
      - ./caddy_data:/data
      - ./caddy_config:/config
    networks:
      - reverseproxy_netz

  service1:
    image: dein/service1-image
    container_name: service1
    networks:
      - reverseproxy_netz

  service2:
    image: dein/service2-image
    container_name: service2
    networks:
      - reverseproxy_netz

networks:
  reverseproxy_netz:
    external: true

Caddy Config erstellen

mit deinem Lieblingseditor legst du die Datei Caddyfileim config-Verzeichnis an:

webserver3.fobix.benbex.de {
  reverse_proxy meinwebserver1:80
}


caddy neu starten: docker compose stop ; docker compose start; docker compse logs -f

jetzt wird man beobachten können, wie das Zertifikat erstellt wird.

Wenn es einen Container gibt, der "meinwebserver1" heißt, und der auf Port 80 hört (expose) dann wird dieser nach kurzer Zeit unter https://webserver3.fobix.benbex.de erreichbar sein.

Server mit Basic-Auth schützen

du kannst einfach

basicauth {
  test $2a$10$oE4MsIokdJzUpS3p.oHPzuncTzAjISdFhGsd3RKRI3fudScqAW342

vor oder nach reverse_proxy einfügen.

Der Passwort-Hash ist leicht mit den it-tools (bcrypt) zu erzeugen.

Danach ist der jeweilige Server geschützt.

IT-Tools

corentinth/it-tools