To install on a fresh Linux box, create new user account as root
:
source <(curl -s https://raw.githubusercontent.com/kincaidoneil/dotfiles/main/add-user.sh)
On Linux or macOS, run install script for packages and settings:
curl -s https://raw.githubusercontent.com/kincaidoneil/dotfiles/main/install.sh | bash -s
Installs packages with apt
on Debian, or brew
on macOS (*only supports Apple Silicon as some Homebrew paths changed).
If running on a DigitalOcean droplet, run with the environment variable DIGITAL_OCEAN=1
to also install metrics.
Use 1Password to manage SSH keys and configure SSH commit signing.
(Skip if using 1Password and/or SSH commit signing.)
Import GPG secret key:
gpg --import [PATH]
If the key is expired, GPG may cryptically fail to sign with a No secret key
error. To extend it:
gpg --edit-key [KEY_ID]
> key 1 # Select subkey, too!
> expire # Follow prompts to extend expiration
> save
Use an older revision of .gitconfig-[PLATFORM]
so Git and GPG place nice, and add the relevant signing key.
(Prefer using 1Password to generate new keys.)
ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Add ~/.ssh/id_ed25519.pub
on client on a newline in the ~/.ssh/authorized_keys
file on the server. Refer here for more background.
To simplify connecting, add the server as an entry in the ~/.ssh/config
file on the client:
Host <NAME>
HostName <IP_ADDRESS>
ForwardAgent yes
UseKeychain yes
cd ~
rm -rf \
n \
.cargo \
.rustup \
.npm \
.zi \
.zshrc \
.gitconfig