Skip to content

Commit eb7ee2a

Browse files
committed
chore: add community health files, CI, and project infrastructure
- Add SECURITY.md with vulnerability reporting policy - Add CONTRIBUTING.md with build instructions, code style, PR guide - Add CODE_OF_CONDUCT.md (Contributor Covenant v2.1) - Add CHANGELOG.md (Keep a Changelog format) for v1.0.0 - Add GitHub Actions CI workflow (gcc + clang build matrix, cppcheck, release automation) - Add issue templates (bug report, feature request) with structured forms - Add .github/FUNDING.yml (GitHub Sponsors + Ko-fi) - Add .gitignore for build artifacts - Remove committed binary from version control (build from source instead)
1 parent a175cdb commit eb7ee2a

10 files changed

Lines changed: 457 additions & 0 deletions

File tree

.github/FUNDING.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
github: [bad-antics]
2+
ko_fi: badantics
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: 🐛 Bug Report
2+
description: Report a bug or unexpected behavior in LogReaper
3+
title: "[Bug]: "
4+
labels: ["bug"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for reporting a bug! Please fill out the details below.
10+
11+
- type: textarea
12+
id: description
13+
attributes:
14+
label: Describe the Bug
15+
description: A clear and concise description of what the bug is.
16+
placeholder: "LogReaper crashes when parsing..."
17+
validations:
18+
required: true
19+
20+
- type: textarea
21+
id: reproduce
22+
attributes:
23+
label: Steps to Reproduce
24+
description: Steps to reproduce the behavior.
25+
value: |
26+
1. Run `./logreaper ...`
27+
2. With log file containing...
28+
3. See error...
29+
validations:
30+
required: true
31+
32+
- type: textarea
33+
id: expected
34+
attributes:
35+
label: Expected Behavior
36+
description: What you expected to happen.
37+
validations:
38+
required: true
39+
40+
- type: textarea
41+
id: log-sample
42+
attributes:
43+
label: Log Sample
44+
description: A sanitized excerpt of the log file that triggers the issue (remove any sensitive data).
45+
render: text
46+
47+
- type: textarea
48+
id: error-output
49+
attributes:
50+
label: Error Output
51+
description: Full terminal output including the error.
52+
render: text
53+
54+
- type: input
55+
id: os
56+
attributes:
57+
label: OS / Distribution
58+
placeholder: "Ubuntu 24.04, Arch Linux, etc."
59+
validations:
60+
required: true
61+
62+
- type: input
63+
id: gcc
64+
attributes:
65+
label: Compiler Version
66+
placeholder: "gcc 13.2.0"
67+
68+
- type: input
69+
id: version
70+
attributes:
71+
label: LogReaper Version
72+
placeholder: "v1.0.0 or commit hash"
73+
validations:
74+
required: true
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: 💡 Feature Request
2+
description: Suggest a new feature or enhancement for LogReaper
3+
title: "[Feature]: "
4+
labels: ["enhancement"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Got an idea to make LogReaper better? We'd love to hear it!
10+
11+
- type: textarea
12+
id: problem
13+
attributes:
14+
label: Problem / Use Case
15+
description: What problem does this solve? What's your use case?
16+
placeholder: "When investigating incidents, I need to..."
17+
validations:
18+
required: true
19+
20+
- type: textarea
21+
id: solution
22+
attributes:
23+
label: Proposed Solution
24+
description: How would you like this to work?
25+
validations:
26+
required: true
27+
28+
- type: textarea
29+
id: alternatives
30+
attributes:
31+
label: Alternatives Considered
32+
description: Any alternative solutions or workarounds you've considered.
33+
34+
- type: dropdown
35+
id: category
36+
attributes:
37+
label: Category
38+
options:
39+
- New detection pattern
40+
- New log format / parser
41+
- Output format
42+
- Performance
43+
- Integration (SIEM, other tools)
44+
- Documentation
45+
- Other
46+
validations:
47+
required: true
48+
49+
- type: checkboxes
50+
id: contribution
51+
attributes:
52+
label: Willing to Contribute?
53+
options:
54+
- label: I'd be willing to submit a PR for this feature

.github/workflows/build.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: Build
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
build:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
cc: [gcc, clang]
15+
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- name: Install compiler
20+
run: sudo apt-get update && sudo apt-get install -y ${{ matrix.cc }}
21+
22+
- name: Build
23+
run: make CC=${{ matrix.cc }}
24+
25+
- name: Verify binary
26+
run: ./logreaper --help
27+
28+
- name: Clean build
29+
run: make clean
30+
31+
static-analysis:
32+
runs-on: ubuntu-latest
33+
steps:
34+
- uses: actions/checkout@v4
35+
36+
- name: Install cppcheck
37+
run: sudo apt-get update && sudo apt-get install -y cppcheck
38+
39+
- name: Run cppcheck
40+
run: cppcheck --enable=warning,style,performance --error-exitcode=1 src/
41+
42+
release:
43+
if: startsWith(github.ref, 'refs/tags/v')
44+
needs: [build]
45+
runs-on: ubuntu-latest
46+
strategy:
47+
matrix:
48+
include:
49+
- arch: x86_64
50+
cc: gcc
51+
flags: ""
52+
- arch: x86_64-static
53+
cc: gcc
54+
flags: "STATIC=1"
55+
56+
steps:
57+
- uses: actions/checkout@v4
58+
59+
- name: Install dependencies
60+
run: sudo apt-get update && sudo apt-get install -y gcc musl-tools
61+
62+
- name: Build ${{ matrix.arch }}
63+
run: make CC=${{ matrix.cc }} ${{ matrix.flags }}
64+
65+
- name: Package
66+
run: |
67+
mkdir -p dist
68+
cp logreaper dist/logreaper-${{ matrix.arch }}
69+
chmod +x dist/logreaper-${{ matrix.arch }}
70+
71+
- name: Upload Release Asset
72+
uses: softprops/action-gh-release@v2
73+
with:
74+
files: dist/logreaper-${{ matrix.arch }}

.gitignore

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Build output
2+
logreaper
3+
*.o
4+
5+
# Debug builds
6+
logreaper-debug
7+
8+
# OS files
9+
.DS_Store
10+
Thumbs.db
11+
12+
# Editor files
13+
*.swp
14+
*.swo
15+
*~
16+
.vscode/
17+
.idea/
18+
19+
# Distribution
20+
dist/

CHANGELOG.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Changelog
2+
3+
All notable changes to LogReaper will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [1.0.0] - 2026-01-27
9+
10+
### Added
11+
12+
- Initial release of LogReaper
13+
- High-speed log parsing engine in C11
14+
- 8 analysis modules: auth, network, system, application, web, kernel, mail, database
15+
- 25+ log source support (syslog, auth.log, kern.log, Apache, Nginx, MySQL, PostgreSQL, etc.)
16+
- Threat detection with categorized patterns:
17+
- Authentication attacks (brute force, privilege escalation, sudo abuse)
18+
- Network threats (port scanning, DDoS indicators, DNS tunneling)
19+
- Web attacks (SQL injection, XSS, path traversal, webshell detection)
20+
- System compromise (rootkit indicators, cron manipulation, binary replacement)
21+
- Malware indicators (reverse shells, crypto miners, C2 beacons)
22+
- IOC extraction (IPs, domains, hashes, URLs, email addresses)
23+
- Timeline reconstruction with chronological event ordering
24+
- Live monitoring mode (`-f` flag) with real-time alerting
25+
- Multiple output formats: terminal (colored), JSON (`-j`), CSV (`-c`)
26+
- Severity classification: CRITICAL, HIGH, MEDIUM, LOW, INFO
27+
- Summary statistics with threat breakdown
28+
- Recursive directory scanning
29+
- Verbose mode for detailed analysis output
30+
- Makefile with `install`, `clean`, and `uninstall` targets
31+
- Static build support (`make STATIC=1`)
32+
- Debug build support (`make DEBUG=1`)
33+
34+
### Security
35+
36+
- Safe string handling with bounded operations
37+
- Input validation on all file paths
38+
- Signal handling for clean shutdown during live monitoring
39+
40+
[1.0.0]: https://github.com/bad-antics/nullsec-logreaper/releases/tag/v1.0.0

CODE_OF_CONDUCT.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our
6+
community a harassment-free experience for everyone, regardless of age, body
7+
size, visible or invisible disability, ethnicity, sex characteristics, gender
8+
identity and expression, level of experience, education, socio-economic status,
9+
nationality, personal appearance, race, religion, or sexual identity
10+
and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to a positive environment:
15+
16+
* Using welcoming and inclusive language
17+
* Being respectful of differing viewpoints and experiences
18+
* Gracefully accepting constructive criticism
19+
* Focusing on what is best for the community
20+
* Showing empathy towards other community members
21+
22+
Examples of unacceptable behavior:
23+
24+
* The use of sexualized language or imagery and unwelcome sexual attention
25+
* Trolling, insulting/derogatory comments, and personal or political attacks
26+
* Public or private harassment
27+
* Publishing others' private information without explicit permission
28+
* Other conduct which could reasonably be considered inappropriate
29+
30+
## Enforcement
31+
32+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
33+
reported to the project maintainer at [bad-antics on GitHub](https://github.com/bad-antics).
34+
35+
All complaints will be reviewed and investigated and will result in a response
36+
that is deemed necessary and appropriate to the circumstances.
37+
38+
## Attribution
39+
40+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/),
41+
version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.

0 commit comments

Comments
 (0)