mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-02-03 20:03:25 +01:00
Compare commits
44 Commits
2026-01-01
...
2026-01-04
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc1117db5d | ||
|
|
a1005795fc | ||
|
|
4f2fb3c6cc | ||
|
|
cd8991875b | ||
|
|
c6a2548f10 | ||
|
|
ad22b8ddd4 | ||
|
|
03f805e54b | ||
|
|
5f67c385b8 | ||
|
|
eeb4c0a860 | ||
|
|
266a23d319 | ||
|
|
7cafd046ca | ||
|
|
41c8c4ce0b | ||
|
|
a4f62116c9 | ||
|
|
3cd02aac77 | ||
|
|
aebb4c3a55 | ||
|
|
a30c6fc3a9 | ||
|
|
dbe2c553fe | ||
|
|
195f073ea3 | ||
|
|
57d43f1a94 | ||
|
|
11dced98c2 | ||
|
|
d025bf1cf6 | ||
|
|
7cd1546135 | ||
|
|
64e8aaab03 | ||
|
|
7c3e338aae | ||
|
|
f6eab1c6a0 | ||
|
|
254ea64c99 | ||
|
|
e02023a2fc | ||
|
|
3befc843c1 | ||
|
|
7a88f38789 | ||
|
|
d8788bd935 | ||
|
|
a5f4ab4c71 | ||
|
|
de1bc809eb | ||
|
|
09899b2824 | ||
|
|
1739745aca | ||
|
|
450c116723 | ||
|
|
e93e87b0bc | ||
|
|
136e3f0405 | ||
|
|
bf1b43ecf5 | ||
|
|
7d3437d4b3 | ||
|
|
12599f359f | ||
|
|
8c0fda523e | ||
|
|
eb9cee4fab | ||
|
|
f464d9d4cb | ||
|
|
6faef00835 |
61
CHANGELOG.md
61
CHANGELOG.md
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -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"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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,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",
|
||||
|
||||
@@ -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"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)"
|
||||
|
||||
@@ -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)"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user