Personal system configuration: dotfiles, application configs, and bootstrap instructions. The goal is not to automate everything, but to make the setup understandable, repeatable, and easy to evolve over time.
This repository is opinionated and tailored to my workflow and machines. It assumes:
- Ubuntu-based system
- manual review before running commands
- a user-level setup, not a multi-user or server environment
Clone, adapt, and reuse ideas, but do not expect a one-command install or universal defaults.
https://github.com/sharkdp/bat
sudo apt update
sudo apt install bat
mkdir -p ~/.local/bin
ln -s /usr/bin/batcat ~/.local/bin/batcurl "https://castor.jolicode.com/install" | bashphp -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'c8b085408188070d5f52bcfe4ecfbee5f727afa458b2573b8eaaf77b3419b0bf2768dc67c86944da1544f06fa544fd47') { echo 'Installer verified'.PHP_EOL; } else { echo 'Installer corrupt'.PHP_EOL; unlink('composer-setup.php'); exit(1); }"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
mkdir -p ~/.local/bin ~/.config/composer
ln -s ~/homelab/composer/composer.json ~/.config/composer/composer.json
composer updatehttps://github.com/dandavison/delta
brew install git-deltasudo apt remove $(dpkg --get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1)
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
udo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginln -s ~/homelab/editorconfig/.editorconfig ~/.editorconfighttps://www.nerdfonts.com/font-downloads
mkdir -p ~/.local/share/fonts
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/Agave.zip -O /tmp/Agave.zip
unzip /tmp/Agave.zip -d /tmp/Agave
cp /tmp/Agave/*.{ttf,otf} ~/.local/share/fonts/
fc-cache -fvhttps://github.com/junegunn/fzf
sudo apt update
sudo apt install fzfsudo apt update
sudo apt install git
vim ~/.gitconfig.local
# Then edit file like the following
# [user]
# name = Your name
# email = Your email
ln -s ~/homelab/git/.gitconfig ~/.gitconfig/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"sudo apt update
sudo apt install lsd
ln -s ~/homelab/lsd ~/.config/lsdsudo apt update
sudo apt install neovim
ln -s ~/homelab/nvim ~/.config/nvim# Check github for the nvm latest version
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bashbrew install php
brew install php@8.4
brew install php@8.1https://github.com/phpactor/phpactor
curl -Lo phpactor.phar https://github.com/phpactor/phpactor/releases/latest/download/phpactor.phar
chmod a+x phpactor.phar
mv phpactor.phar ~/.local/bin/phpactor
ln -s ~/homelab/phpactor ~/.config/phpactorhttps://github.com/PHP-CS-Fixer/PHP-CS-Fixer
ln -s ~/homelab/php-cs-fixer ~/.config/php-cs-fixerwget -qO - https://archive.regolith-desktop.com/regolith.key | \
gpg --dearmor | sudo tee /usr/share/keyrings/regolith-archive-keyring.gpg > /dev/null
echo deb "[arch=amd64 signed-by=/usr/share/keyrings/regolith-archive-keyring.gpg] \
https://archive.regolith-desktop.com/ubuntu/stable plucky v3.3" | \
sudo tee /etc/apt/sources.list.d/regolith.list
sudo apt update
sudo apt install regolith-desktop regolith-session-flashback regolith-look-lascaille
ln -s ~/homelab/regolith ~/.config/regolith3
# Then, restart the systemcurl -sS https://starship.rs/install.sh | shcurl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh' | sudo -E bash
sudo apt install symfony-cli
symfony completion zsh > ~/.symfony_completionsudo apt update
sudo apt install tmux
ln -s ~/homelab/tmux/.tmux.conf ~/.tmux.confhttps://github.com/tmuxinator/tmuxinator
brew install tmuxinator
wget https://raw.githubusercontent.com/tmuxinator/tmuxinator/master/completion/tmuxinator.zsh -O /usr/local/share/zsh/site-functions/_tmuxinator
mkdir ~/.tmuxinatorhttps://wezterm.org/index.html
curl -fsSL https://apt.fury.io/wez/gpg.key | sudo gpg --yes --dearmor -o /usr/share/keyrings/wezterm-fury.gpg
echo 'deb [signed-by=/usr/share/keyrings/wezterm-fury.gpg] https://apt.fury.io/wez/ * *' | sudo tee /etc/apt/sources.list.d/wezterm.list
sudo chmod 644 /usr/share/keyrings/wezterm-fury.gpg
sudo apt update
sudo apt install wezterm
ln -s ~/homelab/wezterm/.wezterm.lua ~/.wezterm.luahttps://doc.ubuntu-fr.org/xclip
sudo apt update
sudo apt install xcliphttps://en.wikipedia.org/wiki/Z_shell https://github.com/zsh-users/zsh-syntax-highlighting
sudo apt update
sudo apt install zsh zsh-syntax-highlighting
ln -s ~/homelab/zsh/.zshrc ~/.zshrc