{"id":20893269,"url":"https://github.com/mediabrowser/emby.build","last_synced_at":"2025-05-12T22:32:37.000Z","repository":{"id":31899904,"uuid":"35468843","full_name":"MediaBrowser/Emby.Build","owner":"MediaBrowser","description":null,"archived":false,"fork":false,"pushed_at":"2018-12-04T17:38:25.000Z","size":7629,"stargazers_count":67,"open_issues_count":5,"forks_count":36,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-01T13:11:12.937Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MediaBrowser.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}},"created_at":"2015-05-12T05:33:21.000Z","updated_at":"2025-01-03T20:54:58.000Z","dependencies_parsed_at":"2022-08-26T10:01:35.179Z","dependency_job_id":null,"html_url":"https://github.com/MediaBrowser/Emby.Build","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MediaBrowser%2FEmby.Build","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MediaBrowser%2FEmby.Build/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MediaBrowser%2FEmby.Build/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MediaBrowser%2FEmby.Build/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MediaBrowser","download_url":"https://codeload.github.com/MediaBrowser/Emby.Build/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253833366,"owners_count":21971403,"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":[],"created_at":"2024-11-18T10:15:16.196Z","updated_at":"2025-05-12T22:32:36.656Z","avatar_url":"https://github.com/MediaBrowser.png","language":"Shell","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=74S5RK533DD6C"],"categories":[],"sub_categories":[],"readme":"# Emby-Server\n![Alt text](https://i.imgur.com/MHQCm40.png \"\")\n- [Introduction](#introduction)\n  - [Supported Tags](#supported-tags)\n  - [Contributing](#contributing)\n  - [Issues](#issues)\n- [Getting started](#getting-started)\n  - [Prerequisites](#prerequisites)\n  - [Installation](#installation)\n    - [Docker Hub](#docker-hub)\n        - [Installation as current user](#installation-as-current-user)\n        - [Installation as other user](#installation-as-other-user)\n    - [GitHub](#github)\n    - [Initial Configuration](#initial-configuration)\n- [Maintenance](#maintenance)\n  - [Upgrading](#upgrading)\n  - [Automatic Upgrades](#automatic-upgrades)\n  - [Removal](#removal)\n  - [Shell Access](#shell-access)\n- [unRAID](#unraid)\n  - [Installation](#unraid-installation)\n  - [Automatic Upgrades](#unraid-automatic-upgrades)\n- [Technical Information](#technical-information)\n  - [Environment Variables](#environment-variables)\n     - [Adjusting Variables](#adjusting-variables)\n  - [Volumes](#volumes)\n- [Manual Run and Installation](#manual-run-and-installation)\n- [License](#license)\n- [Donation](#donation)\n\n\n# Introduction:\n\nEmby Server is a home media server built on top of other popular open source\ntechnologies such as Service Stack, jQuery, jQuery mobile, and Mono.\n\nIt features a REST-based API with built-in documention to facilitate client\ndevelopment. We also have client libraries for our API to enable rapid\ndevelopment.\n\nThis subfolder contains all necessary files to build a [Docker](https://www.docker.com/) image for [embyserver](https://github.com/mediabrowser/emby).\n\n## Supported Tags:\n\n#### Image - emby/embyserver\n* latest - latest stable release  \n* x86_64 - latest stable release for x86_64  \n* armv7 - latest stable release for armv7 or armhf  \n* aarch64 - latest stable release for armv8 or aarch64  \n* x86_64_${VERSION} - $VERSION stable release for x86_64  \n* armv7_${VERSION} - $VERSION stable release for armv7 or armhf  \n* aarch64_${VERSION} - $VERSION stable release for armv8 or aarch64  \n\n#### Image - emby/embyserver_beta\n* latest - latest beta release  \n* x86_64 - latest beta release for x86_64  \n* armv7 - latest beta release for armv7 or armhf  \n* aarch64 - latest beta release for armv8 or aarch64  \n* x86_64_${VERSION} - $VERSION beta release for x86_64  \n* armv7_${VERSION} - $VERSION beta release for armv7 or armhf  \n* aarch64_${VERSION} - $VERSION beta release for armv8 or aarch64  \n\n## Contributing:\n\n1. Fork it!\n2. Create your feature branch: `git checkout -b my-new-feature`\n3. Commit your changes: `git commit -am 'Add some feature'`\n4. Push to the branch: `git push origin my-new-feature`\n5. Submit a pull request :D\n\n## Issues:\n\nBefore reporting your issue please try updating Docker to the latest version\nand check if it resolves the issue. Refer to the Docker [installation guide](https://docs.docker.com/installation) for instructions.\n\nSELinux users should try disabling SELinux using the command `setenforce 0` to see if it resolves the issue.\n\nIf the above recommendations do not help then [report your issue](../../issues/new) along with the following information:\n\n- Output of the `docker version` and `docker info` commands\n- The `docker run` command or `docker-compose.yml` used to start the image. Mask out the sensitive bits.\n- Please state if you are using [Boot2Docker](http://www.boot2docker.io), [VirtualBox](https://www.virtualbox.org), etc.\n\n\n# Getting started:\n\n## Installation:\n\n### [Docker Hub](https://hub.docker.com/r/emby/embyserver/):\nIt is recommended you install directly from the [Docker Hub](https://hub.docker.com/r/emby/embyserver/).\n\nThe installation process and scripts are very versatile and can be adjusted by\npassing the right combination of variables and arguments to each of the\ncommands.\n\nThe following examples should cover most scenarios, in each, a wrapper script\nwill be installed on the host that should ease creation and management of the\ncontainerized application. When executing the script it will create a container\nnamed `embyserver`. Additionally, the script will ensure that this container gets\nsetup with the appropriate environment variables and volumes each time it is\nexecuted.\n\n#### Installation as current user:\nStart the installation by issuing the following command from within a terminal:\n```sh\ndocker run -it --rm -v /usr/local/bin:/target \\\n    emby/embyserver instl\n```\n\nOptionally, you can also install a systemd service file by executing:\n```sh\ndocker run -it --rm -v /etc/systemd/system:/target  \\\n    emby/embyserver instl service\n```\n\nTo enable the systemd service for `embyserver` execute the following:\n```sh\nsudo systemctl enable embyserver@${USERNAME}\n```\n\n#### Installation as other user:\nIn the following instructions adjust each command replacing `username` with the\nname of the user you wish to install and run the container as.\n\nTo install the application execute and, again, adjust the command replacing\n`username` accordingly.\n```sh\ndocker run -it --rm -v /usr/local/bin:/target \\\n    -e \"APP_USER=username\" \\\n    emby/embyserver instl\n```\n\nNote, if the user is a system account, the command will need further\nadjustment. This is because by default the script stores settings and\nconfiguration in a hidden folder within the executing user's home directory.\nThis can be overridden by passing the appropriate environment variable\n(`APP_CONFIG`) to the `instl` script, such as in the example below:\n```sh\ndocker run -it --rm -v /usr/local/bin:/target \\\n    -e \"APP_USER=username\" \\\n    -e \"APP_CONFIG=/var/lib/embyserver\" \\\n    emby/embyserver instl\n```\n\nOptionally, proceed to installing the systemd service:\n```sh\ndocker run -it --rm -v /etc/systemd/system:/target \\\n   emby/embyserver instl service\n```\n\nAdditionally, you can enable the service on boot by executing:\n```sh\nsudo systemctl enable embyserver@username.service\n```\n\n### [GitHub](https://github.com/MediaBrowser/Emby.Build):\nInstallation from GitHub is recommended only for the purposes of\ntroubleshooting and development. To install from GitHub execute the\nfollowing:\n```sh\ngit clone https://github.com/MediaBrowser/Emby.Build\ncd docker-containers/stable\nmake instl\n```\n\nAdditionally, you can install the systemd service file after executing the\nabove by issuing the following:\n```sh\nmake service\n```\n\n### Initial Configuration:\n\nOnce the embyserver wrapper script for docker has been installed you just need to\nexecute the wrapper script from within a terminal:\n```sh\nemby-server\n```\nOn the first run the wrapper script will prompt for system paths that\nyou wish made accessible from within the container. Enter one path per line.\n\n#### Adding more volumes after first run:\nVolumes which should be mounted within the container at runtime are kept in the\nvolume configuration file found under the `APP_CONFIG` folder on the host. The\nlocation will vary depending on the type of installation.\n\nIf the wrapper script was installed as the executing user the volume\nconfiguration file can be found at:\n`${HOME}/.embyserver/.embyserver.volumes`\nOtherwise at:\n`${APP_CONFIG}/.embyserver.volumes`\n\n# Maintenance:\n\n## Upgrading:\n\nYou can upgrade the version of embyserver found within the container by executing\none of the following commands:\n```sh\nemby-server update\n```\n\nOr by executing:\n```sh\ndocker exec emby-server update\n```\n\nYou can update the container itself by executing:\n```sh\ndocker pull emby/embyserver\ndocker stop emby-server\nemby-server\n```\n\nIf you wish the docker container to automatically update upon creation, set the\nenvironment variable `EDGE` to `1`. Please read the `Technical Details` section\nfor the various ways this can be achieved.\n\n## Automatic Upgrades:\n\nIn order to have the container periodically check and upgrade the embyserver binary\none needs to add  a [`crontab`](https://en.wikipedia.org/wiki/Cron) entry. Like\nso, please keep in mind the command might need to be updated to reflect the\ncontainer name:\n```\necho \"0 2 * * * docker exec emby-server update\" | sudo tee -a /var/spool/cron/crontabs/root\n```\nor\n```\necho \"0 2 * * * docker exec EmbyServer update\" | sudo tee -a /var/spool/cron/crontabs/root\n```\nor\n```\necho \"0 2 * * * docker exec EmbyServerBeta update\" | sudo tee -a /var/spool/cron/crontabs/root\n```\nor\n```\necho \"0 2 * * * emby-server update\" | sudo tee -a /var/spool/cron/crontabs/root\n```\n\n## Removal:\n\n```bash\ndocker run -it --rm \\\n  --volume /usr/local/bin:/target \\\n  emby/embyserver uninstl\n```\n\n## Shell Access:\n\nFor debugging and maintenance purposes you may want access the containers\nshell. If you are using Docker version `1.3.0` or higher you can access\na running containers shell by starting `bash` using `docker exec`:\n\n```sh\nemby-server console\n```\n\n## Logs:\n```sh\nemby-server logs\n```\n\n## Status of service within container:\n```sh\nemby-server status\n```\n\n\n# unRAID:\n\nYou can find the template for this container on GitHub. Located [here](https://github.com/hurricanehrndz/container-templates/tree/master/unraid-templates/emby).\n\n## unRAID Installation:\n\nPlease navigate to the Docker settings page on unRAID's Web-UI and under repositories add:\n```\nhttps://github.com/MediaBrowser/Emby.Build/tree/master/unraid-templates/emby\n```\nFor more information on adding templates to unRAID please visit the [unRAID forums](https://lime-technology.com/forum/).\n\n## unRAID Automatic Upgrades:\n\nOn unRAID, execute the following to have the container periodically update\nitself. Additionally, add the same line of code to your `go` file to make the\nchange persistent.\n```sh\necho \"0 2 * * * docker exec emby-server update\" | sudo tee -a /var/spool/cron/crontabs/root\n```\n\n\n# Technical information:\n\nBy default the containerized application has been set to run with UID and GID\n`1000`. If using the automatic install method from Docker, the container is set\nto run with the UID and GID of of the user executing the `embyserver` wrapper\nscript.  Additionally, the wrapper script saves embyserver's configuration and\nsettings in a hidden sub folder in the executing user's home directory. Most\ndefault settings can be adjusted by passing the appropriate environment\nvariable. Here is a list of any and all applicable environment variables that\ncan be override by the end user.\n\n## Environment Variables:\n\nYou can adjust some of the default settings set for container/application by\npassing any or all of the following environment variable:  \n\n| ENV VAR      | Definition                                                                     |\n| ------------ | ------------------------------------------------------------------------------ |\n| APP_USER     | Name of user the service will run as.\\[4\\]                                     |\n| APP_UID      | UID assigned to APP_USER upon creation, or will query APP_USER's ID.\\[3\\]      |\n| APP_GID      | GID assigned to APP_USER upon creation, or will query APP_USER's GID.\\[3\\]     |\n| APP_CONFIG   | Location where application will store settings and database on host.\\[1\\]      |\n| APP_GCONFIG  | Location where application will store settings and database within guest.\\[4\\] |\n| UMASK        | umask assigned to service, default set to 002.\\[4\\]                            |\n| EDGE         | Update the containerized service, default set to 0(Off).\\[4\\]                  |\n\n\\[1\\]: Variable is applicable only during install.  \n\\[2\\]: Variable is applicable during install, when invoking installed wrapper script or systemd service.  \n\\[3\\]: Variable is applicable only when invoking docker run directly.  \n\\[4\\]: Variable is applicable in all scenarios.  \n\n### Adjusting Variables:\n\nIn order to pass any of the applicable variables during install or when\ninvoking `docker run` directly  please read Docker's documentation on [environment variables](https://docs.docker.com/engine/reference/run/#env-environment-variables) for clarification if the following examples are not clear.\n\nIn the following examples will use the environment variable `EDGE`. `EDGE` has\nbeen chosen since it is applicable during all scenarios.\n\nTo pass the `EDGE` variable will invoking `docker run` append the following\nprior to the image name. Any and all other applicable variables can be done in\nthe same manner.\n```sh\n--env=EDGE=1\n```\n\nTo pass the environment variable during the other scenarios do so like in one\nof the examples below:\n\nFrom the commandline when calling the wrapper script:\n```\nEDGE=1 emby-server\n```\n\nBy adjusting the systemd service:\n```ini\n[Service]\nType=simple\nEnvironment=EDGE=1\n...\n```\n\n## Volumes:\n\n* `/config`  - Folder for configuration and settings.\n\n\n# Manual Run and Installation:\n\nOf course you can always run the docker image manually. Please be aware that if\nyou wish your data to remain persistent you need to provide a location for the\n`/config` volume. For example,\n```\ndocker run -d --net=host -v /*your_config_location*:/config \\\n                         -e TZ=America/Edmonton\n                         --name=emby-server emby/embyserver\n```\nAll the information mention previously regarding user UID and GID still applies\nwhen executing a docker run command.\n\n\n# License:\n\nCode released under the [MIT license](./LICENSE).\n\n\n# Donation:\n\n[@hurricanehrndz](https://github.com/hurricanehrndz): [![PayPal](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=74S5RK533DD6C)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmediabrowser%2Femby.build","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmediabrowser%2Femby.build","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmediabrowser%2Femby.build/lists"}