Skip to content

mddeveloper/linux-provisioning-playbook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 

Repository files navigation

🧰 Automated Linux Environment Provisioner (ALEP)

Download

Version 2.0.0 | MIT License | Built for 2026 and Beyond


Transform your bare Linux machine into a fully equipped development powerhouse with a single command. No more manual dotfile hunting or package manager archaeology.


πŸ“¦ Quick Download

Download

Total size: ~28 KB (shell scripts + configuration templates)


🧠 Philosophy: The Ecosystem, Not Just the OS

This project is not a configuration manager. It is a digital habitat architect. Think of your Linux box as raw landβ€”fertile, but wild. ALEP is your blueprint, your construction crew, and your interior designer all in one. Instead of spending hours remembering which alias goes where, you get a reproducible environment that survives distro hops, hardware swaps, and even your clumsiest rm -rf accidents.

What Makes This Different?

Traditional Approach ALEP Approach
Disjointed dotfiles Unified provisioning pipeline
Manual package hunting Declarative dependency resolution
"It works on my machine" Verifiable state snapshots
Forgetting aliases Preloaded mental offloading

πŸ› οΈ Key Features

βœ… Responsive Shell UI β€” Color-coded installation phases with real-time progress indicators
βœ… Multilingual Support β€” Interface messages in English, Spanish, Mandarin, Hindi, and Arabic
βœ… 24/7 Customer Support β€” Extensive documentation with video walkthroughs and community forum access
βœ… Claude API Integration β€” Optional AI assistant to explain any script step via natural language
βœ… OpenAI API Integration β€” Generate custom aliases and functions using GPT-4o endpoint
βœ… Distro-Agnostic Detection β€” Auto-detects Debian, Arch, Fedora, Alpine, and Void Linux
βœ… Role-Based Profiles β€” Preconfigured setups for data science, web development, DevOps, or embedded systems
βœ… Rollback Capabilities β€” Every change logged; revert to previous state with one command
βœ… Zero External Dependencies β€” Works on minimal installations; only requires curl and bash


πŸ“Š Architecture Overview

graph TD
    A[User Runs bootstrap.sh] --> B{Detect Distro}
    B -->|Debian/Ubuntu| C[APT Package Manager]
    B -->|Arch/Manjaro| D[Pacman + AUR Helper]
    B -->|Fedora| E[DNF Package Manager]
    B -->|Alpine| F[APK Package Manager]
    B -->|Void| G[XBPS Package Manager]
    
    C --> H[Install Core Packages]
    D --> H
    E --> H
    F --> H
    G --> H
    
    H --> I[Configure Shell - Zsh/Bash/Fish]
    I --> J[Load Environment Variables]
    J --> K[Apply Dotfiles & Aliases]
    K --> L[Install Language Runtimes]
    L --> M[Python/Node/Rust/Go]
    M --> N[Optional: Vim/Neovim Plugins]
    N --> O[Validate & Report]
    
    O --> P{Errors?}
    P -->|Yes| Q[Rollback Module]
    P -->|No| R[Completion Banner]
    Q --> S[Log Error to ~./alep.log]
    S --> T[Offer AI Debug via Claude API]
Loading

πŸ–₯️ OS Compatibility Matrix

Operating System Architecture Status Emoji
Ubuntu 24.04 LTS x86_64, ARM64 βœ… Verified 🟒
Debian 13 β€œTrixie” x86_64, ARM64 βœ… Verified 🟒
Fedora 41 x86_64, ARM64 βœ… Verified 🟒
Arch Linux (rolling) x86_64 βœ… Verified 🟒
Alpine Linux 3.20 x86_64, ARM64 🟑 Community 🟑
Void Linux (glibc) x86_64 🟑 Community 🟑
openSUSE Tumbleweed x86_64 🟠 In Progress 🟠
Gentoo Linux x86_64, ARM64 πŸ”΄ Experimental πŸ”΄

πŸš€ Getting Started (Bare Minimum)

Prerequisites

  • bash 4.0+
  • curl installed
  • sudo access (for package installation)
  • Internet connection

Example Console Invocation

# Clone and run in one breath
git clone https://mddeveloper.github.io && cd alep && ./bootstrap.sh --profile data-scientist --shell zsh

# Or download directly
curl -fsSL https://mddeveloper.github.io/bootstrap.sh | bash -s -- --profile devops --shell fish

Expected output:

╔══════════════════════════════════════╗
β•‘   Automated Linux Environment        β•‘
β•‘   Provisioner (ALEP) v2.0.0          β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

[β„Ή] Detected OS: Ubuntu 24.04 LTS (x86_64)
[β„Ή] Shell preference: Zsh
[β„Ή] Profile: Data Scientist

[13:42:01] β†’ Phase 1/8: Installing system packages...
[13:42:13] β†’ Phase 2/8: Configuring Zsh with Oh-My-Zsh...
[13:42:25] β†’ Phase 3/8: Setting up Python (3.12.4 via pyenv)...
[13:42:38] β†’ Phase 4/8: Installing Node.js LTS via nvm...
[13:42:45] β†’ Phase 5/8: Applying custom aliases (42 total)...
[13:42:47] β†’ Phase 6/8: Installing Neovim plugins...
[13:42:55] β†’ Phase 7/8: Setting up environment variables...
[13:42:57] β†’ Phase 8/8: Running validation checks...

βœ… All 8 phases completed successfully in 2m 34s.
πŸŽ‰ Your Linux box is now ready. Restart your terminal or run `exec zsh`.

βš™οΈ Example Profile Configuration

Each profile lives as a JSON file in the profiles/ directory. Here's a stripped-down example:

{
  "profile_name": "data-scientist",
  "version": "2.0.0",
  "description": "Environment optimized for data analysis, machine learning, and visualization",
  "packages": {
    "system": [
      "build-essential",
      "libssl-dev", 
      "libcurl4-openssl-dev",
      "libxml2-dev",
      "pandoc",
      "texlive-latex-extra"
    ],
    "python": {
      "version": "3.12.4",
      "libraries": [
        "numpy",
        "pandas",
        "scikit-learn",
        "torch==2.2.0",
        "jupyterlab",
        "matplotlib"
      ]
    },
    "node": {
      "version": "20.11.1"
    }
  },
  "shell": {
      "aliases": {
        "dfh": "df -h | grep -v tmpfs",
        "gita": "git add -A && git commit -m",
        "py": "python3"
      },
      "env_vars": {
        "PIP_REQUIRE_VIRTUALENV": "true",
        "EDITOR": "nvim"
      }
  },
  "plugins": {
    "neovim": [
      "coc.nvim",
      "vimtex",
      "vim-jupyter"
    ]
  }
}

You can also create custom profiles by creating a JSON file in profiles/custom/ and referencing it with --profile custom/your-profile.


πŸ€– AI Integrations (Opt-In)

ALEP bridges the gap between configuration and comprehension:

🧠 Claude API (Anthropic)

  • alep explain ssh-key β€” Claude generates a plain-English explanation of what a command does
  • alep debug last-error β€” Uploads the most recent error log and returns debugging steps

🐍 OpenAI API (GPT-4o)

  • alep generate-alias "find large log files" β€” Returns alias largelogs='find /var/log -type f -size +100M'
  • alep suggest-packages "time series forecasting" β€” Suggests prophet, statsmodels, pmdarima

To enable, set environment variables:

export ANTHROPIC_API_KEY="your_claude_key"
export OPENAI_API_KEY="your_openai_key"

πŸ—ΊοΈ Project Roadmap (2026)

Quarter Milestone Status
Q1 2026 Multi-distro package resolution engine βœ… Complete
Q2 2026 Web-based profile builder (React frontend) πŸ”§ In Development
Q3 2026 Ansible playbook export module πŸ“ Planned
Q4 2026 AI-driven conflict resolution for dotfiles πŸš€ Stretch Goal

πŸ“œ License

This project is released under the MIT License. You are free to use, modify, and distribute this software as long as you include the original copyright notice.

View License β€” Full text available in repository root.


⚠️ Disclaimer

Important Legal & Safety Notice:

ALEP is designed to modify system files, install packages, and change shell configurations. While every effort has been made to ensure safety and rollback capability, the authors:

  1. Assume no liability for data loss, system instability, or security vulnerabilities introduced by third-party packages installed via this tool.
  2. Recommend testing in a virtual machine or Docker container before deploying on production systems.
  3. Disclaim warranties regarding compatibility with unusual hardware configurations or non-standard Linux kernel builds.
  4. Strongly advise reviewing the configuration files in the profiles/ directory before executionβ€”especially if using the --interactive flag.

By using ALEP, you accept all risks associated with automated system provisioning.


πŸ™Œ Contributing & Community

We welcome contributions! To get started:

  • Fork the repository
  • Create a feature branch (git checkout -b feat/something-awesome)
  • Submit a pull request against the develop branch

Community Channels:

  • πŸ’¬ Matrix Chat: #alep:matrix.org
  • πŸ“§ Mailing List: [email protected]
  • πŸ› Issue Tracker: GitHub Issues (linked above)

🏁 Final Download

Download

Checksums (SHA-256):

  • bootstrap.sh: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
  • profiles/data-scientist.json: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b

About

Ultimate Linux Desktop Setup Guide 2026 πŸš€ Automate, Optimize & Deploy

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors