aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2026-07-27 18:29:25 +0300
committerJan Tuomi <jan@jantuomi.fi>2026-07-27 18:29:25 +0300
commita5751d37bc305d4e820fb5c8c321f1445ccfb794 (patch)
treed05bd4dd55b98773f6a948c971cebe7a41751b5f
parentb98eb0cc23e4c375fa10b5cd2c18d1c971d01162 (diff)
www/komga: add port
-rw-r--r--www/komga/Makefile35
-rw-r--r--www/komga/files/komga.in69
-rw-r--r--www/komga/files/pkg-message.in5
-rw-r--r--www/komga/pkg-descr3
4 files changed, 112 insertions, 0 deletions
diff --git a/www/komga/Makefile b/www/komga/Makefile
new file mode 100644
index 0000000..6a7024c
--- /dev/null
+++ b/www/komga/Makefile
@@ -0,0 +1,35 @@
+PORTNAME= komga
+DISTVERSION= 1.25.0
+CATEGORIES= www java
+MASTER_SITES= https://github.com/gotson/komga/releases/download/${DISTVERSION}/
+DISTFILES= ${PORTNAME}-${DISTVERSION}.jar
+EXTRACT_SUFX= .jar
+EXTRACT_ONLY=
+
+MAINTAINER= jan@jantuomi.fi
+COMMENT= Media server for comics, mangas, BDs, magazines, and eBooks
+WWW= https://komga.org/
+
+LICENSE= MIT
+
+NO_CHECKSUM= yes
+
+USES= java
+JAVA_VERSION= 17+
+
+NO_ARCH= yes
+NO_BUILD= yes
+
+USE_RC_SUBR= komga
+SUB_FILES= pkg-message
+SUB_LIST= JARFILE=${JAVAJARDIR}/${PORTNAME}.jar \
+ JAVA_HOME=${JAVA_HOME}
+
+PLIST_FILES= %%JAVAJARDIR%%/${PORTNAME}.jar
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${JAVAJARDIR}
+ ${INSTALL_DATA} ${DISTDIR}/${PORTNAME}-${DISTVERSION}.jar \
+ ${STAGEDIR}${JAVAJARDIR}/${PORTNAME}.jar
+
+.include <bsd.port.mk>
diff --git a/www/komga/files/komga.in b/www/komga/files/komga.in
new file mode 100644
index 0000000..063d15b
--- /dev/null
+++ b/www/komga/files/komga.in
@@ -0,0 +1,69 @@
+#!/bin/sh
+
+# PROVIDE: komga
+# REQUIRE: NETWORKING
+# KEYWORD: shutdown
+
+. /etc/rc.subr
+
+name="komga"
+rcvar="komga_enable"
+
+load_rc_config "${name}"
+
+: ${komga_enable:="NO"}
+: ${komga_port:="80"}
+: ${komga_data_dir:="/var/db/komga"}
+: ${komga_log_file:="/var/log/komga.log"}
+: ${komga_java_opts:=""}
+
+pidfile="/var/run/${name}.pid"
+
+start_cmd="${name}_start"
+stop_cmd="${name}_stop"
+status_cmd="${name}_status"
+
+komga_start()
+{
+ if [ -f "${pidfile}" ] && kill -0 $(cat "${pidfile}") 2>/dev/null; then
+ echo "${name} is already running."
+ return 1
+ fi
+
+ install -d -m 0750 "${komga_data_dir}" || return 1
+
+ echo "Starting ${name}."
+
+ /usr/sbin/daemon \
+ -f \
+ -p "${pidfile}" \
+ -o "${komga_log_file}" \
+ %%JAVA_HOME%%/bin/java ${komga_java_opts} \
+ -jar %%JARFILE%% \
+ --server.port=${komga_port} \
+ --komga.config-dir=${komga_data_dir}
+}
+
+komga_stop()
+{
+ if [ -f "${pidfile}" ]; then
+ echo "Stopping ${name}."
+ kill $(cat "${pidfile}") 2>/dev/null
+ rm -f "${pidfile}"
+ else
+ echo "${name} is not running."
+ fi
+}
+
+komga_status()
+{
+ if [ -f "${pidfile}" ] && kill -0 $(cat "${pidfile}") 2>/dev/null; then
+ echo "${name} is running as pid $(cat "${pidfile}")."
+ else
+ rm -f "${pidfile}"
+ echo "${name} is not running."
+ return 1
+ fi
+}
+
+run_rc_command "$1"
diff --git a/www/komga/files/pkg-message.in b/www/komga/files/pkg-message.in
new file mode 100644
index 0000000..7db24b1
--- /dev/null
+++ b/www/komga/files/pkg-message.in
@@ -0,0 +1,5 @@
+[
+{
+ "message": "\nKomga has been installed.\n\nTo get started:\n\n sysrc komga_enable=YES\n service komga start\n\nThe web interface will be available at http://localhost:80/\n\nConfiguration:\n sysrc komga_port=8080 # Change listen port\n sysrc komga_data_dir=/var/db/komga # Config/database directory\n sysrc komga_java_opts=\"-Xmx512m\" # JVM options\n\nMount your library directories into the jail and configure\nthem through the Komga web interface.\n"
+}
+]
diff --git a/www/komga/pkg-descr b/www/komga/pkg-descr
new file mode 100644
index 0000000..c906477
--- /dev/null
+++ b/www/komga/pkg-descr
@@ -0,0 +1,3 @@
+Komga is a media server for comics, mangas, BDs, magazines, and eBooks.
+It provides a web interface and OPDS feed for reading and organizing
+your digital library.