{"id":13464004,"url":"https://github.com/gerbera/gerbera","last_synced_at":"2026-01-19T08:04:49.613Z","repository":{"id":19538592,"uuid":"22786524","full_name":"gerbera/gerbera","owner":"gerbera","description":"UPnP Media Server for 2025: Stream your digital media through your home network and consume it on all kinds of UPnP supporting devices 📱💻📺","archived":false,"fork":false,"pushed_at":"2025-05-04T06:23:31.000Z","size":83093,"stargazers_count":1254,"open_issues_count":68,"forks_count":217,"subscribers_count":40,"default_branch":"master","last_synced_at":"2025-05-06T21:05:56.033Z","etag":null,"topics":["c-plus-plus","cmake","dlna","dlna-server","duktape","flac","gerbera","inotify","javascript","libupnp","m3u8","mediaserver","mp3","nfo","ogg","stream","transcoding","upnp","upnp-av","web-ui"],"latest_commit_sha":null,"homepage":"https://gerbera.io","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gerbera.png","metadata":{"files":{"readme":"README.Docker.md","changelog":"ChangeLog.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-08-09T13:17:53.000Z","updated_at":"2025-05-05T14:52:58.000Z","dependencies_parsed_at":"2024-01-16T20:55:04.429Z","dependency_job_id":"3a3420f6-ee28-4fcb-abbf-95bb58990f55","html_url":"https://github.com/gerbera/gerbera","commit_stats":{"total_commits":5347,"total_committers":121,"mean_commits":44.1900826446281,"dds":0.7349915840658313,"last_synced_commit":"2c8493abb3e9cee5a0b184105309edc635de5fcf"},"previous_names":[],"tags_count":50,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerbera%2Fgerbera","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerbera%2Fgerbera/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerbera%2Fgerbera/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerbera%2Fgerbera/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gerbera","download_url":"https://codeload.github.com/gerbera/gerbera/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253948573,"owners_count":21988973,"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","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":["c-plus-plus","cmake","dlna","dlna-server","duktape","flac","gerbera","inotify","javascript","libupnp","m3u8","mediaserver","mp3","nfo","ogg","stream","transcoding","upnp","upnp-av","web-ui"],"created_at":"2024-07-31T14:00:31.969Z","updated_at":"2025-05-14T11:12:14.855Z","avatar_url":"https://github.com/gerbera.png","language":"C++","readme":"\u003cimg src=\"https://github.com/gerbera/gerbera/blob/master/artwork/logo-horiz.png?raw=true\" /\u003e\n\n# Gerbera - UPnP Media Server\n\n[![Current Release](https://img.shields.io/github/release/gerbera/gerbera.svg?style=for-the-badge)](https://github.com/gerbera/gerbera/releases/latest) [![Build Status](https://img.shields.io/github/actions/workflow/status/gerbera/gerbera/ci.yml?style=for-the-badge\u0026branch=master)](https://github.com/gerbera/gerbera/actions?query=workflow%3A%22CI+validation%22+branch%3Amaster) [![Docker Version](https://img.shields.io/docker/v/gerbera/gerbera?color=teal\u0026label=docker\u0026logoColor=white\u0026sort=semver\u0026style=for-the-badge)](https://hub.docker.com/r/gerbera/gerbera/tags?name=2.) [![Documentation Status](https://img.shields.io/readthedocs/gerbera?style=for-the-badge)](http://docs.gerbera.io/en/stable/?badge=stable) [![IRC](https://img.shields.io/badge/IRC-on%20freenode-orange.svg?style=for-the-badge)](https://webchat.freenode.net/?channels=#gerbera)\n\n[![Packaging status](https://repology.org/badge/tiny-repos/gerbera.svg?header=PACKAGES\u0026style=for-the-badge)](https://repology.org/metapackage/gerbera/versions)\n\nGerbera is a UPnP media server which allows you to stream your digital media through your home network and consume it on a variety of UPnP compatible devices.\n\n## Documentation\nFor general help on using Gerbera, head over to our documentation online at [docs.gerbera.io](https://docs.gerbera.io).\n\n# Image Architectures\n- amd64\n- armv7\n- arm64\n\n# Network Setup\n\n## Ports\nPort `49494/tcp` (HTTP, also set as gerbera port via command line) and `1900/udp` (SSDP Multicast) are exposed by default.\n\n## Multicast\nUPnP relies on having clients and servers able to communicate via IP Multicast.\nThe default docker bridge network setup does not support multicast. The easiest way to achieve this is to use\n\"host networking\".\nConnecting Gerbera to your network via the \"macvlan\" driver should work, but remember you will not be\nable to access the container from the docker host with this method by default.\n\n# Transcoding Tools\nTranscoding tools are made available in a separate image with the `-transcoding` suffix.\ne.g. `gerbera/gerbera:2.5.0-transcoding`. Includes tools such as ffmpeg and vlc.\n\n# Examples\n\n## Serve some files via a volume\n```console\n$ docker run \\\n    --name some-gerbera \\\n    --network=host \\\n    -v /some/files:/mnt/content:ro \\\n     gerbera/gerbera:2.5.0\n```\n\nor for those that prefer docker-compose:\n\n```console\n---\nversion: \"2.4.0\"\nservices:\n  gerbera:\n    image: gerbera/gerbera\n    container_name: gerbera\n    network_mode: host\n    volumes:\n      - ./gerbera-config:/var/run/gerbera\n      - /some/files:/mnt/content:ro\n\nvolumes:\n  gerbera-config:\n    external: false\n```\n\nThe directory `/mnt/content` is automatically scanned for content by default.\nHost networking enables us to bypass issues with broadcast across docker bridges.\n\nYou may place custom JavaScript files in the directory `/mnt/customization/js`.\nEvery time Gerbera creates `/var/run/gerbera/config.xml`, the shell script\n`/mnt/customization/shell/gerbera_config.sh` (if existing) will be executed.\n\n## Provide your own config file\n```console\n$ docker run \\\n    --name another-gerbera \\\n    --network=host \\\n    -v /some/files:/mnt/content:ro \\\n    -v /some/path/config.xml:/var/run/gerbera/config.xml \\\n     gerbera/gerbera:2.5.0\n```\n\n## Overwrite default ports\n\nIn cases (e.g. running multiple gerbera containers with different versions) you can override the exported ports\n\n```console\n$ docker run \\\n    --name another-gerbera \\\n    --network=host \\\n    --expose \u003cyour-port\u003e:\u003cyour-port\u003e \\\n    -v /some/files:/mnt/content:ro \\\n     gerbera/gerbera:2.5.0 gerbera --port \u003cyour-port\u003e --config /var/run/gerbera/config.xml\n```\n\n## Overwrite default user and group id\n\nIn cases (e.g. running multiple gerbera containers with different versions) you can override the exported ports\n\n```console\n$ docker run \\\n    --name another-gerbera \\\n    --network=host \\\n    --env UID=\u003cnewuid\u003e \\\n    --env GID=\u003cnewgid\u003e \\\n    -v /some/files:/mnt/content:ro \\\n     gerbera/gerbera:2.5.0 gerbera --config /var/run/gerbera/config.xml\n```\n\n# Build Variables\n\nThere are some variables in Dockerfile which allow overwriting the defaults if you build the container by yourself\n\n```console\n$ cd /src\n$ git clone https://github.com/gerbera/gerbera.git\n$ cd /src/gerbera\n$ docker build \\\n    --build-arg IMAGE_USER=grbr1 \\\n    --build-arg IMAGE_GROUP=grbr1 \\\n    --build-arg IMAGE_UID=1969 \\\n    --build-arg IMAGE_GID=1969 \\\n    --build-arg IMAGE_PORT=50500 \\\n    -t gerbera .\n```\n\n## BASE_IMAGE\n\nUse a different base image for container. Changing this may lead to build problems if the required packages are not available.\n\n- Default: alpine:3.20\n\n## IMAGE_USER, IMAGE_GROUP\n\nSet a different user/group name in the image to match user/group names on your host\n\n- Default: gerbera\n\n## IMAGE_UID, IMAGE_GID\n\nSet a different user/group id in the image to match user/group ids on your host\n\n- Default: 1042\n\n## IMAGE_PORT\n\nChange the port of gerbera in the image so you don't have to overwrite the port settings on startup.\n\n- Default: 49494\n","funding_links":[],"categories":["C++","javascript","Media Centre Applications","Apps","\u003ca name=\"cpp\"\u003e\u003c/a\u003eC++"],"sub_categories":["Streaming Sites","MediaManagement"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerbera%2Fgerbera","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgerbera%2Fgerbera","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerbera%2Fgerbera/lists"}