mirror of
https://github.com/Suwayomi/Tachidesk.git
synced 2025-12-10 14:52:05 +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
|
||||
./windows-bundler.sh win32
|
||||
./windows-bundler.sh win64
|
||||
./unix-bundler.sh linux-x64
|
||||
./debian-packager.sh
|
||||
./unix-bundler.sh linux-all
|
||||
./unix-bundler.sh linux-x64
|
||||
./unix-bundler.sh macOS-x64
|
||||
./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
|
||||
./windows-bundler.sh win32
|
||||
./windows-bundler.sh win64
|
||||
./unix-bundler.sh linux-x64
|
||||
./debian-packager.sh
|
||||
./unix-bundler.sh linux-all
|
||||
./unix-bundler.sh linux-x64
|
||||
./unix-bundler.sh macOS-x64
|
||||
./unix-bundler.sh macOS-arm64
|
||||
|
||||
|
||||
@@ -23,15 +23,16 @@ mkdir "$srcdir/"
|
||||
cp "$jar" "$srcdir/$pkgname.jar"
|
||||
cp "resources/$pkgname-browser-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 "../server/src/main/resources/icon/faviconlogo.png" "$srcdir/$pkgname.png"
|
||||
cp "resources/systemd"/* "$srcdir/"
|
||||
|
||||
GZIP=-9 tar -cvzf "$srctgz" "$srcdir/"
|
||||
|
||||
cp -r "resources/debian" "$srcdir/"
|
||||
sed -i "s/\${pkgver}/$pkgver/" "$srcdir/debian/changelog"
|
||||
sed -i "s/\${pkgrel}/$pkgrel/" "$srcdir/debian/changelog"
|
||||
sed -i "s/\$pkgver/$pkgver/" "$srcdir/debian/changelog"
|
||||
sed -i "s/\$pkgrel/$pkgrel/" "$srcdir/debian/changelog"
|
||||
|
||||
# Build
|
||||
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
|
||||
|
||||
-- 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
|
||||
Section: web
|
||||
Priority: optional
|
||||
Maintainer: Mahor Foruzesh <mahorforuzesh@pm.me>
|
||||
Maintainer: Mahor1221 <mahor1221@pm.me>
|
||||
Build-Depends: debhelper-compat (= 12), dh-exec
|
||||
Standards-Version: 4.5.1
|
||||
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
|
||||
|
||||
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
|
||||
tachidesk-server.jar usr/share/java/tachidesk-server/
|
||||
tachidesk-server.png usr/share/pixmaps/
|
||||
tachidesk-server.desktop usr/share/applications/
|
||||
tachidesk-server.jar usr/share/java/tachidesk-server/
|
||||
tachidesk-server.png usr/share/pixmaps/
|
||||
tachidesk-server.desktop usr/share/applications/
|
||||
tachidesk-server.service usr/lib/systemd/system/
|
||||
tachidesk-server.sysusers => usr/lib/sysusers.d/tachidesk-server.conf
|
||||
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
|
||||
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
|
||||
|
||||
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"
|
||||
|
||||
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_release="jdk8u302-b08"
|
||||
jre_url="https://github.com/adoptium/temurin8-binaries/releases/download/$jre_release/$jre"
|
||||
jre_dir="$jre_release-jre"
|
||||
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_release="jdk8u302-b08"
|
||||
jre_url="https://github.com/adoptium/temurin8-binaries/releases/download/$jre_release/$jre"
|
||||
jre_dir="$jre_release-jre"
|
||||
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_release="zulu8.56.0.23-ca-jre8.0.302-macosx_aarch64"
|
||||
jre_url="https://cdn.azul.com/zulu/bin/$jre"
|
||||
jre_dir="$jre_release/zulu-8.jre"
|
||||
electron="electron-$electron_version-darwin-arm64.zip"
|
||||
else
|
||||
echo "Unsupported arch value: $1"
|
||||
echo "Unsupported arch value: $arch"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
arch="$1"
|
||||
os=$(echo $arch | cut -d '-' -f1)
|
||||
|
||||
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)
|
||||
jar_name=$(echo $jar | cut -d'/' -f4)
|
||||
release_name=$(echo $jar_name | sed 's/.jar//')-$arch
|
||||
# download jre and electron
|
||||
if [ "$arch" != "linux-all" ]; then
|
||||
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
|
||||
mkdir $release_name
|
||||
|
||||
echo "Dealing with jre..."
|
||||
if [ ! -f $jre ]; then
|
||||
curl -L $jre_url -o $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"
|
||||
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
|
||||
cp $jar $release_name/Tachidesk-Server.jar
|
||||
if [ $os = linux ]; then
|
||||
cp "resources/tachidesk-server-browser-launcher.sh" $release_name
|
||||
cp "resources/tachidesk-server-debug-launcher.sh" $release_name
|
||||
cp "resources/tachidesk-server-electron-launcher.sh" $release_name
|
||||
elif [ $os = macOS ]; then
|
||||
cp "resources/Tachidesk Browser Launcher.command" $release_name
|
||||
cp "resources/Tachidesk Debug Launcher.command" $release_name
|
||||
cp "resources/Tachidesk Electron Launcher.command" $release_name
|
||||
if [ "$os" = "linux" ]; then
|
||||
cp "$jar" "$release_name/tachidesk-server.jar"
|
||||
cp "resources/tachidesk-server-browser-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.desktop" "$release_name"
|
||||
cp "../server/src/main/resources/icon/faviconlogo.png" "$release_name/tachidesk-server.png"
|
||||
cp "resources/systemd"/* "$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
|
||||
|
||||
# archive then compress
|
||||
archive_name=""
|
||||
if [ $os = linux ]; then
|
||||
archive_name=$release_name.tar.gz
|
||||
GZIP=-9 tar cvzf $archive_name $release_name
|
||||
elif [ $os = macOS ]; then
|
||||
archive_name=$release_name.zip
|
||||
zip -9 -r $archive_name $release_name
|
||||
if [ "$os" = "linux" ]; then
|
||||
archive_name="$release_name.tar.gz"
|
||||
GZIP=-9 tar cvzf "$archive_name" "$release_name"
|
||||
elif [ "$os" = "macOS" ]; then
|
||||
archive_name="$release_name.zip"
|
||||
zip -9 -r "$archive_name" "$release_name"
|
||||
fi
|
||||
|
||||
rm -rf $release_name
|
||||
|
||||
# clean up from possible previous runs
|
||||
if [ -f ../server/build/$archive_name ]; then
|
||||
rm ../server/build/$archive_name
|
||||
if [ -f "../server/build/$archive_name" ]; then
|
||||
rm "../server/build/$archive_name"
|
||||
fi
|
||||
|
||||
mv $archive_name ../server/build/
|
||||
rm -rf "$release_name"
|
||||
mv "$archive_name" "../server/build/"
|
||||
|
||||
Reference in New Issue
Block a user