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?
Table of Contents
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.
- Copy over
- 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
toauthorized_keys
on the host PC - Test your SSH connection
- Create a new key-pair
- Edit
/etc/ssh/sshd_config
with the following:- Change default port:
Port n
- Disable password authentication:
PasswordAuthentication no
- Change default port:
- Setup another certificate for Github CI access using a similar process.
- Install
- 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