Commit graph

118 commits

Author SHA1 Message Date
Antony Messerli
8cb64ed88f Move autoexec.ipxe to ipxe root and remove secureboot dirs before checksums
After ISO/USB images are generated from the secureboot directories,
move autoexec.ipxe to the ipxe root as a standalone file and remove
the secureboot directories. This means:
- Checksums are generated cleanly with no secureboot-* subdirectory entries
- autoexec.ipxe is checksummed automatically as a regular ipxe/ file
- build_release needs no special handling for secureboot directories
- autoexec.ipxe flows naturally into both githubout (release asset)
  and s3out (CDN) through the existing copy logic
2026-03-15 17:39:57 -05:00
Antony Messerli
029b06d605 Fix checksums file: remove stale secureboot paths, add autoexec.ipxe
The Ansible-generated checksums file references files under
secureboot-x86_64/ and secureboot-arm64/ which are removed from
githubout. Strip those entries and add the standalone autoexec.ipxe
so the checksums file matches the actual release assets.
2026-03-15 17:14:55 -05:00
Antony Messerli
75e895dfa7 Copy autoexec.ipxe to s3out root for CDN serving
Ensure autoexec.ipxe is available at the root of the S3 bucket
(boot.netboot.xyz/{version}/autoexec.ipxe) alongside other boot
files, not only nested under ipxe/secureboot-x86_64/.
2026-03-15 17:05:27 -05:00
Antony Messerli
e2ac06c49c Publish autoexec.ipxe as standalone release asset for Secure Boot
Instead of repackaging the iPXE signed binaries into netboot.xyz
tarballs, publish only the templated autoexec.ipxe boot script as a
release asset. Consumers (e.g. docker-netbootxyz) download the signed
binaries directly from the upstream iPXE release (ipxeboot.tar.gz),
preserving provenance and avoiding checksum mismatches from
repackaging.

The autoexec.ipxe is identical for both x86_64 and ARM64 -- it
contains the netboot.xyz-specific boot_domain, boot_version, and
menu chain logic with DHCP, failsafe menu, and HTTPS/HTTP fallback.
2026-03-15 16:53:48 -05:00
Antony Messerli
9c0f6f9d08 Package Secure Boot binaries as tarballs in release assets
The Secure Boot directories (secureboot-x86_64/, secureboot-arm64/)
produced by generate_disks_secureboot cannot be uploaded directly as
GitHub release assets since releases are flat file lists. Package them
into secureboot-x86_64.tar.gz and secureboot-arm64.tar.gz so they are
included in the release alongside existing boot files.

This enables docker-netbootxyz and other consumers to download the
signed iPXE Secure Boot binaries and autoexec.ipxe directly from
netboot.xyz releases.
2026-03-15 16:28:23 -05:00
Antony Messerli
d059ddb7a8 Add UEFI Secure Boot support using iPXE v2.0.0 signed binaries
Downloads pre-built Microsoft-signed iPXE Secure Boot binaries from
the iPXE v2.0.0 release (ipxeboot.tar.gz) and packages them with a
templated autoexec.ipxe that chains into the netboot.xyz menu system.

Boot flow: UEFI firmware validates iPXE shim (Microsoft-signed) which
loads iPXE (signed by iPXE Secure Boot CA) which auto-loads
autoexec.ipxe (text script, no SB validation needed) which chains to
https://boot.netboot.xyz/menu.ipxe.

Changes:
- New generate_disks_secureboot.yml task to download and package
  signed iPXE binaries for x86_64 and ARM64
- New autoexec.ipxe.j2 template with DHCP, failsafe menu, and
  HTTPS/HTTP fallback chain to boot.netboot.xyz
- Bootloader entries and index.html sections for Secure Boot binaries
  served from ipxe/secureboot-x86_64/ and ipxe/secureboot-arm64/
- Checksum generation updated to handle subdirectories
- Debian menu template updated with shim command for Secure Boot
  kernel validation (no-op on non-SB systems)
- Production overrides enable Secure Boot generation

Closes #1745
2026-03-14 00:20:17 -05:00
Antony Messerli
86078af2b4 Display sha pulled 2026-01-24 11:08:03 -06:00
Antony Messerli
acc8de4045 Bump version to 3.x series for code signing certificate update
- Update version.txt from 2.0.90 to 3.0.0
- Update boot_version from 2.x to 3.x in defaults/main.yml
- Update hardcoded version references in script/build_release
- Update example in user_overrides.yml
- Add 3.0.0 changelog entry with breaking change notice
- Users with 2.x bootloaders will auto-upgrade to 3.x on boot

IMPORTANT: Updated binaries should be downloaded to pull latest
netboot.xyz with updated code signing certificates embedded for
image signature verification.
2026-01-24 10:23:09 -06:00
Antony Messerli
7c4c656d29 Increase parallel jobs 2024-08-22 00:16:21 -05:00
Antony Messerli
6f3ba40d33 Revert "Switches bootloader_disks to bootloader_flavors"
This reverts commit fc06700dbe.
2024-03-30 17:40:28 -05:00
Antony Messerli
fc06700dbe Switches bootloader_disks to bootloader_flavors
Ensures bootloader_disks is set to one type to keep
index generation bound to one falvor type. Shifts generate
disk loop to use bootloader_flavors variable taht can be stacked
with multiple types.

Should fix issue causing the index to have the last name in the list
of bootloader_disks which was setting the incorrect name. This was
probably introduced with the change in:

https://github.com/netbootxyz/netboot.xyz/pull/1096
2024-03-30 17:31:09 -05:00
Antony Messerli
0a08487a4d Revert "Testing rpi"
This reverts commit 4172102e2a.
2023-10-24 23:01:42 -05:00
Antony Messerli
4172102e2a Testing rpi 2023-10-24 22:09:42 -05:00
Antony Messerli
b7403abffa Revert "Test RPI builds"
This reverts commit b954aa37e3.
2022-07-25 00:38:17 -05:00
Antony Messerli
ebfc9dacf1 Revert "Wrap vars in quotes"
This reverts commit b9b1e40d03.
2022-07-25 00:07:35 -05:00
Antony Messerli
b9b1e40d03 Wrap vars in quotes 2022-07-24 23:01:25 -05:00
Antony Messerli
b954aa37e3 Test RPI builds 2022-06-30 18:08:19 -05:00
Antony Messerli
4f4eb8b26c Consolidate Dockerfiles
Uses ARGs for whether to add production overrides
or not, by default, it uses the default settings
and not the overrides.
2022-06-26 12:36:40 -05:00
Antony Messerli
f87fa879b8 Disable RPI builds 2022-04-21 19:18:52 -05:00
Antony Messerli
a9b0e6aaa5 Fix script for recent lint changes 2022-04-16 00:10:14 -05:00
Antony Messerli
d6ada65175 Lint fixes 2022-03-21 20:13:42 -05:00
Dustin Miller
95f4fff6a6 Change from Packet to Equinix Metal 2022-02-11 10:55:11 -07:00
Antony Messerli
807cd83674 Add ipxe builds for linux userspace 2021-10-13 11:47:32 -05:00
Antony Messerli
0f1945c6c4 Update Discord notification for rolling push
Existing push was notifying release was updated when it
is really just the rolling push. Updates message to be
more accurate.
2021-10-01 08:38:07 -05:00
Antony Messerli
4c0de9ca53 Adds rolling release deploy
2.x is designated as a rolling release but usually is aligned
with an actual release.  This commit will allow for updates
to endpoints.yml and the Ansible defaults that contains all
of the version updates to be pushed to boot.netboot.xyz
automatically as they are come in.

This will allow version updates like ArchLinux to be rolled out
immediately with out the lag during releases.
2021-09-30 16:57:08 -05:00
Antony Messerli
1f728f9576
Delete pre_install
No longer needed
2021-09-04 08:56:26 -05:00
Antony Messerli
6d2d6c9363 Generate local-vars.ipxe by default with examples
Adds the local-vars.ipxe file which can be updated
for changes.  Local vars is parsed on bootup if
the next-server and filename are both set on the
local dhcp server.
2021-08-05 20:25:28 -05:00
Antony
802501cc85 Add support for iPXE hybrid disks
Combins EFI and Legacy into one disk
2021-01-14 20:55:53 -06:00
Antony
f105676c9d Update icon urls for discord messaging 2021-01-14 16:50:14 -06:00
Antony Messerli
d378285372 Remove tty from docker for actions workflow
Hotfix to release to build
2020-12-09 01:43:44 -06:00
Antony Messerli
3830da6bb2 Switch to using Github Actions
With the recent changes to Travis CI, it seemed
like a good time to begin porting netboot.xyz CI
over to Github Actions to keep everything in on
place.  These are the changes for the main
netboot.xyz repo.
2020-12-06 12:00:14 -06:00
Antony Messerli
42860644af Update avatar url for discord bot 2020-11-21 10:59:47 -06:00
Antony Messerli
e23025af2c Adds experimental support for Raspberry Pi 4
Adds experimental support for Raspberry Pi 4 to
the netboot.xyz bootloader.  Leverages the pipxe
project to build images.
2020-10-29 03:29:47 +00:00
Antony Messerli
c93eccbcdf Remove unused ipxe config option 2020-07-14 22:03:41 -05:00
Antony Messerli
253acc4ca3 Move back to iPXE master branch 2020-06-27 17:39:51 -05:00
Antony Messerli
094b4dd287 Pin iPXE branch to known working
Pins iPXE branch as arm64 build is failing with a
Unrecognised relocation type 311.  It appears that
iPXE upstream may have introduced a change causing
build to fail in commit

a61b27b97f572a83ede765a0e779694865950cf2
2020-06-24 19:11:18 -05:00
thelamer
120c41ded5 adding random string to RC if the release allready exists so we can roll more than one if needed 2020-01-25 08:54:24 -08:00
Antony Messerli
bcbc90d51b Removes external image signature checking
Cleans up code and removes external OS signature checking code
as it's not very reliable and not currently being used.

Source signature checking will remain in place.
2020-01-12 16:21:04 -06:00
Antony Messerli
36eb55b9f0 More tuning for endpoints menu 2020-01-10 01:10:01 -06:00
Antony Messerli
b0144221e1 Set boot_version first before using 2020-01-09 23:39:14 -06:00
Antony Messerli
eb3a703c0e Adds netboot.xyz endpoints menu for testing
Uploads version.ipxe to root of endpoints so that latest
deployed version can be loaded.

Removes memdisk iso test from efi utils menu.
2020-01-09 22:21:34 -06:00
Antony Messerli
37d4081cb3 Generate version.ipxe
Generates version.ipxe for upstream notificaiton for clients
2019-12-26 20:35:45 -06:00
Antony Messerli
56b9e886b8 Correct live url message to reflect proper url 2019-12-26 17:47:59 -06:00
thelamer
274a6ddef8 add if to push a tarball of menu files to S3 for consumption 2019-12-26 09:46:59 -08:00
Antony Messerli
17946f1ecc
Remove duplicate key
Removes duplicate generate_disks_arm key
2019-12-25 13:39:33 -06:00
Antony Messerli
35ee4ce2b5 Set up prod urls
Adjusts variables for production deployment
2019-12-20 15:48:23 +00:00
Antony Messerli
716f509840
Reduce amount of generated disks (#431)
Reduce amount of generated disks

Readme updates, adds version.ipxe for menu version
Generates version.ipxe from version.txt.  Used to show the 
latest version upstream on the main site.  Disabled by default 
for regular deployments but enabled as an upstream option.
2019-12-19 09:22:01 -06:00
Antony Messerli
f6d0d2b585 Generate arm64 efi disks 2019-12-18 17:48:45 -08:00
Antony Messerli
b5ad3ee86c Generate site_name banner for index 2019-12-16 23:13:58 -08:00
Antony Messerli
f628157e43 Fixing signatures and add certs to loaders
* Shifting after_deploy messages and aws invalidation to
  proper locations
* Add cert checkout to preinstall and setting those on s3
  deploys only
* Adding production docker file which runs netboot.xyz overrides
* Only display sig menus if enabled
* Fix var names for signing
2019-12-15 22:02:19 +00:00