From: A Tammy Subject: Re: [new] www/uptime-kuma - fancy selfhosted uptime monitor To: ports@openbsd.org Date: Thu, 1 Aug 2024 23:34:01 -0400 On 8/1/24 11:32 PM, aisha wrote: > Hi, > I've attached a port for www/uptime-kuma, an uptime monitoring tool. With the actual port tgz as well. > Uptime Kuma is an easy-to-use self-hosted monitoring tool. > It comes with a lot of knobs and features, such as: > - Monitoring uptime for HTTP(s) / TCP/ HTTP(s) Keyword / > HTTP(s) Json Query / Ping / DNS Record / Push / > Steam Game Server / Docker Containers. > - Fancy, Reactive, Fast UI/UX > - Notifications via Telegram, Discord, Gotify, Slack, > Pushover, Email (SMTP), and 90+ other notification services. > - 20-second intervals > - Multi Languages > - Multiple status pages > - Map status pages to specific domains > - Ping chart > - Certificate info > - Proxy support > - 2FA support > > > I've also attached a patch for www/PM2, which now allows uptime-kuma to be started by the PM2 daemon super easily, as simple as `rcctl start pm2`. > > > I've added the sample config file for PM2 as well as documentation for starting uptime-kuma in the README for uptime-kuma. > > OK to import and patch? > > Aisha > > > > diff --git a/infrastructure/db/user.list b/infrastructure/db/user.list > index 06bf2693c54..8c562f52d3a 100644 > --- a/infrastructure/db/user.list > +++ b/infrastructure/db/user.list > @@ -30,7 +30,7 @@ id user group port > 519 _news _news news/leafnode > 520 _majordomo _majordomo mail/majordomo > 521 _exim _exim mail/exim > -#522 _xcept _xcept comms/xcept > +522 _pm2 _pm2 www/pm2 > 523 _ffproxy _ffproxy www/ffproxy > #524 _mail mail/openwebmail > 525 _quagga _quagga net/quagga > diff --git a/www/pm2/Makefile b/www/pm2/Makefile > index 3637b8bcc5e..f0d1ee2cba6 100644 > --- a/www/pm2/Makefile > +++ b/www/pm2/Makefile > @@ -4,6 +4,8 @@ GH_ACCOUNT = Unitech > GH_PROJECT = pm2 > GH_TAGNAME = v5.4.2 > > +REVISION = 0 > + > CATEGORIES = www > > HOMEPAGE = https://pm2.keymetrics.io/ > @@ -41,5 +43,7 @@ do-install: > cp -a ${WRKSRC} ${PREFIX}/libexec/pm2 > rm -r ${PREFIX}/libexec/pm2/test > ln -sf ${TRUEPREFIX}/libexec/pm2/bin/pm2 ${PREFIX}/bin/pm2 > + mkdir ${PREFIX}/share/doc/pm2 > + cp ${FILESDIR}/ecosystem.config.js ${PREFIX}/share/doc/pm2/ > > .include > diff --git a/www/pm2/files/ecosystem.config.js b/www/pm2/files/ecosystem.config.js > new file mode 100644 > index 00000000000..a38fe360a3c > --- /dev/null > +++ b/www/pm2/files/ecosystem.config.js > @@ -0,0 +1,3 @@ > +module.exports = { > + apps : [] > +} > diff --git a/www/pm2/patches/patch-_mocharc_js b/www/pm2/patches/patch-_mocharc_js > new file mode 100644 > index 00000000000..a228e6fd088 > --- /dev/null > +++ b/www/pm2/patches/patch-_mocharc_js > @@ -0,0 +1,12 @@ > +Index: .mocharc.js > +--- .mocharc.js.orig > ++++ .mocharc.js > +@@ -7,7 +7,7 @@ module.exports = { > + delay: false, > + diff: true, > + exit: true, > +- timeout: 10000, > ++ timeout: 30000, > + 'trace-warnings': true, > + ui: 'bdd', > + retries: 2 > diff --git a/www/pm2/pkg/PLIST b/www/pm2/pkg/PLIST > index 119a974d508..039a12dddaa 100644 > --- a/www/pm2/pkg/PLIST > +++ b/www/pm2/pkg/PLIST > @@ -1,3 +1,14 @@ > +@newgroup _pm2:522 > +@newuser _pm2:522:522::PM2:${LOCALSTATEDIR}/db/pm2:/sbin/nologin > +@mode 750 > +@owner _pm2 > +@group _pm2 > +@sample ${LOCALSTATEDIR}/db/pm2/ > +@owner > +@sample ${SYSCONFDIR}/pm2/ > +@mode > +@group > +@rcscript ${RCDIR}/pm2 > bin/pm2 > libexec/pm2/ > libexec/pm2/.editorconfig > @@ -5430,3 +5441,8 @@ libexec/pm2/pres/vitals.png > libexec/pm2/types/ > libexec/pm2/types/index.d.ts > libexec/pm2/types/tsconfig.json > +share/doc/pm2/ > +share/doc/pm2/ecosystem.config.js > +@mode 640 > +@group _pm2 > +@sample ${SYSCONFDIR}/pm2/ecosystem.config.js > diff --git a/www/pm2/pkg/pm2.rc b/www/pm2/pkg/pm2.rc > new file mode 100644 > index 00000000000..4139dd70dbd > --- /dev/null > +++ b/www/pm2/pkg/pm2.rc > @@ -0,0 +1,23 @@ > +#!/bin/ksh > + > +daemon="/usr/local/bin/pm2" > +daemon_flags="/etc/pm2/ecosystem.config.js" > +daemon_user="_pm2" > + > +. /etc/rc.d/rc.subr > + > +pexp="node: PM2 v[0-9]\.[0-9]\.[0-9]: God Daemon.*" > + > +rc_start() { > + rc_exec "${daemon} start ${daemon_flags}" > +} > + > +rc_reload() { > + rc_exec "${daemon} reload ${daemon_flags}" > +} > + > +rc_stop() { > + rc_exec "${daemon} kill" > +} > + > +rc_cmd $1 >