1
0
mirror of https://github.com/funkypenguin/geek-cookbook/ synced 2025-12-12 17:26:19 +00:00
Files
geek-cookbook/docs/recipes/emby.md
David Young f22dd8eb50 Add authentik, tidy up recipe-footer
Signed-off-by: David Young <davidy@funkypenguin.co.nz>
2023-10-31 14:37:29 +13:00

3.0 KiB

title, description, recipe, slug
title description recipe slug
Run Emby server with docker compose (using swarm) Kick-ass media player! Emby Emby

Emby

{% include 'try-in-elfhosted.md' %}

Emby (think "M.B." or "Media Browser") is best described as "like Plex but different" 😁 - It's a bit geekier and less polished than Plex, but it allows for more flexibility and customization.

Emby Screenshot{ loading=lazy }

I've started experimenting with Emby as an alternative to Plex, because of the advanced parental controls it offers. Based on my experimentation thus far, I have a "kid-safe" profile which automatically logs in, and only displays kid-safe content, based on ratings.

{{ page.meta.recipe }} Requirements

--8<-- "recipe-standard-ingredients.md"

Preparation

Setup data locations

We'll need a location to store Emby's library data, config files, logs and temporary transcoding space, so create /var/data/emby, and make sure it's owned by the user and group who also own your media data.

mkdir /var/data/emby

Prepare {{ page.meta.recipe }} environment

Create emby.env, and populate with PUID/GUID for the user who owns the /var/data/emby directory (above) and your actual media content (in this example, the media content is at /srv/data)

PUID=
GUID=

{{ page.meta.recipe }} Docker Swarm config

Create a docker swarm config file in docker-compose syntax (v3), something like the example below:

--8<-- "premix-cta.md"

version: "3.0"

services:
  emby:
    image: emby/emby-server
    env_file: /var/data/config/emby/emby.env
    volumes:
      - /var/data/emby/emby:/config
      - /srv/data/:/data
    deploy:
      labels:
        # traefik common
        - traefik.enable=true
        - traefik.docker.network=traefik_public

        # traefikv1
        - traefik.frontend.rule=Host:emby.example.com
        - traefik.port=8096     

        # traefikv2
        - "traefik.http.routers.emby.rule=Host(`emby.example.com`)"
        - "traefik.http.services.emby.loadbalancer.server.port=8096"
        - "traefik.enable=true"
    networks:
        - traefik_public
    ports:
      - 8096:8096

networks:
  traefik_public:
    external: true

--8<-- "reference-networks.md"

Serving

Launch Emby stack

Launch the stack by running docker stack deploy emby -c <path -to-docker-compose.yml>

Log into your new instance at https://YOUR-FQDN, and complete the wizard-based setup to complete deploying your Emby.

{% include 'recipe-footer.md' %}