UPNP service fix - minissdpd service install and configure
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
FROM debian
|
||||
FROM debian:10
|
||||
|
||||
RUN apt-get update && apt-get install -y minidlna vim net-tools
|
||||
RUN apt-get update && apt-get install -y minidlna minissdpd net-tools
|
||||
|
||||
COPY files/start.sh /opt/start.sh
|
||||
RUN chmod 755 /opt/start.sh
|
||||
|
||||
12
README.md
12
README.md
@@ -12,12 +12,18 @@ docker build -t croc/minidlna .
|
||||
## Run
|
||||
|
||||
```
|
||||
docker run -tid --name=minidlna --net=host -e SRVNAME=dockerlna -e "FOLDERS=/mnt/data/mp3,/mnt/data/movie,/mnt/data/torrent" -v /mnt/data/pub/:/mnt/data croc/minidlna /opt/start.sh
|
||||
docker run -tid --name=minidlna --net=host -e SRVNAME=dockerlna -e "FOLDERS=/mnt/data/mp3,/mnt/data/movie,/mnt/data/torrent" -v /mnt/data/pub/:/mnt/data croc/minidlna
|
||||
```
|
||||
|
||||
- `SRVNAME` - name of the minidlna
|
||||
- `FOLDERS` - list of the shared folders in your volume (/mnt/data)
|
||||
- `SRVNAME` - name of the minidlna server
|
||||
- `FOLDERS` - list of the shared folders on your volume (/mnt/data)
|
||||
|
||||
Please use docker-compose file (from my Github page) for easier management.
|
||||
|
||||
|
||||
## Known errors
|
||||
|
||||
Container always restarts and `SSDP service start problem` message in the container logs.
|
||||
Check the 1900 UDP port on your docker host (example: `ss -lntpu | grep -i 1900` ) maybe already in use.
|
||||
Stop another UPNP service, like Jellyfin/Plex/Emby server to free up this port and try again.
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@ services:
|
||||
environment:
|
||||
- SRVNAME=docker-minidlna
|
||||
- PORT=8205
|
||||
# specify an UPNP interface if you have multiple network interface
|
||||
#- SSDP_IFACE=eth0
|
||||
- FOLDERS=/media/mp3,/media/movies,/media/tv_series
|
||||
volumes:
|
||||
- '/mnt/data/pub/movies:/media/movies'
|
||||
|
||||
@@ -2,24 +2,46 @@
|
||||
|
||||
if [ ! -e /etc/minidlna.configured ]
|
||||
then
|
||||
# set friendly name
|
||||
sed -i "s@.*friendly_name=.*@friendly_name=$SRVNAME@g" /etc/minidlna.conf
|
||||
# set port
|
||||
[ -z $PORT ] && { PORT=8201; }
|
||||
sed -i "s@port=.*00@port=$PORT@g" /etc/minidlna.conf
|
||||
|
||||
# remove media folders
|
||||
sed -i s@media_dir=@\#media_dir=@g /etc/minidlna.conf
|
||||
|
||||
echo "friendly_name=$SRVNAME" >> /etc/minidlna.conf
|
||||
|
||||
# add media folders to the end of file
|
||||
for folder in $( echo $FOLDERS | xargs -d',' )
|
||||
do
|
||||
echo "media_dir=$folder" >> /etc/minidlna.conf
|
||||
done
|
||||
|
||||
[ -z $PORT ] && { PORT=8201; }
|
||||
sed -i "s@port=.*00@port=$PORT@g" /etc/minidlna.conf
|
||||
|
||||
date > /etc/minidlna.configured
|
||||
fi
|
||||
|
||||
# minissdp
|
||||
# get interfaces
|
||||
if [ -z "$SSDP_IFACE" ]
|
||||
then
|
||||
SSDP_INTERFACE="$( ip addr | grep -i up | egrep -iv '(lo|br-|veth|docker).*:' | cut -f2 -d':' | tr -d ' ' )"
|
||||
if [ $( echo "$INTERFACE" | wc -l ) -gt 1 ]
|
||||
then
|
||||
echo -e "You have more than one interface, choose one!:\n$SSDP_INTERFACE"
|
||||
exit 1
|
||||
fi
|
||||
SSDP_IFACE=$SSDP_INTERFACE
|
||||
fi
|
||||
if [ $( ss -lntpu | grep -i 1900 | wc -l ) -gt 0 ]
|
||||
then
|
||||
echo "Warning, another UPNP service use same UDP port!"
|
||||
echo " Please stop another server and try again."
|
||||
fi
|
||||
minissdpd -i $SSDP_IFACE || { echo "SSDP service start problem"; exit 1; }
|
||||
|
||||
|
||||
# remove stucked pid file
|
||||
rm -f /run/minidlna/minidlna.pid
|
||||
# start minidlna
|
||||
minidlnad -d
|
||||
minidlnad -d -v
|
||||
|
||||
#/bin/bash
|
||||
|
||||
Reference in New Issue
Block a user