Update
Signed-off-by: Lev Rusanov <30170278+JDM170@users.noreply.github.com>
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
config/minidlna.conf
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
FROM alpine:3.22
|
FROM alpine:3.22
|
||||||
|
|
||||||
|
#USER 1000:1000
|
||||||
|
|
||||||
RUN apk add --no-cache dumb-init minidlna minissdpd net-tools iproute2
|
RUN apk add --no-cache dumb-init minidlna minissdpd net-tools iproute2
|
||||||
|
|
||||||
COPY --chmod=755 files/start.sh /opt/start.sh
|
COPY --chmod=755 files/start.sh /opt/start.sh
|
||||||
|
|||||||
13
README.md
13
README.md
@@ -11,8 +11,13 @@ docker build -t croc/minidlna .
|
|||||||
|
|
||||||
## Run
|
## Run
|
||||||
|
|
||||||
|
The recommended method is to use with docker-compose file.
|
||||||
|
Check the example file in the repository.
|
||||||
|
|
||||||
|
### with environment parameters
|
||||||
|
|
||||||
```
|
```
|
||||||
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
|
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 server
|
- `SRVNAME` - name of the minidlna server
|
||||||
@@ -20,10 +25,14 @@ docker run -tid --name=minidlna --net=host -e SRVNAME=dockerlna -e "FOLDERS=/mnt
|
|||||||
|
|
||||||
Please use docker-compose file (from my Github page) for easier management.
|
Please use docker-compose file (from my Github page) for easier management.
|
||||||
|
|
||||||
|
### with config file
|
||||||
|
|
||||||
|
1. use and edit config template file `config/minidlna.conf.tmpl`
|
||||||
|
2. save as `config/minidlna.conf`
|
||||||
|
3. run minidlna with docker-compose file without any environment variables, the volumes only: `docker-compose up -d`
|
||||||
|
|
||||||
## Known errors
|
## Known errors
|
||||||
|
|
||||||
Container always restarts and `SSDP service start problem` message in the container logs.
|
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.
|
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.
|
Stop another UPNP service, like Jellyfin/Plex/Emby server to free up this port and try again.
|
||||||
|
|
||||||
|
|||||||
135
config/minidlna.conf.tmpl
Normal file
135
config/minidlna.conf.tmpl
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
# This is the configuration file for the MiniDLNA daemon, a DLNA/UPnP-AV media
|
||||||
|
# server.
|
||||||
|
#
|
||||||
|
# Unless otherwise noted, the commented out options show their default value.
|
||||||
|
#
|
||||||
|
# On Debian, you can also refer to the minidlna.conf(5) man page for
|
||||||
|
# documentation about this file.
|
||||||
|
|
||||||
|
# Specify the user name or uid to run as (root by default).
|
||||||
|
# On Debian system command line option (from /etc/default/minidlna) overrides this.
|
||||||
|
#user=minidlna
|
||||||
|
|
||||||
|
|
||||||
|
# Path to the directory you want scanned for media files.
|
||||||
|
#
|
||||||
|
# This option can be specified more than once if you want multiple directories
|
||||||
|
# scanned.
|
||||||
|
#
|
||||||
|
# If you want to restrict a media_dir to a specific content type, you can
|
||||||
|
# prepend the directory name with a letter representing the type (A, P or V),
|
||||||
|
# followed by a comma, as so:
|
||||||
|
# * "A" for audio (eg. #media_dir=A,/var/lib/minidlna/music)
|
||||||
|
# * "P" for pictures (eg. #media_dir=P,/var/lib/minidlna/pictures)
|
||||||
|
# * "V" for video (eg. #media_dir=V,/var/lib/minidlna/videos)
|
||||||
|
# * "PV" for pictures and video (eg. #media_dir=PV,/var/lib/minidlna/digital_camera)
|
||||||
|
#media_dir=/var/lib/minidlna
|
||||||
|
|
||||||
|
# Set this to merge all media_dir base contents into the root container
|
||||||
|
# (The default is no.)
|
||||||
|
#merge_media_dirs=no
|
||||||
|
|
||||||
|
# Path to the directory that should hold the database and album art cache.
|
||||||
|
#db_dir=/var/cache/minidlna
|
||||||
|
|
||||||
|
# Path to the directory that should hold the log file.
|
||||||
|
#log_dir=/var/log/minidlna
|
||||||
|
|
||||||
|
# Type and minimum level of importance of messages to be logged.
|
||||||
|
#
|
||||||
|
# The types are "artwork", "database", "general", "http", "inotify",
|
||||||
|
# "metadata", "scanner", "ssdp" and "tivo".
|
||||||
|
#
|
||||||
|
# The levels are "off", "fatal", "error", "warn", "info" or "debug".
|
||||||
|
# "off" turns of logging entirely, "fatal" is the highest level of importance
|
||||||
|
# and "debug" the lowest.
|
||||||
|
#
|
||||||
|
# The types are comma-separated, followed by an equal sign ("="), followed by a
|
||||||
|
# level that applies to the preceding types. This can be repeated, separating
|
||||||
|
# each of these constructs with a comma.
|
||||||
|
#
|
||||||
|
# The default is to log all types of messages at the "warn" level.
|
||||||
|
#log_level=general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=warn
|
||||||
|
|
||||||
|
# Use a different container as the root of the directory tree presented to
|
||||||
|
# clients. The possible values are:
|
||||||
|
# * "." - standard container
|
||||||
|
# * "B" - "Browse Directory"
|
||||||
|
# * "M" - "Music"
|
||||||
|
# * "P" - "Pictures"
|
||||||
|
# * "V" - "Video"
|
||||||
|
# * Or, you can specify the ObjectID of your desired root container
|
||||||
|
# (eg. 1$F for Music/Playlists)
|
||||||
|
# If you specify "B" and the client device is audio-only then "Music/Folders"
|
||||||
|
# will be used as root.
|
||||||
|
#root_container=.
|
||||||
|
|
||||||
|
# Network interface(s) to bind to (e.g. eth0), comma delimited.
|
||||||
|
# This option can be specified more than once.
|
||||||
|
#network_interface=
|
||||||
|
|
||||||
|
# Port number for HTTP traffic (descriptions, SOAP, media transfer).
|
||||||
|
# This option is mandatory (or it must be specified on the command-line using
|
||||||
|
# "-p").
|
||||||
|
port=8205
|
||||||
|
|
||||||
|
# URL presented to clients (e.g. http://example.com:80).
|
||||||
|
#presentation_url=/
|
||||||
|
|
||||||
|
# Name that the DLNA server presents to clients.
|
||||||
|
# Defaults to "hostname: username".
|
||||||
|
friendly_name=docker-minidlna
|
||||||
|
|
||||||
|
# Serial number the server reports to clients.
|
||||||
|
# Defaults to the MAC address of nework interface.
|
||||||
|
#serial=
|
||||||
|
|
||||||
|
# Model name the server reports to clients.
|
||||||
|
#model_name=Windows Media Connect compatible (MiniDLNA)
|
||||||
|
|
||||||
|
# Model number the server reports to clients.
|
||||||
|
# Defaults to the version number of minidlna.
|
||||||
|
#model_number=
|
||||||
|
|
||||||
|
# Automatic discovery of new files in the media_dir directory.
|
||||||
|
#inotify=yes
|
||||||
|
|
||||||
|
# List of file names to look for when searching for album art.
|
||||||
|
# Names should be delimited with a forward slash ("/").
|
||||||
|
# This option can be specified more than once.
|
||||||
|
album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg
|
||||||
|
album_art_names=AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg
|
||||||
|
album_art_names=Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg
|
||||||
|
|
||||||
|
# Strictly adhere to DLNA standards.
|
||||||
|
# This allows server-side downscaling of very large JPEG images, which may
|
||||||
|
# decrease JPEG serving performance on (at least) Sony DLNA products.
|
||||||
|
#strict_dlna=no
|
||||||
|
|
||||||
|
# Support for streaming .jpg and .mp3 files to a TiVo supporting HMO.
|
||||||
|
#enable_tivo=no
|
||||||
|
|
||||||
|
# Which method to use for registering in TiVo: 'bonjour' (default) or
|
||||||
|
# legacy 'beacon'
|
||||||
|
#tivo_discovery=bonjour
|
||||||
|
|
||||||
|
# SSDP notify interval, in seconds.
|
||||||
|
#notify_interval=895
|
||||||
|
|
||||||
|
# Path to the MiniSSDPd socket, for MiniSSDPd support.
|
||||||
|
#minissdpdsocket=/run/minissdpd.sock
|
||||||
|
|
||||||
|
# Always set SortCriteria to this value, regardless of the SortCriteria
|
||||||
|
# passed by the client
|
||||||
|
# e.g. force_sort_criteria=+upnp:class,+upnp:originalTrackNumber,+dc:title
|
||||||
|
#force_sort_criteria=
|
||||||
|
|
||||||
|
# maximum number of simultaneous connections
|
||||||
|
# note: many clients open several simultaneous connections while streaming
|
||||||
|
#max_connections=50
|
||||||
|
|
||||||
|
# set this to yes to allow symlinks that point outside user-defined media_dirs.
|
||||||
|
#wide_links=no
|
||||||
|
media_dir=/media/mp3
|
||||||
|
media_dir=/media/movies
|
||||||
|
media_dir=/media/tv_series
|
||||||
@@ -3,6 +3,8 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
|
tags:
|
||||||
|
- jdm17/minidlna:latest
|
||||||
container_name: docker-minidlna
|
container_name: docker-minidlna
|
||||||
network_mode: host
|
network_mode: host
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -11,9 +13,16 @@ services:
|
|||||||
- PORT=8205
|
- PORT=8205
|
||||||
# specify an UPNP interface if you have multiple network interface
|
# specify an UPNP interface if you have multiple network interface
|
||||||
# - SSDP_IFACE=eth0
|
# - SSDP_IFACE=eth0
|
||||||
- FOLDERS=/media/mp3,/media/movies,/media/tv_series
|
- FOLDERS=/media/mp3;/media/movies;/media/tv_series
|
||||||
|
# with types
|
||||||
|
# - FOLDERS=A,/media/mp3;P,/media/pictures;V,/media/movies;V,/media/tv_series
|
||||||
volumes:
|
volumes:
|
||||||
- /mnt/data/config:/var/lib/minidlna
|
- ./config:/var/lib/minidlna
|
||||||
|
# with config file
|
||||||
|
# uncomment or delete the full environment block if You use custom config file!
|
||||||
|
# - ./config/minidlna.conf:/etc/minidlna.conf:ro
|
||||||
|
# db dir
|
||||||
|
# - ./cache:/var/cache/minidlna
|
||||||
- /mnt/data/pub/movies:/media/movies
|
- /mnt/data/pub/movies:/media/movies
|
||||||
- /mnt/data/pub/tv_series:/media/tv_series
|
- /mnt/data/pub/tv_series:/media/tv_series
|
||||||
- /mnt/data/pub/mp3:/media/mp3
|
- /mnt/data/pub/mp3:/media/mp3
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
if [ ! -e /etc/minidlna.configured ]
|
if [ ! -e /etc/minidlna.configured ]
|
||||||
then
|
then
|
||||||
|
echo "Configuring minidlna ..."
|
||||||
|
|
||||||
# set friendly name
|
# set friendly name
|
||||||
sed -i "s@.*friendly_name=.*@friendly_name=$SRVNAME@g" /etc/minidlna.conf
|
sed -i "s@.*friendly_name=.*@friendly_name=$SRVNAME@g" /etc/minidlna.conf
|
||||||
# set port
|
# set port
|
||||||
@@ -11,12 +13,18 @@ then
|
|||||||
# remove media folders
|
# 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
|
# add media folders to the end of file
|
||||||
for folder in $( echo $FOLDERS | tr ',' '\0' | xargs -0 echo )
|
for folder in $( echo $FOLDERS | tr ';' '\0' | xargs -0 echo )
|
||||||
do
|
do
|
||||||
echo "media_dir=$folder" >> /etc/minidlna.conf
|
echo "media_dir=$folder" >> /etc/minidlna.conf
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# inotify config
|
||||||
|
sed -i s@.*inotify=.*@inotify=yes@g /etc/minidlna.conf
|
||||||
|
|
||||||
|
# create configured flag file
|
||||||
date > /etc/minidlna.configured
|
date > /etc/minidlna.configured
|
||||||
|
else
|
||||||
|
echo "Using already exists config (/etc/minidlna.conf), starting minidlna ..."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# minissdp
|
# minissdp
|
||||||
|
|||||||
Reference in New Issue
Block a user