A token passed as `?token=` was accepted on every route, so it ended
up in the request log (and journald), browser history and Referer.
- drop `?token=` from _check_auth; API and download routes now take
only the cookie or an Authorization: Bearer header
- keep pre-authenticated links working: on the index route a valid
`?token=` is swapped for the cookie and redirected to a clean URL,
so the secret does not linger in the address bar
- redact `token=` from log output
- send Referrer-Policy: no-referrer, and mark the cookie Secure
Package the service for setup on a new machine:
- install.sh generates a token, writes share.config (mode 600, token
stored as a SHA-256 hash) and installs the systemd user unit from
share.service.template
- share.config is now gitignored, with share.config.example as the
tracked template — the config holds the secret and must not be in
the repo
- warn at startup when token is empty, since that means open access
- SETUP.md documents install, verification and security posture