Skip to content

iinsys/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DevOps Dotfiles

A collaborative, open source repository for DevOps environment configuration and automation.

Cross-Platform License Documentation GitHub Stars

πŸ“– About

DevOps Dotfiles is a comprehensive collection of standardized environment configurations for DevOps engineers. It provides ready-to-use shell aliases, editor settings, Git configurations, and DevOps tool setups that boost productivity across Linux, macOS, and Windows environments. The project includes automated installation scripts, cross-platform compatibility, and extensive documentation to get teams productive quickly.

πŸš€ Quick Start

Prerequisites

  • Git
  • Make (Install Make)
  • A Unix-like system (Linux, macOS, WSL)

Installation Options

Option 1: Automated Installation (Recommended)

# Clone the repository
git clone https://github.com/iinsys/dotfiles.git
cd dotfiles

# Install everything
make install
# OR
./install.sh

# Interactive mode (recommended for first-time users)
make install-interactive
# OR
./install.sh -i

# Install specific categories
make install-shell    # Shell configurations only
make install-editors  # Editor configurations only
make install-git      # Git configurations only
make install-tools    # DevOps tools only

# Install individual components
make install-bash     # Bash configuration only
make install-vim      # Vim configuration only
make install-docker   # Docker configurations only
make install-tmux     # tmux configuration only
make install-ctags    # ctags configuration only

Option 2: Flexible Installation Script

# Clone and run installation script
git clone https://github.com/iinsys/dotfiles.git
cd dotfiles
chmod +x install.sh

# Install everything
./install.sh

# Interactive mode (recommended for first-time users)
./install.sh -i

# Install specific categories
./install.sh shell
./install.sh tools
./install.sh editors

# Install individual components
./install.sh vim
./install.sh tmux
./install.sh bash

# Install multiple components
./install.sh vim tmux
./install.sh bash docker

# Get help
./install.sh --help

Option 3: Manual Installation

# Install shell configurations
cp shell/.bashrc ~/.bashrc
cp shell/.zshrc ~/.zshrc

# Install Git configuration
cp git/.gitconfig ~/.gitconfig
cp git/.gitignore_global ~/.gitignore_global

# Install editor configurations
cp editors/.vimrc ~/.vimrc
cp editors/.nanorc ~/.nanorc

Interactive Installation Mode

For first-time users or those who want to customize their installation, use the interactive mode:

./install.sh -i

This will guide you through selecting which components to install with prompts like:

  • "Install all shell configurations? (y/N)"
  • "Install Git configurations? (y/N)"
  • "Install Docker configurations only? (y/N)"

Post-Installation

Restart your shell or run:

source ~/.bashrc  # or ~/.zshrc

πŸ› οΈ What's Included

Shell Configurations

  • 100+ advanced functions for code navigation, system monitoring, and DevOps workflows
  • 80+ productivity aliases for Git, Docker, Kubernetes, Terraform, AWS
  • Enhanced prompts with Git status and environment info
  • Auto-completion for kubectl, Docker, AWS CLI
  • Cross-platform compatibility (Bash & Zsh)

Editor Configurations

  • Enhanced Vim IDE: Python IDE features, advanced plugins, code navigation, productivity functions
  • Advanced Functions: Run Python files, generate ctags, file operations, Git integration
  • Nano: DevOps syntax highlighting for YAML, Docker, Terraform
  • VS Code: Optimized settings, recommended extensions, language-specific configurations

Git Configuration

  • 100+ Git aliases for all operations (commit, branch, merge, etc.)
  • Conventional commit aliases (feat:, fix:, docs:, etc.)
  • Global gitignore with comprehensive DevOps patterns
  • Color-coded output and enhanced formatting
  • Security best practices built-in

DevOps Tools

  • Docker: Comprehensive aliases, functions, and development environment templates
  • Kubernetes: Multi-cluster configurations, kubectl aliases, context switching
  • Terraform: Variable templates, aliases, security scanning, cost estimation
  • tmux: Terminal multiplexer with advanced navigation and session management
  • ctags: Code navigation and indexing for multiple programming languages
  • AWS CLI: Profile management, common operations, and best practices

πŸš€ Available Aliases

This dotfiles collection includes 100+ productivity aliases across all major DevOps tools:

Git Aliases

  • gs - git status (show repository status)
  • ga - git add (stage files)
  • gc - git commit (commit changes)
  • gp - git push (push to remote)
  • gl - git log --oneline (show commit history)
  • gd - git diff (show changes)
  • gb - git branch (list branches)
  • gco - git checkout (switch branches)
  • gpl - git pull (pull from remote)

Docker Aliases

  • d - docker (docker command)
  • dc - docker-compose (docker-compose command)
  • dps - docker ps (list running containers)
  • dpsa - docker ps -a (list all containers)
  • di - docker images (list images)
  • dex - docker exec -it (execute in container)
  • dlog - docker logs (show container logs)

Kubernetes Aliases

  • k - kubectl (kubectl command)
  • kgp - kubectl get pods (list pods)
  • kgs - kubectl get services (list services)
  • kgd - kubectl get deployments (list deployments)
  • kgn - kubectl get nodes (list nodes)
  • klog - kubectl logs (show pod logs)

Terraform Aliases

  • tf - terraform (terraform command)
  • tfi - terraform init (initialize terraform)
  • tfp - terraform plan (plan changes)
  • tfa - terraform apply (apply changes)
  • tfd - terraform destroy (destroy infrastructure)

Note: Run alias in your terminal to see all available aliases after installation.

πŸ”§ Customization

All configurations are designed to be easily customizable:

Local Override Files

Create local customization files that won't be overwritten:

  • ~/.bashrc.local - Local bash customizations
  • ~/.zshrc.local - Local zsh customizations
  • ~/.gitconfig.local - Local Git settings
  • ~/.vimrc.local - Local vim customizations
  • ~/.nanorc.local - Local nano customizations

Makefile Commands

Use the comprehensive Makefile for easy management:

make help           # Show all available commands
make install        # Install all configurations

# Category installation
make install-shell  # Install shell configurations only
make install-editors # Install editor configurations only
make install-git    # Install Git configurations only
make install-tools  # Install DevOps tools only

# Individual component installation
make install-bash   # Install Bash configuration only
make install-vim    # Install Vim configuration only
make install-docker # Install Docker configurations only
make install-tmux   # Install tmux configuration only
make install-ctags  # Install ctags configuration only

# Development and maintenance
make validate       # Validate all configurations
make test          # Run all tests
make backup        # Backup existing configurations
make clean         # Clean temporary files
make docs          # Generate documentation
make docs-serve    # Serve documentation locally

Cross-Platform Support

  • Linux: Ubuntu, Debian, CentOS, RHEL, Fedora, Arch
  • macOS: With Homebrew support
  • Windows: WSL, Cygwin, MSYS
  • FreeBSD: Full support

πŸ“š Documentation

  • Online Documentation: https://iinsys.github.io/dotfiles/
  • Individual Component Docs: Each directory contains detailed README files
  • Interactive Installation: Use the web interface for guided setup
  • API Reference: Complete list of aliases and functions

🀝 Contributing

We welcome contributions! Here's how to help:

Adding New Configurations

  1. Fork the repository
  2. Add your configuration to the appropriate directory
  3. Update the relevant README.md with documentation
  4. Test your changes with make validate and make test
  5. Submit a pull request

Reporting Issues

  • Use GitHub Issues to report bugs or request features
  • Include your OS and shell information
  • Provide steps to reproduce any problems

Code of Conduct

  • Be respectful and inclusive
  • Focus on practical, useful configurations
  • Keep things simple and well-documented
  • Follow the existing code style (no emojis in scripts)

πŸš€ Features

Key Benefits

  • Fast Onboarding: New team members get productive immediately
  • Consistent Environment: Same tools and aliases across all machines
  • Productivity Boost: 100+ functions and 80+ aliases save hours of typing
  • Enhanced Development: Vim IDE features, tmux sessions, code navigation
  • Best Practices: Built-in security and DevOps patterns
  • Maximum Flexibility: Install everything or just what you need
  • Professional Quality: No emojis in scripts, clean code, comprehensive documentation

Automation Features

  • Flexible installation script with command-line arguments and OS detection
  • Comprehensive Makefile with 50+ commands for granular control
  • Individual component installation for shell, editors, and tools
  • Automated documentation deployment via GitHub Actions
  • Dependabot integration for automated dependency updates
  • Issue templates with auto-assignment for better project management
  • Validation and testing for all configurations
  • Backup and restore functionality

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Contributors who have shared their configurations
  • The DevOps community for best practices and feedback
  • Open source projects that make our work easier
  • Kubernetes, Docker, and Terraform communities for inspiration

πŸ“ž Support

  • Documentation: https://iinsys.github.io/dotfiles/
  • Issues: Use GitHub Issues for bugs and feature requests
  • Discussions: Use GitHub Discussions for questions and ideas
  • Make Commands: Run make help for all available commands

Not⚠️e: This repository is designed to be practical and not overly complex. If you find any configuration too complicated or unnecessary, feel free to customize or remove it. The goal is to make DevOps work more efficient, not to add complexity and also not that it is still in progress and we are still testing the environments so if you find any bug please create a ticket.

About

Dotfiles repo quickly create dotfiles across multiple environments

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •