I’ve installed and set up Debian Linux probably more than 15 times in my life, and I almost always go through the same steps. Yesterday I did it again, and I thought of documenting the process in a step-by-step guide
- TO-DO: Add Security Hardening to this guide (This is generally okay for test boxes, isolated VMs, etc. where the threat model is reasonably allowing)
[!INFO] This is NOT a post about “How to install Debian Linux” but a post-installation “Checklist” and it assumes it’s already installed.
- Sudo access
su root
usermod -aG sudo $USER
# If usermod not found:
sudo apt update && sudo apt install passwd
- Update && Upgrade
sudo apt update && sudo apt full-upgrade -y && sudo reboot
- Additional Software
sudo apt install -y curl wget git gnome-tweaks gnome-shell-extensions \
gnome-shell-extension-manager
- Swap
sudo echo 'vm.swappiness=10' >> /etc/sysctl.conf
- Networking
This one needs more testing. But worth a shot to try:
# Disable NM
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
# Use networkd && resolved instead:
sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd
sudo systemctl enable systemd-resolved
sudo systemctl start systemd-resolved
# Linking
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
- Optional: Set up IP manually
[Match]
Name=eth0
[Network]
Address=192.168.1.100/24
Gateway=192.168.1.1
DNS=1.1.1.1
DNS=8.8.8.8
- 5.1. Firewall (UFW)
sudo ufw enable
- Install extensions
- Open Extensions App on Debian,
- Toggle on “User Themes”
- Download Orchid or Nordic themes
- Terminal && Text editor
- Install & setup Terminator
sudo apt-get -y install terminator
cd
curl -so .config/terminator/config https://github.com/Argandov/my_dotfiles/raw/master/terminator.config
- Vim Setup
sudo apt -y install vim
# My own dotfiles setup:
curl -s https://raw.githubusercontent.com/Argandov/my_dotfiles/master/get-my-dotfiles.sh | bash -s -- --vimrc
- fzf/zoxide/eza/bat/others
# Fuzzy Finder
sudo apt update
sudo apt install fzf
sudo apt install zoxide
# Bashrc:
echo 'eval "$(zoxide init bash)"' >> ~/.bashrc
# EZA (Better LS)
sudo apt install cargo
cargo install eza
# Bat (Better "cat")
sudo apt install bat
# Additionals
apt install ffmpeg 7zip jq poppler-utils fd-find ripgrep fzf zoxide imagemagick
- Starship
Nerdfont: Iosevka https://arc.net/l/quote/mytetusk
curl -sS https://starship.rs/install.sh | sh
# BASHRC
echo 'eval "$(starship init bash)"' >> $HOME/.bashrc
mkdir $HOME/.config/starship/
curl -so $HOME/.config/starship/vlack.toml https://raw.githubusercontent.com/Argandov/DotFiles-and-Setup/refs/heads/master/starship/vlack.toml
# BASHRC
echo 'export STARSHIP_CONFIG="$HOME/.config/starship/vlack.toml"' >> $HOME/.bashrc
- Yazi
At the moment, Yazi needs to be either built, or downloaded from https://github.com/sxyazi/yazi/releases
Or via Cargo (Haven’t done this myself yet) https://yazi-rs.github.io/docs/installation#crates
*
- Wallpaper
My favourite WP: https://unsplash.com/photos/close-up-photo-of-black-water-at-daytime-o1radglopDA
- Brave browser
curl -fsS https://dl.brave.com/install.sh | sh