{"id":13419894,"url":"https://github.com/kerberos-io/machinery","last_synced_at":"2026-01-14T23:41:25.285Z","repository":{"id":19361727,"uuid":"22601605","full_name":"kerberos-io/machinery","owner":"kerberos-io","description":"(DEPRECATED) An open source image processing framework, which uses your USB-, IP- or RPi-camera to recognize events (e.g. motion).","archived":true,"fork":false,"pushed_at":"2022-06-18T06:23:55.000Z","size":1279,"stargazers_count":488,"open_issues_count":72,"forks_count":101,"subscribers_count":38,"default_branch":"master","last_synced_at":"2025-07-08T08:09:11.800Z","etag":null,"topics":["c-plus-plus","iot","linux","raspberry-pi","video-surveillance"],"latest_commit_sha":null,"homepage":"https://www.kerberos.io","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kerberos-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-04T11:22:17.000Z","updated_at":"2025-04-15T20:40:00.000Z","dependencies_parsed_at":"2022-09-13T08:40:47.694Z","dependency_job_id":null,"html_url":"https://github.com/kerberos-io/machinery","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/kerberos-io/machinery","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kerberos-io%2Fmachinery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kerberos-io%2Fmachinery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kerberos-io%2Fmachinery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kerberos-io%2Fmachinery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kerberos-io","download_url":"https://codeload.github.com/kerberos-io/machinery/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kerberos-io%2Fmachinery/sbom","scorecard":{"id":556021,"data":{"date":"2025-08-11","repo":{"name":"github.com/kerberos-io/machinery","commit":"c635e6a4d9394690a665575ac24b1e3e8af7edc5"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.4,"checks":[{"name":"Code-Review","score":1,"reason":"Found 4/30 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v2.8.0 not signed: https://api.github.com/repos/kerberos-io/machinery/releases/22541829","Warn: release artifact v2.6.2 not signed: https://api.github.com/repos/kerberos-io/machinery/releases/11858334","Warn: release artifact v2.6.1 not signed: https://api.github.com/repos/kerberos-io/machinery/releases/11364019","Warn: release artifact v2.6.0 not signed: https://api.github.com/repos/kerberos-io/machinery/releases/11183247","Warn: release artifact v2.5.1 not signed: https://api.github.com/repos/kerberos-io/machinery/releases/10343147","Warn: release artifact v2.8.0 does not have provenance: https://api.github.com/repos/kerberos-io/machinery/releases/22541829","Warn: release artifact v2.6.2 does not have provenance: https://api.github.com/repos/kerberos-io/machinery/releases/11858334","Warn: release artifact v2.6.1 does not have provenance: https://api.github.com/repos/kerberos-io/machinery/releases/11364019","Warn: release artifact v2.6.0 does not have provenance: https://api.github.com/repos/kerberos-io/machinery/releases/11183247","Warn: release artifact v2.5.1 does not have provenance: https://api.github.com/repos/kerberos-io/machinery/releases/10343147"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 4 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T12:21:16.072Z","repository_id":19361727,"created_at":"2025-08-20T12:21:16.072Z","updated_at":"2025-08-20T12:21:16.072Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28439513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T22:37:52.437Z","status":"ssl_error","status_checked_at":"2026-01-14T22:37:31.496Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","iot","linux","raspberry-pi","video-surveillance"],"created_at":"2024-07-30T22:01:22.452Z","updated_at":"2026-01-14T23:41:25.267Z","avatar_url":"https://github.com/kerberos-io.png","language":"C++","funding_links":[],"categories":["TODO scan for Android support in followings","AI"],"sub_categories":["Tutorial"],"readme":"# Kerberos Open Source - Machinery (Archived)\n\nThis project is archived, and move to the new agent repository: [Kerberos Agent](https://github.com/kerberos-io/agent).\n\n---\n\n## License\n\nThe Kerberos Open Source project is licensed with BY-NC-SA 4.0, this means that everyone can use Kerberos and modify if to their needs, in a non commercial activity.\n\nMore information [**about this license**](https://doc.kerberos.io/opensource/license).\n\n## Vote for features\n\n[**Report features**](https://feathub.com/kerberos-io/machinery) if you think something is missing, and should be added to Kerberos Open Source, we love to hear about your ideas.\n\n## Supported cameras\n\n[**In this thread**](https://github.com/kerberos-io/machinery/issues/136) you can find a list of cameras that users confirmed working properly. Do you have a working camera missing from this list? Report your camera [**here**](https://github.com/kerberos-io/machinery/issues/136).\n\n## Why Kerberos?\n\nAs burglary is very common, we believe that video surveillance is a **trivial tool** in our daily lifes which helps us to **feel** a little bit more **secure**. Responding to this need, a lot of companies have started developing their own video surveillance software in the past few years.\n\nNowadays we have a myriad of **expensive** cameras, recorders, and software solutions which are mainly **outdated** and **difficult** to install and use. Kerberos Open Source goal is to solve these problems and to provide every human being in this world to have their own **ecological**, **affordable**, **easy-to-use** and **innovative** surveillance solution.\n\n## Introduction\n\nKerberos Open Source is perfect for personal usage. It's great if you only have a couple of surveillance cameras to be managed. A Kerberos agent (e.g. on a Raspberry Pi or inside a Docker container) runs for each camera. Their are many different installation possibilities, please have a look at [**the architecture**](https://doc.kerberos.io/architectures) or [**installation page**](https://doc.kerberos.io/opensource/installation).\n\nEvery Kerberos agent has it's own web interface (front-end) to review media recording, and processing engine (back-end) of a specific surveillance camera. The Open Source version doesn't come with a central overview of all recordings generated by your Kerberos agents. For this feature we highly recommend Kerberos cloud.\n\nIf you want to manage more than 10 Kerberos agents, it's recommended to use [**Kerberos Enterprise**](https://doc.kerberos.io/enterprise). This will help you to scale, support high availability and load balancing. Check out [**the architecture**](https://doc.kerberos.io/architectures) section for a better understanding of when to use what.\n\n## Machinery\n\n[**The machinery**](https://doc.kerberos.io/opensource/introduction) is the processing engine of Kerberos Open Source. It's an image processing framework, written in C++, who benefits from other third party libraries (OpenCV, etc). It takes images from the type of camera (USB-, IP- or RPi-camera) you've configured in the configuration files and executes one or more algorithms and post-processes (e.g. save a snapshot). The configuration files allow you to define the type of camera, post-processes, conditions and much more; it's highly configurable. It's important to note that the machinery, out-of-the-box, can handle only one camera at a time.\n\n## How does it work?\n\n[Read more](https://doc.kerberos.io/opensource/machinery#project-structure) on our documentation website to have a better understanding of how the machinery works.\n\n## Installation\n\nKerberos Open Source comes with different installation flavours (it includes both the machinery and web repository). The reason is because depending on the use case one option is better than another. A short list of recommendations:\n\n- [**KiOS**](https://doc.kerberos.io/opensource/installation): You have a Raspberry Pi, and you only want to run a Kerberos agent on it.\n- [**Raspbian**](https://doc.kerberos.io/opensource/installation): You have a Raspberry Pi, but you want other services running next to the Kerberos agent.\n- [**Docker**](https://doc.kerberos.io/opensource/installation): You have a lot of IP cameras, and/or don't want to mess with dependencies.\n- [**Generic**](https://doc.kerberos.io/opensource/installation): You want to develop/extend Kerberos with your own features, or you want to run a Kerberos agent on a not supported OS/architecure.\n\n## Compile from source\n\nUpdate the packages and kernel, and install some development tools.\n\n```ts\nsudo apt-get update \u0026\u0026 sudo apt-get upgrade\nsudo apt-get install git cmake subversion libav-tools dh-autoreconf libcurl4-openssl-dev yasm libx264-dev pkg-config libssl-dev\n```\n\nInstall the FFmpeg library with x264 support.\n\n```ts\ngit clone https://github.com/FFmpeg/FFmpeg ffmpeg\ncd ffmpeg \u0026\u0026 git checkout remotes/origin/release/2.8\n./configure --enable-gpl --enable-libx264 --enable-shared --prefix=/usr/local\nmake \u0026\u0026 sudo make install\n```\n\nGo to your home directory, or any place your prefer and pull the machinery from Github. Afterwards create a build directory and start the compilation.\n\n```ts\ncd \u0026\u0026 git clone https://github.com/kerberos-io/machinery\ncd machinery \u0026\u0026 mkdir build \u0026\u0026 cd build\ncmake .. \u0026\u0026 make \u0026\u0026 make check \u0026\u0026 sudo make install\n```\n\nAfter the machinery is build and installed succesfully, you can enable `kerberosio` to start on boot.\n\n```ts\nsudo systemctl enable kerberosio\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkerberos-io%2Fmachinery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkerberos-io%2Fmachinery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkerberos-io%2Fmachinery/lists"}