Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Apr 2021 16:53:48 GMT
From:      =?utf-8?B?U3RlZmFuIEXDn2Vy?= <se@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 0c973ae855ea - main - www/owncast: new port of a self-hosted streaming service
Message-ID:  <202104271653.13RGrmWf037507@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by se:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0c973ae855ea63bcfd0d17dbe0aa5475fecf178a

commit 0c973ae855ea63bcfd0d17dbe0aa5475fecf178a
Author:     Stefan Eßer <se@FreeBSD.org>
AuthorDate: 2021-04-27 16:49:24 +0000
Commit:     Stefan Eßer <se@FreeBSD.org>
CommitDate: 2021-04-27 16:53:30 +0000

    www/owncast: new port of a self-hosted streaming service
    
    PR:             255439
    Obtained from:  Markus Mann, de-freebsd at ctseuro.com
---
 GIDs                         |   2 +-
 UIDs                         |   2 +-
 www/Makefile                 |   1 +
 www/owncast/Makefile         |  54 +++++++++
 www/owncast/distinfo         |   5 +
 www/owncast/files/owncast.in |  42 +++++++
 www/owncast/pkg-descr        |   7 ++
 www/owncast/pkg-message      |  15 +++
 www/owncast/pkg-plist        | 266 +++++++++++++++++++++++++++++++++++++++++++
 9 files changed, 392 insertions(+), 2 deletions(-)

diff --git a/GIDs b/GIDs
index de450397aa4f..d0fcd597e2e2 100644
--- a/GIDs
+++ b/GIDs
@@ -238,7 +238,7 @@ victoria-metrics:*:289:
 # free: 296
 # free: 297
 # free: 298
-# free: 299
+owncast:*:299:
 backuppc:*:300:
 # free: 301
 netdata:*:302:
diff --git a/UIDs b/UIDs
index f4aff0bc6d5f..63c34327481a 100644
--- a/UIDs
+++ b/UIDs
@@ -243,7 +243,7 @@ victoria-metrics:*:289:289::0:0:VictoriaMetrics user:/nonexistent:/usr/sbin/nolo
 # free: 296
 # free: 297
 # free: 298
-# free: 299
+owncast:*:299:299::0:0:& daemon:/nonexistent:/usr/sbin/nologin
 backuppc:*:300:300::0:0:BackupPC pseudo-user:/nonexistent:/usr/sbin/nologin
 # free: 301
 netdata:*:302:302::0:0:NetData Daemon:/var/cache/netdata:/usr/sbin/nologin
diff --git a/www/Makefile b/www/Makefile
index 2cd64684c75e..40149f3f6476 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -474,6 +474,7 @@
     SUBDIR += ot-recorder
     SUBDIR += otrs
     SUBDIR += otter-browser
+    SUBDIR += owncast
     SUBDIR += owncloud
     SUBDIR += p5-AMF-Perl
     SUBDIR += p5-Acme-Monta
diff --git a/www/owncast/Makefile b/www/owncast/Makefile
new file mode 100644
index 000000000000..04c3a27a742e
--- /dev/null
+++ b/www/owncast/Makefile
@@ -0,0 +1,54 @@
+# Created by Markus Mann, CTS - FreeBSD Team <de-freebsd@ctseuro.com>
+
+PORTNAME=	owncast
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.0.6
+CATEGORIES=	www
+DIST_SUBDIR=	${PORTNAME}
+
+MAINTAINER=	de-freebsd@ctseuro.com
+COMMENT=	Self-hosted streaming service written in Go
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+RUN_DEPENDS=	ffmpeg:multimedia/ffmpeg
+
+USES=		go:modules
+USE_RC_SUBR=	owncast
+
+GO_MODULE=	github.com/owncast/owncast
+
+_DAEMONARGS=	-S -l \$${owncast_facility} -s \$${owncast_priority} -T \$${name}
+_OWNCAST_USER=	owncast
+_OWNCAST_GROUP=	owncast
+
+SUB_LIST+=	DAEMONARGS="${_DAEMONARGS}" \
+		OWNCAST_USER=${_OWNCAST_USER}
+
+USERS=		${_OWNCAST_USER}
+GROUPS=		${_OWNCAST_GROUP}
+
+PLIST_SUB=	OWNCAST_USER=${_OWNCAST_USER} \
+		OWNCAST_GROUP=${_OWNCAST_GROUP}
+
+post-patch:
+	@${ECHO_CMD} ${DISTVERSION} >${WRKSRC}/VERSION
+
+do-install:
+	# Go binary is statically linked and cannot be stripped, so use
+	# INSTALL_SCRIPT.
+	${INSTALL_SCRIPT} ${WRKDIR}/bin/owncast ${STAGEDIR}${PREFIX}/sbin
+
+	${MKDIR} -m 750 ${STAGEDIR}${WWWDIR}/
+	cd ${WRKSRC} && ${COPYTREE_SHARE} "static webroot" ${STAGEDIR}${WWWDIR}
+	${INSTALL_DATA} ${WRKSRC}/LICENSE ${STAGEDIR}${WWWDIR}
+	${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${WWWDIR}
+	${INSTALL_DATA} ${WRKSRC}/VERSION ${STAGEDIR}${WWWDIR}
+	${MKDIR} -m 750 ${STAGEDIR}${WWWDIR}/backup
+	${MKDIR} -m 750 ${STAGEDIR}${WWWDIR}/data
+	${MKDIR} -m 750 ${STAGEDIR}${WWWDIR}/hls
+	${MKDIR} -m 750 ${STAGEDIR}${WWWDIR}/webroot/hls
+	${INSTALL_DATA} ${WRKSRC}/data/logo.svg ${STAGEDIR}${WWWDIR}/data
+
+.include <bsd.port.mk>
diff --git a/www/owncast/distinfo b/www/owncast/distinfo
new file mode 100644
index 000000000000..0bb35addbd06
--- /dev/null
+++ b/www/owncast/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1619296060
+SHA256 (go/www_owncast/owncast-v0.0.6/v0.0.6.mod) = ad8f267153ee11dbe7a554db726334a0104ee42f95ed719c9150ac5ed6127b5f
+SIZE (go/www_owncast/owncast-v0.0.6/v0.0.6.mod) = 1144
+SHA256 (go/www_owncast/owncast-v0.0.6/v0.0.6.zip) = ef7a984e272d863ab5b48fdd037cc4df133772d2f9e0a79b5a925c03de2c4520
+SIZE (go/www_owncast/owncast-v0.0.6/v0.0.6.zip) = 8257035
diff --git a/www/owncast/files/owncast.in b/www/owncast/files/owncast.in
new file mode 100644
index 000000000000..6473d612787d
--- /dev/null
+++ b/www/owncast/files/owncast.in
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+# PROVIDE: owncast
+# REQUIRE: NETWORKING SYSLOG
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf to enable owncast:
+#
+#owncast_enable="YES"
+
+. /etc/rc.subr
+
+name="owncast"
+rcvar="owncast_enable"
+
+load_rc_config $name
+
+: ${owncast_user:="%%OWNCAST_USER%%"}
+: ${owncast_enable:="NO"}
+: ${owncast_path:="%%WWWDIR%%"}
+: ${owncast_facility:="daemon"}
+: ${owncast_priority:="debug"}
+
+command="%%PREFIX%%/sbin/${name}"
+procname="%%PREFIX%%/sbin/${name}"
+
+pidfile="/var/run/${name}.pid"
+
+start_cmd="${name}_start"
+
+owncast_start() {
+	cd ${owncast_path}
+	/usr/sbin/daemon %%DAEMONARGS%% \
+		-u ${owncast_user} -p ${pidfile} \
+		/usr/bin/env -i \
+		"HOME=${owncast_path}" \
+		"PATH=%%PREFIX%%/bin:%%PREFIX%%/sbin:${PATH}" \
+		"USER=${owncast_user}" \
+		$command
+}
+
+run_rc_command "$1"
diff --git a/www/owncast/pkg-descr b/www/owncast/pkg-descr
new file mode 100644
index 000000000000..28980522ca46
--- /dev/null
+++ b/www/owncast/pkg-descr
@@ -0,0 +1,7 @@
+A self-hosted minimalistic streaming service written in Go.
+
+It's designed for a single streamer to host his own streams.
+You can utilize S3 compatible object storage to distribute
+your stream and lower your own bandwidth needs.
+
+WWW: https://owncast.online
diff --git a/www/owncast/pkg-message b/www/owncast/pkg-message
new file mode 100644
index 000000000000..7c8ec18baf94
--- /dev/null
+++ b/www/owncast/pkg-message
@@ -0,0 +1,15 @@
+[
+{ type: install
+  message: <<EOM
+You can activate your owncast server by typing
+sysrc owncast_enable="YES"
+service owncast start
+
+Your server is listening via http on port 8080 just point your browser to your
+http://<ip_address>:8080 to configure it.
+
+It is recommended to use a reverse proxy (eg. nginx) to serve your owncast
+instance via https - see https://owncast.online/docs/sslproxies/ for more info
+EOM
+}
+]
diff --git a/www/owncast/pkg-plist b/www/owncast/pkg-plist
new file mode 100644
index 000000000000..a02c508d4800
--- /dev/null
+++ b/www/owncast/pkg-plist
@@ -0,0 +1,266 @@
+sbin/owncast
+@owner %%OWNCAST_USER%%
+@group %%OWNCAST_GROUP%%
+@mode 0640
+%%WWWDIR%%/LICENSE
+%%WWWDIR%%/README.md
+%%WWWDIR%%/VERSION
+%%WWWDIR%%/data/logo.svg
+%%WWWDIR%%/static/logo.png
+%%WWWDIR%%/static/metadata.html
+%%WWWDIR%%/static/offline.ts
+%%WWWDIR%%/webroot/favicon.ico
+%%WWWDIR%%/webroot/img/airplay.png
+%%WWWDIR%%/webroot/img/emoji/ac-box.png
+%%WWWDIR%%/webroot/img/emoji/ac-construction.png
+%%WWWDIR%%/webroot/img/emoji/ac-fossil.png
+%%WWWDIR%%/webroot/img/emoji/ac-item-leaf.png
+%%WWWDIR%%/webroot/img/emoji/ac-kkslider.png
+%%WWWDIR%%/webroot/img/emoji/ac-moneytree.png
+%%WWWDIR%%/webroot/img/emoji/ac-mosquito.png
+%%WWWDIR%%/webroot/img/emoji/ac-shirt.png
+%%WWWDIR%%/webroot/img/emoji/ac-song.png
+%%WWWDIR%%/webroot/img/emoji/ac-tree.png
+%%WWWDIR%%/webroot/img/emoji/ac-turnip.png
+%%WWWDIR%%/webroot/img/emoji/ac-weeds.png
+%%WWWDIR%%/webroot/img/emoji/alert.gif
+%%WWWDIR%%/webroot/img/emoji/bananadance.gif
+%%WWWDIR%%/webroot/img/emoji/bb8.png
+%%WWWDIR%%/webroot/img/emoji/beerparrot.gif
+%%WWWDIR%%/webroot/img/emoji/bells.png
+%%WWWDIR%%/webroot/img/emoji/birthdaypartyparrot.gif
+%%WWWDIR%%/webroot/img/emoji/blacklightsaber.png
+%%WWWDIR%%/webroot/img/emoji/bluelightsaber.png
+%%WWWDIR%%/webroot/img/emoji/bluntparrot.gif
+%%WWWDIR%%/webroot/img/emoji/bobaparrot.gif
+%%WWWDIR%%/webroot/img/emoji/cakeparrot.gif
+%%WWWDIR%%/webroot/img/emoji/chewbacca.png
+%%WWWDIR%%/webroot/img/emoji/chillparrot.gif
+%%WWWDIR%%/webroot/img/emoji/christmasparrot.gif
+%%WWWDIR%%/webroot/img/emoji/coffeeparrot.gif
+%%WWWDIR%%/webroot/img/emoji/confusedparrot.gif
+%%WWWDIR%%/webroot/img/emoji/copparrot.gif
+%%WWWDIR%%/webroot/img/emoji/coronavirus.png
+%%WWWDIR%%/webroot/img/emoji/covid19parrot.gif
+%%WWWDIR%%/webroot/img/emoji/cryptoparrot.gif
+%%WWWDIR%%/webroot/img/emoji/dabparrot.gif
+%%WWWDIR%%/webroot/img/emoji/dadparrot.gif
+%%WWWDIR%%/webroot/img/emoji/daftpunkparrot.gif
+%%WWWDIR%%/webroot/img/emoji/darkbeerparrot.gif
+%%WWWDIR%%/webroot/img/emoji/darkmodeparrot.gif
+%%WWWDIR%%/webroot/img/emoji/darth_vader.png
+%%WWWDIR%%/webroot/img/emoji/dealwithitparrot.gif
+%%WWWDIR%%/webroot/img/emoji/death_star.png
+%%WWWDIR%%/webroot/img/emoji/discoparrot.gif
+%%WWWDIR%%/webroot/img/emoji/division-gg.png
+%%WWWDIR%%/webroot/img/emoji/division-hi.png
+%%WWWDIR%%/webroot/img/emoji/division-hype.png
+%%WWWDIR%%/webroot/img/emoji/division-lol.png
+%%WWWDIR%%/webroot/img/emoji/division-omg.png
+%%WWWDIR%%/webroot/img/emoji/division-rage.png
+%%WWWDIR%%/webroot/img/emoji/division-rip.png
+%%WWWDIR%%/webroot/img/emoji/division-wtf.png
+%%WWWDIR%%/webroot/img/emoji/docparrot.gif
+%%WWWDIR%%/webroot/img/emoji/donutparrot.gif
+%%WWWDIR%%/webroot/img/emoji/doom_mad.gif
+%%WWWDIR%%/webroot/img/emoji/empire.png
+%%WWWDIR%%/webroot/img/emoji/everythingsfineparrot.gif
+%%WWWDIR%%/webroot/img/emoji/evilparrot.gif
+%%WWWDIR%%/webroot/img/emoji/explodyparrot.gif
+%%WWWDIR%%/webroot/img/emoji/fixparrot.gif
+%%WWWDIR%%/webroot/img/emoji/flyingmoneyparrot.gif
+%%WWWDIR%%/webroot/img/emoji/footballparrot.gif
+%%WWWDIR%%/webroot/img/emoji/gabe1.png
+%%WWWDIR%%/webroot/img/emoji/gabe2.png
+%%WWWDIR%%/webroot/img/emoji/gentlemanparrot.gif
+%%WWWDIR%%/webroot/img/emoji/githubparrot.gif
+%%WWWDIR%%/webroot/img/emoji/goomba.gif
+%%WWWDIR%%/webroot/img/emoji/gothparrot.gif
+%%WWWDIR%%/webroot/img/emoji/hamburgerparrot.gif
+%%WWWDIR%%/webroot/img/emoji/harrypotterparrot.gif
+%%WWWDIR%%/webroot/img/emoji/headbangingparrot.gif
+%%WWWDIR%%/webroot/img/emoji/headingparrot.gif
+%%WWWDIR%%/webroot/img/emoji/headsetparrot.gif
+%%WWWDIR%%/webroot/img/emoji/hmmparrot.gif
+%%WWWDIR%%/webroot/img/emoji/hypnoparrot.gif
+%%WWWDIR%%/webroot/img/emoji/icecreamparrot.gif
+%%WWWDIR%%/webroot/img/emoji/illuminatiparrot.gif
+%%WWWDIR%%/webroot/img/emoji/jediparrot.gif
+%%WWWDIR%%/webroot/img/emoji/keanu_thanks.gif
+%%WWWDIR%%/webroot/img/emoji/laptop_parrot.gif
+%%WWWDIR%%/webroot/img/emoji/loveparrot.gif
+%%WWWDIR%%/webroot/img/emoji/mandalorian.png
+%%WWWDIR%%/webroot/img/emoji/margaritaparrot.gif
+%%WWWDIR%%/webroot/img/emoji/mario.gif
+%%WWWDIR%%/webroot/img/emoji/matrixparrot.gif
+%%WWWDIR%%/webroot/img/emoji/meldparrot.gif
+%%WWWDIR%%/webroot/img/emoji/metalparrot.gif
+%%WWWDIR%%/webroot/img/emoji/michaeljacksonparrot.gif
+%%WWWDIR%%/webroot/img/emoji/moonparrot.gif
+%%WWWDIR%%/webroot/img/emoji/moonwalkingparrot.gif
+%%WWWDIR%%/webroot/img/emoji/mustacheparrot.gif
+%%WWWDIR%%/webroot/img/emoji/nicolas_cage_party.gif
+%%WWWDIR%%/webroot/img/emoji/nodeparrot.gif
+%%WWWDIR%%/webroot/img/emoji/norwegianblueparrot.gif
+%%WWWDIR%%/webroot/img/emoji/opensourceparrot.gif
+%%WWWDIR%%/webroot/img/emoji/originalparrot.gif
+%%WWWDIR%%/webroot/img/emoji/owncast.png
+%%WWWDIR%%/webroot/img/emoji/palpatine.png
+%%WWWDIR%%/webroot/img/emoji/papalparrot.gif
+%%WWWDIR%%/webroot/img/emoji/parrot.gif
+%%WWWDIR%%/webroot/img/emoji/parrotnotfound.gif
+%%WWWDIR%%/webroot/img/emoji/partyparrot.gif
+%%WWWDIR%%/webroot/img/emoji/phparrot.gif
+%%WWWDIR%%/webroot/img/emoji/pirateparrot.gif
+%%WWWDIR%%/webroot/img/emoji/pizzaparrot.gif
+%%WWWDIR%%/webroot/img/emoji/pokeparrot.gif
+%%WWWDIR%%/webroot/img/emoji/popcornparrot.gif
+%%WWWDIR%%/webroot/img/emoji/porg.png
+%%WWWDIR%%/webroot/img/emoji/portalparrot.gif
+%%WWWDIR%%/webroot/img/emoji/pumpkinparrot.gif
+%%WWWDIR%%/webroot/img/emoji/quadparrot.gif
+%%WWWDIR%%/webroot/img/emoji/r2d2.png
+%%WWWDIR%%/webroot/img/emoji/Reaper-gg.png
+%%WWWDIR%%/webroot/img/emoji/Reaper-hi.png
+%%WWWDIR%%/webroot/img/emoji/Reaper-hype.png
+%%WWWDIR%%/webroot/img/emoji/Reaper-lol.png
+%%WWWDIR%%/webroot/img/emoji/Reaper-love.png
+%%WWWDIR%%/webroot/img/emoji/Reaper-rage.png
+%%WWWDIR%%/webroot/img/emoji/Reaper-rip.png
+%%WWWDIR%%/webroot/img/emoji/Reaper-wtf.png
+%%WWWDIR%%/webroot/img/emoji/redenvelopeparrot.gif
+%%WWWDIR%%/webroot/img/emoji/ripparrot.gif
+%%WWWDIR%%/webroot/img/emoji/rotatingparrot.gif
+%%WWWDIR%%/webroot/img/emoji/ryangoslingparrot.gif
+%%WWWDIR%%/webroot/img/emoji/rythmicalparrot.gif
+%%WWWDIR%%/webroot/img/emoji/sadparrot.gif
+%%WWWDIR%%/webroot/img/emoji/schnitzelparrot.gif
+%%WWWDIR%%/webroot/img/emoji/scienceparrot.gif
+%%WWWDIR%%/webroot/img/emoji/shipitparrot.gif
+%%WWWDIR%%/webroot/img/emoji/shufflepartyparrot.gif
+%%WWWDIR%%/webroot/img/emoji/sintparrot.gif
+%%WWWDIR%%/webroot/img/emoji/sithparrot.gif
+%%WWWDIR%%/webroot/img/emoji/skiparrot.gif
+%%WWWDIR%%/webroot/img/emoji/sleepingparrot.gif
+%%WWWDIR%%/webroot/img/emoji/sonic.gif
+%%WWWDIR%%/webroot/img/emoji/spyparrot.gif
+%%WWWDIR%%/webroot/img/emoji/stalkerparrot.gif
+%%WWWDIR%%/webroot/img/emoji/starwars.png
+%%WWWDIR%%/webroot/img/emoji/stayhomeparrot.gif
+%%WWWDIR%%/webroot/img/emoji/storm_trooper.gif
+%%WWWDIR%%/webroot/img/emoji/stormtrooper.png
+%%WWWDIR%%/webroot/img/emoji/sushiparrot.gif
+%%WWWDIR%%/webroot/img/emoji/tacoparrot.gif
+%%WWWDIR%%/webroot/img/emoji/tennisparrot.gif
+%%WWWDIR%%/webroot/img/emoji/thanks.png
+%%WWWDIR%%/webroot/img/emoji/thumbsupparrot.gif
+%%WWWDIR%%/webroot/img/emoji/tiedyeparrot.gif
+%%WWWDIR%%/webroot/img/emoji/tpparrot.gif
+%%WWWDIR%%/webroot/img/emoji/transparront.gif
+%%WWWDIR%%/webroot/img/emoji/twinsparrot.gif
+%%WWWDIR%%/webroot/img/emoji/upvoteparrot.gif
+%%WWWDIR%%/webroot/img/emoji/vikingparrot.gif
+%%WWWDIR%%/webroot/img/emoji/wesmart.png
+%%WWWDIR%%/webroot/img/emoji/wfhparrot.gif
+%%WWWDIR%%/webroot/img/emoji/wineparrot.gif
+%%WWWDIR%%/webroot/img/emoji/yoda.gif
+%%WWWDIR%%/webroot/img/favicon/android-icon-144x144.png
+%%WWWDIR%%/webroot/img/favicon/android-icon-192x192.png
+%%WWWDIR%%/webroot/img/favicon/android-icon-36x36.png
+%%WWWDIR%%/webroot/img/favicon/android-icon-48x48.png
+%%WWWDIR%%/webroot/img/favicon/android-icon-72x72.png
+%%WWWDIR%%/webroot/img/favicon/android-icon-96x96.png
+%%WWWDIR%%/webroot/img/favicon/apple-icon-114x114.png
+%%WWWDIR%%/webroot/img/favicon/apple-icon-120x120.png
+%%WWWDIR%%/webroot/img/favicon/apple-icon-144x144.png
+%%WWWDIR%%/webroot/img/favicon/apple-icon-152x152.png
+%%WWWDIR%%/webroot/img/favicon/apple-icon-180x180.png
+%%WWWDIR%%/webroot/img/favicon/apple-icon-57x57.png
+%%WWWDIR%%/webroot/img/favicon/apple-icon-60x60.png
+%%WWWDIR%%/webroot/img/favicon/apple-icon-72x72.png
+%%WWWDIR%%/webroot/img/favicon/apple-icon-76x76.png
+%%WWWDIR%%/webroot/img/favicon/apple-icon-precomposed.png
+%%WWWDIR%%/webroot/img/favicon/apple-icon.png
+%%WWWDIR%%/webroot/img/favicon/browserconfig.xml
+%%WWWDIR%%/webroot/img/favicon/favicon-16x16.png
+%%WWWDIR%%/webroot/img/favicon/favicon-32x32.png
+%%WWWDIR%%/webroot/img/favicon/favicon-96x96.png
+%%WWWDIR%%/webroot/img/favicon/ms-icon-144x144.png
+%%WWWDIR%%/webroot/img/favicon/ms-icon-150x150.png
+%%WWWDIR%%/webroot/img/favicon/ms-icon-310x310.png
+%%WWWDIR%%/webroot/img/favicon/ms-icon-70x70.png
+%%WWWDIR%%/webroot/img/logo.png
+%%WWWDIR%%/webroot/img/logo.svg
+%%WWWDIR%%/webroot/img/platformlogos/bandcamp.svg
+%%WWWDIR%%/webroot/img/platformlogos/default.svg
+%%WWWDIR%%/webroot/img/platformlogos/discord.svg
+%%WWWDIR%%/webroot/img/platformlogos/donate.svg
+%%WWWDIR%%/webroot/img/platformlogos/facebook.svg
+%%WWWDIR%%/webroot/img/platformlogos/follow.svg
+%%WWWDIR%%/webroot/img/platformlogos/github.svg
+%%WWWDIR%%/webroot/img/platformlogos/gitlab.svg
+%%WWWDIR%%/webroot/img/platformlogos/google.svg
+%%WWWDIR%%/webroot/img/platformlogos/instagram.svg
+%%WWWDIR%%/webroot/img/platformlogos/keyoxide.png
+%%WWWDIR%%/webroot/img/platformlogos/ko-fi.svg
+%%WWWDIR%%/webroot/img/platformlogos/link.svg
+%%WWWDIR%%/webroot/img/platformlogos/linkedin.svg
+%%WWWDIR%%/webroot/img/platformlogos/mastodon.svg
+%%WWWDIR%%/webroot/img/platformlogos/patreon.svg
+%%WWWDIR%%/webroot/img/platformlogos/paypal.svg
+%%WWWDIR%%/webroot/img/platformlogos/snapchat.svg
+%%WWWDIR%%/webroot/img/platformlogos/soundcloud.svg
+%%WWWDIR%%/webroot/img/platformlogos/spotify.svg
+%%WWWDIR%%/webroot/img/platformlogos/tiktok.svg
+%%WWWDIR%%/webroot/img/platformlogos/twitch.svg
+%%WWWDIR%%/webroot/img/platformlogos/twitter.svg
+%%WWWDIR%%/webroot/img/platformlogos/youtube.svg
+%%WWWDIR%%/webroot/img/smiley.png
+%%WWWDIR%%/webroot/index-standalone-chat.html
+%%WWWDIR%%/webroot/index-video-only.html
+%%WWWDIR%%/webroot/index.html
+%%WWWDIR%%/webroot/js/app-standalone-chat.js
+%%WWWDIR%%/webroot/js/app-video-only.js
+%%WWWDIR%%/webroot/js/app.js
+%%WWWDIR%%/webroot/js/components/chat/chat-input.js
+%%WWWDIR%%/webroot/js/components/chat/chat-message-view.js
+%%WWWDIR%%/webroot/js/components/chat/chat.js
+%%WWWDIR%%/webroot/js/components/chat/content-editable.js
+%%WWWDIR%%/webroot/js/components/chat/message.js
+%%WWWDIR%%/webroot/js/components/chat/username.js
+%%WWWDIR%%/webroot/js/components/platform-logos-list.js
+%%WWWDIR%%/webroot/js/components/player.js
+%%WWWDIR%%/webroot/js/components/video-poster.js
+%%WWWDIR%%/webroot/js/utils/chat.js
+%%WWWDIR%%/webroot/js/utils/constants.js
+%%WWWDIR%%/webroot/js/utils/helpers.js
+%%WWWDIR%%/webroot/js/utils/user-colors.js
+%%WWWDIR%%/webroot/js/utils/websocket.js
+%%WWWDIR%%/webroot/js/web_modules/@joeattardi/emoji-button.js
+%%WWWDIR%%/webroot/js/web_modules/@justinribeiro/lite-youtube.js
+%%WWWDIR%%/webroot/js/web_modules/@videojs/http-streaming/dist/videojs-http-streaming.min.js
+%%WWWDIR%%/webroot/js/web_modules/@videojs/themes/fantasy/index.css
+%%WWWDIR%%/webroot/js/web_modules/common/_commonjsHelpers-37fa8da4.js
+%%WWWDIR%%/webroot/js/web_modules/common/core-d14f1e1c.js
+%%WWWDIR%%/webroot/js/web_modules/common/core-fed3ccd8.js
+%%WWWDIR%%/webroot/js/web_modules/htm.js
+%%WWWDIR%%/webroot/js/web_modules/import-map.json
+%%WWWDIR%%/webroot/js/web_modules/markjs/dist/mark.es6.min.js
+%%WWWDIR%%/webroot/js/web_modules/preact.js
+%%WWWDIR%%/webroot/js/web_modules/tailwindcss/dist/tailwind.min.css
+%%WWWDIR%%/webroot/js/web_modules/videojs/core.js
+%%WWWDIR%%/webroot/js/web_modules/videojs/video-js.min.css
+%%WWWDIR%%/webroot/manifest.json
+%%WWWDIR%%/webroot/styles/app.css
+%%WWWDIR%%/webroot/styles/chat.css
+%%WWWDIR%%/webroot/styles/standalone-chat.css
+%%WWWDIR%%/webroot/styles/user-content.css
+%%WWWDIR%%/webroot/styles/video-only.css
+%%WWWDIR%%/webroot/styles/video.css
+@mode 0750
+@dir %%WWWDIR%%
+@dir %%WWWDIR%%/backup
+@dir %%WWWDIR%%/data
+@dir %%WWWDIR%%/hls
+@dir %%WWWDIR%%/webroot
+@dir %%WWWDIR%%/webroot/hls



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202104271653.13RGrmWf037507>