First off, thank you for considering contributing to Ubuntu Server Security!
- Code of Conduct
- Getting Started
- How to Contribute
- Development Setup
- Style Guidelines
- Commit Messages
- Pull Request Process
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
- Make sure you have a GitHub account
- Check existing issues before creating new ones
- Fork the repository on GitHub
Before creating bug reports, please check existing issues.
Great bug reports include:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected vs actual behavior
- System information (Ubuntu version, shell version)
- Relevant logs or error messages
Feature suggestions are welcome! Please:
- Check if the feature was already requested
- Describe the use case clearly
- Explain why this would benefit users
DO NOT open public issues for security vulnerabilities.
See SECURITY.md for responsible disclosure.
- Fork the repo and create your branch from
main - Make your changes
- Test on Ubuntu 22.04 or 24.04
- Ensure all scripts pass
shellcheck - Update documentation if needed
- Submit a pull request
# Clone your fork
git clone https://github.com/YOUR_USERNAME/ubuntu-server-security.git
cd ubuntu-server-security
# Verify shellcheck is installed
shellcheck --version
# Run shellcheck on all scripts
find . -name "*.sh" -exec shellcheck {} \;Recommended: Use a VM or container for testing security configurations.
# Example with LXD
lxc launch ubuntu:22.04 security-test
lxc exec security-test -- bash- Use
shellcheckfor linting - Follow
set -uo pipefailpattern - Use lowercase for variables, UPPERCASE for constants
- Quote variables:
"$var"not$var - Add comments for complex logic
- Include comments explaining each setting
- Provide safe defaults
- Document security implications
- Use Markdown
- Include code examples
- Keep lines under 100 characters
- Add TL;DR for long documents
Follow conventional format:
type: short description
Longer explanation if needed.
Fixes #123
Types: feat, fix, docs, style, refactor, test, chore
Examples:
feat: add fail2ban jail for postfixfix: correct sshd_config permissionsdocs: update nftables examples
- Update README.md if needed
- Update CHANGELOG.md with your changes
- PRs require one maintainer approval
- Squash commits before merging
- Code follows style guidelines
- Shellcheck passes without errors
- Tested on Ubuntu 22.04 or 24.04
- Documentation updated
- CHANGELOG.md updated
- Open a Discussion
- Check existing documentation
Thank you for contributing to Ubuntu Server Security!