Stream music from a friend's self-hosted Subsonic server (Navidrome, Airsonic, Gonic, etc.) on Android — and on the web.
Latest release: v2.32
F-Droid: com.tunefriend.app
Web (Cloudflare, always online): https://tunefriend.org
- Prefer F-Droid for automatic updates, or download the APK from GitHub Releases
- Install on Android (allow installs from unknown sources if prompted)
- Enter your friend's server URL, username, and password
- Settings → Sync Library once (Wi‑Fi recommended for first sync) — then Songs, Albums, Genres, and Shuffle All use your full library
Note: GitHub and F-Droid builds are release-signed. If you previously installed an old debug APK, uninstall it first, then install the release build.
Open https://tunefriend.org in any browser.
Your music server must be reachable from the internet (public HTTPS or tunnel) — private 192.168.x.x URLs only work with the local desktop server (./start.sh on your PC).
See DEPLOY.md for redeploying to Cloudflare (same account as oncall-scheduler).
- Web: https://tunefriend.org
- Android: latest release or F-Droid
Questions or feedback: tunefriend.music@proton.me
If you're hosting the music server, give them:
- Server URL — e.g.
http://your-ip:4533orhttps://music.yourdomain.com - Username and password (create an account for them in Navidrome)
They do not need your computer running — only your music server.
- Browse Home, Songs, Albums, Genres (and decades), and Search
- Shuffle All with artist-aware diversity for large libraries
- Favorites and Settings in the top bar
- Background playback with lock screen / notification controls
- Library sync for 50k+ song collections (search3 fast path)
Requirements: Node.js 18+, JDK 21, Android SDK.
git clone https://github.com/tunefriend/tunefriend.git
cd tunefriend
npm install
npm run build:apkRelease APK (with android/keystore.properties configured):
android/app/build/outputs/apk/release/app-release.apk
Debug APK: npm run build:apk:debug
GNU General Public License v3.0 or later — see LICENSE.
If you modify TuneFriend and distribute it (including sharing a modified APK), you must provide the source code for your version under the same license.