## Description ## An iSpy (DVR) server resource for running it on RockyLinux 9.x ## Installation ##
To setup your iSpy/DVR server start out with a fresh RockyLinux 9.x server/vps/LXC - i use a ProxMox (https://www.proxmox.com/en/proxmox-ve) LXC, and will assumes that your server has: * (atleast) 4Gb of memory available.
* If you have firewall running enable Default HTTP(80),STUN(3478 both TCP/UDP) and 50000-50010 (both TCP/UDP) for sessions open in firewall.
* SSH acccess to the box -> by default the ProxMox RockyLinux 9.x template does not have openssh-server package installed, so manually add it.
* Best practice would be to have an additional disk (or mountpoint) for storing your recordings. (to avoid filling up your system-disk)
Out of scope: * reverse proxy with SSL in front of iSpy/DVR to make it available on default HTTPS port.(these capabillities are licenced options).

###### Install/Enable additional repositories (epel) and packages. ``` dnf install epel-release dnf makecache dnf install wget nano nginx unzip tar xz ``` ###### Setup nginx directories for multisite as it makes it more versatile, reference: [https://docs.rockylinux.org/guides/web/nginx-multisite/](https://docs.rockylinux.org/guides/web/nginx-multisite/) ###### Create a nginx configuration-file for the DVR resource in /etc/nginx/sites-available/ with the following content. ``` server { listen 80; server_name your.server.name.sometld; location / { proxy_pass http://localhost:8090; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` ###### Enable the above configuration to be loaded on nginx startup ``` ln -s /etc/nginx/sites-available/your_configfile.conf /etc/nginx/sites-enabled/ ``` ###### Download and execute the dvr Agent installation, and set it as system service. (this also creates the AgentDVR directory) ``` cd /opt bash <(curl -s "https://raw.githubusercontent.com/ispysoftware/agent-install-scripts/main/v2/install.sh") # lots of packages are going to be installed - skipping this in output. To run Agent either call ./Agent from the terminal or install it as a system service. Setup AgentDVR as system service (y/n)? y ``` ###### Setup ffmpeg6 directory manually (i never got a good result with DVR installer, just an empty directory) ``` cd /opt/AgentDVR mkdir ffmpeg6 wget -O ffmpeg.tar.xz https://ispyrtcdata.blob.core.windows.net/downloads/ffmpeg6-linuxx64.tar.xz tar -xvf ffmpeg.tar.xz --strip-components=1 -C ffmpeg6 ``` ###### Start and enable the AgentDVR service ``` systemctl enable AgentDVR --now ``` At this point the AgentDVR shoult be running on port 8090, you can check this with the command below, or just point a browser to http://yourserver:8090 , assuming you have allowed this port in the firewall. ``` ss -at '( dport = :8090 or sport = :8090 )' # result should be similar to below State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 500 0.0.0.0:opsmessaging 0.0.0.0:* ``` ###### Start nginx to make the application available on the default HTTP port. ``` systemctl enable nginx --now ``` **You now have a basic working iSpy/AgentDVR installation accessible via http://yourserver** (if you had opened up port 8090 close it, as it should not be used to access your server)