107 lines
1.9 KiB
Markdown
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
|
|
|
|
|
|
|
|
#
|
|
|
|
|
|
|