| 🚧 UNDER CONSTRUCTION |
|---|
|
The project compiles and runs, but it is still early in development. Many features are missing, bugs are common, and it is not stable yet. Feel free to explore if you are curious, but if you need something reliable, please check back later once the project has matured into a stable release. |
| 📢❗🚨 SECURITY CONCERN |
|---|
|
Please read this part. Do not skip it. The security of Azzio has not been thoroughly reviewed yet. There are no SECURITY.md or ISSUES.md files. There is also no process in place for onboarding developers, tracking issues, accepting pull requests, or reporting vulnerabilities. The project recently went through a major overhaul and was renamed to Azzio. During that work, coding LLMs were used to write a lot of the code. That generated code has only been skimmed for basic security and style. It has not been carefully reviewed. So if you plan to use this project in any way, please read the code first. Do not run anything until you have checked it yourself. |
Technical Specifications
Interactive Packages Graph
- https://azzio.baselinux.net/documentations/SPECIFICATIONS_COMPONENTS_NAVIGATE_FULL.html
- https://michaelilgiaev.github.io/azzio/documentations/SPECIFICATIONS_COMPONENTS_NAVIGATE_FULL.html
- documentations/SPECIFICATIONS_COMPONENTS_NAVIGATE_FULL.html
-
Download the ISO (or compile the ISO yourself)
🚧 UNDER CONSTRUCTION https://azzio.baselinux.net/download/azzio-headed-2026.09.08-x86_64.isohttps://azzio.baselinux.net/download/azzio-headless-2026.09.08-x86_64.iso -
Create a Bootable USB
📢❗🚨 PLEASE BE CAREFUL This will erase everything on the USB!
Use one of the following tools to write the ISO to a USB drive:
-
balenaEtcher (Windows/macOS/Linux)
-
Rufus (Windows only)
-
ddcommand (Linux/macOS):Replace
<DEVICE>with the USB device and replace<ISO>with the ISO file.sudo dd if=<ISO> of=/dev/<DEVICE> bs=4M oflag=direct status=progress
ℹ️ SIDE NOTE Run
lsblkto find<DEVICE>:lsblk -o NAME,SIZE,TYPE,TRAN,FSTYPE,MOUNTPOINTS
The USB is the whole-disk entry (such as
sdb) whose size matches the stick, so use/dev/sdb, not a partition like/dev/sdb1. -
Boot from USB
Reboot your machine and use your BIOS/UEFI boot menu to boot from the USB drive. -
Live Session and Installation
The ISO boots into a live session and automatically launches the Azzio installer, which is powered by Calamares.
From the live session you can:
- Install Azzio.
- Perform machine rescue tasks.
- Do general work.
ℹ️ SIDE NOTE Some considerations when using the live session:
- Reserves 4 GB of RAM.
- Runs entirely from RAM, nothing gets saved after reboot.
- Uses a generic open-source graphics driver.
-
You can clone this repository and compile the ISO yourself. The first compile needs an internet connection to download every package that goes into the ISO. After that everything is cached and recompiles run fully offline. The compiler requires mkarchiso along with the Arch core, extra, and multilib repositories, so it has to run inside Arch Linux itself. It also installs packages and modifies files directly on the host machine. For these reasons it is recommended to compile the ISO using Docker.
-
Install Docker and Git.
Linux
- Install both with your package manager:
- Arch-based:
sudo pacman -S --needed docker git - Debian/Ubuntu:
sudo apt update && sudo apt install docker.io git - Fedora:
sudo dnf install docker git
- Arch-based:
- Start Docker:
sudo systemctl enable --now docker
macOS
- Install Docker Desktop for Mac and launch it (wait until the whale icon says Docker is running).
- Git ships with the Xcode command line tools:
xcode-select --install
Windows
- In an Administrator PowerShell, install WSL2:
wsl --install(you may be prompted to reboot). - Install Docker Desktop for Windows and enable "Use the WSL 2 based engine" in its settings.
- Open your WSL distro (e.g. Ubuntu) and install Git:
sudo apt update && sudo apt install git
- Install both with your package manager:
-
Clone the repository and enter it
git clone https://github.com/michaelilgiaev/azzio.git && cd azzio -
Compile the Docker image (creates the Arch compile environment)
sudo docker build -t azzio . -
Compile the ISO. The finished ISO goes to
output/, downloaded packages are cached incache/, and compile logs go tologs/.Default compile (recommended). Compiles only what's necessary. Everything else is downloaded as trusted, verified binaries.
sudo docker run --network=host --rm -it --init --privileged \ -e HOST_UID="$(id -u)" -e HOST_GID="$(id -g)" \ -v "$PWD/cache:/build/cache" \ -v "$PWD/output:/build/output" \ -v "$PWD/logs:/build/logs" \ azzioFull compile. Compiles everything from source, which takes hours.
sudo docker run --network=host --rm -it --init --privileged \ -e HOST_UID="$(id -u)" -e HOST_GID="$(id -g)" \ -v "$PWD/cache:/build/cache" \ -v "$PWD/output:/build/output" \ -v "$PWD/logs:/build/logs" \ azzio --full-compileℹ️ SIDE NOTE The following "--estimate" flags don't compile or download anything, they just measure your machine and connection and print how long a compile would take, then exit (no
sudo, no privileged mounts needed). There are six, picking the compile tier (default vs--full-compile) and what to estimate:Flag Tier Estimates --estimatedefault compile time and download time --estimate-only-computedefault compile time only --estimate-only-networkdefault download time only --estimate-full-compilefull compile time and download time --estimate-full-compile-only-computefull compile time only --estimate-full-compile-only-networkfull download time only The compile estimate reads your CPU cores and RAM; the network estimate runs a short bandwidth test against an Arch mirror and divides the tier's download size by your measured speed. Example (estimate a full compile, compute + network):
sudo docker run --rm -it azzio --estimate -
Get the ISO. It's in the
output/folder. On Windows (WSL) that folder opens in File Explorer at\\wsl$\<distro>\home\<your-username>\azzio\output.
-
Wipe the cache to force a fresh, fully-online recompile. Run
clear.sh, which with no flags deletes thecache/,output/, andlogs/directories (and sweeps every__pycache__):bash clear.shℹ️ SIDE NOTE For anyone working with this repository, the following optional flags are a safe way to clear compiled directories. Combine flags to clear several, omitting flags will clear all compiled diretories.
Flag Clears --output,-oonly output/--logs,-lonly logs/--cache,-conly cache/(also sweeps every__pycache__)--help,-hprints usage, then exits Example (wipe the built ISO and logs, but keep the cache):
bash clear.sh --output --logsIf the compile was stopped mid-process, the ownership handback may not have run, so some files in
cache/can be left root-owned. In that case wipe it withsudo(the same flags apply):sudo bash clear.sh
