dotfiles
dotfiles
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
dotfiles
-
Using GNU Stow to manage your dotfiles (2012)
I really like this method as opposed to using a bare Git repository. For one, it's conceptually simpler in my mind; you don't have to understand Git internals to get this working. Secondly, this lets you pick and choose which config files you want to "install" on a machine.
I feel obligated to share my Bash script, dotfiles.sh[1], that accomplishes what Stow does, but with a few tweaks that I found particularly useful:
dotfiles.sh targets the user's home directory by default (i.e. stow -t $HOME).
dotfiles.sh never symlinks directories, only files (i.e. stow --no-folding). (This was the straw that broke the camel's back and made me roll my own script in the first place.)
dotfiles.sh makes backups of local config files and can restore them if you remove your symlinked version.
My script is quite old now, and I use it so seldomly I'm not convinced there aren't bugs. YMMV.
[1]: https://github.com/kevin-hanselman/dotfiles
dotfiles
-
Let the (terminal) bells ring out
Source: https://github.com/susam/dotfiles/blob/main/shrc#L381
-
How I run my servers
I have a similar setup for my personal and project websites. Some similarities and differences:
* I use Linode VMs ($5/month).
* I too use Debian GNU/Linux.
* The initial configuration of the VM is coded as a shell script: https://github.com/susam/dotfiles/blob/main/linode.sh
* Project-specific or service-specific configuration is coded as individual Makefiles. This takes care of creatng An example: https://github.com/susam/susam.net/blob/main/Makefile
* The software is written in Common Lisp. In case of a personal website or blog, a static website is generated by a Common Lisp program. In case of an online service or web application, the service is written as a Common Lisp program that uses Hunchentoot to process HTTP requests and return HTTP responses.
* I use Nginx too. Nginx serves the static files as well as functions as a reverse proxy when there are backend services involved. Indeed TLS termination is an important benefit it offers. Other benefits include rate limiting requests, configuring an allowlist for HTTP headers to protect the backend service, etc.
-
My Favorite Commandline Oneliners
I have something similar but a little more elaborate at my ~/bin to ensure that there isn't a severe loss of quality during the conversion: https://github.com/susam/dotfiles/blob/e434b7c/bin/xmp3
-
Using GNU Stow to manage your dotfiles (2012)
I follow a similar but handcrafted approach. I have a dotfiles repo with a setup script that automates the creation or deletion of all the symbolic links: https://github.com/susam/dotfiles/blob/master/setup
So what I do on any new system is just:
git clone https://github.com/susam/dotfiles.git
What are some alternatives?
GNU Stow - GNU Stow - mirror of savannah git repository occasionally with more bleeding-edge branches
bashdot - Minimalist dotfile management framework.
zinit - Flexible and fast Zsh plugin manager with clean fpath, reports, completion management, Turbo, annexes, services, packages.
dotfiles - Settings for various tools I use.
Home Manager using Nix - Manage a user environment using Nix [maintainer=@rycee]
nix - my nix modules, overlays, host configurations, and more!
dotbot - A tool that bootstraps your dotfiles ⚡️
dot.me - me dot files
docker-rollout - 🚀 Zero Downtime Deployment for Docker Compose
vcsh - config manager based on Git
securestore-rs - A simple, encrypted, git-friendly, file-backed secrets manager for rust