// krypt/sh

Documentation

About
krypt/sh
Overview of krypt/sh — design philosophy, the pure LLVM/musl toolchain, and what to expect from a source-based system with no GCC and no glibc.
Filesystem Layout
The dual-prefix directory structure, XDG runtime directories, and the absence of PAM and elogind.
System Administration
Package Management
Managing packages with addpkg, delpkg, infopkg, and the high-level pkg manager. Reverse dependency checking with revdep after library upgrades.
Building Ports
Syncing the ports tree, building packages from source with mkpkg, MAKEPKG file anatomy, and build configuration.
Services & Init
Managing services with runit. Writing run, finish, and log scripts. Examples for daemons, one-shot services, and services with cleanup.
Users & Permissions
Adding users, managing groups, and privilege escalation with doas. No PAM — authentication goes through shadow utilities directly.
Networking
Static IP, DHCP with dhcpcd, WiFi with wpa_supplicant, DNS, and the nftables firewall. No NetworkManager.
Graphics & Wayland
The graphics stack, seatd, GPU drivers, and launching Wayland compositors (labwc, sway) from a TTY. Pure Wayland — no X11.
Installation
Installation Guide
Download the disk image, write to USB, and install krypt/sh to disk. Covers partitioning, package installation, fstab, system configuration, and EFISTUB boot. UEFI only — x86_64.
Kernel
Building a custom kernel with LLVM, loading modules, EFISTUB, security options, and cgroups configuration.
Encryption (LUKS2)
Full disk encryption with LUKS2 and dm-crypt. Setup, opening volumes at boot without an initramfs, and required kernel options.
Virtualisation
QEMU
Rootless VMs using passt for networking, GTK/Wayland display, and clipboard sharing without SPICE.
Podman
Rootless containers with crun, netavark, and aardvark-dns. No Docker daemon required.
Xen
Hardware-enforced VM isolation as a Xen dom0. Booting with limine via multiboot2, runit services for the Xen toolstack, creating PVH domUs.

LLVM musl libc libressl Independent