Sharing a media library
Keep your music, films and photos in one Nextcloud folder, and let Funkwhale, Navidrome, Jellyfin and Immich read it. Add a file once and it appears everywhere.
On this page
Say you run Nextcloud for your files, and Navidrome for music. Without any help, you'd copy your music into both. Add Jellyfin and Immich and you'd be copying films and photos around as well, four copies of everything, each going out of date.
LibrePortal avoids that with one simple idea: the files live in Nextcloud, once, and the other apps only read them. Nextcloud already knows how to add files from a phone, a computer or a browser, and how to share them with other people. The specialist apps keep doing what they're good at, which is playing, sorting and showing.
Everything on this page works on a plain http://192.168.1.50:port address, at home or over the LibrePortal VPN. No domain needed. The one exception is the fediverse part at the end.
What shares what#
Nextcloud keeps one folder for each kind of media. Each reader app reads the folder that matches it.
| Folder in Nextcloud | Read by | How new files appear |
|---|---|---|
| Music | Funkwhale and Navidrome | Funkwhale imports new files in place every hour. Navidrome notices them as they arrive and rescans every hour. Both have a Scan the music folder now tool on their Tools tab. |
| Video | Jellyfin | Jellyfin watches the folder itself, once you've added it as a library (below). |
| Photos | Immich | Immich reads the folder as an External Library, so new photos show up when it next scans. |
Since 0.9.13 the folders are named SharedMusic, SharedVideo and SharedPhotos, and ownCloud can own them too, not just Nextcloud. Wherever this page says Nextcloud, ownCloud works the same way.
Funkwhale and Navidrome can both read the Music folder at once, if you run both. Each reader shows only the folder that matches its job.
Setting it up#
You need Nextcloud and at least one reader installed. If you only have one music app and no Nextcloud, none of this shows. That app keeps using its own folder.
- Open the reader's page and go to Tools. Run Use a shared music folder on Funkwhale or Navidrome, Use a shared video folder on Jellyfin, or Use a shared photos folder on Immich.
- Choose Nextcloud's folder in the list and run it. The reader restarts for a few seconds. If Nextcloud doesn't have that folder yet, LibrePortal makes it, which restarts Nextcloud once.
- Check the reader's Works with row on its app page. It says whether the folder is in use. See Apps that work together.
Two readers need a word more:
- Jellyfin has one step LibrePortal can't do for you, because it doesn't hold a Jellyfin login: in Jellyfin's Dashboard, add a Video library and choose
/library/video. After that, new films appear on their own. - Immich is set up for you. LibrePortal adds an External Library called Shared photos (LibrePortal) and starts a scan.
Adding files#
Put files into the Music, Video or Photos folder in Nextcloud, the same way you'd add any file:
- The web page. Drag and drop onto the folder.
- The desktop app. Sync a folder on your computer with it. This is the best way to bring in a collection you already have.
- LibreSync. The LibreSync app for Android keeps the shared Music, Photos and Video folders on your phone in step with the server, and sends your camera roll up.
- The Nextcloud phone app. On Android, Auto upload can send your phone's Music, Video or Photos to the matching folder. On an iPhone the Nextcloud app only auto-uploads photos and videos, so add music from the Files app or the web page.
By default the folders are shown to the Nextcloud admin account LibrePortal made. Give other people access with Nextcloud's own sharing: share a folder to a person or a group, the way you'd share anything else. Personal playlists, play counts and watch history stay with each person in each app.
Good to know#
- The readers can't change your files. They get the folder read-only, so an app can't rename, retag or delete anything, whatever happens inside it. Each keeps its own playlists, artwork and play history in its own place.
- Deleting happens in Nextcloud. Nextcloud keeps no trash bin or older versions for this kind of folder, so a file you delete there is gone, apart from your backup.
- It's backed up with Nextcloud. The first backup after a big collection arrives will be large. After that, only new files add to it.
- Nextcloud's server-side encryption has to be off. With it on, no other app could read the files, and LibrePortal refuses to connect the folder and says why.
- Nothing is lost if an app goes. Uninstall a reader and the folder and the other readers carry on. Uninstall Nextcloud and each reader goes back to its own folder, and its page says why it looks empty. Your files stay on the disk.
- Funkwhale keeps it to you at first. It imports the folder into a library called Shared music (LibrePortal) that only its admin can see. Making a library public on a server that federates offers it to the whole fediverse, which is a decision for you to make in Funkwhale, especially for music you bought.
- A big library takes a while the first time. Funkwhale and Navidrome read every file once. The server may be busy for a bit.
The fediverse: Funkwhale, Friendica and Mastodon#
A different kind of sharing. Funkwhale, Friendica and Mastodon can follow each other, and anyone else on the fediverse. Follow a Funkwhale channel from your Friendica or Mastodon account and its new tracks and episodes appear in your timeline.
This needs a domain. Fediverse servers find each other by a public name, and an app's name is fixed when it's installed. Funkwhale and Mastodon can't change it afterwards. Set up your domain and Traefik before installing them, or the pair shows Needs a domain. Installed on a LAN address, they work for your household and can never federate.
When both apps are installed, each shows the other under Works with. Press Check to prove the two servers can reach each other, both ways. The row has links like Follow … from Mastodon, which open that app's own follow page. You press Follow there yourself. LibrePortal never follows, posts or boosts for you.
One part works without a domain. Friendica can follow a Funkwhale channel's feed over your home network, as long as Funkwhale lets feeds be read without signing in. Mastodon can't follow feeds. Apps that work together has the full walk-through. To check: confirm on a LAN-only pair that the Friendica feed follow works end to end, and what Funkwhale setting lets its feeds be read without a login