Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F153080764
D52137.id174580.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
D52137.id174580.diff
View Options
diff --git a/sysutils/Makefile b/sysutils/Makefile
--- 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
--- /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 <bsd.port.mk>
diff --git a/sysutils/sylve/distinfo b/sysutils/sylve/distinfo
new file mode 100644
--- /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
--- /dev/null
+++ b/sysutils/sylve/files/pkg-message.in
@@ -0,0 +1,24 @@
+[
+{ type: install
+ message: <<EOM
+Sylve was installed!
+
+1) The default config file is located at %%ETCDIR%%/config.json. PLEASE
+ change your password in this file before starting the service for the
+ first time. The default username is "admin" and the default password is
+"admin".
+
+2) By default, Sylve datadir is located at %%DATADIR%% directory, this can
+ be modified in %%ETCDIR%%/config.json. This directory can become quite
+ large, with downloaded image files.
+
+3) Enable Sylve by using the command `sysrc sylve_enable=YES` and start
+ the service with `service sylve start`.
+
+4) You should now be able to visit https://IP:8181 to access the web
+ interface!
+
+5) Enjoy!
+EOM
+}
+]
diff --git a/sysutils/sylve/files/sylve.in b/sysutils/sylve/files/sylve.in
new file mode 100644
--- /dev/null
+++ b/sysutils/sylve/files/sylve.in
@@ -0,0 +1,61 @@
+#!/bin/sh
+#
+# PROVIDE: sylve
+# REQUIRE: DAEMON NETWORKING
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf to enable sylve:
+#
+# sylve_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable sylve.
+# sylve_user (user): Set to "root" by default.
+# User to run sylve as.
+# sylve_group (group): Set to "wheel" by default.
+# Group to run sylve as.
+# sylve_args (str): Set to "-config %%ETCDIR%%/config.json" by default.
+# Extra flags passed to sylve.
+
+. /etc/rc.subr
+
+name=sylve
+rcvar=sylve_enable
+
+load_rc_config $name
+
+: ${sylve_enable:="NO"}
+: ${sylve_user:="root"}
+: ${sylve_group:="wheel"}
+: ${sylve_args:="-config %%ETCDIR%%/config.json"}
+
+export PATH="${PATH}:/usr/local/bin:/usr/local/sbin"
+
+pidfile="/var/run/${name}.pid"
+daemon_pidfile="/var/run/${name}-daemon.pid"
+procname="%%PREFIX%%/sbin/sylve"
+command="/usr/sbin/daemon"
+command_args="-f -c -T ${name} -p ${pidfile} -P ${daemon_pidfile} ${procname} ${sylve_args}"
+
+start_precmd=sylve_startprecmd
+stop_postcmd=sylve_stoppostcmd
+
+sylve_startprecmd()
+{
+ if [ ! -e ${daemon_pidfile} ]; then
+ install -o ${sylve_user} -g ${sylve_group} /dev/null ${daemon_pidfile};
+ fi
+ if [ ! -e ${pidfile} ]; then
+ install -o ${sylve_user} -g ${sylve_group} /dev/null ${pidfile};
+ fi
+}
+
+
+sylve_stoppostcmd()
+{
+ if [ -f "${daemon_pidfile}" ]; then
+ pids=$( pgrep -F ${daemon_pidfile} 2>&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
--- /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
--- /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
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Apr 20, 12:19 AM (17 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31811527
Default Alt Text
D52137.id174580.diff (5 KB)
Attached To
Mode
D52137: sysutils/sylve: new port, lightweight GUI for managing jails, zfs, net
Attached
Detach File
Event Timeline
Log In to Comment