add balena deployment (app + block)

This commit is contained in:
Cedric Verstraeten
2023-06-25 20:03:37 +02:00
parent bdc0039a24
commit 8be0a04502
6 changed files with 229 additions and 1 deletions

View File

@@ -0,0 +1,44 @@
# Deployment with Balena
If you're looking for a way to quickly and easily get up and running with an Kerberos Agent for your home network, this is the project for you.
This project is a [balenaCloud](https://www.balena.io/cloud) stack with the following services:
- [Kerberos Agent](https://github.com/kerberos-io/agent) is a cutting edge video surveillance management system made available as Open Source under the MIT License.
- [RTSP simple server](https://github.com/kerberos-io/rtsp-simple-server) a proxy that translates a USB camera and RPi camera to a RTSP h264 stream. The stream can then be connected to Kerberos Agent with `rtsp://kerberos.local:8554/usbcam` or `rtsp://kerberos.local:8554/rpicam`.
balenaCloud is a free service to remotely manage and update your IoT devices through an online dashboard interface, as well as providing remote access to the Kerberos Agent web interface without any additional configuation.
## Getting Started
You can one-click-deploy this project to balena using the button below:
[![deploy with balena](https://balena.io/deploy.svg)](https://dashboard.balena-cloud.com/deploy?repoUrl=https://github.com/kerberos-io/agent/tree/master/deployments/balena/app)
## Manual Deployment
Alternatively, deployment can be carried out by manually creating a [balenaCloud account](https://dashboard.balena-cloud.com) and application,
flashing a device, downloading the project and pushing it via the [balena CLI](https://github.com/balena-io/balena-cli).
### Application Environment Variables
Application environment variables apply to all services within the application, and can be applied fleet-wide to apply to multiple devices.
| Name | Description |
| -------------- | ------------------------------------------------------------------------ |
| `SET_HOSTNAME` | Set a custom hostname on application start. Default is `kerberos-agent`. |
## Usage
### Initial setup
Once your device joins the fleet you'll need to allow some time for it to download the application.
On your router or DHCP server assign a static IP to your AdGuard Home device.
1. Connect to `http://YOUR-DEVICE-IP` or depending on the hostname `http://kerberos-agent.local` in your browser
2. Sign-in with the default username and password `root`, `root`.
3. Go to the configuration page and fill-in the RTSP url of your IPCamera or if using a USB or Raspberry Pi camera the proxy url as mentioned above.
4. Press save, and the Kerberos Agent will connect to your camera.
Documentation for the Kerberos Agent and other services can be found at https://doc.kerberos.io/

View File

@@ -0,0 +1,56 @@
name: video-surveillance
description: >-
Kerberos Agent is a cutting edge video surveillance management system
made available as Open Source under the MIT License
version: 3.0.0
type: sw.application
assets:
repository:
type: blob.asset
data:
url: 'https://github.com/kerberos-io/agent'
logo:
type: blob.asset
data:
url: >-
https://raw.githubusercontent.com/kerberos-io/balena-agent/master/logo.png
data:
defaultDeviceType: raspberrypi3
supportedDeviceTypes:
- raspberrypi4-64
- fincm3
- raspberrypi3
- raspberrypi3-64
- raspberrypi400-64
- intel-nuc
- genericx86-64-ext
post-provisioning: >-
Kerberos.io is a cutting edge video surveillance system with a strong focus on user experience, scalability, resilience, extension and integration. Kerberos.io provides different solutions, but from a high level point of view it comes into two flavours: Kerberos Agent and Kerberos Enterprise Suite. Bottom line Kerberos Enterprise Suite extends Kerberos Agent with additional components such as Kerberos Factory, Kerberos Vault and Kerberos Hub.
### Kerberos Agent
- Installation in seconds (Docker, Balena, Snap, etc).
- Simplified and modern user interface.
- Multi architecture (ARMv7, ARMv8, amd64, etc).
- Multi camera support: IP Cameras (MJPEG/H264), USB cameras and Raspberry Pi Cameras through a RTSP proxy.
- Single camera per instance (e.g. One Docker container per camera).
- Integrations (Webhooks, MQTT, Script, etc).
- Cloud storage (Kerberos Hub, Kerberos Vault, Minio, Storj, etc).
- MIT License
### Kerberos Factory (part of [Kerberos Enterprise suite](https://doc.kerberos.io/enterprise/first-things-first/))
- Installation on top of Kubernetes (K8S).
- Camera support for IP camera only (RTSP/H264).
- Massive horizontal scaling, thanks to Kubernetes.
- Management of multiple Kerberos Agents through a single pane of glass.
- Low memory and CPU intensive.
- Modular and extensible design for building own extensions and integrations (e.g. a video analytics platform).
- Commercial licensed and closed source.
## How it works: A world of Agents 🕵🏼‍♂️
Kerberos.io applies the concept of agents. An agent is running next to or on your camera, and is processing a single camera feed. It applies motion based recording and make those recordings available through a user friendly web interface. Kerberos Agent allows you to connect to other cloud services or custom applications. Kerberos Agent is perfect for personal usage and/or is a great tool if you only have a couple of surveillance cameras to be processed.
If you are looking for a solution that scales better with your video surveillance and/or video analytics requirements, [Kerberos Enterprise Suite might be a better fit](https://doc.kerberos.io/enterprise/first-things-first).

View File

@@ -0,0 +1,35 @@
version: '2.1'
volumes:
kerberosagent_recordings:
kerberosagent_snapshots:
kerberosagent_config:
services:
# https://github.com/kerberos/agent
agent:
image: kerberos/agent:756b893
network_mode: host
tty: true
restart: always
volumes:
- 'kerberosagent_recordings:/home/agent/data/recordings:rw'
- 'kerberosagent_snapshots:/home/agent/data/snapshots:rw'
- 'kerberosagent_config:/home/agent/data/config:rw'
# https://github.com/kerberos/rtsp-simple-server
#rtsp-simple-server:
# build: ./rtsp-simple-server
# network_mode: host
# privileged: true
# restart: always
# https://github.com/balenablocks/hostname
hostname:
image: balenablocks/hostname:latest
restart: no
labels:
io.balena.features.supervisor-api: 1
environment:
SET_HOSTNAME: kerberos-agent

View File

@@ -0,0 +1,58 @@
name: agent
description: >-
Kerberos Agent is a cutting edge video surveillance management system
made available as Open Source under the MIT License
version: 3.0.0
type: sw.block
assets:
repository:
type: blob.asset
data:
url: 'https://github.com/kerberos-io/agent'
logo:
type: blob.asset
data:
url: >-
https://raw.githubusercontent.com/kerberos-io/balena-agent/master/logo.png
data:
defaultDeviceType: raspberrypi3
supportedDeviceTypes:
- raspberrypi4-64
- fincm3
- raspberrypi3
- raspberrypi3-64
- raspberrypi400-64
- intel-nuc
- genericx86-64-ext
post-provisioning: >-
## Introduction
Kerberos.io is a cutting edge video surveillance system with a strong focus on user experience, scalability, resilience, extension and integration. Kerberos.io provides different solutions, but from a high level point of view it comes into two flavours: Kerberos Agent and Kerberos Enterprise Suite. Bottom line Kerberos Enterprise Suite extends Kerberos Agent with additional components such as Kerberos Factory, Kerberos Vault and Kerberos Hub.
### Kerberos Agent
- Installation in seconds (Docker, Balena, Snap, etc).
- Simplified and modern user interface.
- Multi architecture (ARMv7, ARMv8, amd64, etc).
- Multi camera support: IP Cameras (MJPEG/H264), USB cameras and Raspberry Pi Cameras through a RTSP proxy.
- Single camera per instance (e.g. One Docker container per camera).
- Integrations (Webhooks, MQTT, Script, etc).
- Cloud storage (Kerberos Hub, Kerberos Vault, Minio, Storj, etc).
- MIT License
### Kerberos Factory (part of [Kerberos Enterprise suite](https://doc.kerberos.io/enterprise/first-things-first/))
- Installation on top of Kubernetes (K8S).
- Camera support for IP camera only (RTSP/H264).
- Massive horizontal scaling, thanks to Kubernetes.
- Management of multiple Kerberos Agents through a single pane of glass.
- Low memory and CPU intensive.
- Modular and extensible design for building own extensions and integrations (e.g. a video analytics platform).
- Commercial licensed and closed source.
## How it works: A world of Agents 🕵🏼‍♂️
Kerberos.io applies the concept of agents. An agent is running next to or on your camera, and is processing a single camera feed. It applies motion based recording and make those recordings available through a user friendly web interface. Kerberos Agent allows you to connect to other cloud services or custom applications. Kerberos Agent is perfect for personal usage and/or is a great tool if you only have a couple of surveillance cameras to be processed.
If you are looking for a solution that scales better with your video surveillance and/or video analytics requirements, [Kerberos Enterprise Suite might be a better fit](https://doc.kerberos.io/enterprise/first-things-first).

View File

@@ -0,0 +1,35 @@
version: '2.1'
volumes:
kerberosagent_recordings:
kerberosagent_snapshots:
kerberosagent_config:
services:
# https://github.com/kerberos/agent
agent:
image: kerberos/agent:756b893
network_mode: host
tty: true
restart: always
volumes:
- 'kerberosagent_recordings:/home/agent/data/recordings:rw'
- 'kerberosagent_snapshots:/home/agent/data/snapshots:rw'
- 'kerberosagent_config:/home/agent/data/config:rw'
# https://github.com/kerberos/rtsp-simple-server
#rtsp-simple-server:
# build: ./rtsp-simple-server
# network_mode: host
# privileged: true
# restart: always
# https://github.com/balenablocks/hostname
hostname:
image: balenablocks/hostname:latest
restart: no
labels:
io.balena.features.supervisor-api: 1
environment:
SET_HOSTNAME: kerberos-agent