net-im/gotosocial: new port

With GoToSocial, you can keep in touch with your friends, post, read,
and share images and articles. All without being tracked or advertised
to!

GoToSocial provides a lightweight, customizable, and safety-focused
entryway into the Fediverse, and is comparable to (but distinct from)
existing projects such as Mastodon, Pleroma, Friendica, and PixelFed.

WWW: https://docs.gotosocial.org/en/latest/
This commit is contained in:
Mina Galić
2022-04-04 12:50:50 +00:00
committed by Dave Cottlehuber
parent 0f3979ae58
commit 73ee63cede
9 changed files with 195 additions and 0 deletions

1
GIDs
View File

@@ -149,6 +149,7 @@ gnugk:*:205:
gini:*:206:
_mixminion:*:207:
_dnsdist:*:208:
gotosocial:*:209:
shoutcast:*:210:
git:*:211:
hg:*:212:

1
UIDs
View File

@@ -154,6 +154,7 @@ gnugk:*:205:205::0:0:GNU GateKeeper pseudo-user:/nonexistent:/usr/sbin/nologin
gini:*:206:206::0:0:& streaming server:/var/log/gini:/usr/sbin/nologin
_mixminion:*:207:207::0:0:Mixminion server:/nonexistent:/usr/sbin/nologin
_dnsdist:*:208:208::0:0:dnsdist user:/nonexistent:/usr/sbin/nologin
gotosocial:*:209:209::0:0:Gotosocial user:/nonexistent:/usr/sbin/nologin
shoutcast:*:210:210::0:0:Shoutcast sandbox:/nonexistent:/bin/sh
git:*:211:211::0:0:git user:/usr/local/git:/bin/sh
hg:*:212:212::0:0:mercurial-server user:/usr/local/hg:/bin/sh

View File

@@ -25,6 +25,7 @@
SUBDIR += gitterdone
SUBDIR += gloox
SUBDIR += gomuks
SUBDIR += gotosocial
SUBDIR += icmpchat
SUBDIR += icqlib
SUBDIR += jabber.el

View File

@@ -0,0 +1,58 @@
PORTNAME= gotosocial
DISTVERSIONPREFIX= v
DISTVERSION= 0.2.0
CATEGORIES= net-im
MAINTAINER= me+freebsd@igalic.co
COMMENT= Golang fediverse server
LICENSE= AGPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE
ONLY_FOR_ARCHS= amd64
# Note: we don't use go:modules, because this project vendors all deps
USES= go
USE_RC_SUBR= ${PORTNAME}
USE_GITHUB= yes
GH_ACCOUNT= superseriousbusiness
# When rebuilding yourself, please set this:
#GH_TAGNAME= 40be88ec609c9b5352cbb7d38fd70ff7c6a233a5
USERS= gotosocial
GROUPS= gotosocial
DBDIR= /var/db/${PORTNAME}
SUB_LIST= DBDIR="${DBDIR}" \
GROUP="${GROUPS}" \
USER="${USERS}" \
WWWDIR="${WWWDIR}"
PLIST_SUB= WWWDIR="${WWWDIR}"
# patch sample config for people who set a custom prefix
.if "${PREFIX}" != "${LOCALBASE}"
post-patch:
@${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|g' \
${WRKSRC}/example/config.yaml
.endif
do-build:
@(cd ${WRKSRC} && ${SETENV} \
VERSION=${DISTVERSION} COMMIT=${GH_TAGNAME} scripts/build.sh )
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} \
${STAGEDIR}${PREFIX}/bin/
${MKDIR} ${STAGEDIR}${DOCSDIR}
.for x in LICENSE README.md
${INSTALL_DATA} ${WRKSRC}/${x} \
${STAGEDIR}${DOCSDIR}
.endfor
${MKDIR} ${STAGEDIR}${ETCDIR}
${INSTALL_DATA} ${WRKSRC}/example/config.yaml \
${STAGEDIR}${ETCDIR}/config.yaml.sample
(cd ${WRKSRC}/web && ${COPYTREE_SHARE} . ${STAGEDIR}${WWWDIR}/ \
"! ( -path */gotosocial-styling* )")
.include <bsd.port.mk>

View File

@@ -0,0 +1,3 @@
TIMESTAMP = 1644694134
SHA256 (superseriousbusiness-gotosocial-v0.2.0_GH0.tar.gz) = 0e0ddd2e98cf7b9246200e9c86b5d6b1b777b386e0bbd460ea0fe412a6f2d679
SIZE (superseriousbusiness-gotosocial-v0.2.0_GH0.tar.gz) = 36850939

View File

@@ -0,0 +1,49 @@
#!/bin/sh
# PROVIDE: gotosocial
# REQUIRE: DAEMON
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable GotoSocial
#
# gotosocial_enable (bool): Set it to YES to enable gotosocial.
# Default is "NO".
# gotosocial_user (user): Set user to run gotosocial.
# Default is "gotosocial".
# gotosocial_group (group): Set group to run gotosocial.
# Default is "gotosocial".
# gotosocial_config (file): Set gotosocial config file.
# Default is "%%PREFIX%%/etc/gotosocial/config.yaml".
# gotosocial_dir (dir): Set DB and certificate storage dir
# Default is "/var/db/gotosocial/".
. /etc/rc.subr
name=gotosocial
rcvar=gotosocial_enable
desc="Golang fediverse server"
load_rc_config "$name"
: ${gotosocial_enable:=NO}
: ${gotosocial_config:=%%PREFIX%%/etc/gotosocial/config.yaml}
: ${gotosocial_user=%%USER%%}
: ${gotosocial_group=%%GROUP%%}
: ${gotosocial_dir=%%DBDIR%%}
procname="%%PREFIX%%/bin/${name}"
command=/usr/sbin/daemon
command_args="-c -T ${name} ${procname} --config-path ${gotosocial_config} server start"
start_precmd="${name}_prestart"
gotosocial_prestart()
{
if [ ! -d ${gotosocial_dir} ]; then
install -d -m 0750 -o ${gotosocial_user} -g ${gotosocial_group} \
${gotosocial_dir} ${gotosocial_dir}/certs
fi
}
run_rc_command "$1"

View File

@@ -0,0 +1,35 @@
--- example/config.yaml.orig 2022-02-03 11:30:06 UTC
+++ example/config.yaml
@@ -151,12 +151,12 @@ db-tls-ca-cert: ""
# String. Directory from which gotosocial will attempt to load html templates (.tmpl files).
# Examples: ["/some/absolute/path/", "./relative/path/", "../../some/weird/path/"]
# Default: "./web/template/"
-web-template-base-dir: "./web/template/"
+web-template-base-dir: "/usr/local/www/gotosocial/template/"
# String. Directory from which gotosocial will attempt to serve static web assets (images, scripts).
# Examples: ["/some/absolute/path/", "./relative/path/", "../../some/weird/path/"]
# Default: "./web/assets/"
-web-asset-base-dir: "./web/assets/"
+web-asset-base-dir: "/usr/local/www/gotosocial/assets/"
###########################
##### ACCOUNTS CONFIG #####
@@ -222,7 +222,7 @@ storage-backend: "local"
# this directory, and create new subdirectories and files within it.
# Examples: ["/home/gotosocial/storage", "/opt/gotosocial/datastorage"]
# Default: "/gotosocial/storage"
-storage-local-base-path: "/gotosocial/storage"
+storage-local-base-path: "/var/db/gotosocial/storage"
###########################
##### STATUSES CONFIG #####
@@ -288,7 +288,7 @@ letsencrypt-port: 80
# In any case, make sure GoToSocial has permissions to write to / read from this directory.
# Examples: ["/home/gotosocial/storage/certs", "/acmecerts"]
# Default: "/gotosocial/storage/certs"
-letsencrypt-cert-dir: "/gotosocial/storage/certs"
+letsencrypt-cert-dir: "/var/db/gotosocial/storage/certs"
# String. Email address to use when registering LetsEncrypt certs.
# Most likely, this will be the email address of the instance administrator.

View File

@@ -0,0 +1,11 @@
GoToSocial is an ActivityPub social network server, written in Golang.
With GoToSocial, you can keep in touch with your friends, post, read,
and share images and articles. All without being tracked or advertised
to!
GoToSocial provides a lightweight, customizable, and safety-focused
entryway into the Fediverse, and is comparable to (but distinct from)
existing projects such as Mastodon, Pleroma, Friendica, and PixelFed.
WWW: https://docs.gotosocial.org/en/latest/

View File

@@ -0,0 +1,36 @@
@sample etc/gotosocial/config.yaml.sample
%%WWWDIR%%/assets/base.css
%%WWWDIR%%/assets/colors.css
%%WWWDIR%%/assets/Fork-Awesome/CONTRIBUTORS.md
%%WWWDIR%%/assets/Fork-Awesome/css/fork-awesome.css
%%WWWDIR%%/assets/Fork-Awesome/css/fork-awesome.min.css
%%WWWDIR%%/assets/Fork-Awesome/css/fork-awesome.min.css.map
%%WWWDIR%%/assets/Fork-Awesome/css/v5-compat.css
%%WWWDIR%%/assets/Fork-Awesome/css/v5-compat.min.css
%%WWWDIR%%/assets/Fork-Awesome/css/v5-compat.min.css.map
%%WWWDIR%%/assets/Fork-Awesome/fonts/forkawesome-webfont.eot
%%WWWDIR%%/assets/Fork-Awesome/fonts/forkawesome-webfont.svg
%%WWWDIR%%/assets/Fork-Awesome/fonts/forkawesome-webfont.ttf
%%WWWDIR%%/assets/Fork-Awesome/fonts/forkawesome-webfont.woff
%%WWWDIR%%/assets/Fork-Awesome/fonts/forkawesome-webfont.woff2
%%WWWDIR%%/assets/Fork-Awesome/LICENSES
%%WWWDIR%%/assets/logo.png
%%WWWDIR%%/assets/status.css
%%WWWDIR%%/assets/tusky.svg
%%WWWDIR%%/template/404.tmpl
%%WWWDIR%%/template/authorize.tmpl
%%WWWDIR%%/template/confirmed.tmpl
%%WWWDIR%%/template/email_confirm_html.tmpl
%%WWWDIR%%/template/email_confirm_text.tmpl
%%WWWDIR%%/template/email_reset_html.tmpl
%%WWWDIR%%/template/email_reset_text.tmpl
%%WWWDIR%%/template/error.tmpl
%%WWWDIR%%/template/footer.tmpl
%%WWWDIR%%/template/header.tmpl
%%WWWDIR%%/template/index.tmpl
%%WWWDIR%%/template/sign-in.tmpl
%%WWWDIR%%/template/status.tmpl
%%WWWDIR%%/template/thread.tmpl
bin/gotosocial
share/doc/gotosocial/LICENSE
share/doc/gotosocial/README.md