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.md
has instructions for installing Debian with ZFS.hardware
contains some reference and quirks about specific hardware I use.apt
has instructions for setting up APT for Debian Bookworm.ufw.md
has instructions for setting up a firewall.ssh.md
has instructions for setting up an SSH server.wireguard.md
has instructions for setting up a VPN.user-account.md
has 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-run
Review 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 wireplumber
See restic
for setting up backups.