# nix-community/disko

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nix-community-disko).**

2,866 stars · 287 forks · Nix · mit

## Links

- GitHub: https://github.com/nix-community/disko
- awesome-repositories: https://awesome-repositories.com/repository/nix-community-disko.md

## Topics

`build-with-buildbot` `flakes` `nix`

## Description

Disko is a declarative configuration system for managing Linux disk partitioning, filesystem formatting, and LUKS encryption setup. It functions as a disk provisioner that allows users to define disk layouts and mount points through configuration files rather than manual commands.

The project focuses on providing reproducible system installations by defining storage provisioning as code. It specifically automates the creation of partition tables, the setup of encrypted storage containers, and the configuration of filesystem layouts for NixOS systems.

The toolset includes a command-line interface for partitioning and mounting physical disks and provides functionality for organizing storage via logical volumes and various filesystem types.

## Tags

### Operating Systems & Systems Programming

- [Nix-Based Provisioning](https://awesome-repositories.com/f/operating-systems-systems-programming/nix-based-provisioning.md) — Leverages the Nix expression language to define immutable and reproducible disk layouts before execution.
- [Declarative Disk Layouts](https://awesome-repositories.com/f/operating-systems-systems-programming/declarative-disk-layouts.md) — Allows specifying partitioning and mount points through declarative layouts to automate system installation processes. ([source](https://cdn.jsdelivr.net/gh/nix-community/disko@master/README.md))
- [Disk and Mount Management](https://awesome-repositories.com/f/operating-systems-systems-programming/disk-and-mount-management.md) — Ships a command-line interface for partitioning, formatting, and mounting physical disks via configuration files. ([source](https://cdn.jsdelivr.net/gh/nix-community/disko@master/README.md))
- [Disk Partitioning Systems](https://awesome-repositories.com/f/operating-systems-systems-programming/disk-partitioning-systems.md) — Automates the creation of partition tables and filesystems across physical and logical storage volumes.
- [Declarative Partitioning](https://awesome-repositories.com/f/operating-systems-systems-programming/disk-partitioning-systems/declarative-partitioning.md) — Automates the process of partitioning and formatting disks using a configuration file to ensure reproducibility.
- [Declarative Layouts](https://awesome-repositories.com/f/operating-systems-systems-programming/disk-partitioning-utilities/declarative-layouts.md) — Provides a high-level configuration schema to define precise disk partitioning and formatting sequences.
- [NixOS Partitioning Utilities](https://awesome-repositories.com/f/operating-systems-systems-programming/disk-partitioning-utilities/nixos-partitioning-utilities.md) — Provides a declarative utility for partitioning, formatting, and mounting disks during the NixOS installation process.
- [Dependency-Aware Mounting](https://awesome-repositories.com/f/operating-systems-systems-programming/filesystem-mounting/dependency-aware-mounting.md) — Coordinates the sequential mounting of filesystems based on a defined dependency graph of mount points.

### Data & Databases

- [Logical Volume Management](https://awesome-repositories.com/f/data-databases/storage-abstraction/logical-volume-management.md) — Maps logical structures like LUKS encryption and LVM volumes onto physical partitions using nested configuration blocks.

### DevOps & Infrastructure

- [Storage Provisioning](https://awesome-repositories.com/f/devops-infrastructure/on-premise-deployment/nixos-deployments/storage-provisioning.md) — Defines mount points and filesystem layouts as code to automate the setup of storage for NixOS systems.
- [Logical Volume Managers](https://awesome-repositories.com/f/devops-infrastructure/volume-management/logical-volume-managers.md) — Provides functionality for organizing storage via partition tables, logical volumes, and encrypted containers. ([source](https://cdn.jsdelivr.net/gh/nix-community/disko@master/README.md))
- [Installation Reproducibility](https://awesome-repositories.com/f/devops-infrastructure/reproducible-build-systems/installation-reproducibility.md) — Ensures disk layouts and partition schemes are identical across multiple machines using declarative formats.

### Security & Cryptography

- [Full Disk Encryption](https://awesome-repositories.com/f/security-cryptography/full-disk-encryption.md) — Automates the setup of encrypted storage containers and LUKS volumes during initial system deployment.
- [Storage Encryption](https://awesome-repositories.com/f/security-cryptography/storage-encryption.md) — Implements a configuration layer for setting up encrypted storage containers and secure partitions on Linux.

### Software Engineering & Architecture

- [Declarative Configuration Systems](https://awesome-repositories.com/f/software-engineering-architecture/declarative-configuration-systems.md) — Provides a framework for defining disk layouts and mount points through declarative configuration files.
- [Imperative-to-Declarative Bridges](https://awesome-repositories.com/f/software-engineering-architecture/imperative-to-declarative-bridges.md) — Implements an architectural bridge that maps declarative disk definitions to a functional execution layer for device discovery.

### Development Tools & Productivity

- [Provisioning Script Generators](https://awesome-repositories.com/f/development-tools-productivity/shell-script-execution-engines/provisioning-script-generators.md) — Generates temporary shell scripts to perform destructive disk operations during the initial system installation phase.
