Changelog¶
Release history for Eight.ly products — history only. This page never names a "current" or "latest" version; to know what your box is actually running, check the dashboard footer or Settings > License, or run eightly --version in the web terminal. For the full commit log, see the GitHub repositories.
Eight.ly OS¶
v2.3.98¶
- When SnapRAID stops a sync because it takes some files for copies of others, the sync now runs again by itself and finishes, and says how many files that was.
- A parity run's log keeps every warning that explains its result, even on a long run.
- On a box running from a USB stick, apps keep their data on your storage pool. Until a pool exists, the App Store says to create one first.
v2.3.97¶
- A parity sync that finished is no longer shown as failed, and parity that is only out of date is no longer shown as unprotected.
- When files change while a sync or scrub runs, the run finishes and says how many changed; the next sync protects them. Real disk or data errors still fail the run.
- The last sync's result on the SnapRAID page always describes the most recent sync, never an old one.
- Verify and Burn-in now give SAS and NVMe drives a real pass or fail, read from the drive's own error counts and health check.
- Drive health warns when a SAS drive remaps bad blocks or cannot correct a read, write or verify, and when an NVMe drive reports media errors or a critical warning.
- The disk card shows a SAS drive's defect and error counts.
- The installer can write Eight.ly OS to a USB stick, keeping the name, network and SSH settings you chose.
- Every release comes with a ready-made USB stick image.
- A box running from a USB stick no longer writes to the stick when files are only read, and can install updates.
- A box with Secure Boot on starts with its storage drivers loaded.
- An SSH admin who signs in with a key can use sudo.
v2.3.96¶
- Security fix: Debian security updates install again on boxes installed to disk. They had stopped installing because the system did not report which Debian release it is.
- Settings and the Updates tab show which waiting updates are security fixes and how long they have waited, and can install them with one button.
- The system image carries the latest Debian security fixes.
- A box keeps starting when its settings area is full or damaged, and the dashboard says what happened.
- Settings files for shares, exports, hosts and more are rebuilt from your saved settings at every start, so a damaged or hand-edited file is put back.
- A power cut while settings are being saved no longer leaves a half-written file.
- Everything a box changes is kept in one settings area, apart from the read-only system image.
- A paid licence, or a trial's end date, carries over when the system moves to a new USB stick or boot disk.
- After installing, Reboot now works even when the install media has already been removed.
v2.3.95¶
- Security fix: connections now refuse certificates issued through certificate authorities that are known to be compromised.
- On boxes running the read-only system image, the Update button installs a whole new image, shows its progress, and can go back to the previous one.
- ZFS pools come up on the read-only system image straight away, with nothing to build on the box.
- NVIDIA graphics drivers come ready-made for the read-only system image, so installing them takes one step and no restart loop.
- Downloading an image update stays within memory on small 4 GB boxes.
v2.3.94¶
- The Storage page shows how full the system disk is, and warns when it is nearly full.
- The key that protects your saved passwords and settings moves to a safe place on first start, so those settings stay readable after every update.
- Groundwork for the read-only system image: a new image that fails to start falls back to the previous one by itself.
v2.3.93¶
- Creating a container offers only systems that can actually be created, says why when a create fails, and lets you choose which storage it goes on.
- On a cluster, the Infrastructure page no longer stops with "Too many requests" while you click through other nodes.
v2.3.92¶
- On a server with a RAID card, each drive is listed once and warns once, and every drive behind the card gets its own warning.
v2.3.91¶
- A disk that fails to read or write, or has bad sectors, is no longer shown as healthy.
- One-Click Deploy shows its progress until every step is done.
- An empty array says there is nothing to scrub yet, and a stopped array reads as stopped.
- An app with more than one web address, such as Authgear and its admin portal, keeps each address, and the address you choose goes to the app itself.
- Authgear's sign-in pages now open through the proxy at their own web address.
v2.3.90¶
- The Cloudflare tunnel status no longer shows the tunnel's secret token to anyone who can open it.
- Scrub, Check Parity and Fix Errors now work on every array, by name, and the parity status and the health line read each array on its own.
- Every array is stopped cleanly when the box shuts down, and the check after an unexpected power loss covers each one.
- The Cache Drives card shows the array as stopped when it is stopped.
- The App Store makes up a secret in the form an app needs, so Feeds Fun gets one it can use.
- Bigcapital gets its own place to keep its files.
- Authgear's setup now writes its database and cache settings.
- Apps that need a processor feature this machine does not have say so and are not installed. OneUptime, for example, needs AVX2.
v2.3.89¶
- The App Store fills in an app's own passwords and secret keys for you and shows them once, so you do not have to make them up.
- Apps that need a setup step before they start, such as Kan, Postal and Feeds Fun, now install. An install also waits for a slow database to come up instead of giving up.
- Stop Array works without forcing it.
- The disks of a stopped array are never offered for wiping or for a new pool.
- Each array keeps its own parity setup, and a second array no longer drops the first one's parity. Sync Parity asks which array to sync, and says so plainly when it refuses.
- The Storage page shows a stopped or started array right away, without a reload.
- Uploading from a share's menu works, and says why when a file cannot be uploaded.
- Each service has a Log button, so you can read why one failed.
- The Shelver keeps every name it already placed, and checks a big copy without reading it twice.
- An unplugged graphics card in an external box is no longer counted as present.
- Backups of running virtual machines work again; a space check added in the last release could not read a running machine's disk.
v2.3.88¶
- VM backups now check that the copy fits before staging it and clean up their staged copies, so a backup can no longer fill the storage your VMs run on. If there is not enough room, the backup stops before writing anything and says which storage it needs, how much, and how much is free. Copies left behind by earlier failed backups are removed at the start of the next one.
- A Shelver pass that is moving files can now be stopped from the Storage screen. The file being moved finishes or stays where it was; nothing else is started.
v2.3.87¶
- The Shelver now recognises the backup server whatever its container is called, so it always leaves the backup server's data alone. If it cannot tell which container is the backup server, it stops and says so instead of moving anything.
v2.3.86¶
- Backups to the backup server now cut big files at points set by what is in them, so a small change near the start of a large file sends only the part around it instead of everything after it. The first backup after this update sends everything once, as a full backup, and later ones are small again. Backups made before this still restore.
- Installing an app from the App Store uses the image your box already has instead of downloading it again, and says plainly when Docker Hub is limiting downloads.
- Settings shows your box's own time zone. If your browser is in a different one, it says so and offers to use it.
- After you uninstall an app, its App Store card goes back to Deploy and stays there.
- Removing, stopping or restarting a container on a remote box now waits for a slow stop instead of reporting a failure.
- Recent Events shows an older container problem from the time it really started.
- A disk's weekly check result stays with the disk it ran on, so a replacement disk shows "not run yet" instead of the old disk's result.
- Routes keeps a box's address readings in the right order after the clock was wrong at start-up.
- The Shelver checks every byte of a copy before it removes the original, and is safer around files that change while it moves them.
v2.3.85¶
- App data backups to the backup server now send only what changed since the night before, instead of nearly everything each night. Encrypted backups are compressed before they are locked, so they shrink too. Backups made before this still restore.
- The Shelver now keeps each folder's owner and permissions when it moves files, and it never moves the backup server's own data. Folders it moved before are given back to the backup server, so it can clear out old copies again.
v2.3.84¶
- Automatic updates now really install at the time you choose in Settings. They stay off until you turn them on, and the schedule uses your box's own time zone.
- Any empty disk can now be used as a cache, with SSDs offered first.
- The Shelver follows a newly added cache and starts by only watching. When it cannot reach or read its folders it says so, instead of reporting that it moved 0 files.
- Open is now offered only on ports that have a web page.
- An app removed from the Docker page now shows "Needs clean-up" in the App Store, and you can finish removing it there.
v2.3.83¶
- Removing a running container now stops it first, from the container list, its own page and when removing several at once. When it cannot be stopped, it says why.
- Uninstalling an app after it was recreated now removes it completely, and recreating an app keeps its labels.
- Monitoring now gets Eight.ly's own readings every time, instead of losing most of them.
v2.3.82¶
- System, Services can now switch a service off, so it stops now and does not start again after a restart, and switch it back on. It asks first and names the service before switching one off.
- System, Services can clear the failed mark on a service that stopped with an error.
- System, Services now lists timers, the jobs that run on a schedule, beside the services, and shows whether each one is switched on. A timer can be switched off and on the same way.
- Eight.ly's own service still cannot be stopped or switched off from that screen, so the page you are using cannot switch itself off.
v2.3.81¶
- The Grafana dashboards opened from the Monitoring page show their charts again; before, every panel read "No data".
- The Logs link on the Monitoring page now opens a Logs dashboard.
- Grafana's container disk panel now shows each container's disk use on boxes where it was empty.
- The Shelver never replaces a different file that is already at the same place on the array. It leaves both, and names the clash in its results. A file that is already there unchanged is not copied again.
- The Shelver closes the last few brief moments during a move in which a file that changed, or appeared, at the wrong instant could be lost or written over.
- The weekly check of each XFS disk is now turned on, and each XFS disk on the Storage page shows when it was last checked and what the check found. The first check starts within a few minutes of updating and reads every data disk once, at low priority, so the disks will be busy for a while.
- Nova's models are offered only on a box with at least 8 GB of memory or a graphics card. A box that already has Nova keeps it.
- An address that was still being confirmed when the box restarted is checked again after the restart, so Routes ends with a real answer instead of calling it unreachable.
- Recent Events shows one line for each time a container broke, and says when it is no longer broken, instead of a row for every check.
- NVIDIA's container helper no longer shows as failed in System, Services on a box with no NVIDIA card.
v2.3.80¶
- The Shelver now moves very large files instead of giving up on them every run, leaves alone files that a program has open, and names each file it left and why.
- The Shelver's settings now show when it last ran; before, they said it had never run.
- A new array no longer trips over the parity record of an array made earlier on the same box, so its first sync and every sync after it work.
- An array mounted somewhere other than the usual place keeps its parity drive with it when another array is created, so starting and stopping it stay correct.
- The dashboard says a parity sync is running only when one is; a different parity task now shows as busy.
- The Cache Drives card lists every drive in a cache pool, each with its own health, instead of one drive with the whole pool's size.
- Monitoring, Containers shows each container's real disk read and write totals instead of zero, and a dash when they cannot be read.
- The Grafana dashboards listed on the Monitoring page now exist on the box; before, every link opened a "Not found" page.
- A broken container appears once in Recent Events, as a problem, instead of twice.
- A container that cannot start new programs because it has run out of room for them is no longer called broken with damaged files.
- Recreating a container with Keep current image always starts the image it was running, even if a newer one was downloaded under the same name in the meantime.
- After an install, a brand-new internet address that the wider internet has not seen yet is shown as being confirmed, not as a failure.
- Publishing directly through your router can now take over an address that this box's own Cloudflare tunnel had already claimed.
- After you uninstall an app, the App Store no longer shows it as installed again until you reload the page.
- The weekly check of each drive no longer turns a harmless note into a row of failed services, and a check that could not finish says so instead of being counted as clean.
v2.3.79¶
- Monitoring, Containers now shows how much disk each container uses, read from Docker itself. The notes for v2.3.77 said this already worked; it did not until now.
- When your router forwards ports 80 and 443 and the box cannot reach its own public address from inside your home network, Publish now says the address record was written and explains how to check it from outside, instead of saying the address was not published.
v2.3.78¶
- Settings, Network has a new switch, My router forwards ports 80 and 443 to this box. Turn it on and fill in your Cloudflare token and domain, and Publish points an app's address straight at your home's public address instead of using a Cloudflare tunnel.
- Recreating a container now finishes, or puts the old one back, even if you close the page partway through, and cancelling before the old container stops changes nothing.
v2.3.77¶
- When Docker's data lives on another drive, Monitoring now shows how much disk each container uses.
- The Shelver's Run now button turns on and off with its switch straight away, without reloading the page.
- Recreating a container with Keep current image now keeps the image's name, instead of leaving only a string of letters and numbers.
v2.3.76¶
- Security: file-sharing accounts no longer get a login shell on the box. Accounts created earlier are switched to no shell when the box starts.
- This release also carries everything in v2.3.75: the Shelver's Run now button, Recreate keeping a container's whole setup, a working container Console, monitoring stack updates that apply, and array Stop and Start acting on the array you chose.
v2.3.75¶
- The Shelver, which moves files from the cache to the array on a schedule, now has a Run now button so you do not have to wait for the schedule.
- Recreating a container now keeps its whole setup, including devices, groups, limits and network names, and shows any error instead of failing quietly.
- A container's Console now opens a real shell you can type into.
- Updates to the monitoring stack offered in Settings, Monitoring can now be applied on an installed box; before, every attempt was refused.
- Stopping or starting an array now acts on the array you chose, and shutting the box down stops every array cleanly.
- Accounts made for file sharing no longer get a login shell, and accounts made that way before are changed the next time the box starts, with a record in Activity.
v2.3.74¶
- The Docker page now shows a container whose files are damaged as Broken, with a plain sentence telling you to Recreate it, and Activity records it once instead of over and over.
- Network, Routes can now check whether any address answers from the internet, one row at a time or all at once.
- Publishing an app to the internet now finds your Cloudflare account through the box's own domain, so a token that can change tunnels is enough to publish, and an account saved by mistake is corrected.
- Monitoring's Drive Status now lists only your real drives, not the files of every container.
- Apps installed behind the reverse proxy now keep their other ports, such as torrent, game and MQTT ports, and a UDP port stays UDP.
- The last step of an app install now shows each port with its protocol.
- The monitoring stack's container statistics now work when Docker's data lives on the cache drive.
v2.3.73¶
- The nightly cache mover no longer deletes empty folders it did not empty itself; before, on a box that keeps Docker on the cache, it could remove folders inside running containers and leave apps unable to work.
- Publishing an app to the internet now works through a Cloudflare tunnel or through ports 80 and 443 forwarded on your router, and says it is published only once the address answers from outside.
- Publishing never overwrites an address record it did not create, and when the saved Cloudflare token cannot change tunnels it says which permission to add.
- An installed app's page has a Publish to the internet button, and Network, Routes shows whether each address answers from the internet.
v2.3.72¶
- Security: the box's web server is built with a Go release that fixes eight known flaws in how it handles web requests.
- An app download that fails or is cancelled can no longer delete the files of your other containers; before, it could leave running apps unable to start again.
- Removing unused images now gives back space only from leftovers at least a day old, and never touches a container or a build.
- ZFS pools are now built from each disk's permanent ID, so a reboot that renames disks can no longer leave a pool degraded.
- Fan speeds now show on any UGREEN DXP whose board carries the IT8613E fan chip, not only the DXP8800 Plus; unnamed fans show as Fan 1, Fan 2 and so on.
- The last step of an app install now lists the devices you gave the app, such as a Coral accelerator or a camera, or says none.
- The changelog the dashboard links to now lists every release from v2.3.51 on and is updated with every release.
v2.3.71¶
- AI assistants can now work on your box: turn on the MCP server in Settings, under Command line and AI assistants, or in the setup wizard, and choose for each area of the box whether an assistant gets no access, read only or full control.
- Every key can now be limited to the areas of the box you choose, and the box enforces it on every call; a limited key can never make or change keys.
- You can move the backup server's data to a bigger pool from the Backup page: it is copied and checked while the server keeps running, and the old copy is kept until you remove it.
- Deleting or changing files no longer stops a parity sync; a sync stops only when a data disk is missing, not mounted or suddenly empty.
- Container alerts now name the box and the container, and a container you stopped is never reported as unhealthy.
- A box in a cluster no longer shows "Could not check Ceph recovery" when Ceph is not set up.
- An app you give a USB Coral accelerator now finds it and runs detection on it, with no setting to change.
v2.3.70¶
- The temperature card now shows your processor and each drive by default, and leaves out motherboard inputs that may not be connected; turn on any sensor and give it a name in Settings, under Monitoring.
- A USB Coral accelerator now works on boxes installed before Coral support arrived, with no reinstall: this box loads its firmware itself.
- An app that runs as a regular user can now use an M.2 Coral accelerator you give it.
- The dashboard's build tools are updated to fix known security issues.
v2.3.69¶
- Preparing a machine for device passthrough, and widening the memory window for an external graphics card, now work on an installed Eight.ly box; before, both stopped with a message about the boot settings.
- An update that is stopped part way can no longer leave a timer behind that later interrupts the restart.
v2.3.68¶
- When you install an app you can now give it a USB stick, TV tuner, camera, Coral accelerator or graphics card from a list, and change that list later from the app's page.
- TV tuners and Coral accelerators now show on the node summary, and apps such as Tvheadend and Frigate pre-select the device they need.
- An app's device list can no longer be used to reach a disk, and serial sticks and cameras the system allows are now actually passed through.
- An external graphics card on Thunderbolt can be given the memory window a large card needs, from the node's Thunderbolt card; the screen shows the window each port really got.
- The dashboard warns you to restart before reattaching an external graphics card when its driver could not be released.
- Adding a second drive to a cache now finishes on large caches, and an update no longer unmounts your apps' folders or the cache's network shares.
- An update is no longer rolled back because a network share on the box stopped answering, and it waits as long as a slow box really takes to start.
- The remote agent no longer piles up stuck processes, keeps its connection past 30 days and across restarts, and its file browser stays inside the volume it serves.
- Two changes to the same app can no longer run at once, and the Agents page shows an install command that works.
- Your box's own health can now be graphed in Grafana by the monitoring stack.
v2.3.67¶
- An LXC container can move onto a ZFS pool: it gets its own dataset that keeps the container's file permissions, and a move that cannot keep them is refused before anything is copied.
- A KVM's empty virtual CD drive no longer stops you from reusing a disk from an old storage set.
v2.3.66¶
- Security: an app published with a wildcard web address now asks for the same sign-in as every other app.
- Storage shows what is using your disk space, folder by folder, for the system disk or any pool.
- A single-drive cache can become a two-drive cache from the Storage screen, keeping everything on it, and a two-drive cache can grow by one more drive without being rebuilt.
- A ZFS pool can take a hot spare or another drive from the Storage screen, and the screen says plainly when a new drive would leave part of the pool unprotected.
- A parity sync stops and tells you when too many files were deleted or changed, or when a data drive is missing or has been swapped, so a mistake cannot wipe out the parity you need to recover.
- After a drive is replaced, syncs wait until its rebuild has finished.
- You can bring back deleted files from parity, picking folders or names, and repair only the damaged blocks a scrub found.
- You can choose how much of the array each scrub checks, and give parity drives their own spin-down time.
- Eight.ly can tell you after every sync and scrub, by email, webhook or ntfy, and ping a check-in address after a clean run.
- Chosen apps can pause during a sync or scrub, and your own script can run before and after.
- You are warned when a drive's SMART warning counters go up, and the health check no longer wakes sleeping drives.
- The Storage screen lists the files changed since the last sync.
- A licence key that has been revoked still gets security updates, and the update window says why a release cannot be installed.
- The Calendar can remove a scheduled parity sync.
v2.3.65¶
- An update now waits while a parity sync or scrub is running, instead of stopping it part-way.
- The parity check card says "not measured" when it has no size for the last scrub, instead of showing 0 GB.
- With Nginx Proxy Manager or SWAG, an app always gets its address on your reverse proxy, whether or not you publish it through Cloudflare, and the screen says plainly when no address was given.
- When an app cannot be published through Cloudflare, the message says what to set up, in order, instead of asking you to connect a box that is already connected.
- The Routes page and the HTTPS badge say when your reverse proxy is stopped, instead of calling it running or not configured.
- The setup wizard's one-click deploy step names the reverse proxy you chose.
v2.3.64¶
- Backups sent to your backup server now run even when this box's own disk is nearly full, because they no longer need space on it.
- App data backups sent to your backup server leave nothing on this box, and a failed upload no longer leaves its copy behind.
- The install screen asks for an app's required passwords before you press Install, for every app that needs one.
- The parity history shows how much each sync really covered, instead of 0 GB for every run.
- Last Scrub shows when a scrub last finished, and a scrub that was stopped part-way is shown as not finished.
v2.3.63¶
- Security: the reverse proxy's own dashboard now asks you to sign in when sign-in is set up, and is not reachable from your network at all when it is not. Deploy your reverse proxy again from Settings to apply this to a box that is already running.
- Passwords you type while installing an app are hidden, with a button to show them.
- Apps whose database address includes a password now receive the password you entered; before, some were installed with it blank.
v2.3.62¶
- SWAG can now be set up from the Settings screen with a Cloudflare token; before, it asked for an email the screen did not show.
- Validating your Cloudflare token now lists the domains it can see and fills in the zone, and says when Cloudflare could not be reached instead of calling the token wrong.
- Connect with Cloudflare now stays open until you have picked your domain.
- When publishing an app through Cloudflare cannot go ahead, the message now says which setting is missing.
- Switching reverse proxy now waits until the new one actually answers, removes it if it never does, and names the app holding a port that blocked it.
- The sign-in link shown after setting up Authelia now opens the sign-in page.
- An app installed behind the reverse proxy with no port of its own no longer fails because its usual port is taken.
- For apps that come with their own database, the port, folders, settings and memory limits you choose now go to the app, not to the database.
v2.3.61¶
- Nginx Proxy Manager and SWAG can now be chosen as your reverse proxy, and One-Click Deploy deploys the one you chose instead of always Traefik.
- If switching reverse proxy fails, the one you had is started again, so the box keeps serving your apps, and the screen says what went wrong.
- An app can be given an address on your own network through Nginx Proxy Manager or SWAG without connecting Cloudflare.
- Sign-in with Authelia now lets you through to your apps; before, it turned every app away on boxes named under a domain.
- The install screen asks for an app's required settings, such as a database password, before you press Install.
v2.3.60¶
- A backup meant for the Eight.ly Backup Server no longer writes a whole copy to this box's system disk first; a virtual machine whose disk could only be staged there is refused with the reason, instead of filling the disk.
- A failed upload to the backup server is recorded as a failed backup, not as a finished one.
- You can now see everything this box holds on the backup server.
- Parity reads one verdict everywhere right after a sync, instead of valid on one screen and out of date on another.
- Immich installs as Immich ships it, with its own database, and the install screen asks for its database password before you press Install.
- A media app that keeps its whole library in one folder puts it in its own folder on the array, not across the shared data folder.
- The Infrastructure screen's performance chart no longer drops a live reading that arrives while its history is still loading.
- The first moment a page appears uses the same theme colours as the rest of the page.
v2.3.59¶
- Motherboard temperature inputs with nothing connected stay hidden on machines whose drives report a hot spot beside their overall temperature.
- Parity Sync History says when one sync has been recorded so far, and shows its time rounded, instead of saying none were recorded.
v2.3.58¶
- The Routes screen recognises sign-in protection set up in older reverse proxy files and newer sign-in settings, so apps that really are behind a login are shown as protected.
- Temperature readings from motherboard inputs with nothing connected are hidden even while the processor is busy, and a memory module no longer shows a temperature below freezing.
- Sonarr and similar apps install with their default settings again when their template already sets a memory limit.
v2.3.57¶
- When one virtual machine's disk cannot be read, the nightly backup now saves everything else and names what it skipped, instead of stopping.
- The backup server keeps only the copies each box made itself, clears out old copies made before boxes named their own, and never deletes a copy two boxes could have written.
- Backup times all show in the same time zone, with the zone named, so a 2 AM schedule no longer reads as 10 PM.
- App data backed up by a scheduled job is listed under that job, not as a leftover from a deleted container.
- A parity check starts on its own, reading only, after the box was switched off without shutting down.
- The Routes screen, its protected-routes count and its sign-in badge now agree about whether sign-in is really in front of your apps.
- Media apps such as Jellyfin, Plex, Sonarr and Radarr put their media folders on your array, and the install screen warns when a folder would land on the system disk.
- Sonarr, Immich and apps built the same way install with their default settings again.
- An app can be published through a Cloudflare tunnel that already serves the box, even when the tunnel runs on another machine.
- A box with only ZFS storage no longer offers parity, cache balancing or Docker on a cache it does not have.
- The disk screens agree about the same drives, and scheduled parity syncs appear in Sync History.
- The network screen says when a link does not report its speed, instead of saying nothing was measured.
- Container CPU and memory figures appear straight away instead of after up to a minute.
v2.3.56¶
- An array now mounts after a restart on boxes that still run the older disk pooling software; the last two releases set it up in a way that would have left the array missing after the next reboot.
- Machines in a cluster see each other again; since the last two releases each member showed the others as offline and could not read from them.
- A box without a licence can now install a security release, as the update screen already said it could.
- Changes since the last parity sync are counted again on boxes running the older parity software.
v2.3.55¶
- A key you create for scripts and other tools can now only do what you granted it; before, it could do more.
- Scheduled backups clear the old copies your retention allows before deciding the destination is full, so a full disk no longer stops every backup for good.
- The dashboard tells you when a full system disk has stopped your backups.
- Deleting a VM backup removes every copy the list shows, and says so when a folder could not be read.
- Restarting an LXC container that cannot come back tells you it is now stopped, instead of a bare error.
- The battery backup's actions during a power cut are written in words in the activity log.
- More activity log entries are written as sentences instead of internal names.
- Eight.ly no longer stops its own service, and brings it back if something else does.
- A large array still shows its parity verdict when counting the differences takes too long.
- On a box with no array, parity is no longer scheduled and no parity warning is shown.
- When installing an app whose data sits in an older folder, the wizard offers to use that data instead of starting empty.
- The Routes tab names the reverse proxy this box actually runs.
- The Authelia badge no longer shows a box as protected when Authelia would turn away every app.
- The Authelia explanation no longer says it is running when it is not.
- A drive that asks to be power cycled now says so in plain words.
- The install review shows the image the catalogue will actually download.
- The App Store shows who publishes each app's image and what extras its build adds.
- Installing an app on another machine in your cluster no longer times out while the install is still running.
- A machine that has left your cluster is removed and no longer marked as failed.
- Cluster is reachable without turning on an experimental switch.
- A spare disk with a leftover volume on it can now be wiped.
- A Ceph setup that failed says so and offers to clean up.
- An array built in the setup wizard agrees with itself about write caching.
- The disk list shows what each drive reports about itself.
- Container icons are back in the dashboard.
v2.3.54¶
- Bundled components with published security problems have been updated.
- File sharing actions now answer only the request they are meant to, instead of running on any request that reaches them.
- The roles and per-folder permissions you set in Datacenter are now enforced, so an account can only do what you granted it.
- Removing a container asks you to confirm first, names the container, and tells you it will be stopped before it goes.
- The start, stop, restart and remove buttons on a container now say what they are, for tooltips and for screen readers.
- A disk that already belongs to a storage pool is no longer offered as free to erase.
- Erasing a disk stops when the list of what is on it cannot be read, instead of treating it as an empty disk.
- Firewall settings are never replaced when the saved ones cannot be read; the change is refused and tells you which file is unreadable.
- Creating or joining a cluster is refused when the current cluster settings cannot be read, so a machine that is already in one cannot start a second.
- Deleting a virtual machine is refused when the checks for what depends on it could not run.
- A virtual machine disk is only placed once the checks on the destination have actually run.
- Dashboard cards say when a reading is old or could not be taken, instead of redrawing the last one as though it were fresh.
- The activity log now records refused and failed actions, not only the ones that worked.
- Parity is no longer reported as valid when the check could not be read.
- Storage screens say when they could not read the array, instead of showing it as empty.
- Scheduled parity work on the file server no longer collides with the five-minute status check, so nightly syncs run.
- Scheduled backups no longer fill the system disk on the servers they run from.
- Container processor readings are correct; they were reading low.
- Memory sizes are labelled the way the number is actually counted.
- A deleted account's folder permissions go with it, so a new account reusing the name inherits nothing.
- The Support screen shows the update address the box is really using.
- Remote access status reports what it found instead of answering with an error.
- The storage pool list shows each pool's real type.
- The container list fits on a phone screen, with the actions column reachable.
- The installer no longer runs its browser as the system owner with its safety turned off.
- A settings change meant for one machine no longer lands on another.
- Current SnapRAID and MergerFS ship with the system instead of older packaged versions.
- The command line tool can fetch a single container again.
- After an update, every screen is opened and checked against what the box really reports.
v2.3.53¶
- Scheduled backups keep the three newest copies and clear the rest, so they no longer fill the system disk.
- Restarting from the power menu brings your apps, virtual machines and containers back up afterwards.
- Shut down and Restart finish cleanly when your apps live on the cache drive, with no warnings after the next start.
- When a restart, shutdown or array stop is refused, the reason stays on screen and names what is in the way.
- You choose how long virtual machines get to shut down before the system stops waiting.
- Access keys keep working after you sign out of the dashboard, and stop working when you change your password.
- A cloned virtual machine keeps its first-start settings in its own storage pool, and you can see and edit them on its details page.
- Creating a virtual machine tells you when its first-start settings could not be saved.
- Screens say so when they could not read something, instead of showing zero, empty or healthy: drive health, virtual machine memory, container details, network interfaces and notifications.
- A virtual machine's built-in display is no longer listed as an unrecognised graphics card.
- Your first settings backup is written as soon as you save the passphrase.
v2.3.52¶
- The installer and the setup wizard speak plain words on every screen: no internal names, one minimum size, one create button.
- Setting up remote access works on a fresh install: Traefik and Authelia deploy, and you see your real sign-in details afterwards.
- The Storage page offers Add cache when your array already exists, and the wizard can add the cache itself.
- Shut down and Restart work on every virtual machine, and reset it by force if the guest ignores them.
- A fresh install that declined SSH still has a way in, and the dashboard says so in plain words.
- The dashboard shows the reverse proxy and the sign-in service once they are deployed.
v2.3.51¶
- Backups to the Eight.ly Backup Server upload and restore again, with or without encryption.
- The Network charts show every time in one format, in your own time zone.
- GPU setup no longer reports a working NVIDIA driver as failed.
v2.3.23¶
Everything from v2.3.1-beta4 below, plus the major work shipped since:
- The array is operable from the dashboard — stop and start it, add a data disk, add a parity disk, and redistribute data across the disks with Balance. Adding a disk is transactional: a failure part way through rolls back rather than leaving a half-built array.
- Disk Verify and Burn-in — test a used drive before you trust it with data
- Shutdown knows about your array — running VMs, containers, a SnapRAID operation, or a cache transfer are named before the machine goes down, and the graceful path stops them in order
- Storage pools — a VM's disk lands on the pool you pick (local or shared), and can migrate
- Breezeway — tunnelled live migration between nodes with no ports opened
- Rehome — fences a dead node, relocates its workload, brings it home on recovery
- Featherfall — self-update that verifies, swaps, health-checks, and auto-rolls-back
- The Shelver — scheduled cache-to-array mover with hardlink protection
- Clustering, made real and proven live in multi-node drills
- In-place update — no more ISO-reinstall-per-fix for most releases
- arm64 packages: native arm64 builds started shipping alongside amd64
v2.3.1-beta4¶
- Nova AI: 41 tools, router-in-front architecture (a hidden tool-router model plus a conversational talker)
- Nova talkers: a default talker plus larger optional talkers for more capable hardware
- Web terminal: PTY + tmux, WebGL renderer, clipboard, session persistence
- KVM/QEMU VM management: 7-step wizard, noVNC console, snapshots, templates, cloud-init
- LXC container management
- EBS backup client: scheduled and manual backups, AES-256-GCM encryption
- API key auth:
eos_prefix, hashed at rest, Settings > Security UI - Calendar: Sonarr/Radarr/Lidarr + NAS events
- Requests: Overseerr/Jellyseerr proxy
- Port conflict detection
- GPU passthrough: NVIDIA + Intel Arc auto-detection
- ISO: Debian 13 (trixie), Debian-signed kernel 7.x, Secure-Boot netboot chain, Nova models pre-staged (zero downloads at first boot)
Eight.ly Backup Server (EBS)¶
- PBS-inspired deduplication with content-defined chunking
- AES-256-GCM client-side encryption
- Scheduled and manual backup jobs
- VM backup support
- Single Go binary
- Included free with every Eight.ly license
Eight.ly Mobile¶
Not yet released. iOS was submitted to the App Store; Android was built but has no release date. The web dashboard works as a fallback in a mobile browser in the meantime. See the Mobile App guide for the current status before planning around it.