Contributing to CST
Thank you for your interest in contributing to the Containerized Security Toolkit! This document provides guidelines for contributing to the project.
Getting Started
- Fork the repository
- Clone your fork:
- Create a new branch:
Development Environment
- Install prerequisites: Docker & Docker Buildx (if working cross-platform)
- Install documentation dependencies:
Building Images
To build images locally:
# For x86_64 or ARM64 systems
cd images/$VARIANT
docker build -f builder.Dockerfile -t intermediate_builder .
docker build -t cst-<variant>:local .
To build ARM64 on x86_64 systems, use:
# For ARM64 on x86_64 systems
docker buildx build --platform linux/arm64 -f builder.Dockerfile -t intermediate_builder .
docker buildx build --platform linux/arm64 -t cst-<variant>:local .
Project Structure
.
├── docs/ # Documentation
├── images/ # Dockerfile for each variant
│ ├── general/
│ ├── cloud/
│ ├── dev/
│ ├── netsec/
│ └── rice/
└── scripts/ # Build and utility scripts
Coding Guidelines
-
Dockerfiles
- Use multi-stage builds
builder.Dockerfile
should containgo
installs and release downloads- Document non-obvious commands
- Follow best practices for size optimization
-
Documentation
- Use clear, concise language
- Prefer short and bulleted information
- Keep formatting consistent
- Update relevant sections only
-
Scripts
- Add usage comments where applicable
- Name them
<variant>-<action>.sh
Pull Request Process
- Update documentation for new features
- Create succint PR description
- Link relevant issues (if any)
Before submitting the PR:
- Build images locally
- Test basic functionality
- Verify installed tools work
- Add examples to documentation if appropriate
- Explicitly state any breaking changes in PR
Questions?
- Open an issue
- Check documentation
License
Your contributions will be licensed under the MIT License.