- New build-iso-workstation.sh / autoinstall/user-data-workstation: writes
the workstation tier marker (/opt/cezen/tier), reuses the Server S
(starter) hardware profile and Ansible playbook under the hood
- firstboot-setup.sh: additive WORKSTATION_MODE branch (gated on
CEZEN_TIER=workstation) skips the Server tier-selection menu entirely —
Workstation is never offered as a Server S/M/L/Max choice. Non-workstation
installs are unaffected. Also relabels the Server tier menu to
Server S/M/L/Max, matching the earlier portal rename
- install.sh and the Ansible playbooks are unchanged; only the pre/post
marker files differ between a Server S and Workstation install
- README.md + MIGRATION_NOTES.md updated with the new build path and what
is still manual (CEZEN_TIER isn't yet templated into the deployed
cezen-api systemd unit — tracked as follow-up)
- server.py: Flask-free Python web server on port 80
- 4-step wizard: network → tier → tools → live install log
- DHCP or static IP support
- SSE log streaming, handles phase-1 reboot gracefully
- user-data: deploy web UI service instead of TUI (whiptail)
- sets hostname to cezenai (accessible as cezenai.local)
- installs python3, avahi-daemon
- entry.yml: skip roles based on skip_roles var from web UI
- install.sh: reads /opt/cezen/install.conf for tier & skip_roles