First off, thank you for considering joining the crew! This project thrives on community involvement, and every contribution helps keep our digital treasure safe from scoundrels.
This document provides guidelines for contributing to the fleet.
If you find a hole in the hull (bug), have a feature request (new cannons), or want to suggest an improvement, please open an issue on GitHub.
When filing a report, please include:
- A clear and descriptive title (e.g., "The DNS Crow's Nest is blind in the fog").
- A detailed description of the problem, including the module you were running.
- Steps to reproduce the issue so we can see it from our deck.
- The output of the script and any relevant logs from the Captain's Ledger (Module 90).
We welcome PRs for bug fixes, new defense modules, and documentation improvements.
- Fork the repository to your own GitHub account.
- Create a new branch for your changes. Use a descriptive name (e.g.,
feat/add-new-defense-moduleorfix/ssh-restart-bug). - Make your changes. If adding a new defense, use the
hardening-framework/modules/template.shas your map. - Test your changes thoroughly on a clean deck (Parrot OS or Debian).
- Commit your changes with a clear and descriptive commit message.
- Push your branch to your fork and Open a Pull Request.
To maintain a consistent and seaworthy codebase, please follow these rules:
- Theming: All user-facing strings and documentation MUST follow the Parrot Booty Protection pirate theme. 🦜🏴☠️
- Shell Scripts:
- All scripts must start with
set -euo pipefailfor robustness. - Use the framework's
log_info,log_warn, andlog_errorfunctions for consistent logging. - Add comments to explain complex or non-obvious rigging.
- All scripts must start with
- Modular Framework:
- New defenses should be added as modules in
hardening-framework/modules/. - Implement
install(),rollback(),verify(), andstatus(). - Optionally add
run_task()andview_reports()for interactive features.
- New defenses should be added as modules in
- New Defenses: Test on a clean installation of Parrot OS or Debian.
- Bug Fixes: Provide steps to reproduce the bug and verify the fix.
- Stability: Ensure your changes don't scuttle the rest of the ship. Run
sudo ./hardening-framework/hardenctland verify all modules.
Please note that this project is released with a Code of Conduct. By participating in this project you agree to abide by its terms.
If you discover a security vulnerability, please see our Security Policy for instructions on how to report it responsibly.
Thank you again for joining the crew! 🏴☠️