mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-03-09 20:54:57 +00:00
Upgrade Java from 21 to 25 and add embedding of the built frontend into the backend resources so the Spring Boot app serves static files. Build steps now skip tests (gradle -x test). Remove nginx install/configuration paths: install script no longer installs or configures nginx; update script disables and purges nginx if active. Add default SERVER_PORT=6060 to the .env (or append if missing). Update systemd unit ExecStart to include JVM tuning flags and reload systemd. Misc: adjust start/reload steps to reflect nginx removal and clean up previous backup dirs.
89 lines
2.6 KiB
Bash
89 lines
2.6 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Copyright (c) 2021-2026 community-scripts ORG
|
|
# Author: MickLesk (CanbiZ)
|
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
# Source: https://github.com/booklore-app/BookLore
|
|
|
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
|
color
|
|
verb_ip6
|
|
catch_errors
|
|
setting_up_container
|
|
network_check
|
|
update_os
|
|
|
|
JAVA_VERSION="25" setup_java
|
|
NODE_VERSION="22" setup_nodejs
|
|
setup_mariadb
|
|
setup_yq
|
|
MARIADB_DB_NAME="booklore_db" MARIADB_DB_USER="booklore_user" MARIADB_DB_EXTRA_GRANTS="GRANT SELECT ON \`mysql\`.\`time_zone_name\`" setup_mariadb_db
|
|
fetch_and_deploy_gh_release "booklore" "booklore-app/BookLore" "tarball"
|
|
|
|
msg_info "Building Frontend"
|
|
cd /opt/booklore/booklore-ui
|
|
$STD npm install --force
|
|
$STD npm run build --configuration=production
|
|
msg_ok "Built Frontend"
|
|
|
|
msg_info "Embedding Frontend into Backend"
|
|
mkdir -p /opt/booklore/booklore-api/src/main/resources/static
|
|
cp -r /opt/booklore/booklore-ui/dist/booklore/browser/* /opt/booklore/booklore-api/src/main/resources/static/
|
|
msg_ok "Embedded Frontend into Backend"
|
|
|
|
msg_info "Creating Environment"
|
|
mkdir -p /opt/booklore_storage/{data,books,bookdrop}
|
|
cat <<EOF >/opt/booklore_storage/.env
|
|
# Database Configuration
|
|
DATABASE_URL=jdbc:mariadb://localhost:3306/${MARIADB_DB_NAME}
|
|
DATABASE_USERNAME=${MARIADB_DB_USER}
|
|
DATABASE_PASSWORD=${MARIADB_DB_PASS}
|
|
|
|
# App Configuration (Spring Boot mapping from app.* properties)
|
|
APP_PATH_CONFIG=/opt/booklore_storage/data
|
|
APP_BOOKDROP_FOLDER=/opt/booklore_storage/bookdrop
|
|
SERVER_PORT=6060
|
|
EOF
|
|
msg_ok "Created Environment"
|
|
|
|
msg_info "Building Backend"
|
|
cd /opt/booklore/booklore-api
|
|
APP_VERSION=$(get_latest_github_release "booklore-app/BookLore")
|
|
yq eval ".app.version = \"${APP_VERSION}\"" -i src/main/resources/application.yaml
|
|
$STD ./gradlew clean build -x test --no-daemon
|
|
mkdir -p /opt/booklore/dist
|
|
JAR_PATH=$(find /opt/booklore/booklore-api/build/libs -maxdepth 1 -type f -name "booklore-api-*.jar" ! -name "*plain*" | head -n1)
|
|
if [[ -z "$JAR_PATH" ]]; then
|
|
msg_error "Backend JAR not found"
|
|
exit 1
|
|
fi
|
|
cp "$JAR_PATH" /opt/booklore/dist/app.jar
|
|
msg_ok "Built Backend"
|
|
|
|
msg_info "Creating Service"
|
|
cat <<EOF >/etc/systemd/system/booklore.service
|
|
[Unit]
|
|
Description=BookLore Java Service
|
|
After=network.target mariadb.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=root
|
|
WorkingDirectory=/opt/booklore/dist
|
|
ExecStart=/usr/bin/java -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompactObjectHeaders -jar /opt/booklore/dist/app.jar
|
|
EnvironmentFile=/opt/booklore_storage/.env
|
|
SuccessExitStatus=143
|
|
TimeoutStopSec=10
|
|
Restart=on-failure
|
|
RestartSec=5
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
systemctl enable -q --now booklore
|
|
msg_ok "Created Service"
|
|
|
|
motd_ssh
|
|
customize
|
|
cleanup_lxc
|