< Back

Checklist for setting up Linux

2 min read
  • linux
  • distrohopping
  • devtools
Thu Feb 29 2024

I’m writing this little guide to help me remember what I need to set up a new Linux installation (when going distro-hopping or setting up a new PC). Could be useful to someone else reading this too, who knows?

Distro hopping meme

Table of Contents

  1. Useful repos
  2. Linux
  3. Programming
  4. Homelab

Useful repos

Use the following repos to automate some of the setup tasks.

  • Dotfiles
    • git, bash, tmux, neovim, starship
  • Homelab
    • docker, caddy, dnsmasq, grafana, prometheus, nextcloud

Linux

  • Desktop Environment: KDE Plasma
  • System theme: Catppuccin Mocha Lavender
  • Application theme: Lightly
  • Cursor theme: Catppuccin
  • Icons: Papirus Dark
  • Monospace font: JetBrains Mono Nerd Font
  • Wallpaper: endy_vector_satteliet (EndeavourOS community wallpaper)
  • Terminal: default (Gnome, Konsole etc.)
    • Terminal multiplexer: tmux (see dotfiles for config), don’t forget to install tpm
  • Terminal prompt: Starship
  • Web browser: Brave
  • Clipboard: xclip (required for tmux)

Programming

  • IDE: Neovim - full config in dotfiles
    • Telescope requires ripgrep, fd
    • Do a checkhealth after configuration
  • Git: check dotfiles for improved log commands (git lg, lg1, lg2 etc.)
  • JavaScript/TypeScript:
    • nvm
    • pnpm
  • Python:
    • pyenv
    • poetry
  • Rust
  • Go
  • HTML (not a programming language, fight me)

Homelab

  • Docker
  • Web server: Caddy
  • DNS server: dnsmasq
    • Copy over /etc/dnsmasq.conf and /etc/resolv.conf from homelab repo.
    • Ensure systemd-resolved service is stopped, disabled and masked.
    • Start and enabled dnsmasq.
  • SSH
    • Install sshd and enable it: sudo service ssh enable
    • Setup certificate based authentification for access from my other PC:
      • Create a new key-pair ssh-keygen -t ed25519 -C "your_email@example.com"
      • Append the contents of id_ed15519.pub to authorized_keys on the host PC
      • Test your SSH connection
    • Edit /etc/ssh/sshd_config with the following:
      • Change default port: Port n
      • Disable password authentication: PasswordAuthentication no
    • Setup another certificate for Github CI access using a similar process.
  • Nextcloud
    • Use Nextcloud AIO image with docker
    • Ensure the borg backup is itself backed up to an external drive
    • Setup a systemd service with a timer to trigger the nextcloud-preview-generator
  • Firewall: use ufw to only open up the right ports

Get In Touch