ReadyMedia, formerly known as MiniDLNA, is a very small, fast, lightweight DLNA-compliant media server for *nix. The official version runs on Netgear’s ReadyNAS products; the downloadable use-on-whatever-you-want version is developed(?) and maintained at SourceForge by Justin Maggard, a Netgear employee for the ReadyNAS product line.
As of this writing, ReadyMedia isn’t in the CentOS official repo, and the dependencies aren’t all available in EPEL. You can build ReadyMedia from the source, but that’s a serious pain; I was unable to track down the prerequisite libraries as packages (essentially running into the same issue I encountered in trying to install from EPEL), and quickly realized I was going to have to track down all the sources and build everything from scratch. Fortunately, I stumbled across an alternative: a statically compiled binary also hosted on the project’s Sourceforge page.
As of this writing, the current version of ReadyMedia is 1.1.4, released in August of 2014. The static binary may be more-or-less directly downloaded by clicking here. The entire file collection should be browsable at http://sourceforge.net/projects/minidlna/files/minidlna.
Once you’ve got that downloaded and extracted,
- Copy the binary (minidlnad) to /sbin/. Note that (A) the binary actually expects to be resident in /usr/sbin/ and that (B) in CentOS 7, /sbin/ is a symlink to /usr/sbin/, so in this context, the 2 paths are effectively interchangeable.
- Copy the config file (minidlna.conf) to /etc/.
- If you want other than English messages, copy the appropriate translation set to /usr/share/locale/.
It’s arguably a bad idea to run a process as root if you don’t need to do so, especially if it’s a network service – so give that some thought. I decided to run the process as my own personal UID on my server; YMMV. In any case, be mindful that log and cache directories and their contents will need to be writable by the process owner and that any media you want to serve will need to be readable by said user. If you decide to run the process as a different owner down the road, you’ll need to chown and/or chmod appropriately.
Armed with that knowledge, now edit the config file; it’s well-commented and the settings changes you might need to make are few. The only potential gotcha is the user setting, which I absolutely could not get to work.
Now launch the executable by just typing it like you would expect: “/usr/sbin/minidlnad”. Notes:
- As I indicated above, I couldn’t get the user setting to work – so I elected to just invoke the binary as myself, which, as long as all the ownerships and permissions align correctly, works just fine.
- The process will launch as a standard daemon, so no trickery is necessary to get it to go as a background process (e.g., “nohup” or “&”).
- The process doesn’t accept start or stop arguments, so you’ll need to use standard process management to kill and restart it.
Hope that helps!