← Blog

own.audio Is Open Source: the Server and the Three iPhone Apps

own.audio is still in development. Everything below describes what we're building and why — not something you can use yet. Get notified when it launches →

own.audio has been built in the open for a while without saying so very loudly. This post is the saying so: the server and the three iPhone apps are open source, they work today, and you can run them without waiting for the hosted service to launch.

What is open

Everything lives under github.com/own-audio:

Repository What it is Licence
server The self-hosted server: audiobooks, podcasts and music in one library, a web console and an OpenSubsonic API. Rust and PostgreSQL. AGPL-3.0-or-later
music-ios own.audio Music for iPhone and iPad. Plays from own.audio, Subsonic and OpenSubsonic servers (Navidrome, Gonic, …) and Jellyfin. MPL-2.0
book-ios own.audio Books for iPhone and iPad. Plays from own.audio and Audiobookshelf. MPL-2.0
podcast-ios own.audio Podcasts for iPhone and iPad. Works with no server at all, or with own.audio, Audiobookshelf and any gPodder server. MPL-2.0

What is not open: the layer that makes the hosted service (billing, the metered narration and translation, the MusicBrainz mirror), and for now the Mac, Android, Apple TV and Windows apps. The hosted service runs the same server code plus that private layer. A client cannot tell the two apart and does not need to: it asks the server what it offers.

Why this way? Because self-hosted audio is usually split between server projects and app projects that have to agree on a protocol before a feature can exist on both sides. own.audio builds both ends, so a feature that needs both lands at once, and the apps still work with the servers you already run. The apps are free, with every feature in them, and will stay that way. What pays for the work is hosting, for people who want the library without running a server.

Try it in ten minutes

Without installing anything. A public demo of the open-source server runs at demo.own.audio. Sign in as [email protected] with the password own-audio-demo. It holds four public-domain LibriVox audiobooks, 38 Creative Commons songs, three podcasts and a year of listening history, so the statistics, the yearly recap and the smart playlists have something to show. It resets every night, so change whatever you like.

The server on your own machine. A Linux host with Docker is enough: a Raspberry Pi 3 or newer, a NAS that runs containers, or a small VPS.

git clone https://github.com/own-audio/server.git && cd server
cp .env.example .env   # set POSTGRES_PASSWORD and SESSION_SECRET
docker compose pull
docker compose up -d

Open http://localhost:8080, create the first admin, and point it at the music and audiobook folders you already have. It indexes them read-only and never writes there. INSTALL.md has the details, the Raspberry Pi guide the small-board version, and we measured what a 2019 Pi can do.

The apps. They are on TestFlight for internal testing and have not been through App Review yet, so for now the way to run one is to build it: clone the repository, run xcodegen generate, open the project in Xcode 27 and run it on your iPhone or the simulator. Each app’s first screen has a “Try the Demo Library” button that signs in to the public demo, no account needed. When a public TestFlight link exists, it will be on each repository’s page and here.

own.audio Music

own.audio Music on an iPhone: the album grid of a library, covers in a grid of three own.audio Music on an iPhone: the album grid of a library, covers in a grid of three
The library
own.audio Music's full-screen player mid-song, with the cover, scrubber and controls own.audio Music's full-screen player mid-song, with the cover, scrubber and controls
The player

One music player for every server you have: own.audio, Subsonic and OpenSubsonic servers such as Navidrome and Gonic, and Jellyfin, side by side in one app, each with its home and outside addresses. Swift and SwiftUI, no web views, no third-party dependencies, a few megabytes.

  • Gapless playback and crossfade, on its own AVAudioEngine player
  • Streams while it downloads, with its own Core Audio decoder
  • Downloads and an offline mode: with no network it shows and plays what is on the phone
  • Synced lyrics, volume leveling, an equalizer
  • Favourites, ratings, playlists, play reporting back to the server
  • With own.audio: smart playlists, identifying your library against MusicBrainz, and a library on the phone that follows the server’s changes
  • iPad layout; English and Czech

own.audio Books

own.audio Books on an iPhone: the library grid of audiobooks own.audio Books on an iPhone: the library grid of audiobooks
The library, family-shared books marked
own.audio Books' player: cover, chapter, remaining time, speed and sleep timer own.audio Books' player: cover, chapter, remaining time, speed and sleep timer
The player

An audiobook player for own.audio and Audiobookshelf servers, in one app.

  • Speed with pitch correction, chapters, skip buttons, smart rewind, a sleep timer that stops at the end of the chapter
  • One position per book that follows you between devices; nothing is lost offline
  • Chapters from the server, or read from the file itself when the server has none
  • Downloads and an offline mode
  • Bookmarks, series, authors, narrators and collections, whatever the server offers
  • A widget, a Live Activity on the lock screen, Siri
  • With own.audio: the family library and importing books from the phone
  • iPad layout; English and Czech

own.audio Podcasts

own.audio Podcasts on an iPhone: a show's page with its description, the All / Unplayed / Downloaded filter and the episode list own.audio Podcasts on an iPhone: a show's page with its description, the All / Unplayed / Downloaded filter and the episode list
A show and its episodes
own.audio Podcasts' player with the episode's artwork, chapter and controls own.audio Podcasts' player with the episode's artwork, chapter and controls
The player

A podcast player that needs no account and no server: add feeds and listen. When you do run a server, own.audio, Audiobookshelf or anything that speaks the gPodder API, your shows, episodes and positions follow you between devices.

  • Opens on what is new: unplayed episodes across your shows, newest first; Up Next across every source
  • Speed per show, chapters, skip the intro, smart rewind, sleep timer; the last episode is back after a relaunch
  • Downloads with rules per show (the newest few, delete when played, keep at most), a storage limit, an offline mode
  • Discover: categories, search and shows like the ones you follow, from an own.audio server’s catalogue where it has one, otherwise from Apple’s charts
  • CarPlay, a widget, a Live Activity, Siri, AirPlay
  • With own.audio: the family, signed-in devices and live updates
  • iPad layout; English and Czech

Self-hosted or hosted: what you get where

Open-source server own.audio hosted
Run it on your own hardware yes —
Audiobooks, podcasts, music, family sharing, web console, OpenSubsonic yes yes
Local storage, read-only library folders on a disk or NAS yes —
Sign-in with Google, Apple or Microsoft optional, you configure it yes
Invite mail over SMTP optional yes
Music identify public MusicBrainz, on by default a faster mirror
Narrate a book into an audiobook, translate a podcast episode — yes, metered
Storage billing, payments — yes

The apps are the same in both cases. One family per server, as many people as it has, private by default and shared when you say so. Nothing phones home: no telemetry, no update checks, no accounts anywhere but on your server.

Where it stands

This is one person’s project, built first for one family and published so others can run it too. The server is a pre-release (1.0.0-beta.30 as this is written), tagged and published as images for amd64 and arm64. The apps are being finished for the App Store. Some things are not there yet on either side: push notifications, transcoding on the native API, chapter extraction on the server, OPML import in the podcasts app. The scope document lists them so nobody files them as bugs, and the roadmap says what comes next and roughly when.

Issues are welcome and read. Pull requests will be accepted once a contributor agreement is in place; until then they are not merged, for the reasons in LICENSING.md. The own.audio name and mark are trademarks: unmodified builds may show them, a fork uses its own.

How to help

Run the server, build an app, and tell us what broke, in the issues or at [email protected]. A star on the repositories helps other people find them. If you would rather have the library without running a server, join the waitlist for the hosted edition. And if the project is useful to you already, there is a coffee button.