diff --git a/acct-group/prosody-filer/metadata.xml b/acct-group/prosody-filer/metadata.xml new file mode 100644 index 0000000..a9ea785 --- /dev/null +++ b/acct-group/prosody-filer/metadata.xml @@ -0,0 +1,8 @@ + + + + + shinyoukai@laidback.moe + Shin'ya Minazuki + + diff --git a/acct-group/prosody-filer/prosody-filer-0.ebuild b/acct-group/prosody-filer/prosody-filer-0.ebuild new file mode 100644 index 0000000..aa3d0e3 --- /dev/null +++ b/acct-group/prosody-filer/prosody-filer-0.ebuild @@ -0,0 +1,7 @@ +# Copyright 2026 Shin'ya Minazuki +EAPI=8 + +inherit acct-group + +ACCT_GROUP_ID=-1 + diff --git a/acct-user/prosody-filer/metadata.xml b/acct-user/prosody-filer/metadata.xml new file mode 100644 index 0000000..a9ea785 --- /dev/null +++ b/acct-user/prosody-filer/metadata.xml @@ -0,0 +1,8 @@ + + + + + shinyoukai@laidback.moe + Shin'ya Minazuki + + diff --git a/acct-user/prosody-filer/prosody-filer-0.ebuild b/acct-user/prosody-filer/prosody-filer-0.ebuild new file mode 100644 index 0000000..488a18e --- /dev/null +++ b/acct-user/prosody-filer/prosody-filer-0.ebuild @@ -0,0 +1,10 @@ +# Copyright 2026 Shin'ya Minazuki +EAPI=8 + +inherit acct-user + +DESCRIPTION="System user for prosody-filer" +ACCT_USER_ID=-1 +ACCT_USER_GROUPS=( prosody-filer ) + +acct-user_add_deps diff --git a/www-apps/prosody-filer/files/prosody-filer.initd-r0 b/www-apps/prosody-filer/files/prosody-filer.initd-r0 new file mode 100644 index 0000000..27e2008 --- /dev/null +++ b/www-apps/prosody-filer/files/prosody-filer.initd-r0 @@ -0,0 +1,23 @@ +#!/sbin/openrc-run +# Copyright 2026 Shin'ya Minazuki + +supervisor="supervise-daemon" +command="/usr/sbin/prosody-filer" +command_args="-config /etc/prosody-filer.toml" +command_background="true" +command_user="prosody-filer" +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + want apache + want caddy + want nginx +} + +start_pre() { + ebegin "Checking for the existence of /etc/${RC_SVCNAME}.toml ..." + if ! checkpath --file /etc/${RC_SVCNAME}.toml; then + eerror "Configuration file not found." + eerror "Bailing out." + fi +} diff --git a/www-apps/prosody-filer/files/prosody-filer.service b/www-apps/prosody-filer/files/prosody-filer.service new file mode 100644 index 0000000..34bb63a --- /dev/null +++ b/www-apps/prosody-filer/files/prosody-filer.service @@ -0,0 +1,15 @@ +[Unit] +Description=A simple file server for handling XMPP upload requests +After=network-online.target +After=ejabberd.service +After=prosody.service + +[Service] +ExecStart=/usr/sbin/prosody-filer -config /etc/prosody-filer.toml +Restart=always +RestartSec=5s +User=prosody-filer +Group=prosody-filer + +[Install] +WantedBy=multi-user.target diff --git a/www-apps/prosody-filer/metadata.xml b/www-apps/prosody-filer/metadata.xml new file mode 100644 index 0000000..44b8ca0 --- /dev/null +++ b/www-apps/prosody-filer/metadata.xml @@ -0,0 +1,11 @@ + + + + + shinyoukai@laidback.moe + Shin'ya Minazuki + + + ThomasLeister/prosody-filer + + diff --git a/www-apps/prosody-filer/prosody-filer-20260327.ebuild b/www-apps/prosody-filer/prosody-filer-20260327.ebuild new file mode 100644 index 0000000..51959b1 --- /dev/null +++ b/www-apps/prosody-filer/prosody-filer-20260327.ebuild @@ -0,0 +1,40 @@ +# Copyright 2026 Shin'ya Minazuki +EAPI=8 + +inherit git-r3 go-module systemd + +DESCRIPTION="A simple file server for handling XMPP upload requests" +HOMEPAGE="https://github.com/ThomasLeister/prosody-filer" +EGIT_REPO_URI="https://github.com/ThomasLeister/prosody-filer" +EGIT_COMMIT="bd3c2fe1fbd81758503ac3faeba68ba13308ca38" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" + +DEPEND=" + acct-group/prosody-filer + acct-user/prosody-filer +" + +src_unpack() { + git-r3_src_unpack + go-module_live_vendor +} + +src_compile() { + ego build -x -v -o ${PN} ${PN}.go +} + +src_install() { + newinitd "${FILESDIR}/prosody-filer.initd-r0" "${PN}" + systemd_dounit "${FILESDIR}/prosody-filer.service" + dosbin "${PN}" + insinto "/usr/share/doc/${PF}" + doins config.example.toml +} + +pkg_postinst() { + elog "This will not work without a reverse proxy" + elog "It's advised to emerge www-servers/apache or www-servers/nginx" +}