git: 5c7f1e3b37a3 - main - www/gatus: New port: Automated developer-oriented status page

From: Jesús Daniel Colmenares Oviedo <dtxdf_at_FreeBSD.org>
Date: Fri, 19 Sep 2025 17:03:49 UTC
The branch main has been updated by dtxdf:

URL: https://cgit.FreeBSD.org/ports/commit/?id=5c7f1e3b37a3946de90062a235a49818c614c284

commit 5c7f1e3b37a3946de90062a235a49818c614c284
Author:     Jesús Daniel Colmenares Oviedo <dtxdf@FreeBSD.org>
AuthorDate: 2025-09-19 16:36:59 +0000
Commit:     Jesús Daniel Colmenares Oviedo <dtxdf@FreeBSD.org>
CommitDate: 2025-09-19 17:03:27 +0000

    www/gatus: New port: Automated developer-oriented status page
    
    Gatus is a developer-oriented health dashboard that gives you the
    ability to monitor your services using HTTP, ICMP, TCP, and even
    DNS queries as well as evaluate the result of said queries by using
    a list of conditions on values like the status code, the response
    time, the certificate expiration, the body and many others. The
    icing on top is that each of these health checks can be paired with
    alerting via Slack, Teams, PagerDuty, Discord, Twilio and many more.
---
 www/Makefile             |  1 +
 www/gatus/Makefile       | 36 ++++++++++++++++++++++++++++++++++++
 www/gatus/distinfo       |  5 +++++
 www/gatus/files/gatus.in | 37 +++++++++++++++++++++++++++++++++++++
 www/gatus/pkg-descr      |  7 +++++++
 5 files changed, 86 insertions(+)

diff --git a/www/Makefile b/www/Makefile
index 00d56aaac882..2c1dc21e6cdb 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -217,6 +217,7 @@
     SUBDIR += gallery2
     SUBDIR += garage
     SUBDIR += gatling
+    SUBDIR += gatus
     SUBDIR += gauche-makiki
     SUBDIR += geckodriver
     SUBDIR += geneweb
diff --git a/www/gatus/Makefile b/www/gatus/Makefile
new file mode 100644
index 000000000000..f74eaf42dc05
--- /dev/null
+++ b/www/gatus/Makefile
@@ -0,0 +1,36 @@
+PORTNAME=	gatus
+DISTVERSIONPREFIX=	v
+DISTVERSION=	5.24.0
+CATEGORIES=	www
+MASTER_SITES=	LOCAL/dtxdf/${PORTNAME}/
+DISTFILES=	${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION}.vendor${EXTRACT_SUFX}
+
+MAINTAINER=	dtxdf@FreeBSD.org
+COMMENT=	Automated developer-oriented status page
+WWW=		https://gatus.io
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		go:modules
+USE_GITHUB=	yes
+GH_ACCOUNT=	TwiN
+
+USE_RC_SUBR=	${PORTNAME}
+
+PLIST_FILES=	bin/${PORTNAME} \
+		"@sample etc/${PORTNAME}.yaml.sample"
+
+SUB_LIST=	USER=${GATUS_USER}
+
+GATUS_USER=	www
+
+post-extract:
+	@${MKDIR} ${WRKSRC}/vendor
+	@cd ${WRKDIR}/${PORTNAME}-vendor && ${COPYTREE_SHARE} . ${WRKSRC}/vendor
+
+post-install:
+	@${MKDIR} ${STAGEDIR}${PREFIX}/etc
+	${INSTALL_DATA} ${WRKSRC}/config.yaml ${STAGEDIR}${PREFIX}/etc/${PORTNAME}.yaml.sample
+
+.include <bsd.port.mk>
diff --git a/www/gatus/distinfo b/www/gatus/distinfo
new file mode 100644
index 000000000000..2a501149b0f0
--- /dev/null
+++ b/www/gatus/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1758293804
+SHA256 (gatus-v5.24.0.vendor.tar.gz) = 0d4c5b2106323101cc3a3f0e3d7c130b236f88faea832419ddcb0422cbc3561d
+SIZE (gatus-v5.24.0.vendor.tar.gz) = 52326901
+SHA256 (TwiN-gatus-v5.24.0_GH0.tar.gz) = 2e6eebc227137cb9cd623bc5bd546122b4c880df073e71cee9a8d4f1021867b4
+SIZE (TwiN-gatus-v5.24.0_GH0.tar.gz) = 2870023
diff --git a/www/gatus/files/gatus.in b/www/gatus/files/gatus.in
new file mode 100644
index 000000000000..ea9cb6f136e0
--- /dev/null
+++ b/www/gatus/files/gatus.in
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+# PROVIDE: gatus
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Configuration settings for Gatus in /etc/rc.conf
+#
+# gatus_enable (bool):                    Enable Gatus. (default=NO)
+# gatus_log (str):                        Log output. (default=/var/log/gatus.log)
+# gatus_log_level (str):                  Log level. (default=INFO)
+# gatus_delay_start_seconds (int):        Sleep on startup. (default=0)
+# gatus_runas (str):                      User to run Gatus as. (default=%%USER%%)
+# gatus_config (str):                     Configuration file. (default=%%PREFIX%%/etc/gatus.yaml)
+
+. /etc/rc.subr
+
+name="gatus"
+desc="Automated developer-oriented status page"
+rcvar="${name}_enable"
+
+load_rc_config $name
+
+: ${gatus_enable:="NO"}
+: ${gatus_log:="/var/log/${name}.log"}
+: ${gatus_log_level:="INFO"}
+: ${gatus_delay_start_seconds:="0"}
+: ${gatus_runas:="%%USER%%"}
+: ${gatus_config:="%%PREFIX%%/etc/${name}.yaml"}
+
+gatus_env="GATUS_CONFIG_PATH=${gatus_config} GATUS_LOG_LEVEL=${gatus_log_level} GATUS_DELAY_START_SECONDS=${gatus_delay_start_seconds}"
+pidfile="/var/run/${name}.pid"
+procname="%%LOCALBASE%%/bin/${name}"
+command="/usr/sbin/daemon"
+command_args="-c -u ${gatus_runas} -o ${gatus_log} -p ${pidfile} -t \"${desc}\" ${procname}"
+
+run_rc_command "$1"
diff --git a/www/gatus/pkg-descr b/www/gatus/pkg-descr
new file mode 100644
index 000000000000..e38edea7bdd4
--- /dev/null
+++ b/www/gatus/pkg-descr
@@ -0,0 +1,7 @@
+Gatus is a developer-oriented health dashboard that gives you the
+ability to monitor your services using HTTP, ICMP, TCP, and even
+DNS queries as well as evaluate the result of said queries by using
+a list of conditions on values like the status code, the response
+time, the certificate expiration, the body and many others. The
+icing on top is that each of these health checks can be paired with
+alerting via Slack, Teams, PagerDuty, Discord, Twilio and many more.