diff options
Diffstat (limited to 'devel/reposilite')
-rw-r--r-- | devel/reposilite/Makefile | 67 | ||||
-rw-r--r-- | devel/reposilite/distinfo | 3 | ||||
-rw-r--r-- | devel/reposilite/files/configuration.cdn.sample | 71 | ||||
-rw-r--r-- | devel/reposilite/files/reposilite.in | 64 | ||||
-rw-r--r-- | devel/reposilite/pkg-descr | 2 | ||||
-rw-r--r-- | devel/reposilite/pkg-plist | 9 |
6 files changed, 216 insertions, 0 deletions
diff --git a/devel/reposilite/Makefile b/devel/reposilite/Makefile new file mode 100644 index 000000000000..380ef2c62ad6 --- /dev/null +++ b/devel/reposilite/Makefile @@ -0,0 +1,67 @@ +PORTNAME= reposilite +DISTVERSION= 3.5.25 +DISTVERSIONSUFFIX= -all +CATEGORIES= devel www java +MASTER_SITES= https://maven.reposilite.com/releases/com/reposilite/reposilite/${DISTVERSION}/ +EXTRACT_SUFX= .jar +EXTRACT_ONLY= + +MAINTAINER= thorsteinn@isnic.is +COMMENT= Lightweight repository manager for Maven based artifacts +WWW= https://reposilite.com + +LICENSE= APACHE20 + +USES= java +JAVA_VERSION= 11+ + +NO_BUILD= yes +NO_ARCH= yes +NO_TEST= yes +USE_RC_SUBR= ${PORTNAME} + +REPOSILITE_WORKDIR= /var/${PORTNAME} +REPOSILITE_LOGDIR= /var/log/${PORTNAME} +REPOSILITE_RUNDIR= /var/run/${PORTNAME} + +REPOSILITE_USER= ${PORTNAME} +REPOSILITE_GROUP= ${REPOSILITE_USER} + +USERS= ${REPOSILITE_USER} +GROUPS= ${REPOSILITE_GROUP} + +SUB_LIST= JARFILE=${JAVAJARDIR}/${DISTNAME}.jar \ + JAVA_HOME=${JAVA_HOME} \ + USER=${REPOSILITE_USER} \ + GROUP=${REPOSILITE_GROUP} \ + RUNDIR=${REPOSILITE_RUNDIR} \ + LOGDIR=${REPOSILITE_LOGDIR} \ + WORKDIR=${REPOSILITE_WORKDIR} + +PLIST_SUB= JARFILE=${JAVAJARDIR}/${DISTNAME}.jar \ + USER=${REPOSILITE_USER} \ + GROUP=${REPOSILITE_GROUP} \ + RUNDIR=${REPOSILITE_RUNDIR} \ + LOGDIR=${REPOSILITE_LOGDIR} \ + WORKDIR=${REPOSILITE_WORKDIR} + +post-extract: + @${TAR} -C ${WRKDIR} -xzf ${DISTDIR}/${DISTNAME}.jar tinylog.properties + +post-patch: + @${REINPLACE_CMD} -E \ + -e '27s#= .+$$#= ${REPOSILITE_LOGDIR}/${PORTNAME}.{date:yyyy-MM-dd}.log#' \ + -e '28s#= .+$$#= ${REPOSILITE_LOGDIR}/${PORTNAME}-latest.log#' \ + -e '30s#monthly: 03:00$$#daily: 00:00#' \ + ${WRKDIR}/tinylog.properties + +do-install: + ${MKDIR} ${STAGEDIR}${ETCDIR} + ${MKDIR} ${STAGEDIR}${REPOSILITE_WORKDIR} + ${MKDIR} ${STAGEDIR}${REPOSILITE_LOGDIR} + ${MKDIR} ${STAGEDIR}${REPOSILITE_RUNDIR} + ${INSTALL_DATA} ${FILESDIR}/configuration.cdn.sample ${STAGEDIR}${ETCDIR}/ + ${INSTALL_DATA} ${WRKDIR}/tinylog.properties ${STAGEDIR}${ETCDIR}/tinylog.properties.sample + ${INSTALL_DATA} ${DISTDIR}/${DISTNAME}.jar ${STAGEDIR}${JAVAJARDIR}/ + +.include <bsd.port.mk> diff --git a/devel/reposilite/distinfo b/devel/reposilite/distinfo new file mode 100644 index 000000000000..8bba69ffcfea --- /dev/null +++ b/devel/reposilite/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1751633538 +SHA256 (reposilite-3.5.25-all.jar) = 8356bef53191a912b8a9c256d99002b227b0e5fdbb4f8aa49bf03e73bb15c472 +SIZE (reposilite-3.5.25-all.jar) = 73328583 diff --git a/devel/reposilite/files/configuration.cdn.sample b/devel/reposilite/files/configuration.cdn.sample new file mode 100644 index 000000000000..5b10d23d078b --- /dev/null +++ b/devel/reposilite/files/configuration.cdn.sample @@ -0,0 +1,71 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # +# Reposilite :: Local # +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # + +# Local configuration contains init params for current Reposilite instance. +# For more options, shared between instances, login to the dashboard with management token and visit 'Configuration' tab. + +# Hostname +# The hostname can be used to limit which connections are accepted. +# Use 0.0.0.0 to accept connections from anywhere. +# 127.0.0.1 will only allow connections from localhost. +hostname: 0.0.0.0 +# Port to bind +port: 8080 +# Database configuration. Supported storage providers: +# - mysql localhost:3306 database user password +# - sqlite reposilite.db +# - sqlite --temporary +# Experimental providers (not covered with tests): +# - postgresql localhost:5432 database user password +# - h2 reposilite +database: sqlite reposilite.db + +# Support encrypted connections +sslEnabled: false +# SSL port to bind +sslPort: 443 +# Key file to use. +# You can specify absolute path to the given file or use ${WORKING_DIRECTORY} variable. +# If you want to use .pem certificate you need to specify its path next to the key path. +# Example .pem paths setup: +# keyPath: ${WORKING_DIRECTORY}/cert.pem ${WORKING_DIRECTORY}/key.pem +# Example .jks path setup: +# keyPath: ${WORKING_DIRECTORY}/keystore.jks +keyPath: ${WORKING_DIRECTORY}/cert.pem ${WORKING_DIRECTORY}/key.pem +# Key password to use +keyPassword: reposilite +# Redirect http traffic to https +enforceSsl: false + +# Max amount of threads used by core thread pool (min: 5) +# The web thread pool handles first few steps of incoming http connections, as soon as possible all tasks are redirected to IO thread pool. +webThreadPool: 16 +# IO thread pool handles all tasks that may benefit from non-blocking IO (min: 2) +# Because most of tasks are redirected to IO thread pool, it might be a good idea to keep it at least equal to web thread pool. +ioThreadPool: 8 +# Database thread pool manages open connections to database (min: 1) +# Embedded databases such as SQLite or H2 don't support truly concurrent connections, so the value will be always 1 for them if selected. +databaseThreadPool: 1 +# Select compression strategy used by this instance. +# Using 'none' reduces usage of CPU & memory, but ends up with higher transfer usage. +# GZIP is better option if you're not limiting resources that much to increase overall request times. +# Available strategies: none, gzip +compressionStrategy: none +# Default idle timeout used by Jetty +idleTimeout: 30000 + +# Adds cache bypass headers to each request from /api/* scope served by this instance. +# Helps to avoid various random issues caused by proxy provides (e.g. Cloudflare) and browsers. +bypassExternalCache: true +# Amount of messages stored in cached logger. +cachedLogSize: 50 +# Enable default frontend with dashboard +defaultFrontend: true +# Set custom base path for Reposilite instance. +# It's not recommended to mount Reposilite under custom base path +# and you should always prioritize subdomain over this option. +basePath: / +# Debug mode +debugEnabled: false + diff --git a/devel/reposilite/files/reposilite.in b/devel/reposilite/files/reposilite.in new file mode 100644 index 000000000000..006e4aa04e97 --- /dev/null +++ b/devel/reposilite/files/reposilite.in @@ -0,0 +1,64 @@ +#!/bin/sh +# +# PROVIDE: reposilite +# REQUIRE: FILESYSTEMS NETWORKING +# KEYWORD: shutdown +# +# reposilite_enable (bool): +# Default value: "NO" +# Flag that determines whether reposilite is enabled +# +# reposilite_user (string) +# Default value: "%%USER%%" +# User to run reposilite as +# +# reposilite_group (string) +# Default value: "%%GROUP%%" +# Group to run reposilite as +# +# reposilite_config (string) +# Default value: "%%ETCDIR%%/configuration.cdn" +# Path to the reposilite configuration file +# +# reposilite_tinylog_config (string) +# Default value: "%%ETCDIR%%/tinylog.properties" +# Path to the tinylog configuration file +# +# reposilite_java_home (string): +# Default value: "%%JAVA_HOME%%" +# Java VM directory +# +# reposilite_java_opts (string): +# Default value: "" +# Java VM options +# +# reposilite_args (string): +# Default value: "" +# Arguments passed to reposilite +# + +. /etc/rc.subr + +name=reposilite +rcvar=reposilite_enable +load_rc_config $name + +: ${reposilite_enable:="NO"} +: ${reposilite_user:="%%USER%%"} +: ${reposilite_group:="%%GROUP%%"} +: ${reposilite_config:="%%ETCDIR%%/configuration.cdn"} +: ${reposilite_tinylog_config:="%%ETCDIR%%/tinylog.properties"} +: ${reposilite_java_home:="%%JAVA_HOME%%"} +: ${reposilite_java_opts:=""} +: ${reposilite_args:=""} + +app_pidfile="%%RUNDIR%%/${name}.pid" +pidfile="%%RUNDIR%%/daemon.pid" + +command="/usr/sbin/daemon" + +command_args="-f -c -t ${name} -r -R 5 -P ${pidfile} -p ${app_pidfile} -o %%LOGDIR%%/daemon.log ${reposilite_java_home}/bin/java -Dtinylog.configuration=${reposilite_tinylog_config} ${reposilite_java_opts} -jar %%JARFILE%% -wd %%WORKDIR%% -lcm none -lc ${reposilite_config} ${reposilite_args}" + +required_files="${reposilite_config}" + +run_rc_command "$1" diff --git a/devel/reposilite/pkg-descr b/devel/reposilite/pkg-descr new file mode 100644 index 000000000000..f808f867e540 --- /dev/null +++ b/devel/reposilite/pkg-descr @@ -0,0 +1,2 @@ +Lightweight and easy-to-use repository manager for Maven based artifacts in +JVM ecosystem. diff --git a/devel/reposilite/pkg-plist b/devel/reposilite/pkg-plist new file mode 100644 index 000000000000..28b8504d483e --- /dev/null +++ b/devel/reposilite/pkg-plist @@ -0,0 +1,9 @@ +%%JARFILE%% +@owner %%USER%% +@group %%GROUP%% +@sample %%ETCDIR%%/configuration.cdn.sample +@sample %%ETCDIR%%/tinylog.properties.sample +@dir(,,755) %%ETCDIR%% +@dir(,,750) %%RUNDIR%% +@dir(,,750) %%LOGDIR%% +@dir(,,750) %%WORKDIR%% |