mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-02-04 04:13:26 +01:00
Compare commits
30 Commits
2026-01-03
...
certbot_np
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6f358d7e5d | ||
|
|
e44a8e8af8 | ||
|
|
b42f9fabe1 | ||
|
|
259f14b8e9 | ||
|
|
0fb5fc5ce0 | ||
|
|
32927d903e | ||
|
|
66808d03a8 | ||
|
|
b59e04fa94 | ||
|
|
cc1117db5d | ||
|
|
a1005795fc | ||
|
|
4f2fb3c6cc | ||
|
|
cd8991875b | ||
|
|
c6a2548f10 | ||
|
|
ad22b8ddd4 | ||
|
|
03f805e54b | ||
|
|
5f67c385b8 | ||
|
|
eeb4c0a860 | ||
|
|
266a23d319 | ||
|
|
7cafd046ca | ||
|
|
41c8c4ce0b | ||
|
|
a4f62116c9 | ||
|
|
3cd02aac77 | ||
|
|
aebb4c3a55 | ||
|
|
a30c6fc3a9 | ||
|
|
dbe2c553fe | ||
|
|
195f073ea3 | ||
|
|
57d43f1a94 | ||
|
|
11dced98c2 | ||
|
|
d025bf1cf6 | ||
|
|
7cd1546135 |
35
CHANGELOG.md
35
CHANGELOG.md
@@ -10,8 +10,43 @@
|
||||
> [!CAUTION]
|
||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||
|
||||
## 2026-01-05
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Upgrade evcc LXC to Debian 13 [@heinemannj](https://github.com/heinemannj) ([#10548](https://github.com/community-scripts/ProxmoxVE/pull/10548))
|
||||
|
||||
## 2026-01-04
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- PocketID: Update PocketID for 2.x [@tremor021](https://github.com/tremor021) ([#10506](https://github.com/community-scripts/ProxmoxVE/pull/10506))
|
||||
- fix: reitti: nginx [@CrazyWolf13](https://github.com/CrazyWolf13) ([#10511](https://github.com/community-scripts/ProxmoxVE/pull/10511))
|
||||
- MagicMirror: bump to nodejs 24 [@MickLesk](https://github.com/MickLesk) ([#10534](https://github.com/community-scripts/ProxmoxVE/pull/10534))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: SFTPGo [@tremor021](https://github.com/tremor021) ([#10518](https://github.com/community-scripts/ProxmoxVE/pull/10518))
|
||||
- Refactor: Pelican Wings [@tremor021](https://github.com/tremor021) ([#10517](https://github.com/community-scripts/ProxmoxVE/pull/10517))
|
||||
- Refactor: Pelican Panel [@tremor021](https://github.com/tremor021) ([#10516](https://github.com/community-scripts/ProxmoxVE/pull/10516))
|
||||
- Refactor: Audiobookshelf [@tremor021](https://github.com/tremor021) ([#10519](https://github.com/community-scripts/ProxmoxVE/pull/10519))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Export IPV6_METHOD to trigger verb_ip6() function [@remz1337](https://github.com/remz1337) ([#10538](https://github.com/community-scripts/ProxmoxVE/pull/10538))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- Prowlarr: Update config_path [@tremor021](https://github.com/tremor021) ([#10504](https://github.com/community-scripts/ProxmoxVE/pull/10504))
|
||||
|
||||
## 2026-01-03
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-5}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-12}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
@@ -30,7 +30,7 @@ function update_script() {
|
||||
|
||||
msg_info "Updating $APP LXC"
|
||||
$STD apt-get update
|
||||
$STD apt-get -y upgrade
|
||||
$STD apt-get upgrade -y
|
||||
msg_ok "Updated $APP LXC"
|
||||
msg_ok "Updated successfully!"
|
||||
exit
|
||||
|
||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-1024}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-12}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
|
||||
@@ -32,6 +32,8 @@ function update_script() {
|
||||
systemctl stop magicmirror
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
NODE_VERSION="24" setup_nodejs
|
||||
|
||||
msg_info "Backing up data"
|
||||
rm -rf /opt/magicmirror-backup
|
||||
mkdir /opt/magicmirror-backup
|
||||
|
||||
@@ -157,18 +157,39 @@ EOF
|
||||
[ -f /etc/apt/trusted.gpg.d/openresty-archive-keyring.gpg ] && rm -f /etc/apt/trusted.gpg.d/openresty-archive-keyring.gpg
|
||||
[ -f /etc/apt/sources.list.d/openresty.list ] && rm -f /etc/apt/sources.list.d/openresty.list
|
||||
[ ! -f /etc/apt/trusted.gpg.d/openresty.gpg ] && curl -fsSL https://openresty.org/package/pubkey.gpg | gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/openresty.gpg
|
||||
[ ! -f /etc/apt/sources.list.d/openresty.sources ] && cat <<'EOF' >/etc/apt/sources.list.d/openresty.sources
|
||||
if [ ! -f /etc/apt/sources.list.d/openresty.sources ]; then
|
||||
DEBIAN_VERSION=$(grep -E '^VERSION_CODENAME=' /etc/os-release | cut -d'=' -f2)
|
||||
# Openresty only has bookworm, not trixie - map newer versions to bookworm
|
||||
case "$DEBIAN_VERSION" in
|
||||
trixie|sid) OPENRESTY_SUITE="bookworm" ;;
|
||||
*) OPENRESTY_SUITE="$DEBIAN_VERSION" ;;
|
||||
esac
|
||||
cat <<EOF >/etc/apt/sources.list.d/openresty.sources
|
||||
Types: deb
|
||||
URIs: http://openresty.org/package/debian/
|
||||
Suites: bookworm
|
||||
Suites: ${OPENRESTY_SUITE}
|
||||
Components: openresty
|
||||
Signed-By: /etc/apt/trusted.gpg.d/openresty.gpg
|
||||
EOF
|
||||
fi
|
||||
$STD apt update
|
||||
$STD apt -y install openresty
|
||||
if [ -d /opt/certbot ]; then
|
||||
$STD /opt/certbot/bin/pip install --upgrade pip setuptools wheel
|
||||
$STD /opt/certbot/bin/pip install --upgrade certbot certbot-dns-cloudflare
|
||||
|
||||
# Fix for Debian 13 Trixie - certbot-dns-multi needed to prevent "API isn't healthy" error
|
||||
if [[ $(grep -E '^VERSION_ID=' /etc/os-release) == *"13"* ]]; then
|
||||
if ! /opt/certbot/bin/pip list 2>/dev/null | grep -q certbot-dns-multi; then
|
||||
msg_info "Applying Debian 13 Certbot Fix"
|
||||
$STD apt-get install -y golang build-essential git
|
||||
$STD /opt/certbot/bin/pip install --no-cache-dir setuptools-golang==2.9.0
|
||||
export CGO_ENABLED=1
|
||||
export GO111MODULE=on
|
||||
$STD /opt/certbot/bin/pip install --no-build-isolation --no-cache-dir certbot-dns-multi
|
||||
msg_ok "Applied Debian 13 Certbot Fix"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
msg_ok "Updated Certbot"
|
||||
|
||||
|
||||
@@ -27,37 +27,31 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
setup_mariadb
|
||||
CURRENT_PHP=$(php -v 2>/dev/null | awk '/^PHP/{print $2}' | cut -d. -f1,2)
|
||||
setup_composer
|
||||
|
||||
if [[ "$CURRENT_PHP" != "8.4" ]]; then
|
||||
msg_info "Migrating PHP $CURRENT_PHP to 8.4"
|
||||
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
||||
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
||||
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
|
||||
$STD apt update
|
||||
$STD apt remove -y php"${CURRENT_PHP//./}"*
|
||||
$STD apt install -y \
|
||||
php8.4 \
|
||||
php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} \
|
||||
libapache2-mod-php8.4
|
||||
PHP_VERSION="8.4" PHP_MODULE="mysql,sqlite3" PHP_APACHE="YES" PHP_FPM="YES" setup_php
|
||||
msg_ok "Migrated PHP $CURRENT_PHP to 8.4"
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/pelican-dev/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
if check_for_gh_release "pelican-panel" "pelican-dev/panel"; then
|
||||
msg_info "Stopping Service"
|
||||
cd /opt/pelican-panel
|
||||
$STD php artisan down
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
cp -r /opt/pelican-panel/.env /opt/
|
||||
SQLITE_INSTALL=$(ls /opt/pelican-panel/database/*.sqlite 1>/dev/null 2>&1 && echo "true" || echo "false")
|
||||
$SQLITE_INSTALL && cp -r /opt/pelican-panel/database/*.sqlite /opt/
|
||||
rm -rf * .*
|
||||
curl -fsSL "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz" -o $(basename "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz")
|
||||
tar -xzf "panel.tar.gz"
|
||||
fetch_and_deploy_gh_release "pelican-panel" "pelican-dev/panel" "prebuild" "latest" "/opt/pelican-panel" "panel.tar.gz"
|
||||
|
||||
msg_info "Updating Pelican Panel"
|
||||
mv /opt/.env /opt/pelican-panel/
|
||||
$SQLITE_INSTALL && mv /opt/*.sqlite /opt/pelican-panel/database/
|
||||
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
||||
@@ -68,17 +62,13 @@ function update_script() {
|
||||
$STD php artisan migrate --seed --force
|
||||
chown -R www-data:www-data /opt/pelican-panel
|
||||
chmod -R 755 /opt/pelican-panel/storage /opt/pelican-panel/bootstrap/cache/
|
||||
rm -rf "/opt/pelican-panel/panel.tar.gz"
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
msg_ok "Updated Pelican Panel"
|
||||
|
||||
msg_info "Starting Service"
|
||||
$STD php artisan queue:restart
|
||||
$STD php artisan up
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully!"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -27,25 +27,18 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/pelican-dev/wings/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
|
||||
if check_for_gh_release "wings" "pelican-dev/wings"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop wings
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
rm /usr/local/bin/wings
|
||||
curl -fsSL "https://github.com/pelican-dev/wings/releases/download/v${RELEASE}/wings_linux_amd64" -o "/usr/local/bin/wings"
|
||||
chmod u+x /usr/local/bin/wings
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
fetch_and_deploy_gh_release "wings" "pelican-dev/wings" "singlefile" "latest" "/usr/local/bin" "wings_linux_amd64"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start wings
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully!"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -29,6 +29,12 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
# Mandatory as of v2.x.x
|
||||
ENCRYPTION_KEY=$(openssl rand -base64 32)
|
||||
if ! grep -q '^ENCRYPTION_KEY=' /opt/pocket-id/.env; then
|
||||
echo "ENCRYPTION_KEY=$ENCRYPTION_KEY" >> /opt/pocket-id/.env
|
||||
fi
|
||||
|
||||
if check_for_gh_release "pocket-id" "pocket-id/pocket-id"; then
|
||||
if [ "$(printf '%s\n%s' "$(cat ~/.pocket-id 2>/dev/null || echo 0.0.0)" "1.0.0" | sort -V | head -n1)" = "$(cat ~/.pocket-id 2>/dev/null || echo 0.0.0)" ] &&
|
||||
[ "$(cat ~/.pocket-id 2>/dev/null || echo 0.0.0)" != "1.0.0" ]; then
|
||||
|
||||
14
ct/reitti.sh
14
ct/reitti.sh
@@ -28,11 +28,22 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
# Enable PostGIS extension if not already enabled
|
||||
if systemctl is-active --quiet postgresql; then
|
||||
if ! sudo -u postgres psql -d reitti -tAc "SELECT 1 FROM pg_extension WHERE extname='postgis'" 2>/dev/null | grep -q 1; then
|
||||
msg_info "Enabling PostGIS extension"
|
||||
sudo -u postgres psql -d reitti -c "CREATE EXTENSION IF NOT EXISTS postgis;" &>/dev/null
|
||||
msg_ok "Enabled PostGIS extension"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d /var/cache/nginx/tiles ]; then
|
||||
msg_info "Installing Nginx Tile Cache"
|
||||
mkdir -p /var/cache/nginx/tiles
|
||||
$STD apt install -y nginx
|
||||
cat <<EOF >/etc/nginx/nginx.conf
|
||||
user www-data;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
@@ -51,7 +62,8 @@ http {
|
||||
}
|
||||
}
|
||||
EOF
|
||||
chown -R www-data:www-data /var/cache/nginx/tiles
|
||||
chown -R www-data:www-data /var/cache/nginx
|
||||
chmod -R 750 /var/cache/nginx
|
||||
systemctl restart nginx
|
||||
echo "reitti.ui.tiles.cache.url=http://127.0.0.1" >> /opt/reitti/application.properties
|
||||
systemctl restart reitti
|
||||
|
||||
@@ -27,10 +27,11 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating $APP LXC"
|
||||
|
||||
msg_info "Updating SFTPGo"
|
||||
$STD apt update
|
||||
$STD apt -y upgrade
|
||||
msg_ok "Updated $APP LXC"
|
||||
$STD apt upgrade -y
|
||||
msg_ok "Updated SFTPGo"
|
||||
msg_ok "Updated successfully!"
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"ram": 2048,
|
||||
"hdd": 5,
|
||||
"os": "debian",
|
||||
"version": "12"
|
||||
"version": "13"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"ram": 1024,
|
||||
"hdd": 4,
|
||||
"os": "debian",
|
||||
"version": "12"
|
||||
"version": "13"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"documentation": "https://wiki.servarr.com/prowlarr",
|
||||
"website": "https://github.com/Prowlarr/Prowlarr",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/prowlarr.webp",
|
||||
"config_path": "",
|
||||
"config_path": "/var/lib/prowlarr/",
|
||||
"description": "Prowlarr is a software tool designed to integrate with various PVR (Personal Video Recorder) apps. It is built on a popular *arr .net/ReactJS base stack and serves as an indexer manager and proxy. Prowlarr makes it easy to manage and organize TV show and movie collections, by integrating with popular PVR apps and automating the downloading and organizing of media files. The software provides a web-based interface for managing and organizing TV shows and movies, making it easy to search and find content. Prowlarr also supports metadata management, including show and movie information, making it easy for users to keep their media collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing media collections, making it a valuable tool for media enthusiasts who want to keep their collection organized and up-to-date. With Prowlarr, users can enjoy their media collection from anywhere, making it a powerful tool for managing and sharing media files.",
|
||||
"install_methods": [
|
||||
{
|
||||
|
||||
@@ -1,4 +1,119 @@
|
||||
[
|
||||
{
|
||||
"name": "theonedev/onedev",
|
||||
"version": "v14.0.2",
|
||||
"date": "2026-01-05T10:59:42Z"
|
||||
},
|
||||
{
|
||||
"name": "mattermost/mattermost",
|
||||
"version": "v11.1.2",
|
||||
"date": "2025-12-17T09:26:24Z"
|
||||
},
|
||||
{
|
||||
"name": "maxdorninger/MediaManager",
|
||||
"version": "v1.12.1",
|
||||
"date": "2026-01-05T09:06:22Z"
|
||||
},
|
||||
{
|
||||
"name": "firefly-iii/firefly-iii",
|
||||
"version": "develop-20251228",
|
||||
"date": "2025-12-28T05:59:54Z"
|
||||
},
|
||||
{
|
||||
"name": "morpheus65535/bazarr",
|
||||
"version": "v1.5.4",
|
||||
"date": "2026-01-04T22:41:00Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.24.726",
|
||||
"date": "2026-01-05T06:02:39Z"
|
||||
},
|
||||
{
|
||||
"name": "jason5ng32/MyIP",
|
||||
"version": "v5.2.0",
|
||||
"date": "2026-01-05T05:56:57Z"
|
||||
},
|
||||
{
|
||||
"name": "booklore-app/booklore",
|
||||
"version": "v1.16.5",
|
||||
"date": "2026-01-05T02:26:15Z"
|
||||
},
|
||||
{
|
||||
"name": "louislam/uptime-kuma",
|
||||
"version": "2.0.2",
|
||||
"date": "2025-10-22T17:03:54Z"
|
||||
},
|
||||
{
|
||||
"name": "hyperion-project/hyperion.ng",
|
||||
"version": "2.1.1",
|
||||
"date": "2025-06-14T17:45:06Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v4.1.0",
|
||||
"date": "2025-11-23T12:13:34Z"
|
||||
},
|
||||
{
|
||||
"name": "jeedom/core",
|
||||
"version": "4.5.2",
|
||||
"date": "2026-01-05T00:27:03Z"
|
||||
},
|
||||
{
|
||||
"name": "Part-DB/Part-DB-server",
|
||||
"version": "v2.4.0",
|
||||
"date": "2026-01-04T21:10:51Z"
|
||||
},
|
||||
{
|
||||
"name": "pocket-id/pocket-id",
|
||||
"version": "v2.1.0",
|
||||
"date": "2026-01-04T20:32:58Z"
|
||||
},
|
||||
{
|
||||
"name": "rcourtman/Pulse",
|
||||
"version": "v5.0.11",
|
||||
"date": "2026-01-04T19:48:21Z"
|
||||
},
|
||||
{
|
||||
"name": "scanopy/scanopy",
|
||||
"version": "v0.13.0",
|
||||
"date": "2026-01-04T19:42:58Z"
|
||||
},
|
||||
{
|
||||
"name": "actualbudget/actual",
|
||||
"version": "v26.1.0",
|
||||
"date": "2026-01-04T17:07:30Z"
|
||||
},
|
||||
{
|
||||
"name": "dedicatedcode/reitti",
|
||||
"version": "v3.1.0",
|
||||
"date": "2026-01-04T13:05:59Z"
|
||||
},
|
||||
{
|
||||
"name": "fccview/jotty",
|
||||
"version": "1.15.2",
|
||||
"date": "2026-01-04T13:04:02Z"
|
||||
},
|
||||
{
|
||||
"name": "chrisbenincasa/tunarr",
|
||||
"version": "v1.0.13",
|
||||
"date": "2026-01-04T12:59:19Z"
|
||||
},
|
||||
{
|
||||
"name": "tobychui/zoraxy",
|
||||
"version": "v3.3.1-rc1",
|
||||
"date": "2026-01-04T04:38:01Z"
|
||||
},
|
||||
{
|
||||
"name": "Dispatcharr/Dispatcharr",
|
||||
"version": "v0.16.0",
|
||||
"date": "2026-01-04T01:18:19Z"
|
||||
},
|
||||
{
|
||||
"name": "nickheyer/discopanel",
|
||||
"version": "v1.0.19",
|
||||
"date": "2026-01-03T23:21:15Z"
|
||||
},
|
||||
{
|
||||
"name": "ghostfolio/ghostfolio",
|
||||
"version": "2.228.0",
|
||||
@@ -9,21 +124,11 @@
|
||||
"version": "2025-05-07-r1",
|
||||
"date": "2025-05-07T12:18:42Z"
|
||||
},
|
||||
{
|
||||
"name": "pocket-id/pocket-id",
|
||||
"version": "v2.0.2",
|
||||
"date": "2026-01-03T14:31:18Z"
|
||||
},
|
||||
{
|
||||
"name": "homarr-labs/homarr",
|
||||
"version": "v1.49.1",
|
||||
"date": "2026-01-03T13:13:12Z"
|
||||
},
|
||||
{
|
||||
"name": "chrisbenincasa/tunarr",
|
||||
"version": "v1.0.12",
|
||||
"date": "2026-01-03T12:40:06Z"
|
||||
},
|
||||
{
|
||||
"name": "fuma-nama/fumadocs",
|
||||
"version": "create-fumadocs-app@16.0.36",
|
||||
@@ -34,16 +139,6 @@
|
||||
"version": "v2.5.309",
|
||||
"date": "2026-01-03T08:32:10Z"
|
||||
},
|
||||
{
|
||||
"name": "morpheus65535/bazarr",
|
||||
"version": "v1.5.3",
|
||||
"date": "2025-09-20T12:12:33Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.24.704",
|
||||
"date": "2026-01-03T06:03:01Z"
|
||||
},
|
||||
{
|
||||
"name": "TwiN/gatus",
|
||||
"version": "v5.34.0",
|
||||
@@ -54,16 +149,6 @@
|
||||
"version": "v1.2.0-2",
|
||||
"date": "2026-01-03T02:42:11Z"
|
||||
},
|
||||
{
|
||||
"name": "jeedom/core",
|
||||
"version": "4.5.2",
|
||||
"date": "2026-01-03T00:27:04Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v4.1.0",
|
||||
"date": "2025-11-23T12:13:34Z"
|
||||
},
|
||||
{
|
||||
"name": "9001/copyparty",
|
||||
"version": "v1.20.0",
|
||||
@@ -79,11 +164,6 @@
|
||||
"version": "3.4.6",
|
||||
"date": "2026-01-02T22:20:47Z"
|
||||
},
|
||||
{
|
||||
"name": "rcourtman/Pulse",
|
||||
"version": "v5.0.10",
|
||||
"date": "2026-01-02T21:19:08Z"
|
||||
},
|
||||
{
|
||||
"name": "keycloak/keycloak",
|
||||
"version": "26.4.7",
|
||||
@@ -94,11 +174,6 @@
|
||||
"version": "v3.9.2",
|
||||
"date": "2026-01-02T19:40:09Z"
|
||||
},
|
||||
{
|
||||
"name": "booklore-app/booklore",
|
||||
"version": "v1.16.3",
|
||||
"date": "2026-01-02T18:27:16Z"
|
||||
},
|
||||
{
|
||||
"name": "Dokploy/dokploy",
|
||||
"version": "v0.26.3",
|
||||
@@ -114,15 +189,10 @@
|
||||
"version": "v0.57.x",
|
||||
"date": "2026-01-02T15:44:38Z"
|
||||
},
|
||||
{
|
||||
"name": "fccview/jotty",
|
||||
"version": "1.15.1",
|
||||
"date": "2026-01-02T13:42:41Z"
|
||||
},
|
||||
{
|
||||
"name": "livebook-dev/livebook",
|
||||
"version": "nightly",
|
||||
"date": "2026-01-02T12:46:49Z"
|
||||
"version": "v0.18.2",
|
||||
"date": "2025-12-15T19:17:42Z"
|
||||
},
|
||||
{
|
||||
"name": "gotify/server",
|
||||
@@ -134,11 +204,6 @@
|
||||
"version": "n8n@2.1.5",
|
||||
"date": "2026-01-02T09:10:15Z"
|
||||
},
|
||||
{
|
||||
"name": "firefly-iii/firefly-iii",
|
||||
"version": "develop-20251228",
|
||||
"date": "2025-12-28T05:59:54Z"
|
||||
},
|
||||
{
|
||||
"name": "alexta69/metube",
|
||||
"version": "2026.01.02",
|
||||
@@ -159,11 +224,6 @@
|
||||
"version": "2025.12.4",
|
||||
"date": "2025-12-31T22:42:42Z"
|
||||
},
|
||||
{
|
||||
"name": "scanopy/scanopy",
|
||||
"version": "v0.12.10",
|
||||
"date": "2025-12-31T20:19:18Z"
|
||||
},
|
||||
{
|
||||
"name": "gtsteffaniak/filebrowser",
|
||||
"version": "v1.1.5-beta",
|
||||
@@ -249,11 +309,6 @@
|
||||
"version": "jenkins-2.544",
|
||||
"date": "2025-12-30T11:00:27Z"
|
||||
},
|
||||
{
|
||||
"name": "nickheyer/discopanel",
|
||||
"version": "v1.0.18",
|
||||
"date": "2025-12-30T05:52:02Z"
|
||||
},
|
||||
{
|
||||
"name": "javedh-dev/tracktor",
|
||||
"version": "1.1.0",
|
||||
@@ -309,11 +364,6 @@
|
||||
"version": "2.45.0",
|
||||
"date": "2025-12-28T06:32:47Z"
|
||||
},
|
||||
{
|
||||
"name": "hyperion-project/hyperion.ng",
|
||||
"version": "2.1.1",
|
||||
"date": "2025-06-14T17:45:06Z"
|
||||
},
|
||||
{
|
||||
"name": "laurent22/joplin",
|
||||
"version": "server-v3.5.2",
|
||||
@@ -344,11 +394,6 @@
|
||||
"version": "tc_v0.6.6",
|
||||
"date": "2025-12-26T18:45:22Z"
|
||||
},
|
||||
{
|
||||
"name": "theonedev/onedev",
|
||||
"version": "v13.1.7",
|
||||
"date": "2025-12-26T07:59:41Z"
|
||||
},
|
||||
{
|
||||
"name": "HydroshieldMKII/Guardian",
|
||||
"version": "v1.3.3",
|
||||
@@ -459,11 +504,6 @@
|
||||
"version": "v2.0.12",
|
||||
"date": "2025-12-02T08:11:24Z"
|
||||
},
|
||||
{
|
||||
"name": "Dispatcharr/Dispatcharr",
|
||||
"version": "v0.15.1",
|
||||
"date": "2025-12-22T23:01:26Z"
|
||||
},
|
||||
{
|
||||
"name": "sabnzbd/sabnzbd",
|
||||
"version": "4.5.5",
|
||||
@@ -474,11 +514,6 @@
|
||||
"version": "v4.0.16.2944",
|
||||
"date": "2025-11-05T01:56:48Z"
|
||||
},
|
||||
{
|
||||
"name": "maxdorninger/MediaManager",
|
||||
"version": "v1.11.1",
|
||||
"date": "2025-12-22T18:15:40Z"
|
||||
},
|
||||
{
|
||||
"name": "BerriAI/litellm",
|
||||
"version": "v1.80.11.rc.1",
|
||||
@@ -514,21 +549,11 @@
|
||||
"version": "v1.1.10",
|
||||
"date": "2025-12-21T13:13:01Z"
|
||||
},
|
||||
{
|
||||
"name": "jason5ng32/MyIP",
|
||||
"version": "v5.1.1",
|
||||
"date": "2025-12-21T12:59:32Z"
|
||||
},
|
||||
{
|
||||
"name": "pocketbase/pocketbase",
|
||||
"version": "v0.35.0",
|
||||
"date": "2025-12-21T07:44:15Z"
|
||||
},
|
||||
{
|
||||
"name": "dedicatedcode/reitti",
|
||||
"version": "v3.0.1",
|
||||
"date": "2025-12-21T04:35:21Z"
|
||||
},
|
||||
{
|
||||
"name": "intri-in/manage-my-damn-life-nextjs",
|
||||
"version": "v0.8.2",
|
||||
@@ -554,11 +579,6 @@
|
||||
"version": "v11.9.1",
|
||||
"date": "2025-12-20T09:14:25Z"
|
||||
},
|
||||
{
|
||||
"name": "louislam/uptime-kuma",
|
||||
"version": "2.0.2",
|
||||
"date": "2025-10-22T17:03:54Z"
|
||||
},
|
||||
{
|
||||
"name": "pelican-dev/panel",
|
||||
"version": "v1.0.0-beta30",
|
||||
@@ -594,11 +614,6 @@
|
||||
"version": "v15.0.0-dev",
|
||||
"date": "2025-12-19T11:43:47Z"
|
||||
},
|
||||
{
|
||||
"name": "mattermost/mattermost",
|
||||
"version": "v11.1.2",
|
||||
"date": "2025-12-17T09:26:24Z"
|
||||
},
|
||||
{
|
||||
"name": "jhuckaby/Cronicle",
|
||||
"version": "v0.9.102",
|
||||
@@ -914,11 +929,6 @@
|
||||
"version": "v0.107.71",
|
||||
"date": "2025-12-08T14:34:55Z"
|
||||
},
|
||||
{
|
||||
"name": "Part-DB/Part-DB-server",
|
||||
"version": "v2.3.0",
|
||||
"date": "2025-12-07T21:58:43Z"
|
||||
},
|
||||
{
|
||||
"name": "traccar/traccar",
|
||||
"version": "v6.11.1",
|
||||
@@ -944,11 +954,6 @@
|
||||
"version": "v4.9.0",
|
||||
"date": "2025-12-06T08:58:40Z"
|
||||
},
|
||||
{
|
||||
"name": "tobychui/zoraxy",
|
||||
"version": "v3.3.0",
|
||||
"date": "2025-12-06T06:18:23Z"
|
||||
},
|
||||
{
|
||||
"name": "community-scripts/ProxmoxVE-Local",
|
||||
"version": "v0.5.2",
|
||||
@@ -984,11 +989,6 @@
|
||||
"version": "11.0.4",
|
||||
"date": "2025-12-04T09:26:37Z"
|
||||
},
|
||||
{
|
||||
"name": "actualbudget/actual",
|
||||
"version": "v25.12.0",
|
||||
"date": "2025-12-03T17:45:09Z"
|
||||
},
|
||||
{
|
||||
"name": "Graylog2/graylog2-server",
|
||||
"version": "6.2.10",
|
||||
|
||||
@@ -17,13 +17,17 @@ msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y ffmpeg
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
setup_deb822_repo \
|
||||
"audiobookshelf" \
|
||||
"https://advplyr.github.io/audiobookshelf-ppa/KEY.gpg" \
|
||||
"https://advplyr.github.io/audiobookshelf-ppa" \
|
||||
"./"
|
||||
|
||||
msg_info "Setup audiobookshelf"
|
||||
curl -fsSL https://advplyr.github.io/audiobookshelf-ppa/KEY.gpg >/etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc
|
||||
echo "deb [signed-by=/etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc] https://advplyr.github.io/audiobookshelf-ppa ./" >/etc/apt/sources.list.d/audiobookshelf.list
|
||||
$STD apt update
|
||||
$STD apt install -y audiobookshelf
|
||||
echo "FFMPEG_PATH=/usr/bin/ffmpeg" >>/etc/default/audiobookshelf
|
||||
echo "FFPROBE_PATH=/usr/bin/ffprobe" >>/etc/default/audiobookshelf
|
||||
systemctl restart audiobookshelf
|
||||
msg_ok "Setup audiobookshelf"
|
||||
|
||||
motd_ssh
|
||||
|
||||
@@ -13,7 +13,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
NODE_VERSION="24" setup_nodejs
|
||||
fetch_and_deploy_gh_release "magicmirror" "MagicMirrorOrg/MagicMirror" "tarball"
|
||||
|
||||
msg_info "Configuring MagicMirror"
|
||||
|
||||
@@ -36,15 +36,35 @@ msg_info "Setting up Certbot"
|
||||
$STD python3 -m venv /opt/certbot
|
||||
$STD /opt/certbot/bin/pip install --upgrade pip setuptools wheel
|
||||
$STD /opt/certbot/bin/pip install certbot certbot-dns-cloudflare
|
||||
|
||||
# Fix for Debian 13 Trixie - certbot-dns-multi needed to prevent "API isn't healthy" error
|
||||
if [[ $(grep -E '^VERSION_ID=' /etc/os-release) == *"13"* ]]; then
|
||||
if ! /opt/certbot/bin/pip list 2>/dev/null | grep -q certbot-dns-multi; then
|
||||
msg_info "Applying Debian 13 Certbot Fix"
|
||||
$STD apt-get install -y golang build-essential git
|
||||
$STD /opt/certbot/bin/pip install --no-cache-dir setuptools-golang==2.9.0
|
||||
export CGO_ENABLED=1
|
||||
export GO111MODULE=on
|
||||
$STD /opt/certbot/bin/pip install --no-build-isolation --no-cache-dir certbot-dns-multi
|
||||
msg_ok "Applied Debian 13 Certbot Fix"
|
||||
fi
|
||||
fi
|
||||
|
||||
ln -sf /opt/certbot/bin/certbot /usr/local/bin/certbot
|
||||
msg_ok "Set up Certbot"
|
||||
|
||||
msg_info "Installing Openresty"
|
||||
curl -fsSL "https://openresty.org/package/pubkey.gpg" | gpg --dearmor -o /etc/apt/trusted.gpg.d/openresty.gpg
|
||||
cat <<'EOF' >/etc/apt/sources.list.d/openresty.sources
|
||||
DEBIAN_VERSION=$(grep -E '^VERSION_CODENAME=' /etc/os-release | cut -d'=' -f2)
|
||||
# Openresty only has bookworm, not trixie - map newer versions to bookworm
|
||||
case "$DEBIAN_VERSION" in
|
||||
trixie|sid) OPENRESTY_SUITE="bookworm" ;;
|
||||
*) OPENRESTY_SUITE="$DEBIAN_VERSION" ;;
|
||||
esac
|
||||
cat <<EOF >/etc/apt/sources.list.d/openresty.sources
|
||||
Types: deb
|
||||
URIs: http://openresty.org/package/debian/
|
||||
Suites: bookworm
|
||||
Suites: ${OPENRESTY_SUITE}
|
||||
Components: openresty
|
||||
Signed-By: /etc/apt/trusted.gpg.d/openresty.gpg
|
||||
EOF
|
||||
|
||||
@@ -13,65 +13,20 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt install -y \
|
||||
lsb-release \
|
||||
apache2 \
|
||||
composer
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
PHP_VERSION="8.4" PHP_MODULE="mysql,sqlite3" PHP_APACHE="YES" PHP_FPM="YES" setup_php
|
||||
setup_composer
|
||||
setup_mariadb
|
||||
|
||||
msg_info "Adding PHP8.4 Repository"
|
||||
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
||||
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
||||
cat <<EOF >/etc/apt/sources.list.d/php.sources
|
||||
Types: deb
|
||||
URIs: https://packages.sury.org/php/
|
||||
Suites: $(lsb_release -sc)
|
||||
Components: main
|
||||
Signed-By: /usr/share/keyrings/deb.sury.org-php.gpg
|
||||
EOF
|
||||
$STD apt update
|
||||
msg_ok "Added PHP8.4 Repository"
|
||||
|
||||
msg_info "Installing PHP"
|
||||
$STD apt remove -y php8.2*
|
||||
$STD apt install -y \
|
||||
php8.4 \
|
||||
php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,sqlite3,fpm} \
|
||||
libapache2-mod-php8.4
|
||||
msg_info "Installed PHP"
|
||||
|
||||
msg_info "Setting up MariaDB"
|
||||
DB_NAME=panel
|
||||
DB_USER=pelican
|
||||
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||
$STD mariadb -u root -e "CREATE DATABASE $DB_NAME;"
|
||||
$STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
|
||||
$STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
||||
{
|
||||
echo "Pelican Panel-Credentials"
|
||||
echo "Pelican Panel Database User: $DB_USER"
|
||||
echo "Pelican Panel Database Password: $DB_PASS"
|
||||
echo "Pelican Panel Database Name: $DB_NAME"
|
||||
} >>~/pelican-panel.creds
|
||||
msg_ok "Set up MariaDB"
|
||||
MARIADB_DB_NAME="panel" MARIADB_DB_USER="pelican" setup_mariadb_db
|
||||
fetch_and_deploy_gh_release "pelican-panel" "pelican-dev/panel" "prebuild" "latest" "/opt/pelican-panel" "panel.tar.gz"
|
||||
|
||||
msg_info "Installing Pelican Panel"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/pelican-dev/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
mkdir /opt/pelican-panel
|
||||
cd /opt/pelican-panel
|
||||
curl -fsSL "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz" -o "panel.tar.gz"
|
||||
tar -xzf "panel.tar.gz"
|
||||
COMPOSER_ALLOW_SUPERUSER=1 $STD composer install --no-dev --optimize-autoloader --no-interaction
|
||||
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
||||
$STD php artisan p:environment:setup
|
||||
$STD php artisan p:environment:queue-service --no-interaction
|
||||
echo "* * * * * php /opt/pelican-panel/artisan schedule:run >> /dev/null 2>&1" | crontab -u www-data -
|
||||
chown -R www-data:www-data /opt/pelican-panel
|
||||
chmod -R 755 /opt/pelican-panel/storage /opt/pelican-panel/bootstrap/cache/
|
||||
rm -rf "/opt/pelican-panel/panel.tar.gz"
|
||||
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
|
||||
msg_ok "Installed Pelican Panel"
|
||||
|
||||
msg_info "Creating Service"
|
||||
|
||||
@@ -15,19 +15,14 @@ update_os
|
||||
|
||||
msg_info "Installing Docker"
|
||||
DOCKER_CONFIG_PATH='/etc/docker/daemon.json'
|
||||
mkdir -p $(dirname $DOCKER_CONFIG_PATH)
|
||||
echo -e '{\n "log-driver": "journald"\n}' >/etc/docker/daemon.json
|
||||
mkdir -p "$(dirname $DOCKER_CONFIG_PATH)"
|
||||
echo -e '{\n "log-driver": "journald"\n}' >"$DOCKER_CONFIG_PATH"
|
||||
$STD sh <(curl -fsSL https://get.docker.com)
|
||||
systemctl enable -q --now docker
|
||||
msg_ok "Installed Docker"
|
||||
|
||||
msg_info "Installing Pelican Wings"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/pelican-dev/wings/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl -fsSL "https://github.com/pelican-dev/wings/releases/download/v${RELEASE}/wings_linux_amd64" -o "/usr/local/bin/wings"
|
||||
chmod u+x /usr/local/bin/wings
|
||||
fetch_and_deploy_gh_release "wings" "pelican-dev/wings" "singlefile" "latest" "/usr/local/bin" "wings_linux_amd64"
|
||||
mkdir -p /etc/pelican /var/run/wings
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_ok "Installed Pelican Wings"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/wings.service
|
||||
|
||||
@@ -17,6 +17,8 @@ read -r -p "${TAB3}What public URL do you want to use (e.g. pocketid.mydomain.co
|
||||
fetch_and_deploy_gh_release "pocket-id" "pocket-id/pocket-id" "singlefile" "latest" "/opt/pocket-id/" "pocket-id-linux-amd64"
|
||||
|
||||
msg_info "Configuring Pocket ID"
|
||||
ENCRYPTION_KEY=$(openssl rand -base64 32)
|
||||
|
||||
cat <<EOF >/opt/pocket-id/.env
|
||||
APP_ENV=production
|
||||
APP_URL=https://${public_url}
|
||||
@@ -24,6 +26,7 @@ TRUST_PROXY=false
|
||||
# MAXMIND_LICENSE_KEY=
|
||||
PORT=1411
|
||||
HOST=0.0.0.0
|
||||
ENCRYPTION_KEY=${ENCRYPTION_KEY}
|
||||
EOF
|
||||
msg_ok "Configured Pocket ID"
|
||||
|
||||
|
||||
@@ -50,6 +50,8 @@ mv /opt/photon/photon-*.jar /opt/photon/photon.jar
|
||||
msg_info "Installing Nginx Tile Cache"
|
||||
mkdir -p /var/cache/nginx/tiles
|
||||
cat <<EOF >/etc/nginx/nginx.conf
|
||||
user www-data;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
@@ -68,7 +70,8 @@ http {
|
||||
}
|
||||
}
|
||||
EOF
|
||||
chown -R www-data:www-data /var/cache/nginx/tiles
|
||||
chown -R www-data:www-data /var/cache/nginx
|
||||
chmod -R 750 /var/cache/nginx
|
||||
systemctl restart nginx
|
||||
msg_info "Installed Nginx Tile Cache"
|
||||
|
||||
|
||||
@@ -17,18 +17,13 @@ msg_info "Installing Dependencies"
|
||||
$STD apt install -y sqlite3
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
setup_go
|
||||
setup_deb822_repo \
|
||||
"sftpgo" \
|
||||
"https://ftp.osuosl.org/pub/sftpgo/apt/gpg.key" \
|
||||
"https://ftp.osuosl.org/pub/sftpgo/apt" \
|
||||
"trixie"
|
||||
|
||||
msg_info "Installing SFTPGo"
|
||||
curl -fsSL https://ftp.osuosl.org/pub/sftpgo/apt/gpg.key | gpg --dearmor -o /usr/share/keyrings/sftpgo-archive-keyring.gpg
|
||||
cat <<EOF >/etc/apt/sources.list.d/sftpgo.sources
|
||||
Types: deb
|
||||
URIs: https://ftp.osuosl.org/pub/sftpgo/apt
|
||||
Suites: bookworm
|
||||
Components: main
|
||||
Signed-By: /usr/share/keyrings/sftpgo-archive-keyring.gpg
|
||||
EOF
|
||||
$STD apt update
|
||||
$STD apt install -y sftpgo
|
||||
msg_ok "Installed SFTPGo"
|
||||
|
||||
|
||||
@@ -2783,6 +2783,7 @@ build_container() {
|
||||
export PCT_OSTYPE="$var_os"
|
||||
export PCT_OSVERSION="$var_version"
|
||||
export PCT_DISK_SIZE="$DISK_SIZE"
|
||||
export IPV6_METHOD="$IPV6_METHOD"
|
||||
|
||||
# DEV_MODE exports (optional, for debugging)
|
||||
export BUILD_LOG="$BUILD_LOG"
|
||||
|
||||
Reference in New Issue
Block a user