Files
Sylve/README.md
T
2026-02-02 03:22:46 +05:30

5.1 KiB
Raw Blame History

Sylve

Discord

Warning

This project is still in development so expect breaking changes!

https://gist.github.com/user-attachments/assets/7a9d002c-f647-4872-8b55-6b0cb1ce563b

Sylve aims to be a lightweight, open-source virtualization platform for FreeBSD, leveraging Bhyve for VMs and Jails for containerization, with deep ZFS integration. It seeks to provide a streamlined, Proxmox-like experience tailored for FreeBSD environments. Its backend is written in Go and the frontend is written in Svelte (with Kit).

Sponsors

Were proud to be supported by:

FreeBSD Foundation Alchemilla IPTechnics

You can also support the project by sponsoring us on GitHub.

Development Requirements

These only apply to the development version of Sylve, the production version will be a single binary.

  • Go >= 1.24
  • Node.js >= v20.18.2
  • NPM >= v10.9.2

Runtime Requirements

Sylve is designed to run on FreeBSD 15.0 or later, and it is recommended to use the latest version of FreeBSD for the best experience.

Dependencies

Running Sylve is pretty easy, but sylve depends on some packages that you can install using pkg or the corresponding port to that package. Here's a list of what you'd need:

Dependency Min. version Vendored Optional Purpose
libvirt 11.7.0 No Yes Virtualization API, used for Bhyve
bhyve-firmware 1.0_2 No Yes Collection of Firmware for bhyve
samba4XX 4.XX No Yes SMB file sharing service
swtpm 0.10.1 No Yes TPM emulator for VMs
qemu-tools 10.1.0_1 No Yes QEMU utilities for disk image manipulation

We also need to enable some services in order to run Sylve, you can drop these into /etc/rc.conf if you don't have it already:

sysrc ntpd_enable="YES" # Optional
sysrc ntpd_sync_on_start="YES" # Optional
sysrc zfs_enable="YES"
sysrc libvirtd_enable="YES" # Optional
sysrc dnsmasq_enable="YES" # Optional
sysrc samba_server_enable="YES" # Optional

Enabling rctl is required if you're using Jails with Sylve. Do this by adding the following line to /boot/loader.conf:

kern.racct.enable=1

Important

Please reboot your system after adding those entries to ensure that the services are started correctly and the kernel modules are loaded.

Installation

From source

Install required (and optional) packages:

pkg install git node24 npm-node24 go libvirt bhyve-firmware samba422 swtpm qemu-tools

Clone the repo and build Sylve.

git clone https://github.com/AlchemillaHQ/Sylve.git
cd Sylve
make

Usage

cd bin/
cp -rf ../config.example.json config.json # Edit the config.json file to your liking
./sylve

Notes

  1. Root access is required to run Sylve, as it manages system-level resources like networking, storage, jails, and virtual machines. Running without sufficient privileges will result in limited functionality and/or failures.

  2. Since Bhyve doesn't support bootorders yet, you'll need to configure the order using the UEFI boot menu. You can download OS ISOs and Jail bases using the downloader present in Node > Utilities > Downloader menu.

  3. ARM64 support is still pending for Libvirt so the support is not there yet, for everything else it should just work out of the box.

Contributing

Please read CONTRIBUTING.md for details on our contributing guidelines.

License

This project is licensed under the BSD 2-Clause License - see the LICENSE file for details.