diff --git a/sysutils/Makefile b/sysutils/Makefile index ec10837486e1..80eaa94cf62e 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -1390,6 +1390,7 @@ SUBDIR += swapusage SUBDIR += sweeper SUBDIR += swtpm + SUBDIR += sylve SUBDIR += symlinks SUBDIR += symon SUBDIR += synergy diff --git a/sysutils/sylve/Makefile b/sysutils/sylve/Makefile new file mode 100644 index 000000000000..66cf333011aa --- /dev/null +++ b/sysutils/sylve/Makefile @@ -0,0 +1,46 @@ +PORTNAME= sylve +DISTVERSIONPREFIX= v +DISTVERSION= 0.2.2 +CATEGORIES= sysutils +MASTER_SITES+= https://github.com/AlchemillaHQ/Sylve/releases/download/${DISTVERSIONPREFIX}${DISTVERSION}/:web_assets +DISTFILES+= sylve-web-assets.tar.gz:web_assets + +MAINTAINER= hayzam@alchemilla.io +COMMENT= Lightweight GUI for managing Bhyve, Jails, ZFS, networking +WWW= https://github.com/alchemillahq/sylve + +LICENSE= BSD2CLAUSE + +ONLY_FOR_ARCHS= aarch64 amd64 + +RUN_DEPENDS= dnsmasq>0:dns/dnsmasq \ + qemu-img:emulators/qemu@tools \ + samba423>0:net/samba423 \ + swtpm>0:sysutils/swtpm \ + virsh:devel/libvirt +.if ${ARCH} == amd64 +RUN_DEPENDS+= bhyve-firmware>0:sysutils/bhyve-firmware +.elif ${ARCH} == aarch64 +RUN_DEPENDS+= u-boot-bhyve-arm64>0:sysutils/u-boot-bhyve-arm64 +.endif + +USES= go:modules +USE_RC_SUBR= ${PORTNAME} + +GO_MODULE= github.com/alchemillahq/sylve + +GO_TARGET= ./cmd/sylve + +post-extract: + @${MKDIR} ${WRKSRC}/internal/assets/web-files + @${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/sylve-web-assets.tar.gz \ + -C ${WRKSRC}/internal/assets/ + +do-install: + ${MKDIR} ${STAGEDIR}${ETCDIR} + ${MKDIR} ${STAGEDIR}/var/db/sylve + ${INSTALL_PROGRAM} ${WRKDIR}/bin/${PORTNAME} \ + ${STAGEDIR}${PREFIX}/sbin/${PORTNAME} + ${INSTALL_DATA} ${WRKSRC}/config.example.json ${STAGEDIR}${ETCDIR}/config.json.sample + +.include diff --git a/sysutils/sylve/distinfo b/sysutils/sylve/distinfo new file mode 100644 index 000000000000..5abaf1a4dee2 --- /dev/null +++ b/sysutils/sylve/distinfo @@ -0,0 +1,7 @@ +TIMESTAMP = 1774805985 +SHA256 (go/sysutils_sylve/sylve-v0.2.2/sylve-web-assets.tar.gz) = d8d4dc99723d9352f1af6330ac8a8eb1a8cfddbd91d8e8c0d4b11663a3be5278 +SIZE (go/sysutils_sylve/sylve-v0.2.2/sylve-web-assets.tar.gz) = 2929354 +SHA256 (go/sysutils_sylve/sylve-v0.2.2/v0.2.2.mod) = 5dfaadfaf24023652042afbc41d496ea4d4fcf4972c32b3f760c9f1f291f7587 +SIZE (go/sysutils_sylve/sylve-v0.2.2/v0.2.2.mod) = 5823 +SHA256 (go/sysutils_sylve/sylve-v0.2.2/v0.2.2.zip) = c64813343c99b41b60d68576d9559a934303d1709a49296647a5d746a1f96b40 +SIZE (go/sysutils_sylve/sylve-v0.2.2/v0.2.2.zip) = 34832987 diff --git a/sysutils/sylve/files/pkg-message.in b/sysutils/sylve/files/pkg-message.in new file mode 100644 index 000000000000..5df054a1058b --- /dev/null +++ b/sysutils/sylve/files/pkg-message.in @@ -0,0 +1,24 @@ +[ +{ type: install + message: <&1 ) + _err=$? + [ ${_err} -eq 0 ] && kill -9 ${pids} + fi +} + +run_rc_command "$1" diff --git a/sysutils/sylve/pkg-descr b/sysutils/sylve/pkg-descr new file mode 100644 index 000000000000..e97d487cef06 --- /dev/null +++ b/sysutils/sylve/pkg-descr @@ -0,0 +1,5 @@ +Sylve is a lightweight, open-source virtualization platform for FreeBSD, +leveraging Bhyve for VMs and Jails for containerization, with deep ZFS +integration. It provides a streamlined, Proxmox-like experience tailored for +FreeBSD environments. Its backend is written in Go, and the frontend is written +in Svelte (with Kit), integrated into a single binary for easy deployment. diff --git a/sysutils/sylve/pkg-plist b/sysutils/sylve/pkg-plist new file mode 100644 index 000000000000..a591cf664880 --- /dev/null +++ b/sysutils/sylve/pkg-plist @@ -0,0 +1,3 @@ +@sample %%ETCDIR%%/config.json.sample +sbin/sylve +@dir(root,wheel,0700) /var/db/sylve