MekayelAnik / ispyagentdvr-docker

Multi Aarch image of iSpy's Agent DVR, standalone free-to-use NVR software for IP Camera management
https://hub.docker.com/r/mekayelanik/ispyagentdvr
GNU General Public License v3.0
22 stars 11 forks source link
docker-image

iSpy Agent DVR multi-arch image

ispyagentdvr

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

Docker PullsDocker Stars

The architectures supported by this image are:

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)

Anouncements:

- 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

Version Tags

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

Running Image :

Here are some example snippets to help you get started creating a container.

docker-compose (recommended, click here for more info)

---
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 cli ( click here for more info)

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

If anyone wishes to give dedicated Local IP to iSpy Agent DVR container using MACVLAN ( click here for more info)

---
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

Parameters

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.

User / Group Identifiers

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)

For iSpy Agent DVR specific userguide visit:

https://www.ispyconnect.com/userguide-agent-dvr.aspx

Non host network use:

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

Updating Info

Below are the instructions for updating containers:

Via Docker Compose (recommended)

Via Docker Run

Via Watchtower auto-updater (only use if you don't remember the original parameters)

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.

Image Update Notifications - Diun (Docker Image Update Notifier)

Migration Notes:

If you had the old format of audio and video volumes please move them within the new media folder before starting the container again.

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

Versions

Issues & Requests

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/