Add www-apps/yarnd

Signed-off-by: Shin'ya Minazuki <shinyoukai@laidback.moe>
This commit is contained in:
Shin'ya Minazuki
2026-04-17 20:45:58 -03:00
parent 870cd4c854
commit 14889f54f5
4 changed files with 91 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
# Arguments to pass to the Yarn.social server
# Some common options are:
# -R to enable open registrations (this is required for admin account creation)
# -d path to data directory
# -O to enable open profiles
# Environment variables
# These will be exported by OpenRC for use with the daemon
# ADMIN_USER=""
# ADMIN_EMAIL=""
# These values are required for a production instance
# cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 64 | head -n 1
#
# API_SIGNING_KEY=""
# COOKIE_SECRET=""
# MAGICLINK_SECRET=""

View File

@@ -0,0 +1,12 @@
#!/sbin/openrc-run
# Copyright 2026 Shin'ya Minazuki
supervisor="supervise-daemon"
command="/usr/sbin/${RC_SVCNAME}"
command_args="${yarnd_args}"
command_background="true"
command_user="yarnd:yarnd"
depend() {
need net
}

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>shinyoukai@laidback.moe</email>
<name>Shin'ya Minazuki</name>
</maintainer>
</pkgmetadata>

View File

@@ -0,0 +1,53 @@
# Copyright 2026 Shin'ya Minazuki
EAPI=8
inherit git-r3 go-module
DESCRIPTION="Self-hosted non-social social media (daemon)"
HOMEPAGE="https://yarn.social"
EGIT_REPO_URI="https://git.mills.io/yarnsocial/yarn.git"
LICENSE="AGPL-3"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86"
# There's also other two build dependencies,
# but they are not required for building, and no user
# I know gives a crap.
BDEPEND="dev-util/minify"
DOCS=( AUTHORS README.md )
src_unpack() {
git-r3_src_unpack
go-module_live_vendor
}
src_configure() {
einfo "Bundling CSS files..."
minify -b -o ./internal/theme/static/css/yarn.min.css ./internal/theme/static/css/[0-9]*-*.css
minify -b -o ./internal/theme/static/css/noscript.min.css ./internal/theme/static/css/noscript.css
einfo "Bundiling JS files..."
minify -b -o ./internal/theme/static/js/yarn.min.js ./internal/theme/static/js/[0-9]*-*.js
}
src_compile() {
export VERSION="0.15.1-${EGIT_COMMIT}"
export COMMIT="${EGIT_COMMIT}"
export BUILD="$(date +%Y-%m-%d)"
export CGO_ENABLED="0"
ego build \
-tags "netgo static_build" \
-installsuffix netgo \
-ldflags="-w -X git.mills.io/yarnsocial/yarn.Version=${VERSION} -X git.mills.io/yarnsocial/yarn.Commit=${COMMIT} -X git.mills.io/yarnsocial/yarn.Build=${BUILD}" \
./cmd/yarnd/...
}
src_install() {
dosbin yarnd
newinitd "${FILESDIR}/yarnd.initd-r1" "${PN}"
newconfd "${FILESDIR}/yarnd.confd-r1" "${PN}"
einstalldocs
}