Skip to content

Released trueno, an uploader you just drop onto a shared server

I built trueno as the storage backend for 6umi.net's uploader (a.6umi.net). If you put it as a CGI on a shared rental server you already have a contract for, you don't need to rent separate object storage. Since I switched 6umi's storage to Cloudflare R2, trueno, which had been behind a.6umi.net, no longer had a place. To keep it alive on the shared server whose contract is still running, I moved it to a2.6umi.net, and at the same time gave trueno, which had only been an API, an uploader page you use from the browser, and released it. The code is at https://github.com/kimari-s/trueno (MIT).

What I made

trueno running on a2.6umi.net. The Upload form and the file list

  • Page (index.html): pick a file or drop it, add a comment and a delete key, choose a retention period (1h / 1d / 1w / keep), and send it. Below that, the file list (name, comment, size, date, time remaining) and page numbers. thumbs.html shows only images
  • API: added GET /list (the list) and POST /delete (delete with the delete key or the operator's key). POST /upload accepts comment and delete_key. The API list is at https://a2.6umi.net/api.html
  • No DB: the information needed for the list and for deletion (original file name, comment, hash of the delete key, time) goes in a .meta next to the file
  • Upload without a key: you can upload without a key, but only for the retention periods the operator allows in ANON_BUCKETS. By default a key is required, as before
  • Setup: put the docroot in place, write the public URL, site name and anonymous buckets in make.local, then run make deploy. Python standard library only, no pip needed. Steps are in the README
  • For files whose original name is just _ (_.jpg etc.), the list doesn't show the original name
  • 23 tests (tests/)

Why it takes this shape is written up in The thinking behind the spec.

Next

  • a2.6umi.net will keep running as both a demo and a backup until the rental server contract ends. After I cancel it, I'll take it down
  • For the uploader I'll use the 6umi one (FastAPI / R2), so I won't change trueno unless a use for it comes up

Created 2026-10-07 by lamutara · Updated 2026-10-08 by lamutara · 16 revisions · Machine-translated from the Japanese original.