Airsonic-Advanced ================= /badge.svg) /badge.svg) What is Airsonic-Advanced? -------------------------- Airsonic-Advanced is a mo…
Airsonic-Advanced ================= /badge.svg) /badge.svg) What is Airsonic-Advanced? -------------------------- Airsonic-Advanced is a mo…
Airsonic-Advanced is a more modern implementation of the Airsonic fork with several key performance and feature enhancements. It adds and supersedes several features in Airsonic.
Airsonic is a free, web-based media streamer, providing ubiquitous access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room.
Airsonic is designed to handle very large music collections (hundreds of gigabytes). Although optimized for MP3 streaming, it works for any audio or video format that can stream over HTTP, for instance AAC and OGG. By using transcoder plug-ins, Airsonic supports on-the-fly conversion and streaming of virtually any audio format, including WMA, FLAC, APE, Musepack, WavPack and Shorten.
If you have constrained bandwidth, you may set an upper limit for the bitrate of the music streams. Airsonic will then automatically resample the music to a suitable bitrate.
In addition to being a streaming media server, Airsonic works very well as a local jukebox. The intuitive web interface, as well as search and index facilities, are optimized for efficient browsing through large media libraries. Airsonic also comes with an integrated Podcast receiver, with many of the same features as you find in iTunes.
Written in Java, Airsonic runs on most platforms, including Windows, Mac, Linux and Unix variants.
The following is an incomplete list of features that are enhanced from Airsonic:
airsonic.properties to change preferencesUploadsFolder property/parameter)logging.file.name property/parameter)The complete list of PRs that were used to enhance Airsonic can be seen on the PRs page. At some point an automatic changelog generator will be added to keep track.
Airsonic-Advanced will occasionally backport features introduced in the base Airsonic fork, but is generally much more modern and bleeding edge than Airsonic.
Airsonic-Advanced v10.6.x series (and its snapshots) are intercompatible with vanilla Airsonic 10.6.x series. This may not necessarily be the case with 11.x versions.
Also note that Airsonic-Advanced 11.x (and its snapshots) are breaking (non-backwards-compatible) version changes. You will not be able to revert back to 10.6.x after upgrading (the system does create a backup of the DB in case such revert is necessary, but it must be manually restored).
Airsonic-Advanced snapshots are generally pretty stable and recommended for use over the stable releases (which may be extremely outdated).
Airsonic-Advanced can be downloaded from GitHub.
The release signature may be verified using the public key.
You need a minimum Java Runtime Environment (JRE) of 1.8 for 10.6.x series, and 11 for 11.x onwards (including snapshots).
Airsonic-Advanced is run similarly to (and in lieu of) vanilla Airsonic.
Read the compatibility notes.
Docker releases are at DockerHub and GHCR. Docker releases are recently multiplatform, which means ARMv7 and ARM64 are also released to Dockerhub. However, automated testing for those archs is not currently done in the CI/CD pipeline (only Linux platform is tested).
Please note that for Docker images, the volume mounting points have changed and are different from Airsonic. Airsonic mount points are at /airsonic/* inside the container. Airsonic-Advanced tries to use the same volume locations as the default war image at /var/* in order to remain consistent if people want to switch between the containers and non-containers.
Music:/airsonic/music -> Music:/var/musicPodcasts:/airsonic/podcast -> Podcasts:/var/podcastPlaylists:/airsonic/playlists -> Playlists:/var/playlists/airsonic/data -> /var/airsonicAlso note that the Docker image will by default run as user root (0), group root (0), and so any files created in the external volume will be owned as such. You may change the user running the internal process in one of two ways:
--user when invoking the docker run command, and providing it with one or both in the format uid:gidPUID or PGID environment variables to the container image when invoking the docker run command (-e PUID=uid -e PGID=gid)Vanilla Airsonic can be downloaded from GitHub.
Please use the Airsonic documentation for instructions on running Airsonic. For the most part (currently) Airsonic-Advanced shares similar running instructions unless stated otherwise. Notable exceptions are available as comments or resolutions in the Issues page (please search).
You may compile the code yourself by using maven. One of the repositories does not have https, so you may need to allow that for maven. A custom settings.xml has been put in .mvn folder for this purpose. A sample invocation would be (in the root):
mvn clean compile package verify
The main binary would be in airsonic-main/target
The following properties are new in Airsonic-Advanced:
MediaScannerParallelism: (default: number of available processors + 1) The parallelism to use when scanning mediaClearFullScanSettingAfterScan: (default: false) Whether to clear FullScan setting after the next SUCCESSFUL scan (useful for doing full scan once and then reverting to default scan)The following property names are different between Airsonic and Airsonic-Advanced:
UPNP_PORT -> UPnpPortserver.context-path -> server.servlet.context-path (Airsonic will use the latter from 11.0 onwards)IgnoreFileTimestamps -> FullScanNote that Airsonic-Advanced
No open issues yet, or sync has not completed.