Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Lightweight GUI for managing Bhyve, Jails, ZFS, networking, and more on FreeBSD

License

Notifications You must be signed in to change notification settings

AlchemillaHQ/Sylve

Sylve

Discord

Warning

This project is still in development so expect breaking changes!

demo.mp4

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

We’re proud to be supported by:

FreeBSD Foundation     Alchemilla

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 14.3 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
smartmontools 7.4_2 No No Disk health monitoring
tmux 3.2 No No Terminal multiplexer, used for the (web) console
libvirt 11.1.0 No No Virtualization API, used for Bhyve
bhyve-firmware 1.0_2 No No Collection of Firmware for bhyve
samba419 4.19.9_9 No No SMB file sharing service
jansson 2.14.1 No No JSON library for C
swtpm 0.10.1 No No TPM emulator for VMs

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 linux_enable="YES" # Optional
sysrc libvirtd_enable="YES"
sysrc dnsmasq_enable="YES"
sysrc rpcbind_enable="YES"
sysrc nfs_server_enable="YES"
sysrc mountd_enable="YES"
sysrc samba_server_enable="YES"

Enabling rctl is required. 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 packages.

pkg install git node20 npm-node20 go tmux libvirt bhyve-firmware smartmontools tmux samba419 jansson swtpm 

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

In order to download an ISO go to: Datacenter > Your Host > Utilities > Downloader > + NEW

Important

Bhyve does not support boot orders, so you cannot add installation media after creating the VM. So make sure to add an installation media when creating a new VM.

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.

About

Lightweight GUI for managing Bhyve, Jails, ZFS, networking, and more on FreeBSD

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published