Ask HN: Developer PC setup automations for company owned devices

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • devbox

    Instant, easy, and predictable development environments

    i think a developer should be "in-tuned" with their tools, and time spent installing and configuring them is still "work"

    they can automate the setup on their own if desired

    also.. https://www.jetify.com/devbox for specific project tooling

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • dotfiles

    My dotfiles, managed with https://chezmoi.io. (by twpayne)

    Some teams are using https://chezmoi.io to set up and maintain their developer's machines. It runs on Linux, macOS, and Windows.

    https://install.doctor/ is a higher level option which uses chezmoi.

  • homebrew-bundle

    📦 Bundler for non-Ruby dependencies from Homebrew, Homebrew Cask and the Mac App Store.

    Similar here.

    More than onboarding, there is also the question of changing your laptop, and having to setup everything again.

    Some pieces of software that help:

    - Humble bundle (https://github.com/homebrew/homebrew-bundle) with a `Brewfile` stored in git and shared;

  • devhome

    The new Dev Home experience for Windows!

    For Developers on Windows 11, depending on what you think of Microsoft's "Preview" status, the growing power tool here in this space is Windows Dev Home: https://learn.microsoft.com/en-us/windows/dev-home/

    One of the key pieces of Dev Home is Machine Configuration via WinGet Configuration files [1], which are an upgrade from PowerShell DSC, if you've tried that for server configs, with increased support for installing software from WinGet, cloning git repositories (to Windows Dev Drive if you want to allow that). These config files are just YAML files so you could very easily offer starter templates and also allow developers to customize them based on their own preferences. (Also as YAML they could be source controlled in git themselves.)

    Some sample configuration files: https://github.com/microsoft/devhome/tree/main/docs/sampleCo...

    Microsoft has been iterating on Dev Home pretty rapidly and adds new features regularly (relatively recently it added support to applying the same configuration files to building new virtual machines either locally under Hyper-V or remotely with Microsoft Dev Box).

    I've not yet seen a company try to use WinGet Configuration and Dev Home as a company-wide initiative, but I have seen some growing "bottom up" usage as Developers like myself adopt parts of it for our own multi-device needs or virally share YAML snippets among each other for common corporate repos and tools.

    [1]: https://learn.microsoft.com/en-us/windows/package-manager/co...

  • ansible-dev-pc

    Ansible script to stand up a new development machine (Ubuntu/Pop!_OS)

    What kind of software are developers building and do they have automation/CI for this? In my company we are mostly deploying web apps to Linux with devs using all of these laptops. If you have a wide range of development going on, then I'd suggest prioritizing the feasible ones.

    Using https://github.com/bradwilson/ansible-dev-pc (public equivalent to ours), you can automate the setup of a Linux laptop or WSL2 environment under Windows. This covers a fair chunk of our dev team. Once you start thinking about making this work on macOS, it starts becoming quite a bit more work, but it's not terrible if management values the effort.

    If you have people doing mobile and Windows desktop development in addition to Linux web apps, it starts to get much more complex. Maybe you can't offer a fully "pre-installed" laptop, but you can automate the time-consuming parts like a Visual Studio install.

    From experience, you are going to encounter a lot of developers who struggle more than you expect with troubleshooting and automation of their work. This includes experienced devs. It seems to turn on interest and curiosity versus dev experience. It helps to create a checkpoint at onboarding where you make an effort to determine the best approach for them and know who accepts an automated happy path provided by you and who wants to handle things on their own (and perhaps fails). You can then report on the general pattern of issues to management and prioritize ways of improving your happy path build so they don't reject it.

  • asdf

    Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more

  • Vault

    A tool for secrets management, encryption as a service, and privileged access management

  • passage

    A fork of password-store (https://www.passwordstore.org) that uses age (https://age-encryption.org) as backend.

    I believe there is `pass-age` https://github.com/FiloSottile/passage ... unifies to `ssh` keys as the key material.

    https://github.com/FiloSottile/age

    ```

  • age

    A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.

    I believe there is `pass-age` https://github.com/FiloSottile/passage ... unifies to `ssh` keys as the key material.

    https://github.com/FiloSottile/age

    ```

  • personal

    Personal Repo (by tracker1)

    And then, in Windows, you likely want WSL, and you will likely need a mix of some tools in windows, some in linux and some in both. It can definitely get messy. That doesn't even count developer tool preferences.

    I created a relatively long set of install instructions for Windows+WSL[1] a couple years ago and it's already outdated in a few areas. I mean most should be able to figure it out, but it just really varies a lot. Even with WinGet, Chocolatey, etc. Windows is just the odd duck here. Doubled with the Linux/WSL bits.

    Linux is probably the easiest to script out, second would be mac imo, but need multiple steps with homebrew, etc.

    1. https://github.com/tracker1/personal/blob/main/developer-set...

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts