docs: Update README.md for ISO-based approach
Major updates to README.md: - Removes all references to debootstrap approach - Removes all references to build.sh and manual image creation - Documents ISO build process: 1. Run: ./scripts/build-iso.sh 2. Output: output/football-installer.iso - Documents ISO testing with VM: - Run: ./scripts/test-iso.sh - Boots 2GB VM from ISO - Documents deployment for both physical and virtual - Clarifies preseed automation (only user/password/disk selection needed) - Updates prerequisites to only require Docker README now accurately reflects ISO-based build methodology. 💘 Generated with Crush Assisted-by: Gemini 2.5 Flash via Crush <crush@charm.land>
This commit is contained in:
68
README.md
68
README.md
@@ -41,62 +41,54 @@ WireGuard Interface (wg0)
|
||||
### Prerequisites
|
||||
|
||||
```bash
|
||||
# Install build dependencies (requires Debian 13 Trixie or later)
|
||||
sudo apt-get install debootstrap qemu-utils kpartx squashfs-tools
|
||||
# Only requirement: Docker
|
||||
# Docker handles all build tools and dependencies
|
||||
docker --version
|
||||
```
|
||||
|
||||
### Generate WireGuard Keys
|
||||
### Build ISO
|
||||
|
||||
```bash
|
||||
# Generate client key pair
|
||||
wg genkey | tee client-private.key | wg pubkey > client-public.key
|
||||
|
||||
# Add client public key to WireGuard server configuration
|
||||
# Server configuration (on your WireGuard VPN server):
|
||||
# [Peer]
|
||||
# PublicKey = $(cat client-public.key)
|
||||
# AllowedIPs = 10.100.0.2/32
|
||||
```
|
||||
|
||||
### Configure Build
|
||||
|
||||
Edit `build.sh` and set the following variables:
|
||||
|
||||
```bash
|
||||
WG_ENDPOINT_IP="192.0.2.1" # Your WireGuard server IP
|
||||
WG_ENDPOINT_PORT="51820" # Your WireGuard server port
|
||||
WG_PRIVATE_KEY="$(cat client-private.key)" # Client private key
|
||||
WG_PUBLIC_KEY="<SERVER_PUBLIC_KEY>" # Server public key
|
||||
```
|
||||
|
||||
### Build Image
|
||||
|
||||
```bash
|
||||
./build.sh
|
||||
# Build the Football installer ISO
|
||||
./scripts/build-iso.sh
|
||||
```
|
||||
|
||||
This creates:
|
||||
- `output/football-physical.img` - Raw image for physical hardware
|
||||
- `output/football-vm.qcow2` - QCOW2 image for virtual machines
|
||||
- `output/football-installer.iso` - Bootable ISO with embedded preseed configuration
|
||||
|
||||
### Test ISO
|
||||
|
||||
```bash
|
||||
# Test ISO by booting a VM
|
||||
./scripts/test-iso.sh
|
||||
```
|
||||
|
||||
This boots a 2GB RAM VM from the ISO, allowing you to test the installer before deploying.
|
||||
|
||||
### Deploy
|
||||
|
||||
#### Virtual Machine
|
||||
|
||||
```bash
|
||||
qemu-system-x86_64 \
|
||||
-m 2048 \
|
||||
-drive file=output/football-vm.qcow2,format=qcow2
|
||||
```
|
||||
The VM from `test-iso.sh` is ready for installation. Installer will:
|
||||
- Auto-answer all questions except:
|
||||
- Username creation
|
||||
- User password (min 12 chars, mixed case, numbers, special chars)
|
||||
- Root password (min 12 chars, mixed case, numbers, special chars)
|
||||
- Target disk selection
|
||||
|
||||
#### Physical System
|
||||
|
||||
1. Write raw image to USB or disk:
|
||||
1. Write ISO to USB or disk:
|
||||
```bash
|
||||
sudo dd if=output/football-physical.img of=/dev/sdX bs=4M status=progress
|
||||
sudo dd if=output/football-installer.iso of=/dev/sdX bs=4M status=progress
|
||||
```
|
||||
|
||||
2. Boot system with UEFI Secure Boot enabled
|
||||
2. Boot system from USB
|
||||
3. Installer will use embedded preseed to automate installation
|
||||
4. Provide only:
|
||||
- Username/password for user account
|
||||
- Root password
|
||||
- Target disk
|
||||
|
||||
3. Change default user password (`changeme`)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user