5

I'm trying to come up with a strategy to store my dotfiles in Git. So far, I've create a dotfiles repo on GitHub and I've thrown together an install script which simply clones the repo, then symlinks each of the files into my ~ directory.

However I'm struggling to come up with a way of storing confidential information in my dotfiles, but at the same time making sure that none of it gets committed into Git.

For example, I have my Irssi config file, in which I have the following:

chatnets = {
  Freenode = {
  type = "IRC";
  autosendcmd = "/msg nickserv identify PASSWORD ; wait 2000";
  ...

Now that I am version controlling this dot file, I can't store my password directly in this file. This means that every time I start Irssi, I have to manually identify with NickServ as PASSWORD is obviously not my NickServ password.

I've tried to see if there's a way to include a secured, non-version controlled file into the Irssi config, but I can't find any solutions for this.

How should I store my dotfiles in such a way that I can store confidential information such as passwords required by the dotfiles outside of Git?

Related, but no real solution: How to pass bash variables (passwords) to IRSSI config file? Using SASL for Irssi isn't really a convenient option as it's yet another thing to setup on a new system and I'm trying to make the installation process as simple as possible.

JoeNyland
  • 306

1 Answers1

0

Many programs support putting shell commands into their configuration files in some way. For example, I have this in my .neomuttrc:

set my_fastmail_pass="`gpg -dq ~/.config/neomutt/fastmail-password.gpg`"

I think you can do something similar with Irssi. Alternatively, you can use git-crypt for files that contain secrets. This way, the whole file is encrypted.