This repository has been archived on 2024-03-03. You can view files and clone it, but cannot push or open issues or pull requests.
Files
unifi-cam-proxy/docs/docs/intro.md
Liam e8f72ea949
Some checks failed
📚 Deploy Documentation / deploy (push) Has been cancelled
bob
2024-03-02 11:37:04 +00:00

104 lines
3.1 KiB
Markdown

---
slug: /
sidebar_position: 1
---
# Installation
## Prerequisites
### Certificate
Generate a certificate by performing one of the following:
1. If you have a UniFi camera:
```sh
scp ubnt@<your-unifi-cam>:/var/etc/persistent/server.pem client.pem
```
2. Create your own client certificate via:
```sh
openssl ecparam -out /tmp/private.key -name prime256v1 -genkey -noout
openssl req -new -sha256 -key /tmp/private.key -out /tmp/server.csr -subj "/C=TW/L=Taipei/O=Ubiquiti Networks Inc./OU=devint/CN=camera.ubnt.dev/emailAddress=support@ubnt.com"
openssl x509 -req -sha256 -days 36500 -in /tmp/server.csr -signkey /tmp/private.key -out /tmp/public.key
cat /tmp/private.key /tmp/public.key > client.pem
rm -f /tmp/private.key /tmp/public.key /tmp/server.csr
```
### Adoption Token
In order to add a camera to Protect, you must first generate an adoption token.
The token is only valid for 60 minutes.
You will need to re-generate a new one if it expires during your initial setup.
Open https://{NVR IP}/proxy/protect/api/cameras/manage-payload and copy the token field.
## Docker
Using Docker is the recommended installation method.
The sample docker-compose file below is the recommended deployment for most users.
Note, the generated certificate must be in the same directory as the `docker-compose.yaml` file.
```yaml
version: "3.9"
services:
unifi-cam-proxy:
restart: unless-stopped
image: keshavdv/unifi-cam-proxy
volumes:
- "./client.pem:/client.pem"
command: unifi-cam-proxy --host {NVR IP} --cert /client.pem --token {Adoption token} rtsp -s rtsp://192.168.201.15:8554/cam'
```
### Multiple cameras
To use multiple cameras, start an instance of the proxy for each, with a unique MAC address argument.
Using docker-compose, your setup might look like the following:
***Note: This conforms to MAC randomization rules, so should not cause issues with real devices.***
***See here for more details: <https://www.mist.com/get-to-know-mac-address-randomization-in-2020/>***
```yaml
version: "3.5"
services:
proxy-1:
restart: unless-stopped
image: keshavdv/unifi-cam-proxy
volumes:
- "./client.pem:/client.pem"
command: >-
unifi-cam-proxy
--host {NVR IP}
--mac 'AA:BB:CC:00:11:22'
--cert /client.pem
--token {Adoption token}
rtsp -s rtsp://192.168.201.15:8554/cam
proxy-2:
restart: unless-stopped
image: keshavdv/unifi-cam-proxy
volumes:
- "./client.pem:/client.pem"
command: >-
unifi-cam-proxy
--host {NVR IP}
--mac 'AA:BB:CC:33:44:55'
--cert /client.pem
--token {Adoption token}
rtsp -s rtsp://192.168.201.15:8554/cam
```
## Bare Metal
If you cannot use Docker, you may install the proxy on most Linux distros, but support is not guaranteed.
Find instructions for your distro below:
### Ubuntu/Debian
```sh
apt install ffmpeg netcat python3 python3-pip
pip3 install unifi-cam-proxy
unifi-cam-proxy --host {NVR IP} --cert /client.pem --token {Adoption token} rtsp -s rtsp://192.168.201.15:8554/cam'
```