Seven months after the publication of my Airsonic, a self-hosted jukebox that sucks less, time for an update: I've found something better than Airsonic: navidrome.
Written in Go instead of Java, using modern technologies instead of horrible
java artefacts from a dark age, doesn't eat all my RAM nor has weird CPU
spikes, uses a nice sqlite database instead of a weird Java-thingy-database,
a ton of tests and linters running in a CI, supports transcoding via ffmpeg
as well, a useable and maintainable frontend instead of a steaming heap of
iframes
, …
I didn't contribute as much as to airsonic, but I still did the following:
- Adding a systemd and an openrc units
- Simplified the ffmpeg related code
- Added a bunch of linters
- Minor reliability and tests improvements
- Did the French translation
I plan to continue to fix the issues I might run into and do some code-review, likely security-related, and stop altogether to care about airsonic.
I'm currently running it flawlessly on a super-small VM, with 128MB of RAM and a single CPU, on a library of ~1500 albums for ~400 artists. The scanning time took a couple of minutes for the first run, but the incremental ones are now almost instantaneous. There are likely some missing features compared to airsonic, but I didn't notice anything too annoying.