98 lines
3.7 KiB
Markdown
98 lines
3.7 KiB
Markdown
# hyperion-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 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 image is quite simple:
|
|
|
|
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 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.
|
|
|
|
On the other hand, the running service does not need lots of RAM (on my system takes ~64MB without the cache).
|
|
|
|
You have different options to run this image, after starting the container you can reach the web ui going either to http://youdockerhost:8090 or https://youdockerhost:8092
|
|
|
|
### Standard configuration
|
|
|
|
|
|
```
|
|
start the container with `docker compose up -d` with the following `docker-compose.yml` :
|
|
```yaml
|
|
version: '3.3'
|
|
|
|
services:
|
|
hyperionng:
|
|
image: git.claeyscloud.com/david/hyperion-docker
|
|
volumes:
|
|
- /docker/hyperion:/config
|
|
ports:
|
|
- "19400:19400"
|
|
- "19444:19444"
|
|
- "19445:19445"
|
|
- "8090:8090"
|
|
- "8092:8092"
|
|
Philips Hue in Entertainment mode
|
|
#- "2100:2100"
|
|
restart: unless-stopped
|
|
```
|
|
|
|
|
|
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.
|
|
|
|
```yaml
|
|
version: '3.3'
|
|
|
|
services:
|
|
hyperionng:
|
|
image: hyperionng:latest
|
|
container_name: hyperionng
|
|
volumes:
|
|
- hyperionng-config:/config
|
|
networks:
|
|
mylannet:
|
|
ipv4_address: 192.168.1.17
|
|
restart: unless-stopped
|
|
volumes:
|
|
hyperionng-config:
|
|
# define networks
|
|
networks:
|
|
mylannet:
|
|
name: mylannet
|
|
driver: macvlan
|
|
driver_opts:
|
|
parent: eth0
|
|
ipam:
|
|
config:
|
|
- subnet: 192.168.1.0/24
|
|
gateway: 192.168.1.1
|
|
ip_range: 192.168.1.64/26
|
|
```
|
|
|
|
Moreover, if you want to use some hardware devices (USB. serial, video, and so on), you need to passthrough the correct one adding a devices section in the compose file (the following is jut an example):
|
|
|
|
```yaml
|
|
devices:
|
|
- /dev/ttyACM0:/dev/ttyACM0
|
|
- /dev/video1:/dev/video1
|
|
- /dev/ttyUSB1:/dev/ttyUSB0
|
|
- /dev/spidev0.0:/dev/spidev0.0
|
|
```
|
|
|
|
If you want to use different UID and GID, you can add a `.env` file in the same folder of your `docker-compose.yml` file:
|
|
|
|
```properties
|
|
UID=1100
|
|
GID=1100
|
|
```
|