Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
251 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
PORTNAME= forgejo | ||
DISTVERSIONPREFIX= v | ||
DISTVERSION= 1.21.7-0 | ||
CATEGORIES= www | ||
MASTER_SITES= https://codeberg.org/forgejo/forgejo/releases/download/${DISTVERSIONPREFIX}${DISTVERSION}/ | ||
DISTNAME= forgejo-src-${DISTVERSION} | ||
|
||
MAINTAINER= stb@lassitu.de | ||
COMMENT= Compact self-hosted Git service | ||
WWW= https://forgejo.org/ | ||
|
||
LICENSE= MIT | ||
LICENSE_FILE= ${WRKSRC}/LICENSE | ||
|
||
RUN_DEPENDS= git:devel/git | ||
|
||
USES= cpe gmake go:1.21,no_targets | ||
USE_RC_SUBR= forgejo | ||
|
||
EXTRACT_AFTER_ARGS= --strip-components 1 | ||
SUB_FILES+= app.ini.sample | ||
SUB_LIST+= GITUSER=${USERS} | ||
|
||
NO_WRKSUBDIR= yes | ||
|
||
USERS= git | ||
GROUPS= git | ||
|
||
PORTDATA= * | ||
|
||
OPTIONS_DEFINE= BINDATA GIT_LFS PAM SQLITE | ||
OPTIONS_DEFAULT= BINDATA GIT_LFS PAM SQLITE | ||
OPTIONS_SUB= yes | ||
|
||
BINDATA_DESC= Build a single monolithic binary, with all assets included | ||
GIT_LFS_DESC= Support for Git Large File Storage (LFS) | ||
PAM_DESC= Enable support for PAM | ||
|
||
BINDATA_VARS= GO_TAGS+=bindata | ||
GIT_LFS_RUN_DEPENDS= git-lfs:devel/git-lfs | ||
PAM_VARS= GO_TAGS+=pam | ||
SQLITE_VARS= GO_TAGS+="sqlite sqlite_unlock_notify" | ||
|
||
.include <bsd.port.options.mk> | ||
|
||
.if ${OPSYS} == FreeBSD | ||
DAEMONARGS= -S -l \$${forgejo_facility} -s \$${forgejo_priority} -T \ | ||
\$${name} | ||
.else | ||
DAEMONARGS= -f | ||
.endif | ||
|
||
SUB_LIST+= DAEMONARGS="${DAEMONARGS}" | ||
|
||
SSP_UNSAFE= true | ||
# Default LDFLAGS are incompatible with build | ||
MAKE_ENV= LDFLAGS="${LDFLAGS} ${EXTRA_LDFLAGS}" | ||
MAKE_ARGS= GOPATH=${WRKDIR} \ | ||
TAGS="${GO_TAGS}" | ||
ALL_TARGET= backend | ||
MAKE_JOBS_UNSAFE= yes | ||
|
||
post-patch: | ||
${ECHO_CMD} ${DISTVERSION} >${WRKSRC}/VERSION | ||
|
||
# Too lazy to figure out why go install won't work. | ||
do-install: | ||
# Go binary is statically linked and cannot be stripped, so use | ||
# INSTALL_SCRIPT. | ||
${INSTALL_SCRIPT} ${WRKSRC}/gitea \ | ||
${STAGEDIR}${PREFIX}/sbin/forgejo | ||
@${MKDIR} ${STAGEDIR}${ETCDIR}/conf | ||
${INSTALL_DATA} ${WRKDIR}/app.ini.sample \ | ||
${STAGEDIR}${ETCDIR}/conf/app.ini.sample | ||
${INSTALL_DATA} ${WRKSRC}/custom/conf/app.example.ini \ | ||
${STAGEDIR}${ETCDIR}/conf/app.ini.defaults | ||
|
||
do-install-BINDATA-off: | ||
cd ${WRKSRC} && \ | ||
${COPYTREE_SHARE} "options public templates" ${STAGEDIR}${DATADIR} | ||
|
||
.include <bsd.port.mk> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
TIMESTAMP = 1709747919 | ||
SHA256 (forgejo-src-1.21.7-0.tar.gz) = 9c0148995288839f685d887f7d1c5f4c6f89511d60d6262ae500e2991803eb5c | ||
SIZE (forgejo-src-1.21.7-0.tar.gz) = 58802779 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
# | ||
# Sample Configuration for Forgejo using SQLite | ||
# | ||
# For information on the available settings, consult the online | ||
# documentation, or see the accompanying file app.ini.defaults, which | ||
# contains the settings incorporated into the forgejo binary. | ||
# | ||
# This sample configuration runs Forgejo with a local database. Before | ||
# running this configuration, make sure to change the INTERNAL_TOKEN, | ||
# JWT_SECRET, and SECRET_KEY variables. SECRET_KEY is a password of your | ||
# choosing, INTERNAL_TOKEN is a 64-byte random number in BASE64 encoding, | ||
# JWT_SECRET is a 32-byte random number in BASE64 encoding. | ||
# | ||
# You can generate the token using for example: | ||
# openssl rand -base64 64 | ||
# | ||
# You can let Forgejo add these to the config for you; you need to make | ||
# app.ini writeable by the git user. | ||
# | ||
# There are no pre-configured users; the first user to register becomes an | ||
# admin. In this sample configuration, the HTTP server only listens on | ||
# localhost. | ||
# | ||
# If you'd rather use the web-based installer, remove this conf/app.ini file | ||
# and make %%PREFIX%%/etc/forgejo/conf writeable to the git user. | ||
|
||
APP_NAME = Forgejo: A self-hosted lightweight software forge | ||
RUN_MODE = prod | ||
RUN_USER = %%GITUSER%% | ||
|
||
[database] | ||
DB_TYPE = sqlite3 | ||
HOST = 127.0.0.1:3306 | ||
NAME = forgejo | ||
PASSWD = | ||
PATH = /var/db/forgejo/forgejo.db | ||
SSL_MODE = disable | ||
USER = root | ||
|
||
[indexer] | ||
ISSUE_INDEXER_PATH = /var/db/forgejo/indexers/issues.bleve | ||
|
||
[log] | ||
LEVEL = Info | ||
MODE = file | ||
ROOT_PATH = /var/log/forgejo | ||
|
||
[mailer] | ||
ENABLED = false | ||
|
||
[oauth2] | ||
JWT_SECRET = CHANGE_ME | ||
|
||
[picture] | ||
AVATAR_UPLOAD_PATH = /var/db/forgejo/data/avatars | ||
DISABLE_GRAVATAR = true | ||
ENABLE_FEDERATED_AVATAR = false | ||
|
||
[repository] | ||
ROOT = /var/db/forgejo/forgejo-repositories | ||
# Forgejo's default is 'bash', so if you have bash installed, you can comment | ||
# this out. | ||
SCRIPT_TYPE = sh | ||
|
||
[repository.upload] | ||
TEMP_PATH = /var/db/forgejo/data/tmp/uploads | ||
|
||
[security] | ||
INSTALL_LOCK = true | ||
INTERNAL_TOKEN = CHANGE_ME | ||
SECRET_KEY = CHANGE_ME | ||
|
||
[session] | ||
PROVIDER = file | ||
PROVIDER_CONFIG = /var/db/forgejo/data/sessions | ||
|
||
[server] | ||
APP_DATA_PATH = /var/db/forgejo/data | ||
DISABLE_SSH = false | ||
DOMAIN = localhost | ||
HTTP_ADDR = 127.0.0.1 | ||
HTTP_PORT = 3000 | ||
OFFLINE_MODE = false | ||
ROOT_URL = http://localhost:3000/ | ||
SSH_DOMAIN = %(DOMAIN)s | ||
SSH_PORT = 22 | ||
|
||
[service] | ||
DISABLE_REGISTRATION = false | ||
ENABLE_CAPTCHA = true | ||
ENABLE_NOTIFY_MAIL = false | ||
REGISTER_EMAIL_CONFIRM = false | ||
REQUIRE_SIGNIN_VIEW = false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
#!/bin/sh | ||
|
||
# PROVIDE: forgejo | ||
# REQUIRE: NETWORKING SYSLOG | ||
# KEYWORD: shutdown | ||
# | ||
# Add the following lines to /etc/rc.conf to enable forgejo: | ||
# | ||
#forgejo_enable="YES" | ||
|
||
. /etc/rc.subr | ||
|
||
name="forgejo" | ||
rcvar="forgejo_enable" | ||
|
||
load_rc_config $name | ||
|
||
: ${forgejo_user:="%%GITUSER%%"} | ||
: ${forgejo_enable:="NO"} | ||
: ${forgejo_facility:="daemon"} | ||
: ${forgejo_priority:="debug"} | ||
: ${forgejo_shared:="%%PREFIX%%/share/${name}"} | ||
: ${forgejo_custom:="%%PREFIX%%/etc/${name}"} | ||
|
||
command="%%PREFIX%%/sbin/${name} web" | ||
procname="%%PREFIX%%/sbin/${name}" | ||
githome="$(eval echo ~${forgejo_user})" | ||
|
||
pidfile="/var/run/${name}.pid" | ||
|
||
start_cmd="${name}_start" | ||
|
||
forgejo_start() { | ||
for d in /var/db/forgejo /var/log/forgejo; do | ||
if [ ! -e "$d" ]; then | ||
mkdir "$d" | ||
chown ${forgejo_user} "$d" | ||
fi | ||
done | ||
/usr/sbin/daemon %%DAEMONARGS%% \ | ||
-u ${forgejo_user} -p ${pidfile} \ | ||
/usr/bin/env -i \ | ||
"GITEA_WORK_DIR=${forgejo_shared}" \ | ||
"GITEA_CUSTOM=${forgejo_custom}" \ | ||
"HOME=${githome}" \ | ||
"PATH=%%PREFIX%%/bin:${PATH}" \ | ||
"USER=${forgejo_user}" \ | ||
$command | ||
} | ||
|
||
run_rc_command "$1" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
A self-hosted Git service. | ||
|
||
Forgejo is a community managed soft-fork of Gitea, which is a fork of Gogs, | ||
lightweight code hosting solution written in Go and published under the MIT | ||
license. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
[ | ||
{ type: install | ||
message: <<EOM | ||
Before starting forgejo you must create the main configuration file. | ||
|
||
cp /usr/local/etc/forgejo/conf/app.ini.sample /usr/local/etc/forgejo/conf/app.ini | ||
${EDITOR} /usr/local/etc/forgejo/conf/app.ini | ||
|
||
You need to replace every occurence of CHANGE_ME in the file with sensitive | ||
values. Please refer to the official documentation for details. | ||
EOM | ||
} | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
@sample %%ETCDIR%%/conf/app.ini.sample | ||
%%ETCDIR%%/conf/app.ini.defaults | ||
sbin/forgejo |