← All posts

ServerShelf 1.4.5: backups outside the app folder, Touch ID, parallel scans, encrypted companion

ServerShelf 1.4.5 for macOS and companion app 0.3.5 are out. This one began with a single question: what happens to the data you typed in when the app is updated, reinstalled, or its folder gets wiped? For 1.4.4 the honest answer was "it depends". That is no longer true.

Your data gets a copy outside the app folder

Everything you enter sits in one encrypted database inside the app's data folder, right next to its key. An uninstall tool, a cleaned profile or one lost hidden file took all of it in one go. The safety copies the app kept? Same folder. So ServerShelf now writes a verified copy of the database and its key material to "ServerShelf Backups" in your home directory: after every unlock, at most once a day, and when you quit. Every copy is opened with its own key before it counts as a backup. Under Settings → Automatic backup you see the folder, the last copy and a "Back up now" button. Restoring works from Settings and from the start screen, which means a fresh install can carry on where the old one stopped.

One caveat for Quick Start mode: the copy includes the key file, so keep that folder out of cloud sync.

Nothing gets deleted any more

Resetting the vault used to delete the database. Now it moves the database and its key into a recovery folder inside the app folder, as one restorable set, and tells you the path. The same happens when the app finds an encrypted database without its key, say after someone copied the folder without hidden files. Instead of the setup wizard you get a screen titled "Data found, key missing" with two choices: restore a backup, or start fresh with the old files moved aside. And a database migration that fails after an update now says exactly that, names the copy it made beforehand, and asks you not to reset.

Touch ID from the unlock dialog

The unlock form has a new checkbox, "Unlock with Touch ID next time". Type the passphrase once. From then on the Touch ID prompt opens by itself the moment the locked app appears; cancel it and the passphrase form is still underneath. The key is stored behind the Touch ID or password prompt only. If that cannot be set up on your Mac, the app tells you rather than storing the key silently.

SSH bulk scan: parallel, with a clock and a cancel button

Scanning fifty servers one after another ate most of a day, and a server that did not answer looked like a hang. The bulk scan now probes several servers at once, four by default and anything from 1 to 16 under Settings → Polling. While it runs you see each active server with its elapsed seconds and the timeout, the failures so far with their reasons, and a Cancel button. The error texts are English throughout.

Companion link is encrypted, re-pair once

The link between desktop and companion app used to be plain HTTP on your Wi-Fi. It now runs over TLS with a certificate the desktop generates once; the phone pins its fingerprint from the pairing code, so there is nothing to install. This needs both updates, desktop 1.4.5 and companion 0.3.5. Once both are in place, scan the pairing code one more time. Until then a phone on the old app cannot reach the new desktop.

The companion app also signs its push registration, and the server checks that signature, reads S3 buckets with a prefix and WebDAV folders at the exact place the desktop writes to, and refuses a pairing code with a broken fingerprint rather than falling back to plain HTTP.

Sensor monitoring shows its failures

A server whose SSH sample kept failing looked exactly like a healthy server with no readings. Settings → Sensor monitoring now lists the last successful sample and the last error per server. The server page shows a banner while sampling fails, and after three failures in a row you get one notification.

Fixed

  • The "Check for updates?" question could pop up over the locked app and could not be closed. It waits for the unlock now.
  • Export, import and the cloud snapshot carry notes and snippets.
  • A scan whose output ended in a multi-byte character could crash the scan task instead of reporting the real error.
  • An S3 prefix without a trailing slash pointed desktop and phone at different objects.

Compatibility

Desktop 1.4.5 (macOS, direct download). Companion 0.3.5: the Android APK is on the download page; the iOS build is uploaded and follows in the App Store. Companion pairing has to be repeated once after both updates.