This repo contains instructions and configuration files for setting up Linux systems. These reflect my own preferences, but you might find useful snippets in here, too.
Some of the files in this repo begin with a dot, so use ls -a to see them.
debian-on-zfs.mdhas instructions for installing Debian with ZFS.hardwarecontains some reference and quirks about specific hardware I use.apthas instructions for setting up APT for Debian Bookworm.ufw.mdhas instructions for setting up a firewall.ssh.mdhas instructions for setting up an SSH server.wireguard.mdhas instructions for setting up a VPN.user-account.mdhas instructions for adding system users.
debian-base contains useful Debian Bookworm packages for
both servers and workstations. You can install these packages with:
sudo apt install $(sed 's/#.*//' debian-base)debian-desktop contains useful packages for graphical
desktops/laptops. You can install these packages with:
sudo apt install $(sed 's/#.*//' debian-desktop)The shell and UNIX-y configurations are mostly shared with Cubicle configs, with quite a bit of layering. This includes:
- Bash,
- Zsh,
- vim,
- git,
- and some miscellany.
Use install.py to easily flatten the layers and install these configs on the
host:
mkdir -p ~/opt
git clone https://github.com/ongardie/cubicle/ ~/opt/cubicle
./install.py --cubicle ~/opt/cubicle --dry-runReview what this would do, then drop the --dry-run.
I usually use lightdm with Xfce (see xfce.md) and the Notion
window manager (see .notion). An older
.xsession script is an alternative to avoid some or all of
Xfce (for more minimal setups or very resource-constrained machines).
See hidpi.md for high-resolution displays.
See flatpak for sandboxed Desktop applications.
See firefox.md for configuring Firefox, which I usually
install via Flatpak.
To enable audio for your user account:
systemctl --user enable --now pipewire pipewire-pulse wireplumberSee restic for setting up backups.