summaryrefslogtreecommitdiff
path: root/devel/reposilite
diff options
context:
space:
mode:
Diffstat (limited to 'devel/reposilite')
-rw-r--r--devel/reposilite/Makefile67
-rw-r--r--devel/reposilite/distinfo3
-rw-r--r--devel/reposilite/files/configuration.cdn.sample71
-rw-r--r--devel/reposilite/files/reposilite.in64
-rw-r--r--devel/reposilite/pkg-descr2
-rw-r--r--devel/reposilite/pkg-plist9
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%%