QA release: backend 1.1.24, frontend 1.1.69 (frontend re-cut)

Same version numbers as release-be1.1.24-fe1.1.69. The BACKEND image is
unchanged; only the frontend was rebuilt, so the 1.1.69 tag now resolves to
different bits:

  frontend  old sha256:0663eb0d1fb8506b02842d08610bdcfa404756651260c20b03cf61c1534d26a3
            new sha256:db98bc5371faa77e28563a65741f958ee2e5a722a2d2b1e28ac73786dcdcf9e0
  backend       sha256:548ef5e8d3c5a1bcc57a557b79fcde5ca8338868f0a89b44e2291938c17d624c (unchanged)

Adds the public /download page: the page itself, its five platform marks
(android, ios, linux, mac, windows), the route, and strings across all seven
shipped locales.

BECAUSE THE TAG WAS REUSED, `docker compose up -d` alone will NOT pick this up
on a host already running the earlier 1.1.69 — the tag resolves locally and no
pull happens. Force it:

  cd /usr/local/conferencing
  sudo bash setup.sh --upgrade --backend-tag 1.1.24 --frontend-tag 1.1.69

setup.sh --upgrade always runs `docker compose pull backend frontend`, so it
fetches the new digest even though the tag is unchanged. Verify afterwards with
`docker inspect --format '{{.Image}}' conferencing_frontend`.

The backend needs no action: V1.10.9 already ran on this host and is
idempotent.
This tag has no release notes.