detached 07b7918

docs: create new KISS README with clear value proposition

commit
07b7918cb017924830953f7b561e5eea5fcaceb9
author
bnema · · 2025-10-21 06:18 UTC
parent
74c73cc
signature
unsigned
1 file · +43 -144
M README.md +43 -144
@@ -1,167 +1,66 @@
1-# archup
2-
3-**A minimal, slightly opinionated Arch Linux installer.**
4-
5-## Project Status
6-
7-✅ **Phase 0: Core Infrastructure - COMPLETE**
8-✅ **Phase 1: Barebone Installer - Basic - COMPLETE**
9-✅ **Phase 2: Add btrfs + LUKS Encryption - COMPLETE**
10-✅ **Phase 3: Limine Bootloader - COMPLETE**
11-✅ **Phase 4: Kernel Selection + Microcode - COMPLETE**
12-✅ **Phase 5: Repository Setup (AUR + Chaotic) - COMPLETE**
13-✅ **Phase 6: Barebone Preset Complete - COMPLETE**
14-
15-### Completed
16-- ✅ Project structure created
17-- ✅ Helper utilities implemented (logging, errors, presentation, chroot)
18-- ✅ Main orchestrator (install.sh)
19-- ✅ Barebone package list (~15 packages)
20-- ✅ Logo designed
21-- ✅ System guards (vanilla Arch, UEFI, x86_64, Secure Boot checks)
22-- ✅ Limine bootloader (exclusive - superior btrfs support)
23-- ✅ Auto-partitioning (GPT, EFI + root)
24-- ✅ Base system installation (pacstrap + fstab)
25-- ✅ System configuration (timezone, locale, hostname, user creation)
26-- ✅ Network configuration (systemd-networkd + iwd)
27-- ✅ Limine bootloader installation with UEFI boot entries
28-- ✅ btrfs filesystem with subvolumes (@ for root, @home for home)
29-- ✅ LUKS encryption with Argon2id (optional, 2000ms iteration)
30-- ✅ Encrypted boot support (mkinitcpio hooks)
31-- ✅ Kernel selection (linux, linux-lts, linux-zen)
32-- ✅ Auto-detected CPU microcode (intel-ucode or amd-ucode)
33-- ✅ AMD P-State driver selection (active/guided/passive)
34-- ✅ Optional AUR support (yay helper installation)
35-- ✅ Optional Chaotic-AUR repository
36-- ✅ Keyboard layout migration from ISO
37-- ✅ WiFi credentials migration from ISO (iwd)
38-
39-### Project Structure
1+# ArchUp
2+
3+**Minimal Arch Linux installer with staged desktop setup**
4+
405 ```
41-archup/
42-├── README.md
43-├── logo.txt
44-├── install.sh # Main orchestrator
45-├── install/
46-│ ├── helpers/
47-│ │ ├── all.sh # Source all helpers
48-│ │ ├── logging.sh # Log file + colorized output
49-│ │ ├── errors.sh # Trap handlers, error display
50-│ │ ├── presentation.sh # UI helpers (cursor, colors)
51-│ │ └── chroot.sh # Chroot utilities
52-│ ├── preflight/ # Phase 1 ✅
53-│ │ ├── all.sh # Preflight orchestrator
54-│ │ ├── guards.sh # System validation
55-│ │ └── begin.sh # Welcome and bootloader selection
56-│ ├── partitioning/ # Phase 1 ✅
57-│ │ ├── all.sh # Partitioning orchestrator
58-│ │ ├── detect-disk.sh # Disk selection
59-│ │ ├── partition.sh # GPT partitioning (EFI + root)
60-│ │ ├── format.sh # Format as FAT32 + ext4
61-│ │ └── mount.sh # Mount partitions to /mnt
62-│ ├── base/ # Phase 1 ✅
63-│ │ ├── all.sh # Base installation orchestrator
64-│ │ ├── pacstrap.sh # Install base packages
65-│ │ └── fstab.sh # Generate fstab
66-│ ├── config/ # Phase 1 ✅
67-│ │ ├── all.sh # Configuration orchestrator
68-│ │ ├── system.sh # Timezone, locale, hostname
69-│ │ ├── user.sh # User creation and sudo setup
70-│ │ └── network.sh # Network configuration
71-│ ├── boot/ # Phase 1 ✅
72-│ │ ├── all.sh # Bootloader orchestrator
73-│ │ └── systemd-boot.sh # systemd-boot installation
74-│ ├── security/ # (Future - TODO)
75-│ ├── post-install/ # (Future - TODO)
76-│ └── presets/
77-│ └── barebone.packages # Minimal package list (~15 packages)
78-├── bin/ # (Future utilities)
79-└── docs/ # (Future documentation)
6+Barebone CLI → Reboot → archup wizard → Choose desktop
807 ```
818
82-## Installation
83-
84-### Quick Install (from Arch ISO)
9+## Install
8510
8611 ```bash
87-# Install from dev branch (latest)
88-curl -fsSL https://archup.bnema.dev/install/dev | bash
89-
90-# OR install from main branch (stable - when available)
9112 curl -fsSL https://archup.bnema.dev/install | bash
92-
93-# OR direct from GitHub (fallback)
94-curl -L https://raw.githubusercontent.com/bnema/archup/dev/install.sh | bash
9513 ```
9614
97-**Note:** The installer automatically downloads all required files and can install a minimal bootable Arch Linux system. Ready for VM testing!
15+## What Is ArchUp?
9816
99----
17+ArchUp is a **minimal, staged Arch Linux installer** that respects user choice:
10018
101-## Development
19+- **Barebone first** - Install just the essentials
20+- **User choice** - Every layer is optional; you decide what to install when
21+- **Lightweight focused** - Only Wayland compositors (Niri, Hyprland, Sway, River)
22+- **Smart foundation** - Critical desktop infrastructure pre-configured (graphics, audio, Wayland, BT, printing)
23+- **Hardware detection** - Auto-detects GPU and installs correct drivers
24+- **Sane defaults** - One coherent dark/light theme across all apps (customizable later)
25+- **Just works** - All infrastructure configured; focus on your workflow, not setup
10226
103-### Testing Syntax
104-```bash
105-# Check all shell scripts for syntax errors and linting issues
106-make check
27+## What ArchUp Is NOT
10728
108-# Check syntax only (bash -n)
109-make check-syntax
29+❌ **Not a desktop environment** - We don't package KDE, GNOME, or other bloated DEs
30+❌ **Not a distro** - It's an installer, not a custom Arch spin
31+❌ **Not bloated** - We provide the minimum to get you started
32+❌ **Not an Omarchy copy** - We respect Omarchy's architecture but keep it minimal
11033
111-# Run shellcheck linting
112-make check-shellcheck
113-```
34+## Philosophy
11435
115-### Testing Installation
116-To test the installer in a VM (QEMU/KVM recommended):
36+ArchUp put the user in control. Every layer is optional:
37+- Want barebone CLI but with a cool bootloader? Stop at Tier 1
38+- Need a lightweight GUI? Add Tier 2+3
39+- Want to customize? Manual changes are easy; we don't lock you in
11740
118-```bash
119-# Boot Arch ISO in VM with UEFI enabled
120-# Connect to internet
41+We learned from Omarchy's excellent modular approach but rejected the bloat. ArchUp provides smart defaults (proven to work) while staying minimal and respecting user choice.
12142
122-# Download and run installer (automatically downloads all required files)
123-curl -fsSL https://archup.bnema.dev/install/dev | bash
124-```
125-
126-**What the installer does:**
127-1. Validates system (vanilla Arch ISO, UEFI, x86_64)
128-2. Asks for encryption preference (optional LUKS with Argon2id)
129-3. Asks for kernel choice (linux, linux-lts, or linux-zen)
130-4. Auto-detects CPU and selects microcode (Intel/AMD)
131-5. For AMD: Asks for P-State driver mode (active/guided/passive)
132-6. Selects installation disk (auto-partitions with GPT)
133-7. Formats partitions (FAT32 EFI + btrfs root with optional LUKS)
134-8. Creates btrfs subvolumes (@ for root, @home for home)
135-9. Installs base packages with pacstrap (kernel + microcode + cryptsetup if encrypted)
136-10. Configures system (timezone, locale, hostname, user)
137-11. Installs Limine bootloader (with encryption and AMD tuning if enabled)
138-12. Optionally installs yay AUR helper (if user enables AUR support)
139-13. Optionally adds Chaotic-AUR repository (pre-built AUR packages)
140-14. Creates bootable minimal Arch system with btrfs
141-
142-## Environment Variables
143-
144-- `ARCHUP_PATH` - Installation directory (default: `$HOME/.local/share/archup`)
145-- `ARCHUP_REPO_URL` - Repository URL for bug reports (default: `https://github.com/bnema/archup`)
146-- `ARCHUP_CHROOT_INSTALL` - Set to `1` for chroot mode
43+## Quick Start
14744
148-## Next Steps
45+```bash
46+# 1. Boot Arch ISO, install barebone system
47+curl -fsSL https://archup.bnema.dev/install | bash
14948
150-**🎉 Milestone 1 Reached!** - Barebone preset is production-ready and VM-testable
49+# 2. Reboot into new system
15150
152-**Phase 7: Default Preset - Minimal GUI** (Week 5)
153-- [ ] Add niri desktop environment
154-- [ ] Setup SDDM display manager
155-- [ ] Add minimal Wayland apps (waybar, mako, fuzzel)
156-- [ ] Add kitty terminal and Firefox browser
51+# 3. Run wizard to add desktop (optional)
52+archup wizard
53+```
15754
158-## Reference
55+## Status
15956
160-Inspired by:
161-- **Omarchy installer** - Modular architecture and security implementations
162-- **archinstall** - Official Arch installer
163-- **Arch philosophy** - Simplicity, minimalism, user choice
57+**v0.1.0** - Barebone installer complete
58+- [x] Tier 1: Barebone CLI with LUKS, btrfs, Limine
59+- [x] Auto-builds `archup` CLI on first boot
60+- [ ] Tier 2+3: Desktop wizard (in `archup-cli` repo)
16461
165-## License
62+## Links
16663
167-TBD⏎̸
64+- **Install**: `https://archup.bnema.dev/install`
65+- **Dev branch**: `https://archup.bnema.dev/install/dev`
66+- **CLI repo**: `github.com/bnema/archup-cli`
@@ -1,167 +1,66 @@
1-# archup1+# ArchUp
2-2+
3-**A minimal, slightly opinionated Arch Linux installer.**3+**Minimal Arch Linux installer with staged desktop setup**
4-4+
5-## Project Status
6-
7-✅ **Phase 0: Core Infrastructure - COMPLETE**
8-✅ **Phase 1: Barebone Installer - Basic - COMPLETE**
9-✅ **Phase 2: Add btrfs + LUKS Encryption - COMPLETE**
10-✅ **Phase 3: Limine Bootloader - COMPLETE**
11-✅ **Phase 4: Kernel Selection + Microcode - COMPLETE**
12-✅ **Phase 5: Repository Setup (AUR + Chaotic) - COMPLETE**
13-✅ **Phase 6: Barebone Preset Complete - COMPLETE**
14-
15-### Completed
16-- ✅ Project structure created
17-- ✅ Helper utilities implemented (logging, errors, presentation, chroot)
18-- ✅ Main orchestrator (install.sh)
19-- ✅ Barebone package list (~15 packages)
20-- ✅ Logo designed
21-- ✅ System guards (vanilla Arch, UEFI, x86_64, Secure Boot checks)
22-- ✅ Limine bootloader (exclusive - superior btrfs support)
23-- ✅ Auto-partitioning (GPT, EFI + root)
24-- ✅ Base system installation (pacstrap + fstab)
25-- ✅ System configuration (timezone, locale, hostname, user creation)
26-- ✅ Network configuration (systemd-networkd + iwd)
27-- ✅ Limine bootloader installation with UEFI boot entries
28-- ✅ btrfs filesystem with subvolumes (@ for root, @home for home)
29-- ✅ LUKS encryption with Argon2id (optional, 2000ms iteration)
30-- ✅ Encrypted boot support (mkinitcpio hooks)
31-- ✅ Kernel selection (linux, linux-lts, linux-zen)
32-- ✅ Auto-detected CPU microcode (intel-ucode or amd-ucode)
33-- ✅ AMD P-State driver selection (active/guided/passive)
34-- ✅ Optional AUR support (yay helper installation)
35-- ✅ Optional Chaotic-AUR repository
36-- ✅ Keyboard layout migration from ISO
37-- ✅ WiFi credentials migration from ISO (iwd)
38-
39-### Project Structure
40 ```5 ```
41-archup/6+Barebone CLI → Reboot → archup wizard → Choose desktop
42-├── README.md
43-├── logo.txt
44-├── install.sh # Main orchestrator
45-├── install/
46-│ ├── helpers/
47-│ │ ├── all.sh # Source all helpers
48-│ │ ├── logging.sh # Log file + colorized output
49-│ │ ├── errors.sh # Trap handlers, error display
50-│ │ ├── presentation.sh # UI helpers (cursor, colors)
51-│ │ └── chroot.sh # Chroot utilities
52-│ ├── preflight/ # Phase 1 ✅
53-│ │ ├── all.sh # Preflight orchestrator
54-│ │ ├── guards.sh # System validation
55-│ │ └── begin.sh # Welcome and bootloader selection
56-│ ├── partitioning/ # Phase 1 ✅
57-│ │ ├── all.sh # Partitioning orchestrator
58-│ │ ├── detect-disk.sh # Disk selection
59-│ │ ├── partition.sh # GPT partitioning (EFI + root)
60-│ │ ├── format.sh # Format as FAT32 + ext4
61-│ │ └── mount.sh # Mount partitions to /mnt
62-│ ├── base/ # Phase 1 ✅
63-│ │ ├── all.sh # Base installation orchestrator
64-│ │ ├── pacstrap.sh # Install base packages
65-│ │ └── fstab.sh # Generate fstab
66-│ ├── config/ # Phase 1 ✅
67-│ │ ├── all.sh # Configuration orchestrator
68-│ │ ├── system.sh # Timezone, locale, hostname
69-│ │ ├── user.sh # User creation and sudo setup
70-│ │ └── network.sh # Network configuration
71-│ ├── boot/ # Phase 1 ✅
72-│ │ ├── all.sh # Bootloader orchestrator
73-│ │ └── systemd-boot.sh # systemd-boot installation
74-│ ├── security/ # (Future - TODO)
75-│ ├── post-install/ # (Future - TODO)
76-│ └── presets/
77-│ └── barebone.packages # Minimal package list (~15 packages)
78-├── bin/ # (Future utilities)
79-└── docs/ # (Future documentation)
80 ```7 ```
81 8
82-## Installation9+## Install
83-
84-### Quick Install (from Arch ISO)
85 10
86 ```bash11 ```bash
87-# Install from dev branch (latest)
88-curl -fsSL https://archup.bnema.dev/install/dev | bash
89-
90-# OR install from main branch (stable - when available)
91 curl -fsSL https://archup.bnema.dev/install | bash12 curl -fsSL https://archup.bnema.dev/install | bash
92-
93-# OR direct from GitHub (fallback)
94-curl -L https://raw.githubusercontent.com/bnema/archup/dev/install.sh | bash
95 ```13 ```
96 14
97-**Note:** The installer automatically downloads all required files and can install a minimal bootable Arch Linux system. Ready for VM testing!15+## What Is ArchUp?
98 16
99----17+ArchUp is a **minimal, staged Arch Linux installer** that respects user choice:
100 18
101-## Development19+- **Barebone first** - Install just the essentials
20+- **User choice** - Every layer is optional; you decide what to install when
21+- **Lightweight focused** - Only Wayland compositors (Niri, Hyprland, Sway, River)
22+- **Smart foundation** - Critical desktop infrastructure pre-configured (graphics, audio, Wayland, BT, printing)
23+- **Hardware detection** - Auto-detects GPU and installs correct drivers
24+- **Sane defaults** - One coherent dark/light theme across all apps (customizable later)
25+- **Just works** - All infrastructure configured; focus on your workflow, not setup
102 26
103-### Testing Syntax27+## What ArchUp Is NOT
104-```bash
105-# Check all shell scripts for syntax errors and linting issues
106-make check
107 28
108-# Check syntax only (bash -n)29+❌ **Not a desktop environment** - We don't package KDE, GNOME, or other bloated DEs
109-make check-syntax30+❌ **Not a distro** - It's an installer, not a custom Arch spin
31+❌ **Not bloated** - We provide the minimum to get you started
32+❌ **Not an Omarchy copy** - We respect Omarchy's architecture but keep it minimal
110 33
111-# Run shellcheck linting34+## Philosophy
112-make check-shellcheck
113-```
114 35
115-### Testing Installation36+ArchUp put the user in control. Every layer is optional:
116-To test the installer in a VM (QEMU/KVM recommended):37+- Want barebone CLI but with a cool bootloader? Stop at Tier 1
38+- Need a lightweight GUI? Add Tier 2+3
39+- Want to customize? Manual changes are easy; we don't lock you in
117 40
118-```bash41+We learned from Omarchy's excellent modular approach but rejected the bloat. ArchUp provides smart defaults (proven to work) while staying minimal and respecting user choice.
119-# Boot Arch ISO in VM with UEFI enabled
120-# Connect to internet
121 42
122-# Download and run installer (automatically downloads all required files)43+## Quick Start
123-curl -fsSL https://archup.bnema.dev/install/dev | bash
124-```
125-
126-**What the installer does:**
127-1. Validates system (vanilla Arch ISO, UEFI, x86_64)
128-2. Asks for encryption preference (optional LUKS with Argon2id)
129-3. Asks for kernel choice (linux, linux-lts, or linux-zen)
130-4. Auto-detects CPU and selects microcode (Intel/AMD)
131-5. For AMD: Asks for P-State driver mode (active/guided/passive)
132-6. Selects installation disk (auto-partitions with GPT)
133-7. Formats partitions (FAT32 EFI + btrfs root with optional LUKS)
134-8. Creates btrfs subvolumes (@ for root, @home for home)
135-9. Installs base packages with pacstrap (kernel + microcode + cryptsetup if encrypted)
136-10. Configures system (timezone, locale, hostname, user)
137-11. Installs Limine bootloader (with encryption and AMD tuning if enabled)
138-12. Optionally installs yay AUR helper (if user enables AUR support)
139-13. Optionally adds Chaotic-AUR repository (pre-built AUR packages)
140-14. Creates bootable minimal Arch system with btrfs
141-
142-## Environment Variables
143-
144-- `ARCHUP_PATH` - Installation directory (default: `$HOME/.local/share/archup`)
145-- `ARCHUP_REPO_URL` - Repository URL for bug reports (default: `https://github.com/bnema/archup`)
146-- `ARCHUP_CHROOT_INSTALL` - Set to `1` for chroot mode
147 44
148-## Next Steps45+```bash
46+# 1. Boot Arch ISO, install barebone system
47+curl -fsSL https://archup.bnema.dev/install | bash
149 48
150-**🎉 Milestone 1 Reached!** - Barebone preset is production-ready and VM-testable49+# 2. Reboot into new system
151 50
152-**Phase 7: Default Preset - Minimal GUI** (Week 5)51+# 3. Run wizard to add desktop (optional)
153-- [ ] Add niri desktop environment52+archup wizard
154-- [ ] Setup SDDM display manager53+```
155-- [ ] Add minimal Wayland apps (waybar, mako, fuzzel)
156-- [ ] Add kitty terminal and Firefox browser
157 54
158-## Reference55+## Status
159 56
160-Inspired by:57+**v0.1.0** - Barebone installer complete
161-- **Omarchy installer** - Modular architecture and security implementations58+- [x] Tier 1: Barebone CLI with LUKS, btrfs, Limine
162-- **archinstall** - Official Arch installer59+- [x] Auto-builds `archup` CLI on first boot
163-- **Arch philosophy** - Simplicity, minimalism, user choice60+- [ ] Tier 2+3: Desktop wizard (in `archup-cli` repo)
164 61
165-## License62+## Links
166 63
167-TBD⏎̸64+- **Install**: `https://archup.bnema.dev/install`
65+- **Dev branch**: `https://archup.bnema.dev/install/dev`
66+- **CLI repo**: `github.com/bnema/archup-cli`

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 0

    ↑↓ moveenter openesc close