Sylve
Warning
This project is still in development so expect breaking changes!
https://github.com/user-attachments/assets/bf727ef4-4316-4084-a61f-cb8ec978e43d
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. It's backend is written in Go and the frontend is written in Svelte (with Kit).
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)
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:
| Dep | 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 |
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:
ntpd_enable="YES" # Optional
ntpd_sync_on_start="YES" # Optional
smartd_enable="YES"
zfs_enable="YES"
linux_enable="YES"
libvirtd_enable="YES"
gateway_enable="YES"
And these into /boot/loader.conf:
cryptodev_load="YES"
zfs_load="YES"
vmm_load="YES"
nmdm_load="YES"
if_tap_load="YES"
if_bridge_load="YES"
hw.vmm.iommu.passthrough=1
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
git clone https://github.com/AlchemillaHQ/Sylve.git
cd Sylve
./scripts/check_deps.sh # Optional, but recommended
make
Usage
cd bin/
cp -rf ../config.json.example config.json # Edit the config.json file to your liking
./sylve
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.