Thank you for your interest in contributing to Learn DevOps by Building! 🎉
This project aims to help people learn DevOps through hands-on projects. Every contribution helps someone on their DevOps journey.
- Code of Conduct
- How Can I Contribute?
- Project Structure
- Adding a New Project
- Style Guide
- Pull Request Process
- Recognition
Please read our Code of Conduct before contributing.
Found something broken? Open an issue with:
- Clear title and description
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
Have an idea for a new DevOps project? We'd love to hear it!
- Open an issue with the
project-idealabel - Describe the learning objectives
- Suggest difficulty level (beginner/intermediate/advanced)
- Fix typos or unclear instructions
- Add missing steps
- Translate documentation
- Add diagrams or screenshots
See Adding a New Project below.
Learn-DevOps-by-building/
├── README.md # Main awesome list
├── CONTRIBUTING.md # This file
├── CODE_OF_CONDUCT.md
├── SECURITY.md
├── LICENSE
│
├── beginner/ # Entry-level projects
│ ├── linux/
│ ├── docker/
│ ├── terraform/
│ ├── bash/
│ └── ansible/
│
├── intermediate/ # More challenging projects
│ ├── aws/
│ ├── azure/
│ ├── k8/
│ ├── ansible/
│ ├── security/
│ └── ngnix/
│
└── advanced/ # Expert-level projects
├── terraform/
├── kubernetes/
├── docker/
├── aws/
└── networking/
| Difficulty | Criteria |
|---|---|
| Beginner | Single tool, basic concepts, < 1 hour to complete |
| Intermediate | Multiple tools, integration concepts, 1-4 hours |
| Advanced | Complex architecture, production patterns, 4+ hours |
# Example: Adding a new intermediate Kubernetes project
mkdir -p intermediate/k8/my-new-projectEvery project MUST have:
my-new-project/
├── README.md # Main documentation (REQUIRED)
├── assets/ # Screenshots, diagrams
│ └── architecture.png
└── [project files] # Code, manifests, configs
Use this template for consistency:
# Project Title
Brief description (1-2 sentences)
## 📋 Table of Contents
- [Overview](#overview)
- [Prerequisites](#prerequisites)
- [Architecture](#architecture)
- [Getting Started](#getting-started)
- [Step-by-Step Guide](#step-by-step-guide)
- [Troubleshooting](#troubleshooting)
- [Key Learnings](#key-learnings)
## Overview
### What You'll Build
Describe the end result.
### What You'll Learn
- Learning objective 1
- Learning objective 2
- Learning objective 3
### Technologies Used
| Technology | Version | Purpose |
|------------|---------|---------|
| Tool 1 | x.x.x | Why it's used |
## Prerequisites
- [ ] Prerequisite 1
- [ ] Prerequisite 2
## Architecture

## Getting Started
```bash
# Quick start commandsDetailed instructions...
Detailed instructions...
| Problem | Solution |
|---|---|
| Issue 1 | Fix 1 |
✅ What you learned ✅ Best practices covered ✅ Common pitfalls avoided
Suggestions for further learning.
Author: Your Name
### 5. Update Main README
Add your project to the appropriate section in the root `README.md`:
```markdown
| [Project Name](./path/to/project/README.md) | Brief description | `Tech1` `Tech2` |
- Use Markdown for all documentation
- Include a Table of Contents for long docs
- Add screenshots for visual steps
- Use code blocks with language hints
- Include architecture diagrams where helpful
- Follow best practices for each tool
- Add comments explaining why, not what
- Include error handling
- Provide working examples
- Folders:
kebab-case(e.g.,multi-tier-app) - Files:
kebab-caseorsnake_case - Avoid spaces and special characters
type: brief description
- Detail 1
- Detail 2
Closes #issue_number
Types: feat, fix, docs, style, refactor, test
- Fork the repository
- Create a feature branch
git checkout -b feature/my-new-project
- Make your changes
- Test everything works
- Commit with clear messages
- Push to your fork
- Open a Pull Request
- README follows the template
- All code/configs are tested
- Screenshots added if applicable
- Main README updated
- No sensitive data committed
- Spell check passed
- Maintainers review within 48-72 hours
- Address any feedback
- Once approved, we'll merge!
All contributors are:
- Listed in our Contributors section
- Credited in project READMEs
- Part of our DevOps learning community
- Open an issue with the
questionlabel - Start a discussion in GitHub Discussions
Thank you for helping others learn DevOps! 🚀