# shark-empire/mitos-installer architecture

> Architecture diagram of the GitHub repository shark-empire/mitos-installer, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/shark-empire/mitos-installer
- Repository: https://github.com/shark-empire/mitos-installer

## Overview

MITOS Installer is a Rust command-line installer for deploying an operating system to a selected disk. The main workflow gathers network, disk, filesystem, account, and regional settings; checks prerequisites; partitions and formats storage; mounts the target; deploys the root filesystem and kernel; then configures boot, system settings, networking, and users. Failure triggers emergency cleanup. The README contains only the product name, and several modules are unsampled, so their internal behavior and wiring are not inferred here.

Main entry points: [`src/installer.rs`](https://github.com/shark-empire/mitos-installer/blob/main/src/installer.rs) (Installer pipeline), [`src/main.rs`](https://github.com/shark-empire/mitos-installer/blob/main/src/main.rs) (Program entry), [`src/ui.rs`](https://github.com/shark-empire/mitos-installer/blob/main/src/ui.rs) (Setup wizard), [`src/utils.rs`](https://github.com/shark-empire/mitos-installer/blob/main/src/utils.rs) (Chroot utilities)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Installer entry"]
  node_main["Program entry<br/>[main.rs]"]
  node_logging["Logging<br/>[logging.rs]"]
  node_pipeline["Installer pipeline<br/>[installer.rs]"]
  node_recovery["Failure cleanup<br/>[recovery.rs]"]
end

subgraph group_setup["Interactive setup"]
  node_wizard["Setup wizard<br/>[ui.rs]"]
  node_disklist["Available disks<br/>[disk.rs]"]
  node_platform["Platform detection<br/>[platform.rs]"]
  node_hardware["Hardware checks<br/>[hardware.rs]"]
  node_verification["Prerequisite checks<br/>[verify.rs]"]
end

subgraph group_storage["Disk and deployment"]
  node_partition["Disk partitioning<br/>[partition.rs]"]
  node_filesystem["Filesystem formatting<br/>[filesystem.rs]"]
  node_mount["Target mounts<br/>[mount.rs]"]
  node_rootfs["Root filesystem deployment<br/>[rootfs.rs]"]
  node_kernel["Kernel installation<br/>[kernel.rs]"]
  node_bootloader["Limine boot setup<br/>[bootloader.rs]"]
end

subgraph group_configuration["System configuration"]
  node_systemconfig["System configuration<br/>[config.rs]"]
  node_init["Init configuration<br/>[init.rs]"]
  node_locale["Locale and timezone<br/>[locale.rs]"]
  node_network["Network configuration<br/>[network.rs]"]
  node_users["User accounts<br/>[users.rs]"]
  node_security["Security setup<br/>[security.rs]"]
  node_utilities["Chroot utilities<br/>[utils.rs]"]
end

node_operator(("Installer operator"))

node_operator -->|"starts installer"| node_main
node_main -->|"initializes logs"| node_logging
node_main -->|"starts setup"| node_wizard
node_wizard -->|"lists disks"| node_disklist
node_wizard -->|"sets configuration"| node_pipeline
node_main -->|"executes pipeline"| node_pipeline
node_pipeline -->|"detects platform"| node_platform
node_pipeline -->|"checks requirements"| node_hardware
node_pipeline -->|"checks prerequisites"| node_verification
node_pipeline -->|"partitions target"| node_partition
node_pipeline -->|"formats partitions"| node_filesystem
node_pipeline -->|"mounts target"| node_mount
node_pipeline -->|"deploys rootfs"| node_rootfs
node_pipeline -->|"installs kernel"| node_kernel
node_pipeline -->|"configures init"| node_init
node_pipeline -->|"installs bootloader"| node_bootloader
node_pipeline -->|"configures system"| node_systemconfig
node_pipeline -->|"configures locale"| node_locale
node_pipeline -->|"configures networking"| node_network
node_pipeline -->|"creates accounts"| node_users
node_pipeline -->|"profiles hardware"| node_hardware
node_pipeline -->|"runs chroot command"| node_utilities
node_users -->|"runs chroot command"| node_utilities
node_locale -->|"runs chroot command"| node_utilities
node_main -->|"cleans up on failure"| node_recovery

click node_main "https://github.com/shark-empire/mitos-installer/blob/main/src/main.rs"
click node_logging "https://github.com/shark-empire/mitos-installer/blob/main/src/logging.rs"
click node_pipeline "https://github.com/shark-empire/mitos-installer/blob/main/src/installer.rs"
click node_recovery "https://github.com/shark-empire/mitos-installer/blob/main/src/recovery.rs"
click node_wizard "https://github.com/shark-empire/mitos-installer/blob/main/src/ui.rs"
click node_disklist "https://github.com/shark-empire/mitos-installer/blob/main/src/disk.rs"
click node_platform "https://github.com/shark-empire/mitos-installer/blob/main/src/platform.rs"
click node_hardware "https://github.com/shark-empire/mitos-installer/blob/main/src/hardware.rs"
click node_verification "https://github.com/shark-empire/mitos-installer/blob/main/src/verify.rs"
click node_partition "https://github.com/shark-empire/mitos-installer/blob/main/src/partition.rs"
click node_filesystem "https://github.com/shark-empire/mitos-installer/blob/main/src/filesystem.rs"
click node_mount "https://github.com/shark-empire/mitos-installer/blob/main/src/mount.rs"
click node_rootfs "https://github.com/shark-empire/mitos-installer/blob/main/src/rootfs.rs"
click node_kernel "https://github.com/shark-empire/mitos-installer/blob/main/src/kernel.rs"
click node_bootloader "https://github.com/shark-empire/mitos-installer/blob/main/src/bootloader.rs"
click node_systemconfig "https://github.com/shark-empire/mitos-installer/blob/main/src/config.rs"
click node_init "https://github.com/shark-empire/mitos-installer/blob/main/src/init.rs"
click node_locale "https://github.com/shark-empire/mitos-installer/blob/main/src/locale.rs"
click node_network "https://github.com/shark-empire/mitos-installer/blob/main/src/network.rs"
click node_users "https://github.com/shark-empire/mitos-installer/blob/main/src/users.rs"
click node_security "https://github.com/shark-empire/mitos-installer/blob/main/src/security.rs"
click node_utilities "https://github.com/shark-empire/mitos-installer/blob/main/src/utils.rs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_logging,node_pipeline,node_recovery toneBlue
class node_wizard,node_disklist,node_platform,node_hardware,node_verification toneAmber
class node_partition,node_filesystem,node_mount,node_rootfs,node_kernel,node_bootloader toneMint
class node_systemconfig,node_init,node_locale,node_network,node_users,node_security,node_utilities toneRose
class node_operator toneIndigo
```

## Components

### Installer entry

- [Program entry](https://github.com/shark-empire/mitos-installer/blob/main/src/main.rs): `src/main.rs`
- [Logging](https://github.com/shark-empire/mitos-installer/blob/main/src/logging.rs): `src/logging.rs`
- [Installer pipeline](https://github.com/shark-empire/mitos-installer/blob/main/src/installer.rs): `src/installer.rs`
- [Failure cleanup](https://github.com/shark-empire/mitos-installer/blob/main/src/recovery.rs): `src/recovery.rs`

### Interactive setup

- [Setup wizard](https://github.com/shark-empire/mitos-installer/blob/main/src/ui.rs): `src/ui.rs`
- [Available disks](https://github.com/shark-empire/mitos-installer/blob/main/src/disk.rs): `src/disk.rs`
- [Platform detection](https://github.com/shark-empire/mitos-installer/blob/main/src/platform.rs): `src/platform.rs`
- [Hardware checks](https://github.com/shark-empire/mitos-installer/blob/main/src/hardware.rs): `src/hardware.rs`
- [Prerequisite checks](https://github.com/shark-empire/mitos-installer/blob/main/src/verify.rs): `src/verify.rs`

### Disk and deployment

- [Disk partitioning](https://github.com/shark-empire/mitos-installer/blob/main/src/partition.rs): `src/partition.rs`
- [Filesystem formatting](https://github.com/shark-empire/mitos-installer/blob/main/src/filesystem.rs): `src/filesystem.rs`
- [Target mounts](https://github.com/shark-empire/mitos-installer/blob/main/src/mount.rs): `src/mount.rs`
- [Root filesystem deployment](https://github.com/shark-empire/mitos-installer/blob/main/src/rootfs.rs): `src/rootfs.rs`
- [Kernel installation](https://github.com/shark-empire/mitos-installer/blob/main/src/kernel.rs): `src/kernel.rs`
- [Limine boot setup](https://github.com/shark-empire/mitos-installer/blob/main/src/bootloader.rs): `src/bootloader.rs`

### System configuration

- [System configuration](https://github.com/shark-empire/mitos-installer/blob/main/src/config.rs): `src/config.rs`
- [Init configuration](https://github.com/shark-empire/mitos-installer/blob/main/src/init.rs): `src/init.rs`
- [Locale and timezone](https://github.com/shark-empire/mitos-installer/blob/main/src/locale.rs): `src/locale.rs`
- [Network configuration](https://github.com/shark-empire/mitos-installer/blob/main/src/network.rs): `src/network.rs`
- [User accounts](https://github.com/shark-empire/mitos-installer/blob/main/src/users.rs): `src/users.rs`
- [Security setup](https://github.com/shark-empire/mitos-installer/blob/main/src/security.rs): `src/security.rs`
- [Chroot utilities](https://github.com/shark-empire/mitos-installer/blob/main/src/utils.rs): `src/utils.rs`

### Other components

- **Installer operator**

## Connections

- Installer operator → Program entry: starts installer
- Program entry → Logging: initializes logs
- Program entry → Setup wizard: starts setup
- Setup wizard → Available disks: lists disks
- Setup wizard → Installer pipeline: sets configuration
- Program entry → Installer pipeline: executes pipeline
- Installer pipeline → Platform detection: detects platform
- Installer pipeline → Hardware checks: checks requirements
- Installer pipeline → Prerequisite checks: checks prerequisites
- Installer pipeline → Disk partitioning: partitions target
- Installer pipeline → Filesystem formatting: formats partitions
- Installer pipeline → Target mounts: mounts target
- Installer pipeline → Root filesystem deployment: deploys rootfs
- Installer pipeline → Kernel installation: installs kernel
- Installer pipeline → Init configuration: configures init
- Installer pipeline → Limine boot setup: installs bootloader
- Installer pipeline → System configuration: configures system
- Installer pipeline → Locale and timezone: configures locale
- Installer pipeline → Network configuration: configures networking
- Installer pipeline → User accounts: creates accounts
- Installer pipeline → Hardware checks: profiles hardware
- Installer pipeline → Chroot utilities: runs chroot command
- User accounts → Chroot utilities: runs chroot command
- Locale and timezone → Chroot utilities: runs chroot command
- Program entry → Failure cleanup: cleans up on failure
