=== Sylve -- A Unified System Management Platform for FreeBSD

Links: +
link:https://sylve.io[Website] URL: link:https://sylve.io[] +
link:https://github.com/AlchemillaHQ/Sylve[GitHub] URL: link:https://github.com/AlchemillaHQ/Sylve[] +
link:https://sylve-ci.alchemilla.io[CI] URL: link:https://sylve-ci.alchemilla.io[] +
link:https://discord.gg/bJB826JvXK[Discord] URL: link:https://discord.gg/bJB826JvXK[]

Contact: Hayzam Sherif <hayzam@alchemilla.io>

Sylve is a modern, unified system management platform for FreeBSD.
It provides an integrated web interface for managing virtual machines (via Bhyve), Jails, the networking around them, and ZFS storage.

The backend is implemented in Go, while the frontend is built with Svelte.
The project emphasizes a minimal system footprint.
By default, it does not require any packages outside of the base system.

At the end of this quarter, we made our first v0.1.0 release of Sylve, and at the time of writing this article, we are at v0.2.3.

Optional runtime dependencies, required only when their respective features are used, include:

- package:devel/libvirt[] for virtualization
- package:devel/qemu[devel/qemu-tools] for disk image management
- package:net/samba419[] for SMB file sharing
- package:sysutils/swtpm[] for TPM emulation support
- package:dns/dnsmasq[] for DHCP and DNS services

The port pulls in these dependencies for convenience to the user, but by itself, Sylve needs no dependencies to run.

==== Q1 Progress Highlights

===== Data Center / Cluster

* Improved how clusters are created and managed, making setups quicker and less prone to errors.
* Implemented a backup solution using package:sysutils/zelta[], which supports backing up VMs, Jails, and custom datasets on a schedule without the need for custom software running on the target host (except SSH and ZFS).

===== Jails

* Snapshots for Jails (including their configs) are now supported directly from the Jail-specific UI.
* Added Wake-On-LAN support for Jails with VNET.
* Improved customizability of Jails by allowing users to specify a wide variety of supported options (hooks, DevFS ruleset, metadata, etc.).
* Added support for a Ghostty (Zig/WASM)-based web terminal.
* Linux jails now support static IP configuration.
* A templating feature is now implemented for Jails; a Jail can be converted to a template and then cloned any number of times.
* Start/Stop lifecycles and the associated UI have been significantly improved to make use of our built-in queue system, providing a faster and smoother user experience.

===== Virtual Machines

* Snapshots for VMs (including their configs) are now supported directly from the VM-specific UI.
* 9P Filesystem support was implemented for quick sharing of folders between guest and host.
* QEMU guest agent support was added for retrieving basic system and networking information.
* Reboot/Start/Stop lifecycles and the associated UI have been significantly improved to make use of our built-in queue system, providing a faster and smoother user experience.
* Added support for a Ghostty (Zig/WASM)-based web terminal for the serial console.
* A templating feature is now implemented for VMs; a VM can be converted to a template and then cloned any number of times.
* CPU Pinning has been reworked significantly, specifically to add support for multi-socket systems.

===== Authentication

* Passkey support was added for easy logins without the need to enter passwords.

===== Utilities

* The downloader now also supports uploads.
* Queuing has been significantly improved for the downloader to make it more performant.

===== General

We have also made numerous improvements to the UI/UX, performance optimizations, and bug fixes across the platform.
Some of these include:

* PCI Passthrough support has been significantly improved and now includes a "Prepare Passthrough" button, which prepares a PCI device for passthrough, making it available for use with VMs after a system reboot.
* Removed several NPM libraries in favor of custom-built alternatives or vendored-in dependencies to reduce the risk of supply chain attacks.
* Made numerous performance optimizations to reduce RAM and CPU usage on the frontend.
* Migrated the CI system from Jenkins to GitHub Actions, which now uses sysroots to build, allowing us to achieve faster build times.
* Most of the telemetry data has been moved from the main SQLite database to a new telemetry database.
This reduces the risk of locks on the primary DB, thereby increasing performance.
* Wrote initial documentation and deployment guides for users to get started.

==== Roadmap Update

* Address user feedback.
* Work on integrating more features (NFS Shares, NAT/Traffic Rules UI, etc.).

Sponsors: The FreeBSD Foundation, Alchemilla Ventures (Development), IPTechnics LLC (Infrastructure & Testing)
