Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F151906467
D52137.id174496.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.id174496.diff
View Options
Index: sysutils/Makefile
===================================================================
--- sysutils/Makefile
+++ sysutils/Makefile
@@ -1390,6 +1390,7 @@
SUBDIR += swapusage
SUBDIR += sweeper
SUBDIR += swtpm
+ SUBDIR += sylve
SUBDIR += symlinks
SUBDIR += symon
SUBDIR += synergy
Index: sysutils/sylve/Makefile
===================================================================
--- /dev/null
+++ sysutils/sylve/Makefile
@@ -0,0 +1,42 @@
+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= bhyve-firmware>0:sysutils/bhyve-firmware \
+ dnsmasq>0:dns/dnsmasq \
+ samba423>=0:net/samba423 \
+ smartmontools>=0:sysutils/smartmontools \
+ tmux>=0:sysutils/tmux \
+ virsh:devel/libvirt
+
+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>
Index: sysutils/sylve/distinfo
===================================================================
--- /dev/null
+++ 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
Index: sysutils/sylve/files/pkg-message.in
===================================================================
--- /dev/null
+++ sysutils/sylve/files/pkg-message.in
@@ -0,0 +1,15 @@
+[
+{ type: install
+ message: <<EOM
+sylve was installed
+
+1) A sylve default config file is located at %%ETCDIR%%/config.json.
+
+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) Enjoy it ;)
+EOM
+}
+]
Index: sysutils/sylve/files/sylve.in
===================================================================
--- /dev/null
+++ 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 -R 5 -r -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"
Index: sysutils/sylve/pkg-descr
===================================================================
--- /dev/null
+++ 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.
Index: sysutils/sylve/pkg-plist
===================================================================
--- /dev/null
+++ 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
Sun, Apr 12, 11:37 AM (12 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31345780
Default Alt Text
D52137.id174496.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