v0.25.3
filex v0.25.3
Self-hosted file manager — Go single binary + multi-framework frontend.
Download a binary below, or pull a Docker image:
docker pull ghcr.io/brf-tech/filex:slim-v0.25.3
docker pull ghcr.io/brf-tech/filex:full-v0.25.3What changed
Fixed
- A PIN-protected file-request page rendered blank. The gate on a
/d/{token}drop link came out with an empty<title>, an empty heading, an
unlabelled PIN box and a blank submit button — nothing on the card told the
visitor what it wanted.Dropreused the shared PIN template but passed no
string table and no language: the template asks for{{.T.pin_heading}},
html/templaterenders a missing key as the empty string, and theExecute
error was assigned to_. Every drop page (gate, uploader, error pages) now
goes through the same one-language-per-visitor resolver the share pages use,
so?lang=/Accept-Language/default_localedecide it — and the
uploader script's own messages travel with the page instead of being
hard-coded Turkish for every visitor on Earth. - A drop into unreachable storage answered
500and logged nothing. When
the object store behind the folder refuses the write, the upload now answers
503{"error":"storage_unavailable"}with a message that says the
storage is down and the link is still good — instead of a generic "could not
send, try again" that sends people retrying into a wall — and the failure is
logged atERRORwith the storage name, driver, stage and destination, so it
reaches the error tracker. Out of space is now its own answer:507
{"error":"quota_exceeded"}. Found the hard way when Hetzner's object
storage returned503for eleven hours and every drop hung for over a minute
before failing silently.