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

107 lines
1.9 KiB
Markdown

# 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
#