Setting up a workstation involves two phases:
- Bootstrap – Install Nix on a Debian-based system along with base tools
- Provision – Install APT/Flatpak packages and apply configurations via mise
This setup requires the dennybaa/dotfiles repository. Install Git and clone the repository:
sudo apt install git -y
# Clone the repository
cd ~ && git clone git@github.com:dennybaa/dotfiles.git
# Alternative: clone via HTTPS
# cd ~ && git clone https://github.com/dennybaa/dotfiles.gitThe provision phase installs software and applies system configurations. This is orchestrated by mise and uses:
nu/install-packages.nu– Handles package operations: updating APT sources, installing APT and Flatpak packages- mise – Executes configuration hooks
-
Run the bootstrap script to install Nix:
cd ~/dotfiles && ./bootstrap.sh
✅ Action required: Before a relogin happens, the Nix bootstrap profile is not sourced. To continue setup in this case, running the command below is required:
. /etc/profile.d/nix.sh -
Run the post-Nix bootstrap tasks:
mise run bootstrap
📝 Note: The bootstrap process may prompt for local secret values, like the example below:
Enter your GitHub Personal Access Token (for public repositories, CTRL+D to submit) >>>GitHub Personal Access Token for public repositories: Used by Nix and Mise to authenticate API requests when downloading from GitHub (increases rate limits and avoids anonymous access restrictions).
View available mise tasks:
mise tasksTwo system presets are available:
- minimal – Installs a basic set of packages (zsh, tmux, etc.)
- desktop – Full workstation with APT, Flatpak, and Nix packages
Run the appropriate command:
mise run provision:minimal
# OR
mise run provision:desktop
# Additionally
mise run 'setup:desktop:*'📝 NOTE: Use
--update(or-u) to refresh installed packages, including Flatpak and Nix.
System package configuration is defined in nu/packages.nu:
AptSources– Files for/etc/apt/sources.list.d/and optional GPG keysAptPackagesandFlatpakPackages– Packages organized by type (base, desktop, etc.)
Install specific bundles:
mise r packages:apt default desktopA single profile approach is recommended: nix/desktop, nix/vps, nix/server, etc.
Install a profile:
mise run nix desktopAfter installing the main profile, clean up the bootstrap profile to avoid overlap (recommended, but not necessary):
mise run nix:rm bootstrap📝 Note: Use
-u/--updateto refresh flake versions.