Da mir manche Unzulänglichkeiten von Ubooquity leider die längerfristige Freude daran vergällt haben (insbesondere der Umstand, dass seit knapp zwei Jahren kein Update mehr erfolgt ist und sich der Programmierer nicht bereit erklärt, andere mitmachen zu lassen), war ich auf der Suche nach einer brauchbaren Alternative und bin schliesslich über KOMGA gestolpert (https://komga.org). Ist zwar auch nur eine One-man-show, wird aber regelmässig gepflegt, ist auf Github veröffentliche FOSS und kann bis auf Themes bereits alles, was Ubooquity auch beherrscht und manches sogar etwas besser.
Allerdings ist im Web keinerlei Instruktion zu finden, wie man KOMGA auf einer Syno ans Fliegen bringt, und dem Umstand schaffe ich hiermit Abhilfe. Ich hätte es mir auch einfach machenu und den Dockercontainer nehmen können, war aber gegen den Overhead mir dafür extra Docker einhandeln zu müssen; es musste also auch direkt mit dem JAR-File gehen. Und eigentlich ist das auch ziemlich simpel, wenn man weiss, wie man JAVA-Anwendungen auf ner Syno als Serverapplikation einrichten muss (Ubooquity ist da auch nichts anderes).
Im Kern sind die wichtigsten Informationen auch auf der Komgawebsite vorhanden, man muss letztlich nur wissen, wie man die wesentlichen Parameter in ein geeignetes Shellscript verpacken muss, das man dann im Aufgabenplaner als "beim Rechnerstart" einzurichten hat.
Die Schritte der Reihe nach:
1. Ein Verzeichnis für Komga einrichten; ich habe mir direkt in meinem Ordner für meine Bücher und Comics einen Ordner namens ".komga" angelegt
2. die aktuelle JAR-Datei von der Komgawebsite herunterladen und in das frisch angelegte Verzeichnis speichern
3. einen Benutzer anlegen, der nichts anderes darf als Komga zu starten und auf die Bücher und Comics lesend zuzugreifen
4. das nachfolgende Shellscript in einem brauchbaren Texteditor anpassen, der mit Unix-Zeilenumbrüchen umzugehen weiss (Notepad++ oder Visual Studio Code). Zu beachten sind insbesondere der JAVA-Pfad (JAVA 8 oder OpenJDK 11 sind Pflicht) sowie der Speicherausbau, dem man dem Programm gönnen will (bei mir 3172m):
5. Im Aufgabenplaner das Script als benutzerdefiniertes Script beim Hochfahtren einrichten, auf den in Step 3 angelegten Benutzer setzen, Pfad bei mir beispielsweise "/volume1/Books/.komga/komga.sh"
Man kann dieses Script auch prima per SSH direkt in einer Shell auf der Syno ausprobieren, bevor man den letzten Step macht. So spart man sich ggf. mühsame Fehlersuche.
Beim ersten Start folgt man dann den weiteren Anweisungen der Komgaanleitung unter https://komga.org/installation/, um sich mindestens einen Adminuser anzulegen und dann seine Bibliotheken zu ergänzen. Bei meiner umfangreichen Sammlung dauerte die erste Indexierung der Daten dann ein paar Stündchen, das war aber bei Ubooquity auch nicht anders.
Allerdings ist im Web keinerlei Instruktion zu finden, wie man KOMGA auf einer Syno ans Fliegen bringt, und dem Umstand schaffe ich hiermit Abhilfe. Ich hätte es mir auch einfach machenu und den Dockercontainer nehmen können, war aber gegen den Overhead mir dafür extra Docker einhandeln zu müssen; es musste also auch direkt mit dem JAR-File gehen. Und eigentlich ist das auch ziemlich simpel, wenn man weiss, wie man JAVA-Anwendungen auf ner Syno als Serverapplikation einrichten muss (Ubooquity ist da auch nichts anderes).
Im Kern sind die wichtigsten Informationen auch auf der Komgawebsite vorhanden, man muss letztlich nur wissen, wie man die wesentlichen Parameter in ein geeignetes Shellscript verpacken muss, das man dann im Aufgabenplaner als "beim Rechnerstart" einzurichten hat.
Die Schritte der Reihe nach:
1. Ein Verzeichnis für Komga einrichten; ich habe mir direkt in meinem Ordner für meine Bücher und Comics einen Ordner namens ".komga" angelegt
2. die aktuelle JAR-Datei von der Komgawebsite herunterladen und in das frisch angelegte Verzeichnis speichern
3. einen Benutzer anlegen, der nichts anderes darf als Komga zu starten und auf die Bücher und Comics lesend zuzugreifen
4. das nachfolgende Shellscript in einem brauchbaren Texteditor anpassen, der mit Unix-Zeilenumbrüchen umzugehen weiss (Notepad++ oder Visual Studio Code). Zu beachten sind insbesondere der JAVA-Pfad (JAVA 8 oder OpenJDK 11 sind Pflicht) sowie der Speicherausbau, dem man dem Programm gönnen will (bei mir 3172m):
Bash:
#!/usr/bin/env bash
#title : komga.sh
#description : Launch komga server by shell script in DSM task manager
#date : 2021-04-02
#==============================================================================
### JAVA VARIABLES ###
# Java installation directory
JAVA_DIR=/var/packages/Java8/target/j2sdk-image/bin
# Maximum size of the Java runtime memory allocation pool. Default: 64MB
MEM=<mind. 1024m, bei mir 3172m>
### KOMGA VARIABLES ###
# Komga working directory
KOMGA_WORK_DIR=/volume1/Books/.komga
# Komga binary location
KOMGA_BIN=$KOMGA_WORK_DIR/komga-0.85.1.jar
# Komga process ID file location
PID_FILE=$KOMGA_WORK_DIR/komga.pid
# Komga configuration
LIB_PORT=<TCP-Port, Default 8080>
LIB_SCAN_STARTUP=<true|false>
KOMGA_SSOKEY=<UniqueKeyFuerSingleSignonCookies>
KOMGA_DBFILE=$KOMGA_WORK_DIR/komga.sqlite
KOMGA_DBBACKUP=$KOMGA_WORK_DIR/database-backup.zip
KOMGA_LOGNAME=$KOMGA_WORK_DIR/logs/komga.log
### ENVIRONMENT VARIABLES ###
# Character encoding
ENCO=UTF-8
# Locale selection
LANG=en_US.$ENCO
### SCRIPT ###
# Workaround to read special characters properly
export LANG
# Kill previous process
if [ -f $PID_FILE ]; then
pkill -F $PID_FILE > /dev/null 2>&1
fi
# Launch komga
printf "Starting Komga server...\n"
cd $KOMGA_WORK_DIR
$JAVA_DIR/java -jar -Dfile.encoding=$ENCO -Xmx$MEM $KOMGA_BIN \
--server.port=$LIB_PORT \
--komga.libraries-scan-startup=$LIB_SCAN_STARTUP \
--komga.remember-me.key=$KOMGA_SSOKEY \
--komga.database.file=$KOMGA_DBFILE \
--komga.database-backup.path=$KOMGA_DBBACKUP \
--logging.file.name=$KOMGA_LOGNAME \
& KOMGA_PID=$!
echo $KOMGA_PID > $PID_FILE
printf "Komga is now running (pid: %d).\n" $KOMGA_PID
exit 0
5. Im Aufgabenplaner das Script als benutzerdefiniertes Script beim Hochfahtren einrichten, auf den in Step 3 angelegten Benutzer setzen, Pfad bei mir beispielsweise "/volume1/Books/.komga/komga.sh"
Man kann dieses Script auch prima per SSH direkt in einer Shell auf der Syno ausprobieren, bevor man den letzten Step macht. So spart man sich ggf. mühsame Fehlersuche.
Beim ersten Start folgt man dann den weiteren Anweisungen der Komgaanleitung unter https://komga.org/installation/, um sich mindestens einen Adminuser anzulegen und dann seine Bibliotheken zu ergänzen. Bei meiner umfangreichen Sammlung dauerte die erste Indexierung der Daten dann ein paar Stündchen, das war aber bei Ubooquity auch nicht anders.