Skip to content

v3.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Oct 00:18
38c649b

Ignite v3.0.0

Highlights

  • The web UI is redesigned with two modes, Cozy and Console. Press \ to switch between them, and the choice is saved per user.
  • The original flame logo is back in the nav, on the login page and as the favicon.
  • A status bar on every page shows overall service health.
  • Overview and DHCP pages show pool stats, including in-flight and failed counts.
  • Provision editor: live syntax highlighting as you type (cloud-init/YAML, kickstart, preseed, iPXE/shell, PXE menus, AutoYaST, and {{ }} template tags), replacing the old Preview button. It adds about 5 KB, loaded only on that page.
  • Dynamic OS image catalog: Ignite discovers current releases from each distro (Ubuntu LTS, Debian, Fedora, CentOS Stream, openSUSE Leap/Tumbleweed, NixOS) at startup and every OS_CATALOG_REFRESH (default 24h), hides end-of-life releases using endoflife.date, and falls back to a built-in list offline (OS_CATALOG_OFFLINE=true pins it). The OS Images page shows catalog status with a Refresh button, and downloaded images that reach end of life get an EOL badge but keep working.
  • OS image catalog: live release lists, an EOL badge, and refresh.

Backend

  • Every form now has per-session CSRF protection plus a same-host Origin check. COOKIE_SECURE=auto keeps logins working over plain HTTP.
  • Each host gets its own provisioning callback token. A cleanup ticker runs in the background, and several race conditions are fixed.
  • DHCP status is consistent everywhere (running, stopped or configured), and timestamps are RFC3339.
  • Syslinux activation stages files and then swaps them in. The endpoint is POST /api/syslinux/activate/{version}.
  • Redfish/BMC: certificate checks are skipped by default because homelab BMCs are usually self-signed. Set BMC_TLS_VERIFY=true to enforce them. BMC_SYSTEM_ID/system_id selects a system when a BMC has more than one. A powered-off host gets On, and a running host gets ForceRestart.
  • kernel_options rejects control characters.
  • /status now redirects to /.
  • New settings: TFTP_PORT, plus DHCP_ENABLED. When DHCP_ENABLED is false, DHCP servers show configured and Start returns 409 with an explanation. HTTP_PORT is unchanged.
  • OS images: end-of-life releases removed and current ones added (Ubuntu 22.04/24.04/26.04, Debian 12/13, Fedora 43/44, CentOS Stream 9/10, NixOS 26.05, openSUSE Leap 16.0 and Tumbleweed). Image downloads, which were broken for every distro, are fixed, and iPXE menu paths now match where images are stored. A hardened, read-only /os-images/ route serves boot files to PXE clients without auth.

Upgrading from 2.x (breaking)

  1. Back up first. Copy ignite.db and your TFTP directory before you recreate the container.
  2. Mount the new volumes. Mount /app/data (holds ignite.db and the Syslinux cache at /app/data/syslinux) and /app/public/tftp. If you don't mount them, data will not persist across container recreation.
  3. Syslinux. Any version you downloaded before 3.0.0 must be downloaded again before it can be activated, because the cache moved to /app/data/syslinux.
  4. API clients and scripts. POSTs to the web UI now need the session CSRF token, so scripts that posted to UI forms will get 403.
  5. BMC TLS. BMC_TLS_INSECURE is gone. Verification is off by default, and BMC_TLS_VERIFY=true turns it on.
  6. Regenerate the iPXE config after upgrading.

Full changelog: v2.2.1...v3.0.0

What's Changed

  • Phase 1 backend: host callback auth, lease maintenance, overview data by @chadleeshaw in #15
  • Restyle the web UI with Cozy and Console themes by @chadleeshaw in #16
  • OS images: drop EOL releases, fix download and iPXE paths by @chadleeshaw in #17
  • Highlight provision templates inside the editor by @chadleeshaw in #18
  • OS images: dynamic release catalog with EOL filtering by @chadleeshaw in #19

Full Changelog: v2.2.1...v3.0.0