Title: Navidrome, a self-hosted jukebox that sucks even less
Date: 2020-09-16 16:45

Seven months after the publication of my [Airsonic, a self-hosted jukebox that
sucks less](|filename|/music/airsonic.md), time for an update: I've found
something better than Airsonic: [navidrome](
https://github.com/deluan/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]( https://github.com/deluan/navidrome/graphs/contributors) as much as to airsonic,
but I still did the following:

- Adding a [systemd](
	https://github.com/deluan/navidrome/commit/ad63b8b1b439ce89ed2576e1d2947dea5fc92f63
	) and an [openrc](
	https://github.com/deluan/navidrome/commit/2b5433dc6e97d07408c08f107d827732fa88eec9
	) units
- Simplified [the]( https://github.com/deluan/navidrome/commit/1ef4fa970ff39bb64277a52801843f4f07944a5d)
  [ffmpeg]( https://github.com/deluan/navidrome/commit/b34523e1960b3c637bceef3b82b8693a054410bf)
	[related]( https://github.com/deluan/navidrome/commit/4fc88f23e972743660dbf55347ebb1299379fb1e)
	[code]( https://github.com/deluan/navidrome/commit/04eb4211869c8b319879a48bb442632d4c9267cb)
- Added a [bunch of](
	https://github.com/deluan/navidrome/commit/dbf9c8be7d419f9f9a24f2d7017897bb6e32b371
	) [linters](
	https://github.com/deluan/navidrome/commit/26188e6d8a5c0eff129fe36a9548c67abbeea466
	)
- Minor [reliability](
	https://github.com/deluan/navidrome/commit/52b8c5f151d51739c7ede4fbcb2ae56e4a4c5e04
	) and [tests](
	https://github.com/deluan/navidrome/commit/2ab647efe17315d867c4bcb23b83ea5e7d0cc3a0
	) 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.
