## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# Customizations

The `customization` block configures users and system-level settings.

## Users

Create a user in the image:

    customization {
        user "ci"
    }

Property | Required | Description
--- | --- | ---
(argument) | Yes | Username to create

The user is created with default settings appropriate for the target distro.

## Conditional Customizations

Like packages and overlays, customization blocks support profile filtering:

    customization if="ci" {
        user "ci"
    }

This user is only created when the `ci` profile is active:

    forger build --spec my-image.kdl --profile ci

## Combined with Overlays

For full user setup, combine customization with overlay operations:

    customization {
        user "deploy"
    }

    overlays {
        // Set user password
        shadow username="deploy" password="$5$..."

        // Ensure SSH directory
        ensure-dir "/home/deploy/.ssh" owner="deploy" group="staff" mode="700"

        // Deploy authorized keys
        file destination="/home/deploy/.ssh/authorized_keys" source="files/authorized_keys"
    }