Thanks for helping improve this ACAP. Bug reports, fixes, features, and docs are all welcome.
- Bugs and feature requests: open a GitHub issue and include your camera model,
Axis OS version, the app version (or
.eapfilename), and steps to reproduce. - Security vulnerabilities: please do not open a public issue; follow
SECURITY.md.
The ACAP is built in a container using the Axis ACAP Native SDK. Docker or Podman must be installed. From the repository root:
./build.shThis produces the .eap package(s) for the supported architectures in the
repository root. To try a build, install the .eap on a camera under
Apps > Add app in the device web interface, then check the app log under
Apps > (this app) > App log to confirm it starts.
- Fork the repository and branch from
main. - Keep each pull request focused on one logical change.
- Build locally, and where possible install and smoke-test the
.eapon a device before submitting. - Update
README.mdwhen behaviour, ports, or settings change. - Explain what the change does and why in the description.
- If you change C code, format it with
clang-formatusing the.clang-formatin this repository. - Keep Markdown lint-clean (
.markdownlint.yaml): wrap bare URLs and emails in angle brackets and give code fences a language. - Match the surrounding code and keep diffs minimal.
The user manual exists twice: app/html/help.html ships inside the ACAP, and
docs/help.html is published on the project site. They differ only in the header
navigation, and docs/help.html is generated:
tools/sync-docs.sh # regenerate docs/help.html
tools/sync-docs.sh --check # what CI runsEdit app/html/help.html, then run the script and commit both. CI fails if they
drift apart.
docs/index.html and docs/use-cases.html are maintained by hand. When adding a
trigger or action, update the feature lists there too, and when adding a rule
template add it to use-cases/USE_CASES.md and docs/use-cases.html with the
next free number.
By contributing, you agree that your contributions are licensed under this
repository's LICENSE. This is an independent, community project and is not
affiliated with or endorsed by Axis Communications.