Switch back to cross-build (#10)
If you do not wish to cross build on your local, you can comment out the cross-build lines and run. Hacky way of making it easy to run on ARM Just prefix any make command with 'arm'. Eg. `make arm shell'. Don't commit the modified Makefile. Update Readme
|2 years ago|
|.gitignore||3 years ago|
|Dockerfile||2 years ago|
|LICENSE||3 years ago|
|Makefile||2 years ago|
|README.md||2 years ago|
|config-sample.json||3 years ago|
|docker-compose.yaml||3 years ago|
|npm-shrinkwrap.json||2 years ago|
|package.json||2 years ago|
|plugins-sample.txt||3 years ago|
|start.sh||2 years ago|
Docker image for running Homebridge on a Raspberry Pi
Here is what the author has to say about Homebridge:
Homebridge is a lightweight NodeJS server you can run on your home network that emulates the iOS HomeKit API. It supports Plugins, which are community-contributed modules that provide a basic bridge from HomeKit to various 3rd-party APIs provided by manufacturers of “smart home” devices.
This project is just a Docker container that makes it easy to deploy Homebridge on your Raspberry Pi.
There are two files that need to be provided in order for Homebridge to run.
config.json: For a quick start, you can copy
config-sample.jsonand modify it to your needs. For detailed explanation of this file, check out the documentation provided by Homebridge
plugins.txt: in order to do anything, Homebridge needs to install plugins for your accessories and platforms. You can list them here with each npm package on a new line. See
plugins-sample.txtfor an example and, again, check out the documentation provided by Homebridge for more details.
This image is hosted on Docker Hub tagged as vividboarder/rpi-homebridge, so you can feel free to use the
docker-compose.yaml and change
build: . to
image: vividboarder/rpi-homebridge. After that,
docker-compose up should get you started.
Alternately, you can compile the image yourself by cloning this repo and using
If you want a little more control, you can use any of the make targets:
make build # builds a new image make run # builds and runs container using same parameters as compose make shell # builds and runs an interractive container make tag # tags image to be pushed to docker hub make push # pushes image to docker hub make unshrinkwrap # clears npm-shrinkwrap.json so the next build will use latest make shrinkwrap # generates npm-shrinkwrap.json to pin versions make arm # modifies Dockerfile for building against arm
This project is capable of being compiled on arm or cross-built on an x86 machine. There is some trickiness involved in this, so here's the description broken down by platform. High level, the
cross-build-start cannot be present when building on arm. When running the built image, a non-arm system needs to have
qemu-arm-static mounted as a volume. The
Makefile tries to automate this a bit.
The default is to support building on Docker Hub and not a Raspberry Pi. Unfortunately,
cross-build-start will fail to run on an arm machine.
To build or shrinkwrap, just add
arm to your make command. Eg.
make arm build shrinkwrap. This will modify the
Dockerfile to comment out the cross-build commands. If contributing changes back upstream, do not commit this change!
Building can be done by directly running
make build. If you want to run image, you need to install
qemu qemu-user qemu-user-static. After that you should be able to run
make shrinkwrap or make shell.
Docker for Mac actually supports running arm binaries. So that's cool! To make things simple, you should follow the arm instructions.
Follow the instructions above for how to run on your architechture. Also, be sure to not commit commented out
cross-build-* lines as those are necessary for Docker Hub to build.
This is most easily done by updating
package.json and then running
make unshrinkwrap shrinkwrap. That should force a reinstallation of all node packages and then provide you with an updated
npm-shrinkwrap.json file to commit.
Feel free to report any issues you're having getting this to run on Github