update readme

This commit is contained in:
David Claeys
2026-01-27 11:13:19 +01:00
parent 82635b7475
commit b963e6acef

View File

@@ -1,21 +1,19 @@
# hyperion-docker # hyperion-docker
Repository based on https://github.com/psychowood/hyperion.ng-docker This repository is based on the work of [psychowood](https://github.com/psychowood/hyperion.ng-docker) although it has suffered some modifications.
![Hyperion](https://github.com/hyperion-project/hyperion.ng/blob/master/doc/logo_dark.png?raw=true#gh-dark-mode-only) ![Hyperion](https://github.com/hyperion-project/hyperion.ng/blob/master/doc/logo_dark.png?raw=true#gh-dark-mode-only)
![Hyperion](https://github.com/hyperion-project/hyperion.ng/blob/master/doc/logo_light.png?raw=true#gh-light-mode-only) ![Hyperion](https://github.com/hyperion-project/hyperion.ng/blob/master/doc/logo_light.png?raw=true#gh-light-mode-only)
This is a simple repository containining some `docker-compose.yml` sample files useful for running [hyperiong.ng](https://github.com/hyperion-project/hyperion.ng/#readme) as a service inside a docker environment, without having to rely on one of the closed sources docker images running wild out there. This is a simple repository containining some the source files that enable you tu run [hyperiong.ng](https://github.com/hyperion-project/hyperion.ng/#readme) in a docker container.
Just copy-paste and `docker-compose up -d` it. You can choose between building the image yourself or using the image that's published in this repositoru.
The docker-compose file is quite simple: The image is quite simple:
1. It's based on the [official Debian 11 (bullseye) docker image](https://hub.docker.com/_/debian) 1. It's based on the [official Debian 12 (bookworm) docker image](https://hub.docker.com/_/debian)
2. It downloads the hyperion official package from the [official hyperion apt package repository](https://apt.hyperion-project.org/) 2. It downloads the hyperion official package from the [official hyperion apt package repository](https://apt.releases.hyperion-project.org/)
3. Maps the `/config` dirctory as an external volume, to keep your settings 3. Maps the `/config` dirctory as an external volume, to keep your settings
4. Runs hyperiond service as non-root user. Default UID:GID are 1000:1000 but they can be easily changed adding a `.env` file 4. Runs hyperiond service as non-root user. Default UID:GID are 1000:1000 but they can be easily changed through environment variables
The setup is done on first run.
Sadly, the resulting image is not exaclty slim at ~500MB, because hyperion has lots of dependencies. Since many of them are for the Desktop/Qt UI, it should be possible to slim the image up by cherry picking the ones not used but the cli service, but that's probably not really worth it. Sadly, the resulting image is not exaclty slim at ~500MB, because hyperion has lots of dependencies. Since many of them are for the Desktop/Qt UI, it should be possible to slim the image up by cherry picking the ones not used but the cli service, but that's probably not really worth it.
@@ -25,80 +23,30 @@ You have different options to run this image, after starting the container you c
### Standard configuration ### Standard configuration
Simply said: git clone the repo (or directly download the Dockerfile)
```sh
git clone https://github.com/psychowood/hyperion.ng-docker
``` ```
docker build the local image start the container with `docker compose up -d` with the following `docker-compose.yml` :
```sh
docker build -t hyperionng --no-cache .
```
if you want to run a nightly hyperionng build, run this additional build command to update the local image
```sh
docker build -t hyperionng -f Dockerfile.nightly .
```
start the container with `docker compose up -d` with the following `docker-compose.yml` file (included in the repo):
```yaml ```yaml
version: '3.3' version: '3.3'
services: services:
hyperionng: hyperionng:
image: hyperionng:latest image: git.claeyscloud.com/david/hyperion-docker
container_name: hyperionng
volumes: volumes:
- hyperionng-config:/config - /docker/hyperion:/config
ports: ports:
- "19400:19400" - "19400:19400"
- "19444:19444" - "19444:19444"
- "19445:19445" - "19445:19445"
- "8090:8090" - "8090:8090"
- "8092:8092" - "8092:8092"
Philips Hue in Entertainment mode
#- "2100:2100"
restart: unless-stopped restart: unless-stopped
volumes:
hyperionng-config:
``` ```
### Standalone configuration
This configuration (found in `docker-compose.standalone.yml`) is completely built when upping the container, it runs of debian:bullseye image and installs hyperion and dependencies at first boot. You may want to adapt the "ports" section adding other port mappings for specific cases (e.g. "2100:2100/udp" for Philips Hue in Entertainment mode).
All the main hyperion ports are mapped on your docker host.
```yaml
version: '3.3'
services:
hyperionng:
image: debian:bullseye
container_name: hyperionng
command: bash -c "groupadd -f hyperion || true &&
adduser -q --uid ${UID:-1000} --gid ${GID:-1000} --disabled-password --no-create-home hyperion || true &&
mkdir -p /config &&
chown ${UID:-1000}:${GID:-1000} /config &&
apt-get update &&
apt-get install -y wget gpg sudo libpython3.9 &&
wget -qO /tmp/hyperion.pub.key https://apt.hyperion-project.org/hyperion.pub.key &&
gpg --dearmor -o - /tmp/hyperion.pub.key > /usr/share/keyrings/hyperion.pub.gpg &&
echo \"deb [signed-by=/usr/share/keyrings/hyperion.pub.gpg] https://apt.hyperion-project.org/ bullseye main\" > /etc/apt/sources.list.d/hyperion.list &&
apt-get update &&
apt-get install -y hyperion &&
apt-get clean &&
sudo -u hyperion /usr/bin/hyperiond -v --service -u /config"
ports:
- "19400:19400"
- "19444:19444"
- "19445:19445"
- "8090:8090"
- "8092:8092"
volumes:
- hyperionng-config:/config
restart: unless-stopped
volumes:
hyperionng-config:
```
In both cases, you may want to adapt the "ports" section adding other port mappings for specific cases (e.g. "2100:2100/udp" for Philips Hue in Entertainment mode).
An alternative, especially if you need advanced functions like mDNS and SSDP services, could be running the cointainer in a macvlan network bridged to your local one. The following is an example that exposes the hyperionng container with the 192.168.1.17 IP in a local network 192.168.1.0/24 with the gateway 192.168.1.1, please adapt the configuration to your specific case. An alternative, especially if you need advanced functions like mDNS and SSDP services, could be running the cointainer in a macvlan network bridged to your local one. The following is an example that exposes the hyperionng container with the 192.168.1.17 IP in a local network 192.168.1.0/24 with the gateway 192.168.1.1, please adapt the configuration to your specific case.