Make firstboot updates configurable

This commit is contained in:
Aaron
2026-01-02 23:07:36 -05:00
parent c62f1f018f
commit 36d30da30a
2 changed files with 56 additions and 10 deletions

View File

@@ -8,9 +8,9 @@ This documents the *current* workflow and the *target* workflow once profiles +
- Nginx + PiKit dashboard
- DietPi dashboard
3) Update the system if needed.
4) Run the prep scrub:
4) Run the prep scrub + verify:
- `sudo ./pikit-prep.sh`
- (optional) `sudo ./check-pikit-clean.sh`
- (optional) `sudo ./pikit-prep.sh --check-only`
5) Image the SD card with DietPi Imager.
6) Store it as the golden base (e.g., `images/base/pikit-base-YYYYMMDD.img.xz`).
@@ -24,9 +24,9 @@ This documents the *current* workflow and the *target* workflow once profiles +
4) Add dashboard services using the UI (Add Service modal).
5) Open any needed ports in ufw (done as part of testing/config):
- `sudo ufw allow from <LAN subnet> to any port <port>`
6) Run the prep scrub:
6) Run the prep scrub + verify:
- `sudo ./pikit-prep.sh`
- (optional) `sudo ./check-pikit-clean.sh`
- (optional) `sudo ./pikit-prep.sh --check-only`
7) Image the SD card via the QEMU DietPi VM:
- Insert the SD card into your desktop.
- Identify it with `lsblk`.
@@ -52,8 +52,9 @@ This documents the *current* workflow and the *target* workflow once profiles +
- Merges services into `/etc/pikit/services.json` (idempotent).
5) Run the drift check (planned script):
- Confirms services + ports match the profile + base.
6) Run the prep scrub:
6) Run the prep scrub + verify:
- `sudo ./pikit-prep.sh`
- (optional) `sudo ./pikit-prep.sh --check-only`
7) Image the SD card with DietPi Imager.
First boot on the enduser device will:
@@ -61,10 +62,33 @@ First boot on the enduser device will:
- Ensure the profiles firewall ports are open (LANonly).
- Show a progress overlay until complete.
Optional: to skip the firstboot update step for faster startup, create
`/etc/pikit/firstboot.conf` with:
```
PIKIT_FIRSTBOOT_UPDATES=0
```
## 3) Flashing an image to SD
Use the helper:
- `sudo ./flash_sd.sh <image.img.xz> /dev/sdX`
## 4) Manufacturing / imaging checklist (production)
1) Start from the golden base image.
2) Flash it to a knowngood SD card.
3) Boot and verify:
- `http://pikit.local` and `https://pikit.local`
- dashboard loads
- firstboot completes
4) Apply any required profile/services.
5) Run prep + verify:
- `sudo ./pikit-prep.sh`
6) Power down cleanly.
7) Image the SD card (DietPi Imager via QEMU or ondevice).
8) Label and archive the image (include date + profile name).
9) Smoke test the flashed image on a second SD card:
- boot → firstboot → dashboard → services
## Notes
- Profiles are additive to the base image defaults; do not include PiKit or DietPi dashboard entries in profiles.
- Keep `RESCUE.md` in `/root` and `/home/dietpi` only (not in `/var/www`).