Files
hyperion-docker/README.md
2026-02-06 13:07:48 +01:00

92 lines
3.2 KiB
Markdown

# hyperion-docker
![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 containing 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 repository.
This repository initially was based on the work of [psychowood](https://github.com/psychowood/hyperion.ng-docker).
Upon putting further thought into it seemed necesasary to use a custom build instead of the official deb packages.
The image has the following characteristics:
1. It's based on the [official Debian 13 (trixie) docker image](https://hub.docker.com/_/debian)
2. It includes a custom build of hyperion designed to take away uncecesarry dependencies
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
### 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
```