Readit News logoReadit News
Posted by u/rocajuanma 5 months ago
Show HN: Anvil-Install your tool-chain in one command and manage configs easilygithub.com/rocajuanma/anv...
Hey HN!

Throughout my dev career, I changed jobs a few times, changed Macs many times and realized I was spending way too much time on the same setup tasks. Over time, this became a hassle because some apps where dropped, forgotten or simply misconfigured. I built a tool to handle the repetitive stuff automatically, track what you install and easily port apps and configs across machines.

https://github.com/rocajuanma/anvil

Problem: Every new machine(buying, new job, refresh, etc) means installing the same apps, finding your config files, and dealing with small issues that eat up time. Not the end of the world, but annoying when you just want to start working.

What I built: Anvil handles the routine parts with a single command: `anvil install` and let's you decide how to group your apps for easy installation. It also allows you to track configs using a remote repo.

Anvil uses Homebrew and GitHub behind the scenes, just coordinates everything so you don't have to remember what to install or where your configs are stored.

Features: - Install groups of related apps with one command, you declare your organization - Sync settings across machines using GitHub - Basic troubleshooting that fixes common issues - Works with any Mac app available through Homebrew

Results: What used to take half a day now takes about 20 minutes. More importantly, all my machines(personal and work) stay in sync - same tools, same settings, no hunting for that one config file I need.

Nothing revolutionary, just removes the friction from something we all have to do occasionally. Made it open source in case others find it useful. Give it a try if this interests you or can help you. This was built for MacOS developers, but anyone using a Mac could benefit for the install feature!

Thanks in advance!

SoylentOrange · 5 months ago
This looks very useful for Mac setup!

I just wish there were a Linux option. Like in the example config doc, I have a dotfiles repo in Github. It includes some basic settings for vim and tmux that I like to install on servers such as jump hosts or EC2 instances when running long-running development tasks. I have a file `linux-install.sh` which will install dependencies (e.g. newer version of vim, silversearcher, ripgrep, tmux) and then another `config-install.sh` that will sync config files for both Mac and Linux (tmux config, zsh config, install vim plugins, ...). A declarative syntax would be really nice for that usecase, though not sure how common that is.

rocajuanma · 5 months ago
Hello and thanks for taking a look!

You've actually touch on two areas I'm working on: 1. Extending Linux support - This is built on top of homebrew, which already partially supports linux. Perhaps some of the tools your looking for already work but its in my TODO to extend this a bit more. 2. config import and examples - I just added a new feature to import configs groups more easily, and push this release just now, check it out and it might give you some ideas and could be a way for you to start building those groups for the EC2 instances, etc.

Let me know! thanks again

mariocesar · 5 months ago
Nice! I build something similar but without the checks and selection. my dotfiles include an idempotent install script and a Brewfile with all my packages. The selection and checks features you've added, that's a great touch!

Something I'm not able to do nicely is to sync browser profiles, I end up doing all the setup and login step by step, it takes me an hour or so

rocajuanma · 5 months ago
Hey! Thanks! I'm still working on a few other features which hope to extend what can by synchronized and installed. I didn't consider browser profiles and mainly focues on apps for now, but this is something that I could explore in the future for sure. Thanks again for taking a look!