caddy-start.sh
Rama main · réplica de lectura del repositorio original.
#!/bin/sh
set -eu
cp /etc/caddy/Caddyfile /tmp/link-bot.Caddyfile
if [ -n "${CABINET_SUBDOMAIN:-}" ]; then
case "$CABINET_SUBDOMAIN" in
-*|*-|*[!a-zA-Z0-9-]*) echo 'CABINET_SUBDOMAIN must be a single DNS label' >&2; exit 1 ;;
esac
if [ "${#CABINET_SUBDOMAIN}" -gt 63 ] || [ -z "${PUBLIC_HOST:-}" ]; then
echo 'CABINET_SUBDOMAIN requires a DNS label and PUBLIC_HOST' >&2
exit 1
fi
printf '\n%s.%s {\n encode zstd gzip\n reverse_proxy bot:8080\n}\n' "$CABINET_SUBDOMAIN" "$PUBLIC_HOST" >> /tmp/link-bot.Caddyfile
fi
if [ -n "${ADMIN_SUBDOMAIN:-}" ]; then
case "$ADMIN_SUBDOMAIN" in
-*|*-|*[!a-zA-Z0-9-]*) echo 'ADMIN_SUBDOMAIN must be a single DNS label' >&2; exit 1 ;;
esac
if [ "${#ADMIN_SUBDOMAIN}" -gt 63 ] || [ -z "${PUBLIC_HOST:-}" ]; then
echo 'ADMIN_SUBDOMAIN requires a DNS label and PUBLIC_HOST' >&2
exit 1
fi
admin_label=$(printf '%s' "$ADMIN_SUBDOMAIN" | tr '[:upper:]' '[:lower:]')
cabinet_label=$(printf '%s' "${CABINET_SUBDOMAIN:-}" | tr '[:upper:]' '[:lower:]')
if [ "$admin_label" = "$cabinet_label" ]; then
echo 'ADMIN_SUBDOMAIN and CABINET_SUBDOMAIN must be different' >&2; exit 1
fi
printf '\n%s.%s {\n encode zstd gzip\n reverse_proxy bot:8080\n}\n' "$admin_label" "$PUBLIC_HOST" >> /tmp/link-bot.Caddyfile
fi
exec caddy run --config /tmp/link-bot.Caddyfile --adapter caddyfile