Skip to content

v2.2.0

Choose a tag to compare

@github-actions github-actions released this 07 Nov 06:08
· 9 commits to main since this release
v2.2.0
0ec2e47

WaveFlow Server 2.2.0

The server can now tell its administrators when a new version is out, after asking them first. Every release also gains a second place to download it from, one that does not depend on GitHub. The database gains one table, so read Upgrading before you pull.

New

  • Being told a new version is out. 2.1.1 and 2.1.2 were security releases, and nothing told the person running a server that they existed. Now the first administrator who signs in after the upgrade is asked whether the server may check download.waveflow.app for new versions: once shortly after each start, then once a day, and at once when the check is turned on. Nothing is sent before the answer is yes, so a server left at its defaults still contacts nobody on its own.

    Once the check is on, a dialog names the new version when one is out, links its release page, and says how to update a container or an archive. It can be dismissed for that version: the next release is announced again. Settings › Administration holds the switch and says when the server last checked. Only administrators see any of it.

    The request fetches a small file, server/stable.json, or server/beta.json on a pre-release. It carries the server's version in its User-Agent and nothing else about the server: no identifier, no account, no count of anything. The host sees the address the request comes from, as any host contacted does. What leaves the server says exactly what is sent and when.

    Two settings decide for an operator who would rather not be asked. WAVEFLOW_UPDATE_CHECK is ask by default; on checks without asking, and off never checks and asks nobody. WAVEFLOW_UPDATE_URL names another folder, for a fork that publishes its own. The decisions are in RFC-028, and the change is #435.

    This is the first release that can tell you about the next one. A server older than 2.2.0 has no check, so this one you still have to hear about the old way.

  • A second place to download from. Each release's archives, their SHA256SUMS, the FFmpeg sources and the release notes are now also published on download.waveflow.app. The folder lists nothing, so start from the release's notes there, https://download.waveflow.app/server/releases/<tag>/RELEASE-NOTES.md, whose download links point at the copies. Before the copy counts, every archive and the FFmpeg sources are read back from that address and checked against SHA256SUMS, and the notes are read back and compared byte for byte. The archives of 2.1.0-rc.1 to 2.1.2 are already there. The code and every signed tag are also kept on a backup outside GitHub. The change is #434.

For client authors

The native API gains GET and PUT /api/v2/server/update, for administrators only, answered as the other administrative routes are: 401 without a credential, 403 for an account or a token without administrative authority. Nothing else changes, and the Subsonic façade answers as it did.

Install

docker run -d --name waveflow \
  -p 4533:4533 \
  -v waveflow-data:/data \
  -v /path/to/music:/music:ro \
  ghcr.io/instazdll/waveflow-server:2.2.0

The image runs on linux/amd64 and linux/arm64, and is the same, digest for digest, on Docker Hub as instazdll/waveflow-server:2.2.0. latest now follows this release. The standalone archives for Windows, macOS and Linux are attached below, with SHA256SUMS over all of them. The same files are linked from this release's notes on download.waveflow.app, which hold whether or not GitHub answers.

Upgrading from 2.1.2

Pull 2.2.0 and start it on the same data volume. With an archive, use the new folder in place of the old one, carrying over what you changed in laptop.env: your data is kept apart from that folder.

  • The database schema gains one table, which holds the administrator's answer about the update check. Going back therefore takes a restore: 2.1.2 refuses to start on a database 2.2.0 has migrated. The boot first copies the database and its key into pre-migration-<epoch ms>/ in the data directory, and waveflow-server database restore puts that copy back, without anything the database gained since. With WAVEFLOW_MIGRATION_BACKUPS=0 the boot takes no copy, and the way back is a backup of your own.
  • The first administrator to sign in is asked about the update check. Answer as you like; the choice can be changed in Settings › Administration. To decide for everyone in advance, set WAVEFLOW_UPDATE_CHECK=on or off, and nobody is asked.

Coming from 2.1.1 or earlier, read the 2.1.2 notes first: they are a security fix. Coming from 2.0.1 or earlier, also read the 2.1.0 notes: that upgrade measures every lossless file again.

Full changelog: CHANGELOG.md · v2.1.2...v2.2.0

Download

The server for one computer, without Docker: extract the archive and start waveflow-server inside it. Each archive holds the server, its own FFmpeg and a README.txt to read first.

System Archive
Windows (x86_64) waveflow-server-2.2.0-windows-x86_64.zip
macOS (Apple silicon) waveflow-server-2.2.0-macos-arm64.zip
macOS (Intel) waveflow-server-2.2.0-macos-x86_64.zip
Linux (x86_64) waveflow-server-2.2.0-linux-x86_64.tar.gz
Linux (arm64) waveflow-server-2.2.0-linux-arm64.tar.gz

The Windows executables carry a self-signed certificate and the macOS ones an ad-hoc signature, which neither system trusts, so both warn on the first launch: README.txt says what to click past. SHA256SUMS holds the checksums of them all, and ffmpeg-8.1.3-sources.tar.gz the source of the FFmpeg they carry.

Container image

docker pull ghcr.io/instazdll/waveflow-server:2.2.0

The same image, digest for digest, is on Docker Hub:

docker pull instazdll/waveflow-server:2.2.0

Also published as latest in both, for linux/amd64 and linux/arm64 (a Raspberry Pi 4 or 5 on a 64-bit system).