This is an unofficial multi-aarch docker image of Agent DVR of iSpy created for multiplatform support. iSpy Agent DVR creates a local server for IP cameras to be managed. Official Website: https://www.ispyconnect.com
Architecture | Available | Tag | Status |
---|---|---|---|
x86-64 | ✅ | amd64-<version tag> | Tested "WORKING" |
arm64 | ✅ | arm64v8-<version tag> | Tested "WORKING" |
armhf | ✅ | arm32v7-<version tag> | Tested "WORKING" (4.8.2.0 and newer versions) |
- Please download images for Status: Tested "WORKING" platforms only.
- Alhamdulillah, The ARMHF image has been fixed. Thanks To Sean T for fixing the issues
- For ARM32-bit/ARMHF devices, please download image version greater or equal to 4.8.2.0. From now on ARMHF is TESTED-OK
This image provides various versions that are available via tags. Please read the update information carefully and exercise caution when using "older versions" tags as they tend to contain unfixed bugs.
Tag | Available | Description |
---|---|---|
latest | ✅ | "iSpy Agent DVR" Latest releases image |
5.2.4.0 | ✅ | "iSpy Agent DVR" Static version 5.2.4.0 image |
vlc-support-latest | ✅ | "iSpy Agent DVR" Latest build with VLC supported image |
vlc-support-5.2.4.0 | ✅ | "iSpy Agent DVR" Static build version 5.2.4.0 with VLC supported image |
Here are some example snippets to help you get started creating a container.
---
version: "3.9"
services:
ispyagentdvr:
image: mekayelanik/ispyagentdvr:latest
container_name: ispyagentdvr
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Dhaka
volumes:
- /path/to/config:/AgentDVR/Media/XML
- /path/to/recordings:/AgentDVR/Media/WebServerRoot/Media
- /path/to/commands:/AgentDVR/Commands
ports:
- 8090:8090
- 3478:3478/udp
- 50000-50010:50000-50010/udp
restart: unless-stopped
Note: In the case of Raspberry Pi and other low power ARM SBCs, please hit the WebUI URL atleast 30 seconds after the container deployment. A few seconds maybe required by the ARM processors to kick start the needed services. Before this time you may not get response in the web browser. Also at the first time, you may have to refresh the WebUI a couple of times for the UI to get fully loaded.
docker run -d \
--name=ispyagentdvr \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Dhaka \
-p 8090:8090 \
-p 3478:3478/udp \
-p 50000-50010:50000-50010/udp \
-v /path/to/config:/AgentDVR/Media/XML \
-v /path/to/recordings:/AgentDVR/Media/WebServerRoot/Media \
-v /path/to/commands:/AgentDVR/Commands \
--restart unless-stopped \
mekayelanik/ispyagentdvr:latest
---
version: "3.9"
services:
ispyagentdvr:
image: mekayelanik/ispyagentdvr:latest
container_name: ispyagentdvr
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Dhaka
volumes:
- /path/to/config:/AgentDVR/Media/XML
- /path/to/recordings:/AgentDVR/Media/WebServerRoot/Media
- /path/to/commands:/AgentDVR/Commands
ports:
- 8090:8090
- 3478:3478/udp
- 50000-50010:50000-50010/udp
restart: unless-stopped
hostname: ispyagentdvr
domainname: local
mac_address: AB-BC-C0-D1-E2-EF
networks:
macvlan-1:
ipv4_address: 192.168.2.12
networks:
macvlan-1:
name: macvlan-1
driver: macvlan
driver_opts:
parent: eth0
ipam:
config:
- subnet: "192.168.0.0/16"
ip_range: "192.168.2.1/24"
gateway: "192.168.1.1"
In oreder to macvlan work properly, you must map any valid MAC address to mac_address:
. Also you muat map any valid IP address in your ip_range
to ipv4_address:
.This will be your containr's IP. Then you must map your Router's Local IP Subnet to subnet:
After that you must map your Desired Local IP range within the subnet to ip_range:
Finally you must map your Router's LAN IP Address gateway:
In the case of MACVLAN, you must access the WebUI using http://ipv4_address:8090
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal>
respectively. For example, -p 8090:80
would expose port 80
from inside the container to be accessible from the host's IP on port 8090
outside the container.
Parameter | Function |
---|---|
-p 8090
|
WebUI |
-p 3478/udp
|
Main port used for TURN server communication |
-p 50000-50010//udp
|
Ports used to create connections or WebRTC. These will be used as needed |
-e PUID=1000
|
for UserID - see below for explanation |
-e PGID=1000
|
for GroupID - see below for explanation |
-e TZ=Asia/Dhaka
|
specify a timezone to use, see this list. |
-v /AgentDVR/Media/XML
|
Contains all relevant configuration files. |
-v /AgentDVR/Media/WebServerRoot/Media
|
Location of Survaillance Recordings on disk. |
-v /AgentDVR/Commands
|
Location to store desired iSpy Agent DVR Commands. |
When using volumes ( -v
flags) permissions issues can arise between the host OS and the container, One can avoid this issue by allowing you to specify the user PUID
and group PGID
.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance PUID=1000
and PGID=1000
, to find yours use id user
as below:
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
https://www.ispyconnect.com/userguide-agent-dvr.aspx
To useNon host network, you will need to open up ports for this to porperly work, thus the UDP ports listed in the sample runs.
To access WebUI go to the container's http://container's ip:8090
or http://ipv4_address:8090
Below are the instructions for updating containers:
docker compose pull
docker compose pull ispydvragent
docker compose up -d
docker compose up -d ispydvragent
docker image prune
docker pull mekayelanik/ispydvragent:latest
docker stop ispydvragent
docker rm ispydvragent
/AgentDVR/Media/XML
folder and settings will be preserved) docker image prune
Pull the latest image at its tag and replace it with the same env variables in one run:
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower\
--run-once ispydvragent
To remove the old unused images run: docker image prune
Note: You can use Watchtower as a solution to automated updates of existing Docker containers. But it is discouraged to use automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, it is recommend to use Docker Compose.
It would look something like this:
mkdir -p /ispyagentdvr/media/old && \
mv /path/to/recordings/audio /ispyagentdvr/media/old && \
mv /path/to/recordings/video /ispyagentdvr/media/old
To submit this Docker image specific issues or requests visit this docker image's Github Link: https://www.github.com/MekayelAnik/ispyagentdvr-docker
For iSpy AgentDVR related issues and requests, please visit: https://www.reddit.com/r/ispyconnect/