Rozhuk Ivan rozhuk.im@gmail.com 2013-2024
SSDPd - Announces UPnP/DLNA device across network. You can use PHP script, nginx config and static files to build your own UPnP/DLNA server.
BSD licence. Website: http://www.netlab.linkpc.net/wiki/en:software:ssdpd:index
Support the author
- can act as UPnP/DLNA ContentDirectory to share multimedia content
- can announce remote UPnP/DLNA devices
sudo apt-get install build-essential git cmake fakeroot
git clone --recursive https://github.com/rozhuk-im/ssdpd.git
cd ssdpd
mkdir build
cd build
cmake ..
make -j
UPnP/DLNA PHP server requires
- nginx with headers_more.
- PHP with fpm, fileinfo, soap, xml.
mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTS=1 ..
cmake --build . --config Release -j 16
ctest -C Release --output-on-failure -j 16
ssdpd [-d] [-v] [-c file]
[-p PID file] [-u uid|usr -g gid|grp]
-h usage (this screen)
-d become daemon
-c file config file
-p PID file file name to store PID
-u uid|user change uid
-g gid|group change gid
-v verboce
Copy %%ETCDIR%%/ssdpd.conf.sample to %%ETCDIR%%/ssdpd.conf then replace lan0 with your network interface name. Add more sections if needed. Remove IPv4/IPv6 lines if not needed.
Add to /etc/rc.conf:
ssdpd_enable="YES"
Run:
service ssdpd restart
Add to /etc/rc.conf:
php_fpm_enable="YES"
Run:
service php-fpm restart
If nginx will serve only upnp then you can:
ln -f -s %%ETCDIR%%/nginx-upnp-full.conf %%CMAKE_INSTALL_PREFIX%%/etc/nginx/nginx.conf
If nginx build with DSO (dynamic modules load) then you need uncomment "load_module" and set correth path to module.
Or add to existing nginx.conf following line: include %%ETCDIR%%/nginx-upnp-handler.conf; some where in existing http/server section.
Add to /etc/rc.conf:
nginx_enable="YES"
Run:
service nginx restart
Place shared data in: %%DATADIR%%/www/upnpdata or make in as simlink on existing data. Make sure that permissions allow www access.
Allow all IPv4 with options proto igmp. Allow all udp dst port 1900.
Allow in tcp dst port 80.