Audioserve — Self-Hosted, Open-Source

Simple personal server to serve audio files from directories

License: MIT. Built with: Rust, Python, Shell, HTML, Dockerfile, C. Source: https://github.com/izderadicka/audioserve.

Features

Installation

### Static build (Linux) Static build of audioserve is available (for recent releases) at [github releases page](https://github.com/izderadicka/audioserve/releases). You can can just download and extract it locally and run on any modern x86_64 linux, but it does not contain the web client - you need to get [latest release](https://github.com/izderadicka/audioserve-web/releases/latest). You can also create your own static build with script `build_static.sh` (Docker is required for this) ### Local build (Linux) Now audioserve depends on ffmpeg's libavformat 4.3/4.4 or 5.0/5.1 (and its dependent libavutil and libavcodec libs), which is a complex beast. If you are building locally you need this dependence (plus couple of others). If you have available right versions on your system you can dynamically link against it (remember it has to be correct version, if you have wrong wersion you'll probably see Segmentation Faults when running the program). Other option is to use feature `partially-static`, which will download right version of ffmpeg, compile it and statically link it into audioserve (but then binary will be indeed bigger). Install required dependencies (some dependencies are optional, depending on features chosen in build): # Ubuntu 20.04 - for other distros look for equivalent packages sudo apt-get install -y git pkg-config \ ffmpeg yasm build-essential curl wget libbz2-dev zlib1g-dev libavformat-dev \ clang coreutils exuberant-ctags gawk libclang-dev llvm-dev strace libicu-dev Clone repo with: git clone https://github.com/izderadicka/audioserve To install locally you need recent [Rust](https://www.rust-lang.org/en-US/install.html) and [NodeJS](https://nodejs.org/en/download/package-manager/) installed. Compile Rust code (it has optional system dependencies to zlib, bz2lib, and libavformat, as might not have exactly correct version of libavformat around, it's better to build required version statically into binary with `partially-static` feature, because otherwise you might see problems like segfaults): cargo build --release --features partially-static Optionally you can compile with/without other features ([see below](#compiling-without-default-features-or-with-non-default-features) for details). Build new client:

Why self-host Audioserve

Self-hosting gives you three things SaaS can’t: data ownership (the files live on disks you control), cost predictability (a one-time setup vs. recurring per-seat fees that grow with your household or team), and longevity (open-source means the app keeps working even if the maintainers move on, since you can pin a working version). The trade-off is that you take on the operational work of running a server, applying updates, and handling backups.

Hardware notes

Static build of audioserve is available (for recent releases) at github releases page. You can can just download and extract it locally and run on any modern x86_64 linux, but it does not contain the web client - you need to get latest release.

Where to go from here

Last verified: 2026-04-28