88 lines
3.3 KiB
Markdown
88 lines
3.3 KiB
Markdown
---
|
|
name: build-iso
|
|
description: Build a new Archipelago auto-installer ISO image (bundled or unbundled)
|
|
disable-model-invocation: true
|
|
allowed-tools: Bash, Read
|
|
---
|
|
|
|
Build a new Archipelago auto-installer ISO.
|
|
|
|
## Pre-build checklist
|
|
|
|
1. Latest code deployed to server (`/deploy` first)
|
|
2. System configs synced (`/sync-configs` first)
|
|
3. Everything tested and working on live server
|
|
4. Sync build scripts to server before building:
|
|
```bash
|
|
rsync -avz -e "ssh -i ~/.ssh/archipelago-deploy" \
|
|
/Users/dorian/Projects/archy/image-recipe/build-auto-installer-iso.sh \
|
|
/Users/dorian/Projects/archy/image-recipe/build-unbundled-iso.sh \
|
|
archipelago@192.168.1.228:~/archy/image-recipe/
|
|
```
|
|
|
|
## Build variants
|
|
|
|
### Unbundled ISO (recommended for distribution — ~3GB)
|
|
No pre-bundled container images. Apps install on-demand from Marketplace (requires internet).
|
|
|
|
```bash
|
|
ssh -i ~/.ssh/archipelago-deploy archipelago@192.168.1.228 \
|
|
'cd ~/archy/image-recipe && sudo ./build-unbundled-iso.sh'
|
|
```
|
|
|
|
Output: `results/archipelago-installer-unbundled-x86_64.iso`
|
|
|
|
### Full bundled ISO (~11GB)
|
|
All container images pre-bundled for offline install.
|
|
|
|
```bash
|
|
ssh -i ~/.ssh/archipelago-deploy archipelago@192.168.1.228 \
|
|
'cd ~/archy/image-recipe && sudo ./build-auto-installer-iso.sh'
|
|
```
|
|
|
|
Output: `results/archipelago-installer-x86_64.iso`
|
|
|
|
## Post-build: ALWAYS publish to FileBrowser
|
|
|
|
After EVERY successful build, copy the ISO to the FileBrowser `Builds` folder so it's downloadable from the web UI. This is mandatory — do not skip.
|
|
|
|
**FileBrowser data root**: `/var/lib/archipelago/filebrowser/`
|
|
|
|
```bash
|
|
# For unbundled:
|
|
ssh -i ~/.ssh/archipelago-deploy archipelago@192.168.1.228 \
|
|
'sudo mkdir -p /var/lib/archipelago/filebrowser/Builds && \
|
|
sudo cp ~/archy/image-recipe/results/archipelago-installer-unbundled-x86_64.iso /var/lib/archipelago/filebrowser/Builds/ && \
|
|
sudo chown 1000:1000 /var/lib/archipelago/filebrowser/Builds/archipelago-installer-unbundled-x86_64.iso'
|
|
|
|
# For bundled:
|
|
ssh -i ~/.ssh/archipelago-deploy archipelago@192.168.1.228 \
|
|
'sudo mkdir -p /var/lib/archipelago/filebrowser/Builds && \
|
|
sudo cp ~/archy/image-recipe/results/archipelago-installer-x86_64.iso /var/lib/archipelago/filebrowser/Builds/ && \
|
|
sudo chown 1000:1000 /var/lib/archipelago/filebrowser/Builds/archipelago-installer-x86_64.iso'
|
|
```
|
|
|
|
## Post-build: Download to Mac (optional)
|
|
|
|
```bash
|
|
# Unbundled:
|
|
scp -i ~/.ssh/archipelago-deploy archipelago@192.168.1.228:~/archy/image-recipe/results/archipelago-installer-unbundled-x86_64.iso ~/Downloads/
|
|
|
|
# Bundled:
|
|
scp -i ~/.ssh/archipelago-deploy archipelago@192.168.1.228:~/archy/image-recipe/results/archipelago-installer-x86_64.iso ~/Downloads/
|
|
```
|
|
|
|
## Key paths on server
|
|
|
|
- Build scripts: `~/archy/image-recipe/build-auto-installer-iso.sh`, `build-unbundled-iso.sh`
|
|
- Build output: `~/archy/image-recipe/results/`
|
|
- Build cache (rootfs, base ISO): `~/archy/image-recipe/build/auto-installer/`
|
|
- FileBrowser Builds: `/var/lib/archipelago/filebrowser/Builds/`
|
|
|
|
## Notes
|
|
|
|
- Use `--rebuild` flag to force rootfs rebuild (otherwise uses cached)
|
|
- FileBrowser container mounts `/var/lib/archipelago/filebrowser` → `/srv`
|
|
- Always `chown 1000:1000` files in FileBrowser so the app can serve them
|
|
- **IMPORTANT**: Use `build-auto-installer-iso.sh` (or `build-unbundled-iso.sh`) only. The deprecated `build-debian-iso.sh` causes boot-to-prompt issues.
|