Skip to content

simonwjackson/mountainous

Repository files navigation

Mountainous | NixOS flake built with Snowfall 🏔️

Overview

Here's a quick and incomplete tour of what is going on in the repository:

Directory Purpose
modules Stores NixOS and Home-manager modules. These are the main building block: Every system receives the options these declare.
systems Stores NixOS system configurations. These are also often called hosts
homes Stores Home-manager configurations, which are associated with a system
lib A shared library of functions and variables, available everywhere in the flake at lib.mountainous.*
packages Packages I could not find in nixpkgs, and packaged myself for use in this flake.
shells Nix shells for bootstrapping, etc.

Others are not as important. Snowfall Guide/Reference

System Management Commands

This repository provides a set of convenient commands for managing the NixOS configurations. These commands are implemented using just, a handy command runner. Here's a table of the available commands:

Command Description
just Displays a list of available commands.
just switch [HOST] [BUILD_HOST] Switches to the system configuration for the specified HOST. Optionally, you can provide a custom BUILD_HOST. If not provided, it defaults to the HOST.
just build [HOST] Builds the system configuration for the specified HOST.
just dry[-run] [HOST] Performs a dry run of the system configuration for the specified HOST.
just evolve [ARGS] Updates the flake and switches to the new configuration. You can pass additional arguments to just switch using ARGS.
just evolve-all [ARGS] Updates the flake and deploys the new configuration to all systems.
just up [ARGS] Updates all flake inputs or specific inputs. You can specify the inputs to update using ARGS.
just history Shows the system profile history.
just repl Opens the Nix REPL with the nixpkgs flake.
just clean Removes all system generations older than 7 days.
just gc Garbage collects all unused Nix store entries.

To use these commands, make sure you have just installed on your system. Then, navigate to the root directory of this repository and run the desired command using just <command>.

For example, to switch to the system configuration for a specific host, you can run:

just switch my-host