diff options
Diffstat (limited to 'caddy')
| -rw-r--r-- | caddy/Caddyfile | 7 | ||||
| -rw-r--r-- | caddy/Dockerfile | 9 | ||||
| -rw-r--r-- | caddy/docker-compose.yml | 3 | ||||
| -rw-r--r-- | caddy/entrypoint.sh | 35 |
4 files changed, 47 insertions, 7 deletions
diff --git a/caddy/Caddyfile b/caddy/Caddyfile index 5ab87a7..3cf3547 100644 --- a/caddy/Caddyfile +++ b/caddy/Caddyfile @@ -41,12 +41,7 @@ blog.yyamashita.com { reverse_proxy microblog-app:3000 } -proxy.yyamashita.com { - tls { - key_type rsa4096 - } - respond "Proxy Server" 200 -} +import /tmp/proxy_forward.caddy vpn.yyamashita.com { tls { diff --git a/caddy/Dockerfile b/caddy/Dockerfile new file mode 100644 index 0000000..295437b --- /dev/null +++ b/caddy/Dockerfile @@ -0,0 +1,9 @@ +FROM caddy:2-builder-alpine AS builder +RUN xcaddy build --with github.com/caddyserver/forwardproxy@caddy2 + +FROM caddy:2-alpine +COPY --from=builder /usr/bin/caddy /usr/bin/caddy +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh +ENTRYPOINT ["/entrypoint.sh"] +CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"] diff --git a/caddy/docker-compose.yml b/caddy/docker-compose.yml index 3e9385d..e23d25a 100644 --- a/caddy/docker-compose.yml +++ b/caddy/docker-compose.yml @@ -1,6 +1,6 @@ services: caddy: - image: caddy:2-alpine + build: . ports: - "80:80" - "443:443" @@ -9,6 +9,7 @@ services: - ./:/etc/caddy/ - caddy_data:/data - caddy_config:/config + - /app/infra/vpn/users.conf:/etc/proxy/users.conf:ro restart: unless-stopped networks: - web diff --git a/caddy/entrypoint.sh b/caddy/entrypoint.sh new file mode 100644 index 0000000..cf123ce --- /dev/null +++ b/caddy/entrypoint.sh @@ -0,0 +1,35 @@ +#!/bin/sh +set -e + +PROXY_CONF=/tmp/proxy_forward.caddy + +# Build basicauth lines from shared users.conf +AUTH_LINES="" +if [ -f /etc/proxy/users.conf ]; then + while IFS=' ' read -r user pass || [ -n "$user" ]; do + [ -z "$user" ] && continue + case "$user" in \#*) continue ;; esac + AUTH_LINES="${AUTH_LINES} basicauth ${user} ${pass}\n" + done < /etc/proxy/users.conf +fi +AUTH_BLOCK=$(printf '%b' "$AUTH_LINES") + +cat > "$PROXY_CONF" <<EOF +http://proxy.yyamashita.com { + forward_proxy { +${AUTH_BLOCK} hide_ip + hide_via + } +} +https://proxy.yyamashita.com { + tls { + key_type rsa4096 + } + forward_proxy { +${AUTH_BLOCK} hide_ip + hide_via + } +} +EOF + +exec "$@" |
