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

Links: +
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, inspired by Proxmox.
It provides an integrated web interface for managing virtual machines (via Bhyve), Jails, ZFS storage, networking, and firewalling.

The backend is implemented in Go, while the frontend is built with SvelteKit, Tailwind CSS, and ShadCN UI components.

The project emphasizes a minimal system footprint.
By default, it only requires the following packages:

- package:sysutils/smartmontools[]
- package:sysutils/tmux[]

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

==== Q4 Progress Highlights

===== Storage

* ZFS Management: we now use link:https://github.com/alchemillahq/gzfs[GitHub - gzfs] that is a go wrapper around zfs/zpool/zdb CLI to provide full support for creating and managing ZFS pools and datasets.
  This has improved performance and reliability compared to our previous implementation.

* VM and Jail storage management: During the initialization user can pick the pool(s) where VM (disks/zvols) and Jail (datasets) will be created, and all the disk/dataset creation will be done under the hood automatically.

===== Jails

* Support for Linux Jails using the FreeBSD Linuxulator has been added.
  Users can create, manage, and monitor Linux Jails via the web interface.
  It is still considered experimental but we have tested extensively with Rocky Linux and Alpine.

* A bunch of improvements to jails has been added where in people can now supply a lot more options when creating/editing/viewing thick jails.

===== Virtual Machines

* Cloud-Init Support: Sylve now supports Cloud-Init for automated VM provisioning.
  Users can provide Cloud-Init configuration during VM creation/editing.

* Serial Console: A web-based serial console for VMs has been implemented, allowing users to access the VM console directly from the Sylve UI.

===== Networking

* DHCP Server: A web UI around package:dns/dnsmasq[] has been added, we allow creation of Ranges, Reservations, and Options.

===== Utilities

The downloader now supports automatic extraction of various archive formats including .tar.gz, .zip, .xz, and .bz2 and also supports automatic conversion of disk images to raw format.

===== General

Sylve now requires FreeBSD 15.0 or later, as we now depend on features like Jail metadata, and ZFS v2.4.0+ which includes JSON output for many commands that we rely on.

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

* Improved graphing with the link:https://echarts.apache.org[ECharts] library for better performance and interactivity.
* Enhanced accessibility features to ensure compliance with WCAG standards.
* Internationalization (i18n) support with the help of link:https://wuchale.dev/[Wuchale], starting with Hindi (hi) translations for the UI.
* Backend optimizations for faster data retrieval and reduced load times.
* Removed several frontend dependencies (notably tanstack), opting for lighter alternatives to reduce overall bundle size and improve load times.

==== Roadmap Update

Some clustering work is still ongoing.
Once completed, we will release full project documentation and begin packaging Sylve for easy installation via pkg.

We are also developing a new, tightly integrated backup system within the Sylve monorepo, enabling simple backup and restore of VMs, jails, and configurations.

Sponsor: The FreeBSD Foundation
