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
|
COPY files/start.sh /opt/start.sh
|
||||||
RUN chmod 755 /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
|
## 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
|
- `SRVNAME` - name of the minidlna server
|
||||||
- `FOLDERS` - list of the shared folders in your volume (/mnt/data)
|
- `FOLDERS` - list of the shared folders on your volume (/mnt/data)
|
||||||
|
|
||||||
Please use docker-compose file (from my Github page) for easier management.
|
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:
|
environment:
|
||||||
- SRVNAME=docker-minidlna
|
- SRVNAME=docker-minidlna
|
||||||
- PORT=8205
|
- PORT=8205
|
||||||
|
# specify an UPNP interface if you have multiple network interface
|
||||||
|
#- SSDP_IFACE=eth0
|
||||||
- FOLDERS=/media/mp3,/media/movies,/media/tv_series
|
- FOLDERS=/media/mp3,/media/movies,/media/tv_series
|
||||||
volumes:
|
volumes:
|
||||||
- '/mnt/data/pub/movies:/media/movies'
|
- '/mnt/data/pub/movies:/media/movies'
|
||||||
|
|||||||
@@ -2,24 +2,46 @@
|
|||||||
|
|
||||||
if [ ! -e /etc/minidlna.configured ]
|
if [ ! -e /etc/minidlna.configured ]
|
||||||
then
|
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
|
sed -i s@media_dir=@\#media_dir=@g /etc/minidlna.conf
|
||||||
|
# add media folders to the end of file
|
||||||
echo "friendly_name=$SRVNAME" >> /etc/minidlna.conf
|
|
||||||
|
|
||||||
for folder in $( echo $FOLDERS | xargs -d',' )
|
for folder in $( echo $FOLDERS | xargs -d',' )
|
||||||
do
|
do
|
||||||
echo "media_dir=$folder" >> /etc/minidlna.conf
|
echo "media_dir=$folder" >> /etc/minidlna.conf
|
||||||
done
|
done
|
||||||
|
|
||||||
[ -z $PORT ] && { PORT=8201; }
|
|
||||||
sed -i "s@port=.*00@port=$PORT@g" /etc/minidlna.conf
|
|
||||||
|
|
||||||
date > /etc/minidlna.configured
|
date > /etc/minidlna.configured
|
||||||
fi
|
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
|
# remove stucked pid file
|
||||||
rm -f /run/minidlna/minidlna.pid
|
rm -f /run/minidlna/minidlna.pid
|
||||||
# start minidlna
|
# start minidlna
|
||||||
minidlnad -d
|
minidlnad -d -v
|
||||||
|
|
||||||
#/bin/bash
|
#/bin/bash
|
||||||
|
|||||||
Reference in New Issue
Block a user