A CLI tool that scaffolds production-ready DevOps repositories
Project description
๐ DevOps Project Generator
A powerful CLI tool that scaffolds production-ready DevOps repositories based on user-selected options like CI/CD, infrastructure, deployment, environments, observability, and security.
โจ Why DevOps Project Generator?
Setting up a real-world DevOps project from scratch is repetitive and error-prone. This tool helps you bootstrap a complete DevOps-ready repository in seconds, following industry best practices.
โ Opinionated but configurable
โ Beginner-friendly, production-oriented
โ CLI support
โ No tool lock-in
๐ฏ Who Is This For?
- DevOps Engineers
- Cloud Engineers
- Platform Engineers
- SREs
- Students & freshers building real DevOps projects
๐ง What This Generator Creates
A full DevOps project structure covering:
- CI/CD pipelines
- Containerization
- Infrastructure (IaC-ready)
- Deployment models
- Environment separation
- Observability
- Security basics
All generated based on your selected options.
โ๏ธ Supported Options (v1)
CI/CD
- GitHub Actions
- GitLab CI
- Jenkins
- None
Infrastructure
- Terraform
- CloudFormation
- None
Deployment
- VM
- Docker
- Kubernetes
Environments
- Single
- Dev / Stage / Prod
Observability
- Logs only
- Logs + Metrics
- Full (Logs + Metrics + Alerts)
Security
- Basic
- Standard
- Strict
๐ฅ๏ธ Usage
CLI Usage
devops-project-generator init \
--ci github-actions \
--infra terraform \
--deploy kubernetes \
--envs dev,stage,prod \
--observability full \
--security standard
Interactive Mode
devops-project-generator init --interactive
List Available Options
devops-project-generator list-options
๐๏ธ Generated Project Structure (Example)
devops-project/
โโโ app/
โ โโโ sample-app/
โโโ ci/
โ โโโ pipelines/
โ โโโ README.md
โโโ infra/
โ โโโ terraform/
โ โโโ environments/
โโโ containers/
โ โโโ Dockerfile
โ โโโ docker-compose.yml
โโโ k8s/
โ โโโ base/
โ โโโ overlays/
โโโ monitoring/
โ โโโ logs/
โ โโโ metrics/
โ โโโ alerts/
โโโ security/
โ โโโ secrets/
โ โโโ scanning/
โโโ scripts/
โ โโโ automation/
โโโ Makefile
โโโ README.md
๐ ๏ธ Tech Stack
Generator Core
- Python
- Jinja2
- YAML-based configuration
CLI
- Typer
- Rich
๐ฆ Installation
From PyPI
pip install devops-project-generator
From Source
git clone https://github.com/NotHarshhaa/devops-project-generator.git
cd devops-project-generator
pip install -e .
Development Setup
git clone https://github.com/NotHarshhaa/devops-project-generator.git
cd devops-project-generator
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -e ".[dev]"
๐ Quick Start
-
Generate a new project
devops-project-generator init --name my-app --ci github-actions --deploy kubernetes
-
Navigate to your project
cd my-app
-
Setup the environment
make setup -
Start the application
make start -
Check health
make health
๐ Examples
Basic Web App with Docker
devops-project-generator init \
--name my-webapp \
--ci github-actions \
--deploy docker \
--envs single \
--observability logs \
--security basic
Enterprise Kubernetes App
devops-project-generator init \
--name enterprise-app \
--ci github-actions \
--infra terraform \
--deploy kubernetes \
--envs dev,stage,prod \
--observability full \
--security strict
Simple VM Deployment
devops-project-generator init \
--name simple-app \
--ci jenkins \
--deploy vm \
--envs dev,prod \
--observability logs-metrics \
--security standard
๐ง Configuration
Global Configuration
You can set default options in ~/.devops-generator/config.yaml:
defaults:
ci: github-actions
deploy: kubernetes
observability: logs-metrics
security: standard
Project Templates
The generator supports custom templates. Place your templates in:
~/.devops-generator/templates/
โโโ ci/
โโโ infra/
โโโ deploy/
โโโ monitoring/
โโโ security/
๐งช Testing
Run Tests
pytest
Run Tests with Coverage
pytest --cov=devops_project_generator --cov-report=html
Run Linting
flake8 devops_project_generator/
black devops_project_generator/
mypy devops_project_generator/
๐ค Contributing
We welcome contributions! Please see our Contributing Guide for details.
Development Workflow
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Run the test suite
- Submit a pull request
Adding New Features
- New CI/CD Platform: Add templates in
templates/ci/ - New Infrastructure Tool: Add templates in
templates/infra/ - New Deployment Method: Add templates in
templates/deploy/ - New Security Level: Add templates in
templates/security/
๐ Documentation
๐ Troubleshooting
Common Issues
-
Permission Denied
chmod +x scripts/setup.sh scripts/deploy.sh
-
Template Not Found
- Check if template files exist in
templates/ - Verify template syntax
- Check if template files exist in
-
Generated Files Not Executable
find . -name "*.sh" -exec chmod +x {} \;
Getting Help
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Wiki
๐บ๏ธ Roadmap
v1.1 โ (Current)
- Performance optimizations (95%+ faster generation)
- Concurrent file generation
- Enhanced error handling and validation
- Template caching and pre-loading
- Better user experience with improved messages
v1.2
- Support for Azure DevOps
- Additional cloud providers (GCP, Azure)
- More deployment targets (AWS ECS, Fargate)
- Advanced monitoring templates
- Plugin system for custom templates
v2.0
- Multi-language support
- Advanced project customization
- AI-powered recommendations
- Enterprise features
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- Typer - For the amazing CLI framework
- Rich - For beautiful terminal output
- Jinja2 - For powerful templating
- DevOps Community - For best practices and inspiration
๐ Contact
This project is crafted with ๐ก by Harshhaa.
Your feedback is always welcome! Let's build together. ๐
๐ง Connect with me:
๐ GitHub: @NotHarshhaa
๐ Portfolio: Personal Portfolio
๐ Links - Portfolio: Links
๐ Telegram Community: Join Here
๐ LinkedIn: Harshhaa Vardhan Reddy
Built with โค๏ธ by the DevOps community
Making DevOps accessible to everyone
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file devops_project_generator-1.1.0.tar.gz.
File metadata
- Download URL: devops_project_generator-1.1.0.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e22df67593442d4332359b18363d0ceda5c5234bf0256267d4ec0a6fa61bbad
|
|
| MD5 |
e0c9d43fc5839995aba3ab80d7f59dc4
|
|
| BLAKE2b-256 |
56e2466785702dcc9a7a64f32354c03afd016087503b86d902c071e97a20dec7
|
File details
Details for the file devops_project_generator-1.1.0-py3-none-any.whl.
File metadata
- Download URL: devops_project_generator-1.1.0-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c67b6b7861399ad163743b122b5fdab532ffc386bb27347290b91d42a2436e5
|
|
| MD5 |
b2936e09596a5d9db6286962ed6c9bfd
|
|
| BLAKE2b-256 |
bba5d927c0120b224216cf179b82ae9632f7866e247eddb9b08510dc495d39cc
|