# Caddy als reverseproxy einrichten # Netzwerk anlegen ```shellscript 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 ```shellscript mkdir -p /srv/docker/caddy/config mkdir -p /srv/docker/caddy/data ``` # docker-compose.yml erstellen ```yaml 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 `Caddyfile`im config-Verzeichnis an: ```shellscript 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 #