Skip to content

roycrisses/system-provisioning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 System Provisioning & Dotfiles

License Platform Status

One Command to Rule Them All. A robust, idempotent, and automated setup for my development environment, powered by GNU Stow.


📖 Table of Contents


� Overview

This repository contains my personal configuration files ("dotfiles") and a robust installation script. It is designed to be:

  • Automated: Sets up a new machine in minutes.
  • Idempotent: Safe to run multiple times without breaking configurations.
  • Organized: Uses Stow to manage symlinks cleanly.

🧠 Architecture

We use GNU Stow to manage configurations. Stow creates symbolic links from this repository to your home directory, keeping your version control clean and your home directory organized.

graph TD
    subgraph "Dotfiles Repository (~/dotfiles)"
        A[zsh/.zshrc]
        B[nvim/.config/nvim/init.lua]
        C[git/.gitconfig]
    end
    subgraph "Home Directory (~/)"
        D[.zshrc]
        E[.config/nvim/init.lua]
        F[.gitconfig]
    end
    A -.->|symlink| D
    B -.->|symlink| E
    C -.->|symlink| F
Loading

🛠 Tech Stack

Component Tool Description
Shell Zsh Zsh with Oh My Zsh & Powerlevel10k.
Editor Neovim Customized with Lua & Lazy.nvim.
Terminal Tmux Terminal Multiplexer with mouse support.
VCS Git Global config & useful aliases.
Manager Stow Symlink farm manager.

⚡ Installation

Prerequisites

  • macOS or Linux (Ubuntu/Debian/Arch)
  • git installed

One-Liner (Recommended)

Clone the repository and run the setup script:

git clone https://github.com/roycrisses/system-provisioning.git ~/dotfiles
cd ~/dotfiles
./install.sh

What happens next?

  1. Backup: Existing config files are moved to ~/.dotfiles_backup/ to prevent data loss.
  2. Install: Dependencies like stow are installed automatically if missing.
  3. Link: Configurations are symlinked to your home directory using Stow.
  4. Setup: Plugins for Zsh and Neovim are initialized.

📂 Repository Structure

The repository is organized by "package" (application), making it easy to see where everything lives.

~/dotfiles
├── 📂 zsh/             # Zsh configuration
│   └── .zshrc
├── 📂 nvim/            # Neovim configuration
│   └── .config/nvim/
│       └── init.lua
├── 📂 git/             # Git configuration
│   └── .gitconfig
├── 📂 tmux/            # Tmux configuration
│   └── .tmux.conf
├── install.sh          # 🚀 Main entry point
└── README.md           # You are here

� Customization

To add machine-specific settings that you don't want to commit (e.g., API keys, work-specific paths):

  • Zsh: Create ~/.zshrc.local (ensure your .zshrc sources it).
  • Git: Use git config --global --edit to add local user settings.

🤝 Contributing

Contributions are welcome! Please fork this repository and open a pull request.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Authored by Roy Crisses

About

dotfiles-dev-setup-config

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors