`PGWEB_DATABASE_URL` (post-#62 rename) still failed at boot with:
Error: Invalid URL. Valid format:
postgres://user:password@host:port/db?sslmode=mode
The userinfo portion of a Postgres URL must be URL-encoded —
any `@`, `#`, `:`, `/`, `?`, `%`, `&`, `=`, `+`, `;` etc. in the
password breaks the parser. Compose has no built-in URL encoding,
so the URL we construct in YAML is fragile by design.
Switch to pgweb's discrete CLI flags (`--host`, `--port`, `--user`,
`--pass`, `--db`, `--ssl`). Compose interpolates each value
literally — no URL encoding required, any password works. The
image's ENTRYPOINT already passes `--bind=0.0.0.0 --listen=8081`;
our args are appended to those.
Side benefit: the failure mode for a missing password is now an
explicit Compose error
(`POSTGRES_PASSWORD must be set in infra/local/.env`) rather than
an opaque pgweb crash.