I use yadm to manage my dotfiles, and nix to manage my software. You’ll need those installed.
This configuration is used on nixos. I have made some effort to be compatible with other distributions, but I wouldn’t expect it to work out of the box.
yadm clone $URL