Thanks for your interest in contributing to LogReaper! Whether it's a bug fix, new feature, detection pattern, or documentation improvement — all contributions are welcome.
- GCC or Clang (C11 support)
- GNU Make
- Linux environment (LogReaper targets Linux log formats)
- Git
git clone https://github.com/bad-antics/nullsec-logreaper.git
cd nullsec-logreaper
make
./logreaper --helpmake DEBUG=1 # Debug build with symbols
make STATIC=1 # Static binary (no shared lib dependencies)- Use the Bug Report template
- Include your OS/distro, GCC version, and the log file (or sanitized excerpt) that triggered the issue
- Paste the full error output
- Use the Feature Request template
- Explain the use case — what problem does it solve?
LogReaper's value comes from its detection patterns. To add new ones:
- Identify the log format and threat category
- Write a POSIX-compatible regex pattern
- Test against real or realistic log samples
- Submit a PR with:
- The pattern added to the appropriate category in
src/main.c - A sample log line that triggers it (in PR description)
- False positive testing notes
- The pattern added to the appropriate category in
- Fork the repo
- Create a feature branch:
git checkout -b feat/my-feature - Make your changes
- Ensure it compiles cleanly:
make clean && make - Test with sample log files
- Commit with a clear message:
git commit -m "feat: add syslog-ng parser support" - Push and open a PR
We follow Conventional Commits:
feat: add new detection pattern for CVE-2024-XXXX
fix: buffer overflow in timeline output with long hostnames
docs: update install instructions for ARM64
refactor: split parser into separate module
- C11 standard (
-std=c11) - 4-space indentation
snake_casefor functions and variablesUPPER_CASEfor constants and macros- Comments for non-obvious logic
- Keep functions under 50 lines where possible
- No compiler warnings with
-Wall -Wextra
Currently LogReaper doesn't have automated tests (contributions welcome! — see issue #). To manually test:
# Test against system logs
sudo ./logreaper /var/log/syslog
# Test with verbose output
./logreaper -v /var/log/auth.log
# Test JSON output
./logreaper -j /var/log/kern.log
# Test live monitoring
./logreaper -f /var/log/syslogBy contributing, you agree that your contributions will be licensed under the MIT License.