This repo is archived. It is no longer being maintained and it may longer work with modern versions of the arrow-client.
AngelCam is service that allows you to access your cameras from the cloud with features like cloud recording.
The Arrow client provides a secure connection between AngelCam and your network, rather than needing to make your camera web facing. AngelCam sells the AngelBox, a Raspberry Pi that can perform this task on your home network. However, advanced users can use the Arrow client directly on their existing equipment.
This Docker image makes it easy to setup and run the Arrow client, independant of your computer's operating system.
For more information, see my blog post, Accessing an IP Camera Over the Internet.
Use docker build -t jordancrawford/arrow-client .
.
Make a directory for your Arrow configuration. This is worth retaining as the ID will need to remain consistant between attempts.
docker run --mac-address=[MAC address] -v [path to config]:/arrow-config -d --name arrow --env RTSP_CAMERAS=[...] --env MJPEG_CAMERAS=[...] --env HTTP_CAMERAS=[...] --env TCP_CAMERAS=[...] jordancrawford/arrow-client
A MAC address identifies physical equipment on a network. Because Docker uses virtual machines, a random MAC address is given to a container when it starts. AngelCam identifies your Arrow client with a MAC address so this should stay constant for your configuration files.
Generate a MAC address using a tool like the MAC Address Generator, then include the MAC address in the Docker run command.
The Arrow client must be verified by showing a QR code to the camera. To avoid having to repeat this process, you'll want to keep your configuration file stored somewhere constant. The configuration folder (/arrow-config
) is a volume in the image, but it is recommended that you map this to a location on your filesystem.
To manually add cameras, fill in the RTSP_CAMERAS
, MJPEG_CAMERAS
, HTTP_CAMERAS
and TCP_CAMERAS
environment variables. Use comma separated values to include more than one camera.
For example, if you have an RTSP camera at rtsp://192.168.1.20/stream
use:
docker run --mac-address=[MAC address] -v [path to config]:/arrow-config -d --name arrow --env RTSP_CAMERAS=rtsp://192.168.1.20/stream jordancrawford/arrow-client
For multiple cameras, e.g.: rtsp://192.168.1.20/stream
and rtsp://192.168.1.21/stream
, use the RTSP_CAMERAS
value of rtsp://192.168.1.20/stream,rtsp://192.168.1.21/stream
.
Please refer to the Arrow client quick start guide.
If you want to use the Arrow client with multiple cameras, you may encounter an issue with the AngelCam website where you aren't given the option to pair two cameras. This is a known issue that they are working on, and the solution is to request an AngelBox ID from their support team with your Arrow client UUID (can obtain this from the config JSON file that gets created). See more about this issue.