Without --proxy-headers + --forwarded-allow-ips, uvicorn ignores the X-Forwarded-Proto header Traefik sets, so Starlette's url_for() picks up the internal scheme (http) and host (the container's bind address). That makes every <link>/<img> href in templates point at an internal URL with the wrong scheme — the browser refuses CSS/images as mixed content and the public page renders unstyled. With both flags the template output becomes https://quartermaster.unbiasedgeek.com/static/… as expected. The wildcard in --forwarded-allow-ips='*' is safe here because the compose file publishes no host ports — only containers on proxy-net (i.e. Traefik) can reach port 8000. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
13 lines
239 B
Bash
Executable file
13 lines
239 B
Bash
Executable file
#!/usr/bin/env sh
|
|
set -eu
|
|
|
|
cd /app
|
|
|
|
alembic upgrade head
|
|
|
|
exec uvicorn quartermaster.main:app \
|
|
--host 0.0.0.0 \
|
|
--port 8000 \
|
|
--proxy-headers \
|
|
--forwarded-allow-ips='*' \
|
|
--log-config src/quartermaster/logconfig.json
|