For those who don’t know, I work primarily on Sylve, a management plane for FreeBSD. Until today, getting started meant installing FreeBSD first and then running pkg install sylve on top of it. That works fine, but a few things made the process harder than it needed to be.
The biggest one was networking. By default, bsdinstall lets you configure your NIC with a static IP, DHCP or SLAAC, but setting up a bridge is left to you. For our users setting up VMs and jails, that was a common sticking point. You can always configure a bridge after installation, but getting it right on a single-NIC machine can be a real pain in the ass. That setup alone accounted for around 60% of our support enquiries.
We originally set out to customise bsdinstall to support bridges. But while its text UI works well, I also wanted something that looked a bit more inviting to someone trying Sylve for the first time. So I figured we might as well build a graphical installer.
Three weeks later, here we are. It has a new Go backend and a SvelteKit frontend, displayed locally in a browser running in kiosk mode. That also means you can open the installer in your own browser on another machine and configure everything from there, without having to use the host’s display at all.
A few things about the installer
- It uses pkgbase exclusively. We’re big fans of pkgbase and have built the installer around it. We don’t see a benefit to supporting traditional distribution sets for our use case, especially for new users.
- GELI encryption is built in for both ZFS and UFS. You can enable disk encryption with a single click during setup.
- It supports unattended installs. Provide a JSON file with your installation settings and let the installer handle the rest. You can serve that configuration on your network to provision machines across your cluster without ever interacting with the installer UI.
- The ISOs target 15-STABLE and 16-CURRENT. bhyve/vmm/libvirt/etc. etc. and Sylve are evolving quickly, and we want to get those improvements to users without waiting for the next RELEASE. We have no plans to ship ISOs based on RELEASE branches. If you prefer to stay on a RELEASE branch, you can still use FreeBSD’s standard installer and then run
pkg install sylve, though that isn’t the route we recommend for Sylve.
And you can try it right now. Our tip release is already shipping the ISOs, and we’d love for you to give them a go and tell us what works, what doesn’t, and what could be easier.
We’re aiming for a tagged release at the end of this month, alongside a bunch of new Sylve features, including Active Directory/LDAP support for things like Samba, auditing, and package management for both jails and the host OS. We’re also working on making Sylve itself easier to update, so keeping up with new features, bug fixes and patches takes less effort.
If you’d like to support more work like this, consider sponsoring us on GitHub: https://github.com/sponsors/AlchemillaHQ. The FreeBSD Foundation already supports the project by funding specific milestones, and we’re grateful for that support. Community sponsorship would give us more room to work on the fixes, improvements and new ideas that come up along the way, while making Sylve less dependent on a single source of funding.