Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Jan 2026 15:27:48 +0000
From:      Dave Cottlehuber <dch@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 5445009043ad - main - filesystems/versitygw: new port - high performance S3 service and proxy
Message-ID:  <696baa74.20e6c.7ce329ed@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by dch:

URL: https://cgit.FreeBSD.org/ports/commit/?id=5445009043ad5916d00640c775bf4dd1dab56ed0

commit 5445009043ad5916d00640c775bf4dd1dab56ed0
Author:     Dave Cottlehuber <dch@FreeBSD.org>
AuthorDate: 2026-01-17 15:27:04 +0000
Commit:     Dave Cottlehuber <dch@FreeBSD.org>
CommitDate: 2026-01-17 15:27:27 +0000

    filesystems/versitygw: new port - high performance S3 service and proxy
    
    Differential Revision:  https://reviews.freebsd.org/D54616
    Sponsored by:           SkunkWerks, GmbH
---
 filesystems/Makefile                     |  1 +
 filesystems/versitygw/Makefile           | 24 ++++++++
 filesystems/versitygw/distinfo           |  5 ++
 filesystems/versitygw/files/versitygw.in | 94 ++++++++++++++++++++++++++++++++
 filesystems/versitygw/pkg-descr          |  7 +++
 filesystems/versitygw/pkg-message        | 20 +++++++
 6 files changed, 151 insertions(+)

diff --git a/filesystems/Makefile b/filesystems/Makefile
index 67ebb926d71f..ac97631af284 100644
--- a/filesystems/Makefile
+++ b/filesystems/Makefile
@@ -125,6 +125,7 @@
     SUBDIR += ufs_copy
     SUBDIR += unionfs
     SUBDIR += unreliablefs
+    SUBDIR += versitygw
     SUBDIR += webdavfs
     SUBDIR += wimlib
     SUBDIR += xfsm
diff --git a/filesystems/versitygw/Makefile b/filesystems/versitygw/Makefile
new file mode 100644
index 000000000000..8116275cc1e5
--- /dev/null
+++ b/filesystems/versitygw/Makefile
@@ -0,0 +1,24 @@
+PORTNAME=	versitygw
+DISTVERSIONPREFIX=	v
+DISTVERSION=	1.1.0
+CATEGORIES=	filesystems www
+
+MAINTAINER=	dch@FreeBSD.org
+COMMENT=	High-Performance S3 Gateway and Translation Service
+WWW=		https://github.com/versity/versitygw/blob/main/go.mod
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		go:modules
+USE_RC_SUBR=	versitygw
+GO_MODULE=	github.com/versity/versitygw
+GO_TARGET=	./cmd/versitygw
+
+PLIST_DIRS=	/var/log/versitygw
+PLIST_FILES=	bin/versitygw
+
+post-install:
+	${MKDIR} ${STAGEDIR}/var/log/versitygw
+
+.include <bsd.port.mk>
diff --git a/filesystems/versitygw/distinfo b/filesystems/versitygw/distinfo
new file mode 100644
index 000000000000..300d925f4abc
--- /dev/null
+++ b/filesystems/versitygw/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1768659439
+SHA256 (go/filesystems_versitygw/versitygw-v1.1.0/v1.1.0.mod) = 5783deed6dcb3c3ea9c2c3e83cfe4ee7dcba84827f00929a8103c2d3bfe8709a
+SIZE (go/filesystems_versitygw/versitygw-v1.1.0/v1.1.0.mod) = 4125
+SHA256 (go/filesystems_versitygw/versitygw-v1.1.0/v1.1.0.zip) = 3a97294c889bd39f83d0e2fe33ba259d594ce74cd8a65a492b549363c4969290
+SIZE (go/filesystems_versitygw/versitygw-v1.1.0/v1.1.0.zip) = 1014217
diff --git a/filesystems/versitygw/files/versitygw.in b/filesystems/versitygw/files/versitygw.in
new file mode 100644
index 000000000000..6cc04da99cea
--- /dev/null
+++ b/filesystems/versitygw/files/versitygw.in
@@ -0,0 +1,94 @@
+#!/bin/sh
+
+# PROVIDE: versitygw
+# REQUIRE: DAEMON
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# versitygw_enable (bool):	Set it to YES to enable versitygw.
+#				Default is "NO".
+# versitygw_user (user):	Set user to run versitygw.
+#				Default is "versitygw".
+# versitygw_group (group):	Set group to run versitygw.
+#				Default is "versitygw".
+# versitygw_options (string):	Provide additional runtime options.
+#				Default is "".
+# versitygw_readonly (file):	Disallow writes.
+#				Default is "yes".
+# versitygw_access_log (file):	Path for access logs.
+#				Default is "/var/log/versitgw/access.log".
+# versitygw_admin_log (file):	Path for admin logs.
+#				Default is "/var/log/versitgw/admin.log".
+# versitygw_listen (file):	IP:port to listen on.
+#				Default is "localhost:7070".
+
+. /etc/rc.subr
+
+name=versitygw
+rcvar=versitygw_enable
+
+load_rc_config $name
+
+: ${versitygw_enable:="NO"}
+: ${versitygw_user:="www"}
+: ${versitygw_group:="www"}
+: ${versitygw_access_log:="/var/log/versitygw/access.log"}
+: ${versitygw_admin_log:="/var/log/versitygw/admin.log"}
+: ${versitygw_access_key:=""}
+: ${versitygw_secret_key:=""}
+: ${versitygw_directory:=""}
+: ${versitygw_listen:="localhost:7070"}
+: ${versitygw_options:=""}
+: ${versitygw_readonly:="yes"}
+
+if checkyesno versitygw_readonly; then
+    versitygw_is_readonly="--readonly"
+else
+    versitygw_is_readonly=""
+fi
+
+pidfile=/var/run/versitygw.pid
+procname="%%PREFIX%%/bin/versitygw"
+command="/usr/sbin/daemon"
+command_args="-f -p ${pidfile} \
+	/usr/bin/env ${versitygw_env} ${procname} \
+	--access ${versitygw_access_key} \
+	--secret ${versitygw_secret_key} \
+	--access-log ${versitygw_access_log} \
+	--admin-access-log ${versitygw_admin_log} \
+	${versitygw_is_readonly} \
+	--port ${versitygw_listen} \
+	posix ${versitygw_directory}"
+
+monitor_cmd=versitygw_monitor
+start_precmd=versitygw_startprecmd
+required_dirs="$versitygw_directory"
+
+versitygw_monitor()
+{
+	sig_reload=USR1
+	run_rc_command "reload"
+}
+
+versitygw_startprecmd()
+{
+        if [ ! -e ${versitygw_access_log} ]; then
+                install -m 0640 -o ${versitygw_user} -g ${versitygw_group} /dev/null ${versitygw_access_log};
+        fi
+
+        if [ ! -e ${versitygw_admin_log} ]; then
+                install -m 0640 -o ${versitygw_user} -g ${versitygw_group} /dev/null ${versitygw_admin_log};
+        fi
+
+        if [ ! -e ${pidfile} ]; then
+                install -o ${versitygw_user} -g ${versitygw_group} /dev/null ${pidfile};
+        fi
+
+        if [ ! -d ${versitygw_dir} ]; then
+                install -d -o ${versitygw_user} -g ${versitygw_group} ${versitygw_dir}
+        fi
+}
+
+run_rc_command "$1"
diff --git a/filesystems/versitygw/pkg-descr b/filesystems/versitygw/pkg-descr
new file mode 100644
index 000000000000..e69115780903
--- /dev/null
+++ b/filesystems/versitygw/pkg-descr
@@ -0,0 +1,7 @@
+Versity S3 Gateway is a simple to use tool for seamless inline translation
+between AWS S3 object commands and storage systems. It supports:
+
+- Serving your local filesystem into an S3 server with a single command
+- Proxying local S3 requests to S3 storage with caching
+
+See https://github.com/versity/versitygw/wiki/Quickstart for usage.
diff --git a/filesystems/versitygw/pkg-message b/filesystems/versitygw/pkg-message
new file mode 100644
index 000000000000..2ae165d97189
--- /dev/null
+++ b/filesystems/versitygw/pkg-message
@@ -0,0 +1,20 @@
+[
+{ type: install
+  message: <<EOM
+Versitygw requires at minimum a secret key and an access key to be specified,
+either on the command line to run in the foreground, or as rc variables:
+
+/usr/local/bin/versitygw \
+	--access easy \
+	--secret squirrel \
+	--readonly \
+	--port localhost:7070 \
+	posix /var/empty
+
+There are many additional parameters that can be specified, see the wiki at
+https://github.com/versity/versitygw/wiki/ and --help output for details,
+and add them to versitygw-options in your rc.conf.
+
+EOM
+}
+]


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?696baa74.20e6c.7ce329ed>