SSDPd - announces UPnP/DLNA device across network. PHP media server inside
Go to file
2024-04-28 23:38:48 +03:00
.github Update liblcd: 2024-04-26 02:32:12 +03:00
freebsd Fix: 2017-12-12 03:35:03 +03:00
nginx Update CMake, Codelite, config files and readme 2024-03-08 19:07:01 +02:00
php Update CMake, Codelite, config files and readme 2024-03-08 19:07:01 +02:00
src Update liblcb: Remove syntax shugar. 2024-04-28 23:38:48 +03:00
www/upnp Remove disabled "tvg-logo" support from m3u_browse() 2021-01-14 20:29:06 +03:00
.editorconfig Add .editorconfig file. 2024-04-09 21:42:46 +03:00
.gitmodules add liblcb 2017-10-13 21:55:16 +03:00
CMakeLists.txt Update liblcd: 2024-04-26 02:51:27 +03:00
config.h.cmake Update liblcb: 2020-11-08 03:54:48 +03:00
dist.sh Migration to CMake build system 2017-10-22 20:05:46 +03:00
LICENSE Add err handling 2018-03-10 01:12:23 +03:00
readme.md Update liblcd: 2024-04-26 02:32:12 +03:00
ssdpd.conf Migrate to syslog. 2024-03-15 23:03:26 +02:00
ssdpd.conf.debug Migrate to syslog. 2024-03-15 23:03:26 +02:00
ssdpd.project Update liblcb: Remove syntax shugar. 2024-04-28 23:38:48 +03:00
ssdpd.workspace Add CodeLite files 2022-04-17 01:23:55 +03:00
test.txt Update test patterns 2017-12-19 02:16:17 +03:00

SSDPd

Build-macOS-latest Actions Status Build-Ubuntu-latest Actions Status Build-PHP Status Scrutinizer Code Quality

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.

Licence

BSD licence. Website: http://www.netlab.linkpc.net/wiki/en:software:ssdpd:index

Donate

Support the author

  • GitHub Sponsors: "GitHub Sponsors"
  • Buy Me A Coffee: "Buy Me A Coffee"
  • PayPal: PayPal
  • Bitcoin (BTC): 1AxYyMWek5vhoWWRTWKQpWUqKxyfLarCuz

Features

  • can act as UPnP/DLNA ContentDirectory to share multimedia content
  • can announce remote UPnP/DLNA devices

Compilation and Installation

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

  1. nginx with headers_more.
  2. PHP with fpm, fileinfo, soap, xml.

Run tests

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

Usage

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

Setup

ssdpd

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

PHP UPnP server

PHP

Add to /etc/rc.conf:

php_fpm_enable="YES"

Run:

service php-fpm restart

nginx

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

Data

Place shared data in: %%DATADIR%%/www/upnpdata or make in as simlink on existing data. Make sure that permissions allow www access.

Firewall

ssdpd

Allow all IPv4 with options proto igmp. Allow all udp dst port 1900.

PHP UPnP server

Allow in tcp dst port 80.