update readme
This commit is contained in:
78
README.md
78
README.md
@@ -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.
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user