{"id":22320197,"url":"https://github.com/giof71/minidlna-docker","last_synced_at":"2026-04-11T14:09:56.269Z","repository":{"id":65256343,"uuid":"556024821","full_name":"GioF71/minidlna-docker","owner":"GioF71","description":"Easily run MiniDLNA with Docker","archived":false,"fork":false,"pushed_at":"2025-04-05T00:36:05.000Z","size":52,"stargazers_count":52,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T13:42:53.351Z","etag":null,"topics":["amd64","arm","arm64","audio","dlna","docker","media-server","minidlna","upnp"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GioF71.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-22T22:21:46.000Z","updated_at":"2025-04-04T08:33:14.000Z","dependencies_parsed_at":"2024-06-15T19:03:37.141Z","dependency_job_id":null,"html_url":"https://github.com/GioF71/minidlna-docker","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/GioF71/minidlna-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GioF71%2Fminidlna-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GioF71%2Fminidlna-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GioF71%2Fminidlna-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GioF71%2Fminidlna-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GioF71","download_url":"https://codeload.github.com/GioF71/minidlna-docker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GioF71%2Fminidlna-docker/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267694877,"owners_count":24129149,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amd64","arm","arm64","audio","dlna","docker","media-server","minidlna","upnp"],"created_at":"2024-12-04T00:12:45.338Z","updated_at":"2026-04-11T14:09:56.257Z","avatar_url":"https://github.com/GioF71.png","language":"Shell","funding_links":["https://ko-fi.com/H2H7UIN5D","https://ko-fi.com/giof71/goal?g=0"],"categories":[],"sub_categories":[],"readme":"# minidlna-docker\n\nA Docker image for `minidlna`.\n\n## Support\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/H2H7UIN5D)  \nPlease see the [Goal](https://ko-fi.com/giof71/goal?g=0)  \nPlease note that support goal is limited to cover running costs for subscriptions to music services.\n\n## Available Archs on Docker Hub\n\n- linux/amd64\n- linux/arm64/v8\n- linux/arm/v7\n- linux/arm/v5\n\n## Reference\n\nGitHub repository of the project: [here](https://github.com/azatoth/minidlna).\n## Links\n\nSource: [GitHub](https://github.com/giof71/minidlna-docker)  \nImages: [DockerHub](https://hub.docker.com/r/giof71/minidlna)\n\n## Why\n\nI prepared this Dockerfile because I wanted to be able to install `minidlna` easily on any machine (provided the architecture is amd64 or arm). Also I wanted to be able to configure and govern the parameters easily, through environment variables. Configuring the container is easy through a webapp like Portainer.\n\n## Prerequisites\n\nYou need to have Docker up and running on a Linux machine, and the current user must be allowed to run containers (this usually means that the current user belongs to the \"docker\" group).\n\nYou can verify whether your user belongs to the \"docker\" group with the following command:\n\n`getent group | grep docker`\n\nThis command will output one line if the current user does belong to the \"docker\" group, otherwise there will be no output.\n\nThe Dockerfile and the included scripts have been tested on the following distros:\n\n- Manjaro Linux with Gnome (amd64)\n\nAs I test the Dockerfile on more platforms, I will update this list.\n\n## Get the image\n\nHere is the [repository](https://hub.docker.com/repository/docker/giof71/minidlna) on DockerHub.\n\nGetting the image from DockerHub is as simple as typing:\n\n`docker pull giof71/minidlna`\n\n## Usage\n\n### Environment Variables\n\nName|Description\n:---|:---\nMINIDLNA_PORT|Web Interface Port, defaults to `8200`\nMINIDLNA_NETWORK_INTERFACE|Network interfaces to serve, comma delimited; maximum is 8 interfaces, defaults to all\nMINIDLNA_FRIENDLY_NAME|Defaults to `hostname: username`\nMINIDLNA_SERIAL|Serial number the server reports to clients. Defaults to the MAC address of nework interface\nMINIDLNA_MODEL_NAME|Model name the server reports to clients\nMINIDLNA_MODEL_NUMBER|Model number the server reports to clients. Defaults to the version number of minidlna.\nMINIDLNA_ENABLE_INOTIFY|Automatic discovery of new files in the media_dir directory\nMINIDLNA_NOTIFY_INTERVAL|Set the notify interval, in seconds. The default is 895 seconds.\nMINIDLNA_STRICT_DLNA|Strictly adhere to DLNA standards\nMINIDLNA_ROOT_CONTAINER|Possible values are `.` (Default), `B` (Browse), `M` (Music), `V` (Vidoes), `P` (Pictures)\nMINIDLNA_FORCE_SORT_CRITERIA|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\nMINIDLNA_LOG_LEVEL|Set this to change the verbosity of the information that is logged each section can use a different level: off, fatal, error, warn, info, or debug\nUSER_MODE|Set to `Y` or `YES` to enable user mode\nPUID|User id, defaults to `1000`\nPGID|Group id, defaults to `1000`\nMINIDLNA_DIR_A_1|Audio Path #1\nMINIDLNA_DIR_A_2|Audio Path #2\nMINIDLNA_DIR_A_3|Audio Path #3\nMINIDLNA_DIR_A_...|Audio Path #...\nMINIDLNA_DIR_A_100|Audio Path #100\nMINIDLNA_DIR_V_1|Video Path #1\nMINIDLNA_DIR_V_2|Video Path #2\nMINIDLNA_DIR_V_3|Video Path #3\nMINIDLNA_DIR_V_...|Video Path #...\nMINIDLNA_DIR_V_100|Video Path #100\nMINIDLNA_DIR_P_1|Picture Path #1\nMINIDLNA_DIR_P_2|Picture Path #2\nMINIDLNA_DIR_P_3|Picture Path #3\nMINIDLNA_DIR_P_...|Picture Path #...\nMINIDLNA_DIR_P_100|Picture Path #100\nMINIDLNA_MERGE_MEDIA_DIRS|Set this to merge all media_dir base contents into the root container. The default is `no`.\n\n### Volumes\n\nVolume|Description\n:---|:---\n/db|Database directory\n/log|Log directory\n\n### Examples\n\nMy docker-compose file on my desktop system, dedicated to music. But this might suggest your configuration with videos and pictures as well.\n\n```text\n---\nversion: \"3\"\n\nservices:\n  minidlna-desktop:\n    image: giof71/minidlna\n    container_name: minidlna-desktop\n    network_mode: host\n    environment:\n      - MINIDLNA_ROOT_CONTAINER=M\n      - MINIDLNA_DIR_A_1=/music/library1\n      - MINIDLNA_DIR_A_2=/music/library2\n      - MINIDLNA_DIR_A_3=/music/library3\n      - MINIDLNA_ENABLE_INOTIFY=YES\n      - MINIDLNA_FRIENDLY_NAME=minidlna-desktop\n      - MINIDLNA_FORCE_SORT_CRITERIA=+upnp:class,-dc:date,+upnp:album,+upnp:originalTrackNumber,+dc:title\n      - PUID=1000\n      - PGID=1000\n    volumes:\n      - /mnt/disk1/library:/music/library1\n      - /mnt/disk2/library:/music/library2\n      - /mnt/disk3/library:/music/library3\n      - ./config/log:/log\n      - ./config/db:/db\n    restart: unless-stopped\n```\n\nWith images built after (and including) 2023-12-20, you can specify the username with a `user: \"1000:1000\"` in your compose file instead of setting PUID and PGID.  \nThe previous compose file would become:\n\n```text\n---\nversion: \"3\"\n\nservices:\n  minidlna-desktop:\n    image: giof71/minidlna\n    container_name: minidlna-desktop\n    network_mode: host\n    user: \"1000:1000\"\n    environment:\n      - MINIDLNA_ROOT_CONTAINER=M\n      - MINIDLNA_DIR_A_1=/music/library1\n      - MINIDLNA_DIR_A_2=/music/library2\n      - MINIDLNA_DIR_A_3=/music/library3\n      - MINIDLNA_ENABLE_INOTIFY=YES\n      - MINIDLNA_FRIENDLY_NAME=minidlna-desktop\n      - MINIDLNA_FORCE_SORT_CRITERIA=+upnp:class,-dc:date,+upnp:album,+upnp:originalTrackNumber,+dc:title\n    volumes:\n      - /mnt/disk1/library:/music/library1\n      - /mnt/disk2/library:/music/library2\n      - /mnt/disk3/library:/music/library3\n      - ./config/log:/log\n      - ./config/db:/db\n    restart: unless-stopped\n```\n\nIn this case, make sure that the directories you bind exist and are writable from the specified uid/gid.  \n\n## Build\n\nYou can build (or rebuild) the image by opening a terminal from the root of the repository and issuing the following command:\n\n`docker build . -t giof71/minidlna`\n\nIt will take very little time even on a Raspberry Pi. When it's finished, you can run the container following the previous instructions.  \nJust be careful to use the tag you have built.\n\n## Change History\n\nDate|Major Changes\n:---|:---\n2026-04-11|Fixed issue [#37](https://github.com/GioF71/minidlna-docker/issues/37)\n2025-08-31|Support 100 variables for each folder type, see [#35](https://github.com/GioF71/minidlna-docker/issues/35)\n2024-06-15|Handle non writable mountpoints gracefully, see [#28](https://github.com/GioF71/minidlna-docker/issues/28)\n2024-03-07|Add support for network_interface, see [#22](https://github.com/GioF71/minidlna-docker/issues/22)\n2024-01-22|Add support for log_level, see [#14](https://github.com/GioF71/minidlna-docker/issues/14)\n2024-01-16|Fixed run script, see [#12](https://github.com/GioF71/minidlna-docker/issues/12)\n2023-12-20|Allow docker user mode, see [#10](https://github.com/GioF71/minidlna-docker/issues/10)\n2023-09-13|Switch to debian stable, see [#8](https://github.com/GioF71/minidlna-docker/issues/8)\n2023-09-13|Add support to notify interval, see [#6](https://github.com/GioF71/minidlna-docker/issues/6)\n2023-07-24|Switch to bookworm, see [#2](https://github.com/GioF71/minidlna-docker/issues/2)\n2022-10-23|Initial release\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiof71%2Fminidlna-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiof71%2Fminidlna-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiof71%2Fminidlna-docker/lists"}