Compare commits

...

15 Commits

Author SHA1 Message Date
Duncan Hill
a304d32d44
Merge d242578c35 into 749e487032 2025-01-10 01:30:39 +01:00
community-scripts-pr-app[bot]
749e487032
Update CHANGELOG.md (#1372)
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Shellcheck / Shellcheck (push) Waiting to run
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-09 23:07:00 +01:00
CanbiZ
be1821b16f
Add invalid/wontdo check 2025-01-09 23:05:53 +01:00
CanbiZ
baa578c20a
add invalid / wontdo check 2025-01-09 23:02:06 +01:00
Jesper Dramsch
d8f433c94a
fix: unzip to /opt/ (#1370) 2025-01-09 22:53:58 +01:00
CanbiZ
3ad50eb427
update CHANGELOG.md 2025-01-09 22:47:26 +01:00
community-scripts-pr-app[bot]
2c24952cd2
Update CHANGELOG.md (#1364)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-09 20:38:09 +01:00
community-scripts-pr-app[bot]
9d2ba6739b
[Github Action] Update CHANGELOG.md (#1363)
* Update CHANGELOG.md

* Aktualisieren von CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-01-09 20:37:29 +01:00
Michel Roegl-Brunner
3a9d55abf4
Delete calibre (#1362)
* Delete ct/calibre-server.sh

* Delete json/calibre-server.json

* Delete install/calibre-server-install.sh
2025-01-09 20:09:07 +01:00
community-scripts-pr-app[bot]
8a9e162e9b
Update CHANGELOG.md (#1360)
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Shellcheck / Shellcheck (push) Waiting to run
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-09 19:10:24 +01:00
Matt Burns
0b85f26a4e
Fix: Stirling-PDF > LibreOffice/unoconv Integration Issues (#1322)
* Modify install script to install core libreoffice components. Configure a running libreoffice service and setup env variables so they are accessible to StirlingPDF. Modify stirlingPDF service to wait for libreoffice service to start. Enable and explicitly start libreoffice and stirlingPDF services.

* Apply suggestions from code review

Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>

* Update stirling-pdf-install.sh

---------

Co-authored-by: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
2025-01-09 19:10:02 +01:00
Michel Roegl-Brunner
14e185af85
Update calibre-server-install.sh (#1359) 2025-01-09 19:07:31 +01:00
Duncan Hill
d242578c35
Fix duplication in comment, rename to install_core_packages 2025-01-07 19:03:40 +00:00
Duncan Hill
67ddcd6ebb
Update to title case to match other info/ok strings 2025-01-07 18:52:32 +00:00
Duncan Hill
1789b71734
Make core dependencies a function, update sample installers to use it 2025-01-07 18:31:14 +00:00
17 changed files with 87 additions and 241 deletions

View File

@ -71,7 +71,9 @@ jobs:
}); });
pulls.filter((pr) => pulls.filter((pr) =>
pr.merged_at && new Date(pr.merged_at) > latestDateInChangelog pr.merged_at &&
new Date(pr.merged_at) > latestDateInChangelog &&
!pr.labels.some((label) => ["invalid", "wontdo", process.env.AUTOMATED_PR_LABEL].includes(label.name.toLowerCase()))
).forEach((pr) => { ).forEach((pr) => {
const prLabels = pr.labels.map((label) => label.name.toLowerCase()); const prLabels = pr.labels.map((label) => label.name.toLowerCase());
const prNote = `- ${pr.title} [@${pr.user.login}](https://github.com/${pr.user.login}) ([#${pr.number}](${pr.html_url}))`; const prNote = `- ${pr.title} [@${pr.user.login}](https://github.com/${pr.user.login}) ([#${pr.number}](${pr.html_url}))`;
@ -79,12 +81,11 @@ jobs:
for (const { labels, notes } of categorizedPRs) { for (const { labels, notes } of categorizedPRs) {
const prHasCategoryLabel = labels.some((label) => prLabels.includes(label)); const prHasCategoryLabel = labels.some((label) => prLabels.includes(label));
const isUnlabelledCategory = labels.length === 0; const isUnlabelledCategory = labels.length === 0;
const prShouldBeExcluded = prLabels.includes(process.env.AUTOMATED_PR_LABEL); if (prHasCategoryLabel || isUnlabelledCategory) {
if ((prHasCategoryLabel || isUnlabelledCategory) && !prShouldBeExcluded) {
notes.push(prNote); notes.push(prNote);
break; break;
} }
}; }
}); });
return categorizedPRs; return categorizedPRs;

View File

@ -20,14 +20,19 @@ Do not break established syntax in this file, as it is automatically updated by
### Changed ### Changed
### 💥 Breaking Changes
- Removal calibre-server (no Headless Support) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1362](https://github.com/community-scripts/ProxmoxVE/pull/1362))
### ✨ New Scripts ### ✨ New Scripts
- New Script: Prometheus Alertmanager [@andygrunwald](https://github.com/andygrunwald) ([#1272](https://github.com/community-scripts/ProxmoxVE/pull/1272)) - New Script: Prometheus Alertmanager [@andygrunwald](https://github.com/andygrunwald) ([#1272](https://github.com/community-scripts/ProxmoxVE/pull/1272))
- New script: ps5-mqtt [@liecno](https://github.com/liecno) ([#1198](https://github.com/community-scripts/ProxmoxVE/pull/1198)) - New script: ps5-mqtt [@liecno](https://github.com/liecno) ([#1198](https://github.com/community-scripts/ProxmoxVE/pull/1198))
- New Script: calibre-server [@ThisIsJeron](https://github.com/ThisIsJeron) ([#960](https://github.com/community-scripts/ProxmoxVE/pull/960))
### 🚀 Updated Scripts ### 🚀 Updated Scripts
- Fix: AdventureLog: unzip to /opt/ [@JesperDramsch](https://github.com/JesperDramsch) ([#1370](https://github.com/community-scripts/ProxmoxVE/pull/1370))
- Fix: Stirling-PDF > LibreOffice/unoconv Integration Issues [@m6urns](https://github.com/m6urns) ([#1322](https://github.com/community-scripts/ProxmoxVE/pull/1322))
- Fix: AdventureLog - update script bug [@JesperDramsch](https://github.com/JesperDramsch) ([#1334](https://github.com/community-scripts/ProxmoxVE/pull/1334)) - Fix: AdventureLog - update script bug [@JesperDramsch](https://github.com/JesperDramsch) ([#1334](https://github.com/community-scripts/ProxmoxVE/pull/1334))
- Install/update ActualBudget based on releases, not latest master [@SpyrosRoum](https://github.com/SpyrosRoum) ([#1254](https://github.com/community-scripts/ProxmoxVE/pull/1254)) - Install/update ActualBudget based on releases, not latest master [@SpyrosRoum](https://github.com/SpyrosRoum) ([#1254](https://github.com/community-scripts/ProxmoxVE/pull/1254))
- Fix Checkmk: Version grep broken [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1341](https://github.com/community-scripts/ProxmoxVE/pull/1341)) - Fix Checkmk: Version grep broken [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1341](https://github.com/community-scripts/ProxmoxVE/pull/1341))

View File

@ -42,7 +42,7 @@ function update_script() {
msg_info "Updating ${APP} to ${RELEASE}" msg_info "Updating ${APP} to ${RELEASE}"
mv /opt/adventurelog/ /opt/adventurelog-backup/ mv /opt/adventurelog/ /opt/adventurelog-backup/
wget -qO /opt/v${RELEASE}.zip "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip" wget -qO /opt/v${RELEASE}.zip "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
unzip -q /opt/v${RELEASE}.zip unzip -q /opt/v${RELEASE}.zip -d /opt/
mv /opt/AdventureLog-${RELEASE} /opt/adventurelog mv /opt/AdventureLog-${RELEASE} /opt/adventurelog
mv /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env mv /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env

View File

@ -1,63 +0,0 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: thisisjeron
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://calibre-ebook.com
# App Default Values
APP="Calibre-Server"
var_tags="eBook"
var_cpu="2"
var_ram="1024"
var_disk="4"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/calibre-server.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ${APP}"
systemctl stop calibre-server
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP} Packages"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Packages updated"
msg_info "Updating Calibre (latest)"
wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sh /dev/stdin &>/dev/null
msg_ok "Updated Calibre"
msg_info "Starting ${APP}"
systemctl start calibre-server
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8180${CL}"

View File

@ -12,14 +12,10 @@ catch_errors
setting_up_container setting_up_container
network_check network_check
update_os update_os
install_core_packages
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apk add newt
$STD apk add curl
$STD apk add openssh
$STD apk add tzdata $STD apk add tzdata
$STD apk add nano
$STD apk add mc
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Installing Docker" msg_info "Installing Docker"

View File

@ -12,14 +12,7 @@ catch_errors
setting_up_container setting_up_container
network_check network_check
update_os update_os
install_core_packages
msg_info "Installing Dependencies"
$STD apk add newt
$STD apk add curl
$STD apk add openssh
$STD apk add nano
$STD apk add mc
msg_ok "Installed Dependencies"
msg_info "Installing Grafana" msg_info "Installing Grafana"
$STD apk add grafana $STD apk add grafana

View File

@ -12,14 +12,7 @@ catch_errors
setting_up_container setting_up_container
network_check network_check
update_os update_os
install_core_packages
msg_info "Installing Dependencies"
$STD apk add newt
$STD apk add curl
$STD apk add openssh
$STD apk add nano
$STD apk add mc
msg_ok "Installed Dependencies"
motd_ssh motd_ssh
customize customize

View File

@ -12,14 +12,10 @@ catch_errors
setting_up_container setting_up_container
network_check network_check
update_os update_os
install_core_packages
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apk add newt
$STD apk add curl
$STD apk add openssl $STD apk add openssl
$STD apk add openssh
$STD apk add nano
$STD apk add mc
$STD apk add nginx $STD apk add nginx
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"

View File

@ -12,14 +12,10 @@ catch_errors
setting_up_container setting_up_container
network_check network_check
update_os update_os
install_core_packages
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apk add newt
$STD apk add curl
$STD apk add openssl $STD apk add openssl
$STD apk add openssh
$STD apk add nano
$STD apk add mc
$STD apk add argon2 $STD apk add argon2
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"

View File

@ -12,14 +12,7 @@ catch_errors
setting_up_container setting_up_container
network_check network_check
update_os update_os
install_core_packages
msg_info "Installing Dependencies"
$STD apk add newt
$STD apk add curl
$STD apk add openssh
$STD apk add nano
$STD apk add mc
msg_ok "Installed Dependencies"
msg_info "Installing Alpine-Zigbee2MQTT" msg_info "Installing Alpine-Zigbee2MQTT"
$STD apk add zigbee2mqtt $STD apk add zigbee2mqtt

View File

@ -1,61 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024
# Author: thisisjeron
# License: MIT
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
sudo \
curl \
mc \
imagemagick \
xvfb \
libxcomposite1 \
libegl1 \
libopengl0
msg_ok "Installed Dependencies"
msg_info "Installing Calibre"
wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sh /dev/stdin
useradd -c "Calibre Server" -d /opt/calibre -s /bin/bash -m calibre
mkdir -p /opt/calibre/calibre-library
chown -R calibre:calibre /opt/calibre
msg_ok "Installed Calibre"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/calibre-server.service
[Unit]
Description=Calibre Content Server
After=network.target
[Service]
Type=simple
User=calibre
Group=calibre
ExecStart=/opt/calibre/calibre-server --port=8180 --enable-local-write /opt/calibre/calibre-library
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now calibre-server.service
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@ -12,12 +12,7 @@ catch_errors
setting_up_container setting_up_container
network_check network_check
update_os update_os
install_core_packages
msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
msg_ok "Installed Dependencies"
motd_ssh motd_ssh
customize customize

View File

@ -36,7 +36,11 @@ msg_info "Installing LibreOffice Components"
$STD apt-get install -y \ $STD apt-get install -y \
libreoffice-writer \ libreoffice-writer \
libreoffice-calc \ libreoffice-calc \
libreoffice-impress libreoffice-impress \
libreoffice-core \
libreoffice-common \
libreoffice-base-core \
python3-uno
msg_ok "Installed LibreOffice Components" msg_ok "Installed LibreOffice Components"
msg_info "Installing Python Dependencies" msg_info "Installing Python Dependencies"
@ -75,8 +79,8 @@ msg_ok "Installed Language Packs"
msg_info "Installing Stirling-PDF (Additional Patience)" msg_info "Installing Stirling-PDF (Additional Patience)"
RELEASE=$(curl -s https://api.github.com/repos/Stirling-Tools/Stirling-PDF/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') RELEASE=$(curl -s https://api.github.com/repos/Stirling-Tools/Stirling-PDF/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q https://github.com/Stirling-Tools/Stirling-PDF/archive/refs/tags/v$RELEASE.tar.gz wget -q https://github.com/Stirling-Tools/Stirling-PDF/archive/refs/tags/v${RELEASE}.tar.gz
tar -xzf v$RELEASE.tar.gz tar -xzf v${RELEASE}.tar.gz
cd Stirling-PDF-$RELEASE cd Stirling-PDF-$RELEASE
chmod +x ./gradlew chmod +x ./gradlew
$STD ./gradlew build $STD ./gradlew build
@ -86,37 +90,66 @@ mv ./build/libs/Stirling-PDF-*.jar /opt/Stirling-PDF/
mv scripts /opt/Stirling-PDF/ mv scripts /opt/Stirling-PDF/
ln -s /opt/Stirling-PDF/Stirling-PDF-$RELEASE.jar /opt/Stirling-PDF/Stirling-PDF.jar ln -s /opt/Stirling-PDF/Stirling-PDF-$RELEASE.jar /opt/Stirling-PDF/Stirling-PDF.jar
ln -s /usr/share/tesseract-ocr/5/tessdata/ /usr/share/tessdata ln -s /usr/share/tesseract-ocr/5/tessdata/ /usr/share/tessdata
msg_ok "Installed Stirling-PDF v$RELEASE" msg_ok "Installed Stirling-PDF"
msg_info "Creating Service" msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/stirlingpdf.service # Create LibreOffice listener service
cat <<EOF >/etc/systemd/system/libreoffice-listener.service
[Unit] [Unit]
Description=Stirling-PDF service Description=LibreOffice Headless Listener Service
After=syslog.target network.target After=network.target
[Service] [Service]
SuccessExitStatus=143 Type=simple
User=root User=root
Group=root Group=root
ExecStart=/usr/lib/libreoffice/program/soffice --headless --invisible --nodefault --nofirststartwizard --nolockcheck --nologo --accept="socket,host=127.0.0.1,port=2002;urp;StarOffice.ComponentContext"
Type=simple Restart=always
EnvironmentFile=/opt/Stirling-PDF/.env
WorkingDirectory=/opt/Stirling-PDF
ExecStart=/usr/bin/java -jar Stirling-PDF.jar
ExecStop=/bin/kill -15 %n
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF
systemctl enable -q --now stirlingpdf.service
# Set up environment variables
cat <<EOF >/opt/Stirling-PDF/.env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/libreoffice/program
UNO_PATH=/usr/lib/libreoffice/program
PYTHONPATH=/usr/lib/python3/dist-packages:/usr/lib/libreoffice/program
LD_LIBRARY_PATH=/usr/lib/libreoffice/program
EOF
cat <<EOF >/etc/systemd/system/stirlingpdf.service
[Unit]
Description=Stirling-PDF service
After=syslog.target network.target libreoffice-listener.service
Requires=libreoffice-listener.service
[Service]
SuccessExitStatus=143
Type=simple
User=root
Group=root
EnvironmentFile=/opt/Stirling-PDF/.env
WorkingDirectory=/opt/Stirling-PDF
ExecStart=/usr/bin/java -jar Stirling-PDF.jar
ExecStop=/bin/kill -15 %n
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
# Enable and start services
systemctl enable -q --now libreoffice-listener
systemctl enable -q --now stirlingpdf
msg_ok "Created Service" msg_ok "Created Service"
motd_ssh motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -rf v$RELEASE.tar.gz /zulu-repo_1.0.0-3_all.deb rm -rf v${RELEASE}.tar.gz /zulu-repo_1.0.0-3_all.deb
$STD apt-get -y autoremove $STD apt-get -y autoremove
$STD apt-get -y autoclean $STD apt-get -y autoclean
msg_ok "Cleaned" msg_ok "Cleaned"

View File

@ -12,12 +12,7 @@ catch_errors
setting_up_container setting_up_container
network_check network_check
update_os update_os
install_core_packages
msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
msg_ok "Installed Dependencies"
motd_ssh motd_ssh
customize customize

View File

@ -1,43 +0,0 @@
{
"name": "Calibre-Server",
"slug": "calibre-server",
"categories": [
12
],
"date_created": "2025-01-09",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8180,
"documentation": null,
"website": "https://calibre-ebook.com",
"logo": "https://calibre-ebook.com/resources/icons/calibre_icon.png",
"description": "Calibre content server is used to manage and serve eBooks over the network.",
"install_methods": [
{
"type": "default",
"script": "ct/calibre-server.sh",
"resources": {
"cpu": 2,
"ram": 1024,
"hdd": 4,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "By default, the Calibre Server runs on port 8180 with no username/password.",
"type": "info"
},
{
"text": "Use 'calibredb add' from the calibre user or run 'xvfb-run calibredb add ...' if you need to add books while the server is running.",
"type": "info"
}
]
}

View File

@ -133,6 +133,14 @@ update_os() {
msg_ok "Updated Container OS" msg_ok "Updated Container OS"
} }
# Install core packages that (almost) every container will depend upon.
# Be sure to update install.func for apt-based systems as appropriate.
install_core_packages() {
msg_info "Installing Core Packages"
$STD apk add curl mc nano newt openssh sudo
msg_ok "Installed Core Packages"
}
# This function modifies the message of the day (motd) and SSH settings # This function modifies the message of the day (motd) and SSH settings
motd_ssh() { motd_ssh() {
# Set terminal to 256-color mode # Set terminal to 256-color mode

View File

@ -197,6 +197,15 @@ EOF
msg_ok "Updated Container OS" msg_ok "Updated Container OS"
} }
# Install core packages that (almost) every container will depend upon.
# Be sure to update alpine-install.func to match for apk-based systems when
# adding a new package.
install_core_packages() {
msg_info "Installing Core Packages"
$STD apt-get install curl mc sudo
msg_ok "Installed Core Packages"
}
# This function modifies the message of the day (motd) and SSH settings # This function modifies the message of the day (motd) and SSH settings
motd_ssh() { motd_ssh() {
# Set terminal to 256-color mode # Set terminal to 256-color mode