mirror of
https://github.com/Suwayomi/Tachidesk.git
synced 2025-12-10 06:42:07 +01:00
Add linux-all.tar.gz & systemd service (#366)
* Update my email address * Add systemd configs to debian package * Add systemd configs * Tidy up * Add linux-all.tar.gz * Rename Tachidesk.jar to tachidesk-server.jar * Fix typo * Fix typo
This commit is contained in:
3
.github/workflows/build_push.yml
vendored
3
.github/workflows/build_push.yml
vendored
@@ -72,8 +72,9 @@ jobs:
|
|||||||
cd master/scripts
|
cd master/scripts
|
||||||
./windows-bundler.sh win32
|
./windows-bundler.sh win32
|
||||||
./windows-bundler.sh win64
|
./windows-bundler.sh win64
|
||||||
./unix-bundler.sh linux-x64
|
|
||||||
./debian-packager.sh
|
./debian-packager.sh
|
||||||
|
./unix-bundler.sh linux-all
|
||||||
|
./unix-bundler.sh linux-x64
|
||||||
./unix-bundler.sh macOS-x64
|
./unix-bundler.sh macOS-x64
|
||||||
./unix-bundler.sh macOS-arm64
|
./unix-bundler.sh macOS-arm64
|
||||||
|
|
||||||
|
|||||||
3
.github/workflows/publish.yml
vendored
3
.github/workflows/publish.yml
vendored
@@ -63,8 +63,9 @@ jobs:
|
|||||||
cd master/scripts
|
cd master/scripts
|
||||||
./windows-bundler.sh win32
|
./windows-bundler.sh win32
|
||||||
./windows-bundler.sh win64
|
./windows-bundler.sh win64
|
||||||
./unix-bundler.sh linux-x64
|
|
||||||
./debian-packager.sh
|
./debian-packager.sh
|
||||||
|
./unix-bundler.sh linux-all
|
||||||
|
./unix-bundler.sh linux-x64
|
||||||
./unix-bundler.sh macOS-x64
|
./unix-bundler.sh macOS-x64
|
||||||
./unix-bundler.sh macOS-arm64
|
./unix-bundler.sh macOS-arm64
|
||||||
|
|
||||||
|
|||||||
@@ -23,15 +23,16 @@ mkdir "$srcdir/"
|
|||||||
cp "$jar" "$srcdir/$pkgname.jar"
|
cp "$jar" "$srcdir/$pkgname.jar"
|
||||||
cp "resources/$pkgname-browser-launcher.sh" "$srcdir/"
|
cp "resources/$pkgname-browser-launcher.sh" "$srcdir/"
|
||||||
cp "resources/$pkgname-debug-launcher.sh" "$srcdir/"
|
cp "resources/$pkgname-debug-launcher.sh" "$srcdir/"
|
||||||
cp "resources/$pkgname-electron-launcher-debian.sh" "$srcdir/$pkgname-electron-launcher.sh"
|
cp "resources/$pkgname-electron-launcher.sh" "$srcdir/"
|
||||||
cp "resources/$pkgname.desktop" "$srcdir/"
|
cp "resources/$pkgname.desktop" "$srcdir/"
|
||||||
cp "../server/src/main/resources/icon/faviconlogo.png" "$srcdir/$pkgname.png"
|
cp "../server/src/main/resources/icon/faviconlogo.png" "$srcdir/$pkgname.png"
|
||||||
|
cp "resources/systemd"/* "$srcdir/"
|
||||||
|
|
||||||
GZIP=-9 tar -cvzf "$srctgz" "$srcdir/"
|
GZIP=-9 tar -cvzf "$srctgz" "$srcdir/"
|
||||||
|
|
||||||
cp -r "resources/debian" "$srcdir/"
|
cp -r "resources/debian" "$srcdir/"
|
||||||
sed -i "s/\${pkgver}/$pkgver/" "$srcdir/debian/changelog"
|
sed -i "s/\$pkgver/$pkgver/" "$srcdir/debian/changelog"
|
||||||
sed -i "s/\${pkgrel}/$pkgrel/" "$srcdir/debian/changelog"
|
sed -i "s/\$pkgrel/$pkgrel/" "$srcdir/debian/changelog"
|
||||||
|
|
||||||
# Build
|
# Build
|
||||||
mkdir "debuild/"
|
mkdir "debuild/"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
tachidesk-server (${pkgver}-${pkgrel}) unstable; urgency=medium
|
tachidesk-server ($pkgver-$pkgrel) unstable; urgency=medium
|
||||||
|
|
||||||
* See CHANGELOG.md on https://github.com/Suwayomi/Tachidesk-Server
|
* See CHANGELOG.md on https://github.com/Suwayomi/Tachidesk-Server
|
||||||
|
|
||||||
-- Mahor Foruzesh <mahorforuzesh@pm.me> Fri, 14 Jan 2022 00:00:00 +0000
|
-- Mahor1221 <mahor1221@pm.me> Fri, 14 Jan 2022 00:00:00 +0000
|
||||||
|
|||||||
2
scripts/resources/debian/control
Executable file → Normal file
2
scripts/resources/debian/control
Executable file → Normal file
@@ -1,7 +1,7 @@
|
|||||||
Source: tachidesk-server
|
Source: tachidesk-server
|
||||||
Section: web
|
Section: web
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: Mahor Foruzesh <mahorforuzesh@pm.me>
|
Maintainer: Mahor1221 <mahor1221@pm.me>
|
||||||
Build-Depends: debhelper-compat (= 12), dh-exec
|
Build-Depends: debhelper-compat (= 12), dh-exec
|
||||||
Standards-Version: 4.5.1
|
Standards-Version: 4.5.1
|
||||||
Homepage: https://github.com/Suwayomi/Tachidesk-Server
|
Homepage: https://github.com/Suwayomi/Tachidesk-Server
|
||||||
|
|||||||
0
scripts/resources/debian/copyright
Executable file → Normal file
0
scripts/resources/debian/copyright
Executable file → Normal file
@@ -1,8 +1,12 @@
|
|||||||
#!/usr/bin/dh-exec
|
#!/usr/bin/dh-exec
|
||||||
|
|
||||||
tachidesk-server-browser-launcher.sh => usr/bin/tachidesk-server-browser
|
tachidesk-server.jar usr/share/java/tachidesk-server/
|
||||||
tachidesk-server-debug-launcher.sh => usr/bin/tachidesk-server-debug
|
tachidesk-server.png usr/share/pixmaps/
|
||||||
tachidesk-server-electron-launcher.sh => usr/bin/tachidesk-server-electron
|
tachidesk-server.desktop usr/share/applications/
|
||||||
tachidesk-server.jar usr/share/java/tachidesk-server/
|
tachidesk-server.service usr/lib/systemd/system/
|
||||||
tachidesk-server.png usr/share/pixmaps/
|
tachidesk-server.sysusers => usr/lib/sysusers.d/tachidesk-server.conf
|
||||||
tachidesk-server.desktop usr/share/applications/
|
tachidesk-server.tmpfiles => usr/lib/tmpfiles.d/tachidesk-server.conf
|
||||||
|
tachidesk-server.conf => etc/tachidesk/server.conf
|
||||||
|
tachidesk-server-browser-launcher.sh => usr/bin/tachidesk-server-browser
|
||||||
|
tachidesk-server-debug-launcher.sh => usr/bin/tachidesk-server-debug
|
||||||
|
tachidesk-server-electron-launcher.sh => usr/bin/tachidesk-server-electron
|
||||||
|
|||||||
0
scripts/resources/debian/source/format
Executable file → Normal file
0
scripts/resources/debian/source/format
Executable file → Normal file
0
scripts/resources/debian/source/include-binaries
Executable file → Normal file
0
scripts/resources/debian/source/include-binaries
Executable file → Normal file
5
scripts/resources/systemd/tachidesk-server.conf
Normal file
5
scripts/resources/systemd/tachidesk-server.conf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
TACHIDESK_ROOT_DIR="/var/lib/tachidesk"
|
||||||
|
|
||||||
|
# Extra arguments passed to the java command
|
||||||
|
# The default value disables the system tray icon, and launching a browser on service start.
|
||||||
|
JAVA_ARGS=-Dsuwayomi.tachidesk.config.server.initialOpenInBrowserEnabled=false -Dsuwayomi.tachidesk.config.server.systemTrayEnabled=false
|
||||||
31
scripts/resources/systemd/tachidesk-server.service
Normal file
31
scripts/resources/systemd/tachidesk-server.service
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=A free and open source manga reader server that runs extensions built for Tachiyomi.
|
||||||
|
Wants=network-online.target
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=tachidesk
|
||||||
|
Group=tachidesk
|
||||||
|
SyslogIdentifier=tachidesk
|
||||||
|
|
||||||
|
EnvironmentFile=/etc/tachidesk/server.conf
|
||||||
|
ExecStart=/usr/bin/java $JAVA_ARGS -Dsuwayomi.tachidesk.config.server.rootDir="${TACHIDESK_ROOT_DIR}" -jar /usr/share/java/tachidesk-server/tachidesk-server.jar
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
ProtectSystem=full
|
||||||
|
ProtectHome=true
|
||||||
|
PrivateTmp=yes
|
||||||
|
PrivateDevices=yes
|
||||||
|
ProtectClock=yes
|
||||||
|
ProtectKernelTunables=yes
|
||||||
|
ProtectKernelModules=yes
|
||||||
|
ProtectKernelLogs=yes
|
||||||
|
ProtectControlGroups=yes
|
||||||
|
RestrictSUIDSGID=yes
|
||||||
|
RestrictRealtime=yes
|
||||||
|
RestrictNamespaces=yes
|
||||||
|
NoNewPrivileges=yes
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
2
scripts/resources/systemd/tachidesk-server.sysusers
Normal file
2
scripts/resources/systemd/tachidesk-server.sysusers
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
#Type Name ID GECOS Home directory Shell
|
||||||
|
u tachidesk - "Tachidesk Manga Server" /var/lib/tachidesk
|
||||||
2
scripts/resources/systemd/tachidesk-server.tmpfiles
Normal file
2
scripts/resources/systemd/tachidesk-server.tmpfiles
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
#Type Path Mode User Group Age Argument
|
||||||
|
d /var/lib/tachidesk 0755 tachidesk tachidesk
|
||||||
@@ -1,2 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
exec /usr/bin/java -Dsuwayomi.tachidesk.config.server.debugLogsEnabled=true -jar /usr/share/java/tachidesk-server/tachidesk-server.jar
|
exec /usr/bin/java \
|
||||||
|
-Dsuwayomi.tachidesk.config.server.debugLogsEnabled=true \
|
||||||
|
-jar /usr/share/java/tachidesk-server/tachidesk-server.jar
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
if [ ! -f /usr/bin/electron ]; then
|
|
||||||
echo "Electron executable was not found
|
|
||||||
In order to run this launcher, you need Electron installed.
|
|
||||||
|
|
||||||
You can install it with these commands:
|
|
||||||
sudo apt install npm
|
|
||||||
sudo npm install electron -g"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec /usr/bin/java -Dsuwayomi.tachidesk.config.server.webUIInterface=electron -Dsuwayomi.tachidesk.config.server.electronPath=/usr/bin/electron -jar /usr/share/java/tachidesk-server/tachidesk-server.jar
|
|
||||||
@@ -1,3 +1,12 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
exec /usr/bin/java -Dsuwayomi.tachidesk.config.server.webUIInterface=electron -Dsuwayomi.tachidesk.config.server.electronPath=/usr/bin/electron -jar /usr/share/java/tachidesk-server/tachidesk-server.jar
|
if [ ! -f /usr/bin/electron ]; then
|
||||||
|
echo "Electron executable was not found!
|
||||||
|
In order to run this launcher, you need Electron installed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec /usr/bin/java \
|
||||||
|
-Dsuwayomi.tachidesk.config.server.webUIInterface=electron \
|
||||||
|
-Dsuwayomi.tachidesk.config.server.electronPath=/usr/bin/electron \
|
||||||
|
-jar /usr/share/java/tachidesk-server/tachidesk-server.jar
|
||||||
|
|||||||
@@ -8,80 +8,85 @@
|
|||||||
|
|
||||||
electron_version="v14.0.0"
|
electron_version="v14.0.0"
|
||||||
|
|
||||||
if [ $1 = "linux-x64" ]; then
|
arch="$1"
|
||||||
|
os="$(echo $arch | cut -d '-' -f1)"
|
||||||
|
if [ "$arch" = "linux-all" ]; then
|
||||||
|
continue
|
||||||
|
elif [ "$arch" = "linux-x64" ]; then
|
||||||
jre="OpenJDK8U-jre_x64_linux_hotspot_8u302b08.tar.gz"
|
jre="OpenJDK8U-jre_x64_linux_hotspot_8u302b08.tar.gz"
|
||||||
jre_release="jdk8u302-b08"
|
jre_release="jdk8u302-b08"
|
||||||
jre_url="https://github.com/adoptium/temurin8-binaries/releases/download/$jre_release/$jre"
|
jre_url="https://github.com/adoptium/temurin8-binaries/releases/download/$jre_release/$jre"
|
||||||
jre_dir="$jre_release-jre"
|
jre_dir="$jre_release-jre"
|
||||||
electron="electron-$electron_version-linux-x64.zip"
|
electron="electron-$electron_version-linux-x64.zip"
|
||||||
elif [ $1 = "macOS-x64" ]; then
|
elif [ "$arch" = "macOS-x64" ]; then
|
||||||
jre="OpenJDK8U-jre_x64_mac_hotspot_8u302b08.tar.gz"
|
jre="OpenJDK8U-jre_x64_mac_hotspot_8u302b08.tar.gz"
|
||||||
jre_release="jdk8u302-b08"
|
jre_release="jdk8u302-b08"
|
||||||
jre_url="https://github.com/adoptium/temurin8-binaries/releases/download/$jre_release/$jre"
|
jre_url="https://github.com/adoptium/temurin8-binaries/releases/download/$jre_release/$jre"
|
||||||
jre_dir="$jre_release-jre"
|
jre_dir="$jre_release-jre"
|
||||||
electron="electron-$electron_version-darwin-x64.zip"
|
electron="electron-$electron_version-darwin-x64.zip"
|
||||||
elif [ $1 = "macOS-arm64" ]; then
|
elif [ "$arch" = "macOS-arm64" ]; then
|
||||||
jre="zulu8.56.0.23-ca-jre8.0.302-macosx_aarch64.tar.gz"
|
jre="zulu8.56.0.23-ca-jre8.0.302-macosx_aarch64.tar.gz"
|
||||||
jre_release="zulu8.56.0.23-ca-jre8.0.302-macosx_aarch64"
|
jre_release="zulu8.56.0.23-ca-jre8.0.302-macosx_aarch64"
|
||||||
jre_url="https://cdn.azul.com/zulu/bin/$jre"
|
jre_url="https://cdn.azul.com/zulu/bin/$jre"
|
||||||
jre_dir="$jre_release/zulu-8.jre"
|
jre_dir="$jre_release/zulu-8.jre"
|
||||||
electron="electron-$electron_version-darwin-arm64.zip"
|
electron="electron-$electron_version-darwin-arm64.zip"
|
||||||
else
|
else
|
||||||
echo "Unsupported arch value: $1"
|
echo "Unsupported arch value: $arch"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
arch="$1"
|
|
||||||
os=$(echo $arch | cut -d '-' -f1)
|
|
||||||
|
|
||||||
echo "creating $arch bundle"
|
echo "creating $arch bundle"
|
||||||
|
jar="$(ls ../server/build/*.jar | tail -n1)"
|
||||||
|
jar_name="$(echo $jar | cut -d'/' -f4)"
|
||||||
|
release_name="$(echo $jar_name | sed 's/.jar//')-$arch"
|
||||||
|
mkdir "$release_name"
|
||||||
|
|
||||||
jar=$(ls ../server/build/*.jar | tail -n1)
|
# download jre and electron
|
||||||
jar_name=$(echo $jar | cut -d'/' -f4)
|
if [ "$arch" != "linux-all" ]; then
|
||||||
release_name=$(echo $jar_name | sed 's/.jar//')-$arch
|
echo "Dealing with jre..."
|
||||||
|
if [ ! -f "$jre" ]; then
|
||||||
|
curl -L "$jre_url" -o "$jre"
|
||||||
|
fi
|
||||||
|
tar xvf "$jre"
|
||||||
|
mv "$jre_dir" "$release_name/jre"
|
||||||
|
|
||||||
# make release dir
|
echo "Dealing with electron"
|
||||||
mkdir $release_name
|
if [ ! -f "$electron" ]; then
|
||||||
|
curl -L "https://github.com/electron/electron/releases/download/$electron_version/$electron" -o "$electron"
|
||||||
echo "Dealing with jre..."
|
fi
|
||||||
if [ ! -f $jre ]; then
|
unzip "$electron" -d "$release_name/electron"
|
||||||
curl -L $jre_url -o $jre
|
|
||||||
fi
|
fi
|
||||||
tar xvf $jre
|
|
||||||
mv $jre_dir $release_name/jre
|
|
||||||
|
|
||||||
echo "Dealing with electron"
|
|
||||||
if [ ! -f $electron ]; then
|
|
||||||
curl -L "https://github.com/electron/electron/releases/download/$electron_version/$electron" -o $electron
|
|
||||||
fi
|
|
||||||
unzip $electron -d $release_name/electron
|
|
||||||
|
|
||||||
# copy artifacts
|
# copy artifacts
|
||||||
cp $jar $release_name/Tachidesk-Server.jar
|
if [ "$os" = "linux" ]; then
|
||||||
if [ $os = linux ]; then
|
cp "$jar" "$release_name/tachidesk-server.jar"
|
||||||
cp "resources/tachidesk-server-browser-launcher.sh" $release_name
|
cp "resources/tachidesk-server-browser-launcher.sh" "$release_name"
|
||||||
cp "resources/tachidesk-server-debug-launcher.sh" $release_name
|
cp "resources/tachidesk-server-debug-launcher.sh" "$release_name"
|
||||||
cp "resources/tachidesk-server-electron-launcher.sh" $release_name
|
cp "resources/tachidesk-server-electron-launcher.sh" "$release_name"
|
||||||
elif [ $os = macOS ]; then
|
cp "resources/tachidesk-server.desktop" "$release_name"
|
||||||
cp "resources/Tachidesk Browser Launcher.command" $release_name
|
cp "../server/src/main/resources/icon/faviconlogo.png" "$release_name/tachidesk-server.png"
|
||||||
cp "resources/Tachidesk Debug Launcher.command" $release_name
|
cp "resources/systemd"/* "$release_name"
|
||||||
cp "resources/Tachidesk Electron Launcher.command" $release_name
|
elif [ "$os" = "macOS" ]; then
|
||||||
|
cp "$jar" "$release_name/Tachidesk.jar"
|
||||||
|
cp "resources/Tachidesk Browser Launcher.command" "$release_name"
|
||||||
|
cp "resources/Tachidesk Debug Launcher.command" "$release_name"
|
||||||
|
cp "resources/Tachidesk Electron Launcher.command" "$release_name"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# archive then compress
|
||||||
archive_name=""
|
archive_name=""
|
||||||
if [ $os = linux ]; then
|
if [ "$os" = "linux" ]; then
|
||||||
archive_name=$release_name.tar.gz
|
archive_name="$release_name.tar.gz"
|
||||||
GZIP=-9 tar cvzf $archive_name $release_name
|
GZIP=-9 tar cvzf "$archive_name" "$release_name"
|
||||||
elif [ $os = macOS ]; then
|
elif [ "$os" = "macOS" ]; then
|
||||||
archive_name=$release_name.zip
|
archive_name="$release_name.zip"
|
||||||
zip -9 -r $archive_name $release_name
|
zip -9 -r "$archive_name" "$release_name"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -rf $release_name
|
|
||||||
|
|
||||||
# clean up from possible previous runs
|
# clean up from possible previous runs
|
||||||
if [ -f ../server/build/$archive_name ]; then
|
if [ -f "../server/build/$archive_name" ]; then
|
||||||
rm ../server/build/$archive_name
|
rm "../server/build/$archive_name"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mv $archive_name ../server/build/
|
rm -rf "$release_name"
|
||||||
|
mv "$archive_name" "../server/build/"
|
||||||
|
|||||||
Reference in New Issue
Block a user