DEV Community

adrienclaire
adrienclaire

Posted on

Why I Stopped Maintaining Dotfiles and Built a Cross-Platform Shell Bootstrap

Every new workstation started the same way.

Install Git.

Install PowerShell.

Install fzf.

Install bat.

Install eza.

Configure Starship.

Copy aliases.

Configure SSH.

Restore my PowerShell profile.

Install Docker.

Install GitHub CLI.

Repeat.

Every single time.

Eventually I realized something:

I wasn't maintaining my shell anymore.

I was maintaining the setup process.

Dotfiles weren't solving the whole problem

Dotfiles are fantastic.

I still think everyone should keep their configuration in version control.

But they only solve part of the problem.

They don't install dependencies.

They don't configure SSH.

They don't know whether you're preparing a workstation or a server.

They don't help you rebuild an environment from scratch.

I wanted something closer to an operating system bootstrap.

The idea

Instead of restoring configuration files one by one, why not bootstrap the entire terminal environment?

That became ShellDeck.

It prepares a fresh Windows, Linux or macOS machine by configuring PowerShell, Bash or Zsh, installing common CLI tools, managing aliases, configuring SSH and optionally turning the machine into a lightweight homelab control node.

The goal isn't to replace Ansible or configuration management.

Those tools manage infrastructure.

ShellDeck prepares your environment.

What it can do today

  • Bootstrap Windows, Linux and macOS
  • Configure PowerShell, Bash and Zsh
  • Install common CLI utilities
  • Configure shell profiles
  • Manage SSH hosts
  • Optional Linux security hardening
  • Startup environment dashboard
  • Preserve configuration during updates

Why I built it

Like many engineers, I was constantly copying the same scripts between machines.

Eventually the scripts became the project.

I wanted one installer that could prepare a new machine in minutes and let me start working immediately.

I'd love your feedback

I'm sure there are workflows I've never considered.

If you're someone who spends a lot of time in a terminal, I'd love to hear what you think.

GitHub:

https://github.com/adrienclaire/ShellDeck

Top comments (0)