Compare commits

...

44 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
cc1117db5d Update CHANGELOG.md (#10545)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-05 00:15:27 +00:00
community-scripts-pr-app[bot]
a1005795fc Update versions.json (#10544)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-05 01:15:01 +01:00
community-scripts-pr-app[bot]
4f2fb3c6cc Update CHANGELOG.md (#10542)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-04 22:11:53 +00:00
Rémi Bédard-Couture
cd8991875b Export IPV6_METHOD to trigger verb_ip6() function (#10538) 2026-01-04 23:11:29 +01:00
community-scripts-pr-app[bot]
c6a2548f10 Update CHANGELOG.md (#10541)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-04 22:09:31 +00:00
Slaviša Arežina
ad22b8ddd4 Update config_path in prowlarr.json (#10504) 2026-01-04 23:09:08 +01:00
community-scripts-pr-app[bot]
03f805e54b Update CHANGELOG.md (#10540)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-04 22:08:09 +00:00
Slaviša Arežina
5f67c385b8 PocketID: Update PocketID for 2.x (#10506)
* Update PocketID for 2.x

* Update env var
2026-01-04 23:07:44 +01:00
community-scripts-pr-app[bot]
eeb4c0a860 Update CHANGELOG.md (#10539)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-04 22:07:17 +00:00
Tobias
266a23d319 fix: reitti: nginx (#10511)
* fix: reitti: nginx

* fix: reitti: nginx
2026-01-04 23:06:56 +01:00
community-scripts-pr-app[bot]
7cafd046ca Update CHANGELOG.md (#10537)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-04 22:06:20 +00:00
Slaviša Arežina
41c8c4ce0b Refactor (#10518) 2026-01-04 23:05:51 +01:00
community-scripts-pr-app[bot]
a4f62116c9 Update CHANGELOG.md (#10536)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-04 22:04:11 +00:00
CanbiZ (MickLesk)
3cd02aac77 MagicMirror: bump to nodejs 24 (#10534) 2026-01-04 23:03:45 +01:00
community-scripts-pr-app[bot]
aebb4c3a55 Update CHANGELOG.md (#10531)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-04 19:51:06 +00:00
community-scripts-pr-app[bot]
a30c6fc3a9 Update CHANGELOG.md (#10530)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-04 19:50:57 +00:00
Slaviša Arežina
dbe2c553fe Refactor (#10517) 2026-01-04 20:50:43 +01:00
community-scripts-pr-app[bot]
195f073ea3 Update CHANGELOG.md (#10529)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-04 19:50:35 +00:00
Slaviša Arežina
57d43f1a94 Refactor (#10516) 2026-01-04 20:50:07 +01:00
community-scripts-pr-app[bot]
11dced98c2 Update CHANGELOG.md (#10527)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-04 17:33:34 +00:00
Slaviša Arežina
d025bf1cf6 Refactor (#10519) 2026-01-04 18:33:09 +01:00
community-scripts-pr-app[bot]
7cd1546135 Update versions.json (#10526)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-04 13:05:53 +01:00
community-scripts-pr-app[bot]
64e8aaab03 Update CHANGELOG.md (#10513)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-04 00:15:54 +00:00
community-scripts-pr-app[bot]
7c3e338aae Update versions.json (#10512)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-04 01:15:34 +01:00
community-scripts-pr-app[bot]
f6eab1c6a0 Update CHANGELOG.md (#10510)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-03 15:18:18 +00:00
Slaviša Arežina
254ea64c99 Preserve log files (#10509) 2026-01-03 16:17:53 +01:00
community-scripts-pr-app[bot]
e02023a2fc Update versions.json (#10507)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-03 13:05:48 +01:00
community-scripts-pr-app[bot]
3befc843c1 Update CHANGELOG.md (#10503)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-03 09:39:41 +00:00
community-scripts-pr-app[bot]
7a88f38789 Update CHANGELOG.md (#10502)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-03 09:39:33 +00:00
Slaviša Arežina
d8788bd935 Update Wireguard notes URL to the new link (#10496) 2026-01-03 10:39:16 +01:00
community-scripts-pr-app[bot]
a5f4ab4c71 Update CHANGELOG.md (#10501)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-03 09:39:08 +00:00
community-scripts-pr-app[bot]
de1bc809eb Update CHANGELOG.md (#10500)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-03 09:38:53 +00:00
AZFAR AZMAN
09899b2824 Fix ownership and permissions for InvoiceNinja setup (#10298)
Updated ownership and permissions for InvoiceNinja directories.
2026-01-03 10:38:43 +01:00
community-scripts-pr-app[bot]
1739745aca Update CHANGELOG.md (#10499)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-03 09:38:31 +00:00
Slaviša Arežina
450c116723 Update database credentials message format (#10497) 2026-01-03 10:38:05 +01:00
community-scripts-pr-app[bot]
e93e87b0bc Update CHANGELOG.md (#10495)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-03 08:54:08 +00:00
Ilya Semenov
136e3f0405 Fix headscale Caddyfile to pass non-API URLs (#10493) 2026-01-03 09:53:46 +01:00
community-scripts-pr-app[bot]
bf1b43ecf5 Update CHANGELOG.md (#10490)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-03 00:13:54 +00:00
community-scripts-pr-app[bot]
7d3437d4b3 Update versions.json (#10489)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-03 01:13:26 +01:00
community-scripts-pr-app[bot]
12599f359f Update CHANGELOG.md (#10487)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-02 20:21:27 +00:00
Copilot
8c0fda523e Fix Intel Level Zero package conflict on Debian 13 (#10467)
* Initial plan

* Fix Intel Level Zero package conflict on Debian 13

Co-authored-by: MickLesk <47820557+MickLesk@users.noreply.github.com>

* Add numeric validation for VERSION_ID comparison

Co-authored-by: MickLesk <47820557+MickLesk@users.noreply.github.com>

* Use existing get_os_info and is_debian functions

Co-authored-by: MickLesk <47820557+MickLesk@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: MickLesk <47820557+MickLesk@users.noreply.github.com>
2026-01-02 21:21:06 +01:00
community-scripts-pr-app[bot]
eb9cee4fab Update versions.json (#10480)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-02 13:06:07 +01:00
community-scripts-pr-app[bot]
f464d9d4cb Update CHANGELOG.md (#10477)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-02 09:05:04 +00:00
Joel Shprentz
6faef00835 Extend guidance for changing the immich upload location for #10447 (#10475) 2026-01-02 10:04:43 +01:00
27 changed files with 331 additions and 308 deletions

View File

@@ -10,8 +10,69 @@
> [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2026-01-05
## 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
- #### 🐞 Bug Fixes
- Fix ownership and permissions for InvoiceNinja setup [@twinzdragonz](https://github.com/twinzdragonz) ([#10298](https://github.com/community-scripts/ProxmoxVE/pull/10298))
- Fix headscale Caddyfile to pass non-API URLs [@IlyaSemenov](https://github.com/IlyaSemenov) ([#10493](https://github.com/community-scripts/ProxmoxVE/pull/10493))
### 💾 Core
- #### 🔧 Refactor
- [core]: Preserve log files [@tremor021](https://github.com/tremor021) ([#10509](https://github.com/community-scripts/ProxmoxVE/pull/10509))
### ❔ Uncategorized
- Wireguard: Update WGDashboard notes URL to the new link [@tremor021](https://github.com/tremor021) ([#10496](https://github.com/community-scripts/ProxmoxVE/pull/10496))
- InvoiceNinja: Update database credentias information [@tremor021](https://github.com/tremor021) ([#10497](https://github.com/community-scripts/ProxmoxVE/pull/10497))
## 2026-01-02
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Fix Intel Level Zero package conflict on Debian 13 [@Copilot](https://github.com/Copilot) ([#10467](https://github.com/community-scripts/ProxmoxVE/pull/10467))
### ❔ Uncategorized
- Extend guidance for changing the immich upload location for #10447 [@jshprentz](https://github.com/jshprentz) ([#10475](https://github.com/community-scripts/ProxmoxVE/pull/10475))
## 2026-01-01
### 🚀 Updated Scripts

View File

@@ -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

View File

@@ -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

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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

View File

@@ -33,6 +33,8 @@ function update_script() {
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 +53,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

View File

@@ -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
}

View File

@@ -23,7 +23,7 @@
"ram": 2048,
"hdd": 5,
"os": "debian",
"version": "12"
"version": "13"
}
}
],

View File

@@ -45,7 +45,7 @@
"type": "info"
},
{
"text": "To change upload location, edit 'IMMICH_MEDIA_LOCATION' in `/opt/immich/.env`, and create the symlink 'upload' in /opt/immich/app & /opt/immich/app/machine-learning to your new upload location",
"text": "To change upload location, edit 'IMMICH_MEDIA_LOCATION' in `/opt/immich/.env`, retarget the symlink 'upload' in /opt/immich/app and /opt/immich/app/machine-learning to your new upload location, copy the default upload location `/opt/immich/upload` and its contents to the new upload location, confirm that the new upload location and its contents are owned by `immich:immich`, and restart the Immich server. See `https://github.com/community-scripts/ProxmoxVE/discussions/5075` for more information.",
"type": "info"
},
{

View File

@@ -37,7 +37,7 @@
"type": "info"
},
{
"text": "Database credentials are stored in ~/invoiceninja.creds",
"text": "Database credentials are stored in `~/invoiceninja.creds`. Use them in the above initial configuration step.",
"type": "info"
},
{

View File

@@ -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": [
{

View File

@@ -1,53 +1,78 @@
[
{
"name": "alexta69/metube",
"version": "2026.01.01",
"date": "2026-01-01T21:28:41Z"
"name": "morpheus65535/bazarr",
"version": "v1.5.4",
"date": "2026-01-04T22:41:00Z"
},
{
"name": "ZoeyVid/NPMplus",
"version": "2025-05-07-r1",
"date": "2025-05-07T12:18:42Z"
"name": "Part-DB/Part-DB-server",
"version": "v2.4.0",
"date": "2026-01-04T21:10:51Z"
},
{
"name": "MagicMirrorOrg/MagicMirror",
"version": "v2.34.0",
"date": "2026-01-01T14:48:28Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "develop-20251228",
"date": "2025-12-28T05:59:54Z"
},
{
"name": "karakeep-app/karakeep",
"version": "sdk/v0.30.0",
"date": "2026-01-01T14:18:24Z"
},
{
"name": "ghostfolio/ghostfolio",
"version": "2.226.0",
"date": "2026-01-01T14:17:53Z"
},
{
"name": "Koenkk/zigbee2mqtt",
"version": "2.7.2",
"date": "2026-01-01T13:43:47Z"
"name": "pocket-id/pocket-id",
"version": "v2.1.0",
"date": "2026-01-04T20:32:58Z"
},
{
"name": "rcourtman/Pulse",
"version": "v5.0.8",
"date": "2026-01-01T10:59:55Z"
"version": "v5.0.11",
"date": "2026-01-04T19:48:21Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "fumadocs-obsidian@0.0.8",
"date": "2026-01-01T08:04:20Z"
"name": "scanopy/scanopy",
"version": "v0.13.0",
"date": "2026-01-04T19:42:58Z"
},
{
"name": "booklore-app/booklore",
"version": "v1.16.4",
"date": "2026-01-04T18:36:03Z"
},
{
"name": "actualbudget/actual",
"version": "v26.1.0",
"date": "2026-01-04T17:07:30Z"
},
{
"name": "maxdorninger/MediaManager",
"version": "v1.12.0",
"date": "2026-01-04T14:04:01Z"
},
{
"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": "Jackett/Jackett",
"version": "v0.24.652",
"date": "2026-01-01T05:55:36Z"
"version": "v0.24.717",
"date": "2026-01-04T05:59:17Z"
},
{
"name": "theonedev/onedev",
"version": "v14.0.1",
"date": "2026-01-04T05:40:48Z"
},
{
"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": "steveiliop56/tinyauth",
@@ -56,24 +81,129 @@
},
{
"name": "jeedom/core",
"version": "4.5.1",
"date": "2026-01-01T00:27:04Z"
"version": "4.5.2",
"date": "2026-01-04T00:27:05Z"
},
{
"name": "nickheyer/discopanel",
"version": "v1.0.19",
"date": "2026-01-03T23:21:15Z"
},
{
"name": "ghostfolio/ghostfolio",
"version": "2.228.0",
"date": "2026-01-03T16:38:36Z"
},
{
"name": "ZoeyVid/NPMplus",
"version": "2025-05-07-r1",
"date": "2025-05-07T12:18:42Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.49.1",
"date": "2026-01-03T13:13:12Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "create-fumadocs-app@16.0.36",
"date": "2026-01-03T11:13:01Z"
},
{
"name": "requarks/wiki",
"version": "v2.5.309",
"date": "2026-01-03T08:32:10Z"
},
{
"name": "TwiN/gatus",
"version": "v5.34.0",
"date": "2026-01-03T03:12:12Z"
},
{
"name": "outline/outline",
"version": "v1.2.0-2",
"date": "2026-01-03T02:42:11Z"
},
{
"name": "9001/copyparty",
"version": "v1.20.0",
"date": "2026-01-02T23:40:23Z"
},
{
"name": "karakeep-app/karakeep",
"version": "android/v1.8.5-0",
"date": "2026-01-02T22:35:27Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.4.6",
"date": "2026-01-02T22:20:47Z"
},
{
"name": "keycloak/keycloak",
"version": "26.4.7",
"date": "2025-12-01T08:14:11Z"
},
{
"name": "mealie-recipes/mealie",
"version": "v3.9.2",
"date": "2026-01-02T19:40:09Z"
},
{
"name": "Dokploy/dokploy",
"version": "v0.26.3",
"date": "2026-01-02T17:06:30Z"
},
{
"name": "alam00000/bentopdf",
"version": "v1.15.4",
"date": "2026-01-02T16:20:33Z"
},
{
"name": "metabase/metabase",
"version": "v0.57.x",
"date": "2026-01-02T15:44:38Z"
},
{
"name": "livebook-dev/livebook",
"version": "nightly",
"date": "2026-01-02T12:46:49Z"
},
{
"name": "gotify/server",
"version": "v2.8.0",
"date": "2026-01-02T11:56:16Z"
},
{
"name": "n8n-io/n8n",
"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",
"date": "2026-01-02T06:27:23Z"
},
{
"name": "MagicMirrorOrg/MagicMirror",
"version": "v2.34.0",
"date": "2026-01-01T14:48:28Z"
},
{
"name": "Koenkk/zigbee2mqtt",
"version": "2.7.2",
"date": "2026-01-01T13:43:47Z"
},
{
"name": "esphome/esphome",
"version": "2025.12.4",
"date": "2025-12-31T22:42:42Z"
},
{
"name": "metabase/metabase",
"version": "v0.57.x",
"date": "2025-12-31T20:25:53Z"
},
{
"name": "scanopy/scanopy",
"version": "v0.12.10",
"date": "2025-12-31T20:19:18Z"
},
{
"name": "gtsteffaniak/filebrowser",
"version": "v1.1.5-beta",
@@ -99,11 +229,6 @@
"version": "0.300.2",
"date": "2025-12-31T15:05:51Z"
},
{
"name": "fccview/jotty",
"version": "1.15.0",
"date": "2025-12-31T13:46:49Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.1.38",
@@ -129,26 +254,11 @@
"version": "v0.7.0",
"date": "2025-12-31T07:50:53Z"
},
{
"name": "outline/outline",
"version": "v1.2.0-1",
"date": "2025-12-31T04:07:38Z"
},
{
"name": "wazuh/wazuh",
"version": "v5.0.0-alpha0",
"date": "2025-12-31T01:18:10Z"
},
{
"name": "booklore-app/booklore",
"version": "v1.16.2",
"date": "2025-12-31T00:37:08Z"
},
{
"name": "livebook-dev/livebook",
"version": "nightly",
"date": "2025-12-30T23:27:09Z"
},
{
"name": "meilisearch/meilisearch",
"version": "prototype-v1.31.0-support-protocol-negociation-http.0",
@@ -179,26 +289,11 @@
"version": "jenkins-2.544",
"date": "2025-12-30T11:00:27Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3",
"date": "2025-09-20T12:12:33Z"
},
{
"name": "nickheyer/discopanel",
"version": "v1.0.18",
"date": "2025-12-30T05:52:02Z"
},
{
"name": "javedh-dev/tracktor",
"version": "1.1.0",
"date": "2025-12-30T04:42:18Z"
},
{
"name": "mealie-recipes/mealie",
"version": "v3.9.1",
"date": "2025-12-30T01:56:00Z"
},
{
"name": "karlomikus/bar-assistant",
"version": "v5.11.2",
@@ -214,26 +309,11 @@
"version": "v3.6.6",
"date": "2025-12-29T15:56:09Z"
},
{
"name": "keycloak/keycloak",
"version": "26.4.7",
"date": "2025-12-01T08:14:11Z"
},
{
"name": "ArchiveBox/ArchiveBox",
"version": "v0.8.6rc1",
"date": "2025-12-29T10:58:49Z"
},
{
"name": "alam00000/bentopdf",
"version": "v1.15.3",
"date": "2025-12-29T09:33:00Z"
},
{
"name": "chrisbenincasa/tunarr",
"version": "v1.0.11",
"date": "2025-12-28T23:39:20Z"
},
{
"name": "Lidarr/Lidarr",
"version": "v3.1.0.4875",
@@ -284,11 +364,6 @@
"version": "v1.5.6",
"date": "2025-12-27T20:29:53Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.4.5",
"date": "2025-12-27T19:40:14Z"
},
{
"name": "sysadminsmedia/homebox",
"version": "v0.22.3",
@@ -299,21 +374,11 @@
"version": "preview-music-support",
"date": "2025-12-26T22:24:19Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.48.0",
"date": "2025-12-26T19:23:50Z"
},
{
"name": "toniebox-reverse-engineering/teddycloud",
"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",
@@ -369,11 +434,6 @@
"version": "v2.32.1",
"date": "2025-12-23T23:28:06Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@2.1.4",
"date": "2025-12-23T20:53:07Z"
},
{
"name": "prometheus-pve/prometheus-pve-exporter",
"version": "v3.8.0",
@@ -429,11 +489,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",
@@ -444,11 +499,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",
@@ -494,11 +544,6 @@
"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",
@@ -669,11 +714,6 @@
"version": "@jupyter-notebook/ui-components@7.6.0-alpha.0",
"date": "2025-12-17T08:35:55Z"
},
{
"name": "9001/copyparty",
"version": "v1.19.23",
"date": "2025-12-17T00:51:11Z"
},
{
"name": "grafana/grafana",
"version": "v12.3.1",
@@ -794,11 +834,6 @@
"version": "v1.71.0",
"date": "2025-12-13T14:38:09Z"
},
{
"name": "Dokploy/dokploy",
"version": "v0.26.2",
"date": "2025-12-13T07:48:09Z"
},
{
"name": "node-red/node-red",
"version": "4.1.2",
@@ -824,11 +859,6 @@
"version": "0.43.1",
"date": "2025-12-11T22:45:52Z"
},
{
"name": "TwiN/gatus",
"version": "v5.33.1",
"date": "2025-12-11T01:59:13Z"
},
{
"name": "gethomepage/homepage",
"version": "v1.8.0",
@@ -899,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",
@@ -929,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",
@@ -969,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",
@@ -1024,11 +1039,6 @@
"version": "v2.4.7",
"date": "2025-11-30T20:59:51Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v1.16.0",
"date": "2025-11-30T17:44:44Z"
},
{
"name": "sabre-io/Baikal",
"version": "0.11.1",
@@ -1394,11 +1404,6 @@
"version": "1.2.39",
"date": "2025-09-25T15:57:02Z"
},
{
"name": "gotify/server",
"version": "v2.7.3",
"date": "2025-09-21T12:07:19Z"
},
{
"name": "mmastrac/stylus",
"version": "v0.17.0",
@@ -1504,11 +1509,6 @@
"version": "1.5.1",
"date": "2025-08-13T15:43:57Z"
},
{
"name": "requarks/wiki",
"version": "v2.5.308",
"date": "2025-08-13T07:09:29Z"
},
{
"name": "ioBroker/ioBroker",
"version": "1012-08-09",

View File

@@ -44,7 +44,7 @@
},
"notes": [
{
"text": "Wireguard and WGDashboard are not the same. More info: `https://docs.wgdashboard.dev/what-is-wireguard-what-is-wgdashboard.html`",
"text": "Wireguard and WGDashboard are not the same. More info: `https://wgdashboard.dev/`",
"type": "info"
},
{

View File

@@ -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

View File

@@ -28,7 +28,7 @@ if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
redir /admin /admin/
handle_path /admin* {
handle_path /admin/* {
root * /opt/headscale-admin
encode gzip zstd
@@ -36,14 +36,11 @@ handle_path /admin* {
X-Content-Type-Options nosniff
}
try_files {path} {path}/ /opt/headscale-admin/index.html
try_files {path} /opt/headscale-admin/index.html
file_server
}
handle /api/* {
reverse_proxy localhost:8080
}
reverse_proxy localhost:8080
EOF
caddy fmt --overwrite /etc/caddy/Caddyfile
systemctl start caddy

View File

@@ -86,7 +86,8 @@ EOF
mkdir -p /opt/invoiceninja/bootstrap/cache
mkdir -p /opt/invoiceninja/storage/{app/public,framework/{cache/data,sessions,views},logs}
chown -R www-data:www-data /opt/invoiceninja
chmod -R 775 /opt/invoiceninja/storage /opt/invoiceninja/bootstrap/cache
chown -R www-data:www-data /opt/invoiceninja/storage
chown -R www-data:www-data /opt/invoiceninja/bootstrap/cache
msg_ok "Configured InvoiceNinja"
msg_info "Downloading Chromium for PDF Generation"

View File

@@ -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"

View File

@@ -44,7 +44,18 @@ msg_ok "Set up Intel® Repositories"
setup_hwaccel
msg_info "Installing Intel® Level Zero"
$STD apt -y install intel-level-zero-gpu level-zero level-zero-dev 2>/dev/null || true
# Debian 13+ has newer Level Zero packages in system repos that conflict with Intel repo packages
if is_debian && [[ "$(get_os_version_major)" -ge 13 ]]; then
# Use system packages on Debian 13+ (avoid conflicts with libze1)
$STD apt -y install libze1 libze-dev intel-level-zero-gpu 2>/dev/null || {
msg_warn "Failed to install some Level Zero packages, continuing anyway"
}
else
# Use Intel repository packages for older systems
$STD apt -y install intel-level-zero-gpu level-zero level-zero-dev 2>/dev/null || {
msg_warn "Failed to install Intel Level Zero packages, continuing anyway"
}
fi
msg_ok "Installed Intel® Level Zero"
msg_info "Installing Intel® oneAPI Base Toolkit (Patience)"

View File

@@ -50,7 +50,18 @@ EOF
msg_ok "Set up Intel® Repositories"
msg_info "Installing Intel® Level Zero"
$STD apt -y install intel-level-zero-gpu level-zero level-zero-dev 2>/dev/null || true
# Debian 13+ has newer Level Zero packages in system repos that conflict with Intel repo packages
if is_debian && [[ "$(get_os_version_major)" -ge 13 ]]; then
# Use system packages on Debian 13+ (avoid conflicts with libze1)
$STD apt -y install libze1 libze-dev intel-level-zero-gpu 2>/dev/null || {
msg_warn "Failed to install some Level Zero packages, continuing anyway"
}
else
# Use Intel repository packages for older systems
$STD apt -y install intel-level-zero-gpu level-zero level-zero-dev 2>/dev/null || {
msg_warn "Failed to install Intel Level Zero packages, continuing anyway"
}
fi
msg_ok "Installed Intel® Level Zero"
msg_info "Installing Intel® oneAPI Base Toolkit (Patience)"

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -809,12 +809,6 @@ cleanup_lxc() {
find /tmp /var/tmp -type f -name 'tmp*' -delete 2>/dev/null || true
find /tmp /var/tmp -type f -name 'tempfile*' -delete 2>/dev/null || true
# Truncate writable log files silently (permission errors ignored)
if command -v truncate >/dev/null 2>&1; then
find /var/log -type f -writable -print0 2>/dev/null |
xargs -0 -n1 truncate -s 0 2>/dev/null || true
fi
# Node.js npm - directly remove cache directory
# npm cache clean/verify can fail with ENOTEMPTY errors, so we skip them
if command -v npm &>/dev/null; then
@@ -833,9 +827,6 @@ cleanup_lxc() {
# Composer (PHP)
if command -v composer &>/dev/null; then COMPOSER_ALLOW_SUPERUSER=1 $STD composer clear-cache || true; fi
if command -v journalctl &>/dev/null; then
$STD journalctl --vacuum-time=10m || true
fi
msg_ok "Cleaned"
}