HomeBox

יומן שינויים

כל הגרסאות של HomeBox, מהחדשה לישנה.

הערות הגרסה נכתבות באנגלית.

  1. v0.4.19

    Update checks now go through get.abeksis.net, which counts anonymously how many boxes run each version: the box sends its HomeBox version, no IP or identifier is kept, and per-box rows become plain totals within two days. If it is unreachable the check falls back to GitHub. To opt out, set HB_ANONYMOUS_STATS=off in /opt/homebox/.env and run sudo homebox up dashboard --yes.

  2. v0.4.18

    Films no longer stay stuck on the Coming soon card as "out now". A film is removed once its digital release has passed, instead of lingering until its disc release date.

  3. v0.4.17

    Updating an app now backs up only that app, not the whole box — the backup for a single update drops from about 950MB to a few MB. Backups also skip artwork, caches and logs that apps download or recreate by themselves, such as Jellyfin's library images and Radarr and Sonarr's posters.

  4. v0.4.16

    Uninstalling with a one-line command piped from curl now shows what will be removed and asks you to type 'remove', instead of refusing unless --yes was given.

  5. v0.4.15

    New installs on a machine without git were silently getting the development branch instead of a release. They now start on the current stable release from the release manifest, and say so plainly if no release can be found.

  6. v0.4.14

    Live Logs timestamps now show in the box's own timezone instead of UTC, so they match the times the apps print next to them. Hover a timestamp to see the exact UTC time.

    Five services that were running on UTC now follow the box's timezone: Immich's database and cache, Nextcloud's cache, Ghost and WordPress. Already installed apps pick this up the next time they are updated.

  7. v0.4.13

    Live Logs now draws one row per line, like the reference product: long lines wrap at word boundaries instead of scrolling sideways, every row carries a dimmed timestamp, and boot banners drawn in ASCII art keep their shape instead of being smeared into a single line.

    This reverses the line folding introduced in 0.4.12.

  8. v0.4.12

    Live Logs now shows one log entry per row. Applications that put newlines inside a single message — Uptime Kuma's ping output is the worst offender — were being drawn as one row per line, so a single monitor failing looked like seven separate events.

  9. v0.4.11

    The Live Logs picker now shows each service by name with its icon, instead of raw container names.

    Also fixes the HomeBox app card reporting itself as "1/2 running · partial" after every successful update — that second container was HomeBox's own update helper, which inherits the dashboard's compose labels.

  10. v0.4.10

    The Headscale icon was the full wordmark and rendered as a thin strip of dots in the app tile. Cropped to the mark.

  11. v0.4.9

    Adds Headscale: Tailscale's coordination server, self-hosted, with a web UI for enrolling devices and issuing keys.

    Also fixes a box reporting an update to the version it was already running. The manifest check treated "the manifest has not changed" as "nothing has changed", and the thing that had changed was the box itself.

  12. v0.4.8

    Boxes now notice a new release within about twenty minutes instead of up to six hours. The manifest check has been moved off the image check's timer — they look alike but one is a dozen registry round-trips and the other is a single conditional GET.

    This matters most for the pause switch: a release found to be bad could previously keep installing itself for six hours after it was stopped.

  13. v0.4.7

    The two notes on the Updates page — "Everything is current" and the footnote under History — were grey text on a near-black page with no edge, and were hard to see. They are panels now.

  14. v0.4.6

    Fixes a stuck update dialog. When the update helper failed to launch, the progress file was left on "starting" with nothing left to move it, so the page spun forever on a run that never began — above the log of a previous update, which made it look like the box had updated to the wrong version.

    Also stops a successful update from ending with "1 container is stopped": that was HomeBox's own update helper, which is kept on purpose so its log stays readable.

  15. v0.4.5

    The update button could not start on a box whose dashboard image had been orphaned by a later rebuild of the same tag — it answered "docker exited 125" and did nothing. It now checks that the reference resolves and falls back to the newest homebox-dashboard image on the box.

    A box already stuck this way needs one hop by hand, because the broken code is what would have to launch the update:

    cd /opt/homebox && sudo git fetch --tags && sudo git checkout v0.4.5 && sudo bash install.sh

  16. v0.4.4

    Never offer a database major-version upgrade.

    Postgres 17 cannot open a Postgres 14 data directory, and HomeBox was offering exactly that swap for Immich's database as a one-click upgrade. It now refuses to, for postgres, mariadb, mysql, mongo, percona and timescale, and shows the newer version without a button and with the reason instead of hiding it.

  17. v0.4.3

    The same live-log dialog an app image upgrade opens, fed from a file so it survives the dashboard restarting in the middle — and so a page reloaded mid-update can read back everything it missed.

  18. v0.4.2

    How long it takes, and whether you have to sit and watch it. You do not — the update runs on the box and reports through a file, so you can close the page and it carries on.

    This release exists to be installed with the button. If you are reading these words in the card, press it.

  19. v0.4.1

    install.sh chowned everything to root when run by the updater, because nsenter carries no SUDO_USER. It now asks the tree who owns it.

    If you updated through the button on 0.3.7-0.4.0, run: sudo chown -R $USER:$USER /opt/homebox

  20. v0.4.0

    The button path had never been run until today, and it was broken in three separate ways that the CLI path could not reveal: the helper deleted the container it was running in, git refused every command because nsenter carries no SUDO_UID, and a failed git status read as a clean tree.

    If this release arrived through the button, all three are fixed.

  21. v0.3.9

    Its helper runs as root through nsenter, which git treats as dubious ownership and refuses — while the CLI, running under sudo, was exempt. Also stops a failed git status being read as a clean tree.

  22. v0.3.8

    Nothing to see here — this release exists so the Update button can be exercised end to end on a real box, which is the one path that had never actually been run.

  23. v0.3.7

    It launched a helper container that immediately deleted itself, so the button reported success and did nothing. The CLI was unaffected, which is why this survived several releases.

  24. v0.3.6

    Current version 0.3.5 -> 0.3.6 available, on one line. What's new in its own block. A bigger red badge in the tab strip, and a Check button on the card next to the thing it refreshes.

  25. v0.3.5

    It showed a timestamp and a Check now button and never mentioned that a box checks on its own, so pressing the button looked mandatory.

    This release is also the test: nobody pressed anything to find it.

  26. v0.3.4

    The scheduled check returned its own cache instead of fetching, so a box could stay silent through a release indefinitely. It now forces the fetch — which is what a scheduled check is for.

  27. v0.3.3

    Small wording fix: the page intro described container images only, written before the page also handled HomeBox's own releases.

    If you are reading this in the update card, the whole cycle works — the check ran on its own, the dot appeared, and the button did the rest.

  28. v0.3.2

    Every update was chowning module config directories, which breaks any app that runs as its own uid — Postgres in particular. If a database container is unhealthy after updating, this is why; the fix restores the ownership on the next run.

  29. v0.3.1

    The Check now button refreshed the container-image check only, leaving the HomeBox update card showing whatever it last knew — with no way to refresh it from the interface.

  30. v0.3.0

    Since 0.2.4, bootstrap.sh silently installed from a tarball instead of cloning, leaving boxes with no .git and therefore no way to update themselves. Reinstall any box installed with 0.2.4 through 0.2.9 — or check for /opt/homebox/.git.

  31. v0.2.9

    After updating, the card kept showing the old version number and the button, because it read the version from the cached check rather than from the box.

  32. v0.2.8

    Fixes the Updates tab staying silent forever on a box where nothing had ever populated the update cache — which was every box installed before 0.2.7, because the check was on no schedule at all.

  33. v0.2.7

    A new HomeBox release now shows a red dot next to Updates in the top bar, without opening the tab and without reloading the page.

    The check runs on the server every six hours; the page picks up what it found every five minutes. A red dot means a new version of HomeBox itself — image rebuilds keep the ordinary accent dot.

  34. v0.2.6

    The Updates card now takes its description from the annotated tag's own message when no GitHub Release exists.

    Cutting a release already requires writing that message, so the card says something useful by default instead of showing a bare version number — which is what 0.2.5 did.

    If you are reading this text in the dashboard, the change works.

  35. v0.2.5

  36. v0.2.4

  37. v0.2.3

    Fixes the update health check, which polled an endpoint that requires a session and so could never pass.

  38. v0.2.2

    Fixes the dirty-tree guard refusing every update over a file permission bit that bootstrap.sh sets on every install.

  39. v0.2.1

    Documentation: the Updates tab is now the documented way to update HomeBox, with the manual git path kept as the escape hatch.

  40. v0.2.0

    One-button platform updates.

    HomeBox can now update itself from the Updates tab: it takes a backup of state/ and .env, checks out the release tag, runs any pending migrations, rebuilds, waits for the dashboard to answer, and puts the previous version back on its own if it does not.

    Releases are annotated git tags. A new install lands on the newest tag rather than on the development branch. releases/manifest.json carries a freeze switch that stops every box in the world within five minutes, including boxes that are mid-update.

  41. v0.1.0

    The last release before platform self-update existed. Kept as the point a friend's box can be rolled back to, and as the 'from' side of the first real update.