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
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_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.
Just copy-paste and `docker-compose up -d` it.
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.
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)
2. It downloads the hyperion official package from the [official hyperion apt package repository](https://apt.hyperion-project.org/)
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.releases.hyperion-project.org/)
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
The setup is done on first run.
4. Runs hyperiond service as non-root user. Default UID:GID are 1000:1000 but they can be easily changed through environment variables
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
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
```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):
start the container with `docker compose up -d` with the following `docker-compose.yml` :
```yaml
version: '3.3'
services:
hyperionng:
image: hyperionng:latest
container_name: hyperionng
image: git.claeyscloud.com/david/hyperion-docker
volumes:
- hyperionng-config:/config
- /docker/hyperion:/config
ports:
- "19400:19400"
- "19444:19444"
- "19445:19445"
- "8090:8090"
- "8092:8092"
Philips Hue in Entertainment mode
#- "2100:2100"
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.
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).
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.