mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-03 18:02:50 +00:00
Compare commits
53 Commits
2025-09-30
...
2025-10-04
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9b5fa050c7 | ||
|
|
efb8e0f2f3 | ||
|
|
07eda340ea | ||
|
|
1a37c759c3 | ||
|
|
e39dd5ffa3 | ||
|
|
aded2cbd56 | ||
|
|
2c791b9e41 | ||
|
|
d1786241ec | ||
|
|
73cf6c66e3 | ||
|
|
efc9153926 | ||
|
|
1f4b446788 | ||
|
|
aeafbb1047 | ||
|
|
938609d5eb | ||
|
|
ae6ca4de23 | ||
|
|
dfdf8c0ddb | ||
|
|
4136f5e7e3 | ||
|
|
51302d516e | ||
|
|
ab995bd493 | ||
|
|
ac12051057 | ||
|
|
c3cca616a4 | ||
|
|
b1bca924b9 | ||
|
|
1909e35e62 | ||
|
|
237349ef47 | ||
|
|
e4cf50dfcd | ||
|
|
0c30d8e3e7 | ||
|
|
92999b4db3 | ||
|
|
4a02986de1 | ||
|
|
d06299685f | ||
|
|
71f71fbca9 | ||
|
|
938fb6dc58 | ||
|
|
03d36a6c10 | ||
|
|
8e25b70a25 | ||
|
|
1840cce15f | ||
|
|
1d0ac4ca10 | ||
|
|
deb85bd264 | ||
|
|
348f8863a8 | ||
|
|
74b332b7ec | ||
|
|
2fe3ee667b | ||
|
|
48e3b66342 | ||
|
|
e93dccb0d5 | ||
|
|
168e7b7c2b | ||
|
|
3f54d0d7f4 | ||
|
|
9477677385 | ||
|
|
e58d1dc3d2 | ||
|
|
2a765f58f0 | ||
|
|
8dfb632a4d | ||
|
|
42ae2a4cdc | ||
|
|
36e41aca22 | ||
|
|
6b1141f9de | ||
|
|
97f891d53b | ||
|
|
0c63e64662 | ||
|
|
d83a378af4 | ||
|
|
6820bdcade |
67
CHANGELOG.md
67
CHANGELOG.md
@@ -10,8 +10,75 @@
|
||||
> [!CAUTION]
|
||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||
|
||||
## 2025-10-05
|
||||
|
||||
## 2025-10-04
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- immich: guard /dev/dri permissions so CPU-only installs don’t fail [@mlongwell](https://github.com/mlongwell) ([#8094](https://github.com/community-scripts/ProxmoxVE/pull/8094))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- PosgreSQL: Add version choice [@tremor021](https://github.com/tremor021) ([#8103](https://github.com/community-scripts/ProxmoxVE/pull/8103))
|
||||
|
||||
## 2025-10-03
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- pve-scripts-local ([#8083](https://github.com/community-scripts/ProxmoxVE/pull/8083))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- GLPI: Pin version to v10.0.20 [@tremor021](https://github.com/tremor021) ([#8092](https://github.com/community-scripts/ProxmoxVE/pull/8092))
|
||||
- GLPI: Fix database setup [@tremor021](https://github.com/tremor021) ([#8074](https://github.com/community-scripts/ProxmoxVE/pull/8074))
|
||||
- Overseerr: Increase resources [@tremor021](https://github.com/tremor021) ([#8086](https://github.com/community-scripts/ProxmoxVE/pull/8086))
|
||||
- FIX: post-pve-install.sh just quitting [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#8070](https://github.com/community-scripts/ProxmoxVE/pull/8070))
|
||||
- fix: ensure /etc/pulse exists before chown in update script [@rcourtman](https://github.com/rcourtman) ([#8068](https://github.com/community-scripts/ProxmoxVE/pull/8068))
|
||||
- grist: remove unneeded var [@MickLesk](https://github.com/MickLesk) ([#8060](https://github.com/community-scripts/ProxmoxVE/pull/8060))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Immich: bump version to 2.0.1 [@vhsdream](https://github.com/vhsdream) ([#8090](https://github.com/community-scripts/ProxmoxVE/pull/8090))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Adjust navbar layout for large screen [@BramSuurdje](https://github.com/BramSuurdje) ([#8087](https://github.com/community-scripts/ProxmoxVE/pull/8087))
|
||||
|
||||
## 2025-10-02
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- EMQX: removal logic in emqx update [@MickLesk](https://github.com/MickLesk) ([#8050](https://github.com/community-scripts/ProxmoxVE/pull/8050))
|
||||
- fix FlareSolverr version check to v3.3.25 [@MickLesk](https://github.com/MickLesk) ([#8051](https://github.com/community-scripts/ProxmoxVE/pull/8051))
|
||||
|
||||
## 2025-10-01
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- New Script: PhpMyAdmin (Addon) [@MickLesk](https://github.com/MickLesk) ([#8030](https://github.com/community-scripts/ProxmoxVE/pull/8030))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- openwrt: Add conditional logic for EFI disk allocation [@MickLesk](https://github.com/MickLesk) ([#8024](https://github.com/community-scripts/ProxmoxVE/pull/8024))
|
||||
- Plant-IT: Pin version to v0.10.0 [@tremor021](https://github.com/tremor021) ([#8023](https://github.com/community-scripts/ProxmoxVE/pull/8023))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Immich: bump version to 2.0.0 stable [@vhsdream](https://github.com/vhsdream) ([#8041](https://github.com/community-scripts/ProxmoxVE/pull/8041))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Immich: bump version to 1.144.1 [@vhsdream](https://github.com/vhsdream) ([#7994](https://github.com/community-scripts/ProxmoxVE/pull/7994))
|
||||
|
||||
## 2025-09-30
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
@@ -31,7 +31,13 @@ function update_script() {
|
||||
msg_ok "Stopped EMQX"
|
||||
|
||||
msg_info "Removing old EMQX"
|
||||
$STD apt-get remove --purge -y emqx
|
||||
if dpkg -l | grep -q "^ii\s\+emqx\s"; then
|
||||
$STD apt-get remove --purge -y emqx
|
||||
elif dpkg -l | grep -q "^ii\s\+emqx-enterprise\s"; then
|
||||
$STD apt-get remove --purge -y emqx-enterprise
|
||||
else
|
||||
msg_ok "No old EMQX package found"
|
||||
fi
|
||||
msg_ok "Removed old EMQX"
|
||||
|
||||
msg_info "Downloading EMQX v${RELEASE}"
|
||||
|
||||
@@ -28,7 +28,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if check_for_gh_release "flaresolverr" "FlareSolverr/FlareSolverr" "3.3.5"; then
|
||||
if check_for_gh_release "flaresolverr" "FlareSolverr/FlareSolverr" "3.3.25"; then
|
||||
msg_info "Stopping service"
|
||||
systemctl stop flaresolverr
|
||||
msg_ok "Stopped service"
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
____ __ _
|
||||
/ __ \___ / /_(_)___
|
||||
/ /_/ / _ \/ __/ / __ \
|
||||
/ ____/ __/ /_/ / /_/ /
|
||||
/_/ \___/\__/_/\____/
|
||||
|
||||
6
ct/headers/pve-scripts-local
Normal file
6
ct/headers/pve-scripts-local
Normal file
@@ -0,0 +1,6 @@
|
||||
____ _ ________ _____ _ __ __ __
|
||||
/ __ \ | / / ____/ / ___/__________(_)___ / /______ / / ____ _________ _/ /
|
||||
/ /_/ / | / / __/______\__ \/ ___/ ___/ / __ \/ __/ ___/_____/ / / __ \/ ___/ __ `/ /
|
||||
/ ____/| |/ / /__/_____/__/ / /__/ / / / /_/ / /_(__ )_____/ /___/ /_/ / /__/ /_/ / /
|
||||
/_/ |___/_____/ /____/\___/_/ /_/ .___/\__/____/ /_____/\____/\___/\__,_/_/
|
||||
/_/
|
||||
@@ -74,7 +74,7 @@ function update_script() {
|
||||
done
|
||||
msg_ok "Image-processing libraries up to date"
|
||||
fi
|
||||
RELEASE="1.143.1"
|
||||
RELEASE="2.0.1"
|
||||
if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop immich-web
|
||||
@@ -158,6 +158,7 @@ EOF
|
||||
|
||||
cd "$SRC_DIR"/machine-learning
|
||||
mkdir -p "$ML_DIR" && chown -R immich:immich "$ML_DIR"
|
||||
chown immich:immich ./uv.lock
|
||||
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
|
||||
if [[ -f ~/.openvino ]]; then
|
||||
msg_info "Updating HW-accelerated machine-learning"
|
||||
@@ -190,6 +191,7 @@ EOF
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
$STD apt clean -y
|
||||
msg_ok "Cleaned"
|
||||
systemctl restart immich-ml immich-web
|
||||
fi
|
||||
|
||||
@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
||||
APP="Overseerr"
|
||||
var_tags="${var_tags:-media}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_disk="${var_disk:-8}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-12}"
|
||||
|
||||
@@ -32,8 +32,10 @@ function update_script() {
|
||||
systemctl stop plant-it
|
||||
msg_ok "Stopped $APP"
|
||||
|
||||
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "plant-it" "MDeLuise/plant-it" "singlefile" "latest" "/opt/plant-it/backend" "server.jar"
|
||||
fetch_and_deploy_gh_release "plant-it-front" "MDeLuise/plant-it" "prebuild" "latest" "/opt/plant-it/frontend" "client.tar.gz"
|
||||
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "plant-it" "MDeLuise/plant-it" "singlefile" "0.10.0" "/opt/plant-it/backend" "server.jar"
|
||||
fetch_and_deploy_gh_release "plant-it-front" "MDeLuise/plant-it" "prebuild" "0.10.0" "/opt/plant-it/frontend" "client.tar.gz"
|
||||
msg_warn "Application is updated to latest Web version (v0.10.0). There will be no more updates available."
|
||||
msg_warn "Please read: https://github.com/MDeLuise/plant-it/releases/tag/1.0.0"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start plant-it
|
||||
|
||||
@@ -40,7 +40,10 @@ function update_script() {
|
||||
|
||||
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
|
||||
ln -sf /opt/pulse/bin/pulse /usr/local/bin/pulse
|
||||
chown -R pulse:pulse /etc/pulse /opt/pulse
|
||||
mkdir -p /etc/pulse
|
||||
chown pulse:pulse /etc/pulse
|
||||
chown -R pulse:pulse /opt/pulse
|
||||
chmod 700 /etc/pulse
|
||||
if [[ -f "$SERVICE_PATH"/pulse-backend.service ]]; then
|
||||
mv "$SERVICE_PATH"/pulse-backend.service "$SERVICE_PATH"/pulse.service
|
||||
fi
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2025 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: michelroegl-brunner
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://petio.tv/
|
||||
# Source: https://www.debian.org/
|
||||
|
||||
APP="Petio"
|
||||
var_tags="${var_tags:-media}"
|
||||
APP="PVE-Scripts-Local"
|
||||
var_tags="${var_tags:-pve-scripts-local}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-1024}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-ubuntu}"
|
||||
var_version="${var_version:-20.04}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
@@ -22,16 +23,11 @@ function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /opt/Petio ]]; then
|
||||
if [[ ! -d /var ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating $APP"
|
||||
systemctl stop petio.service
|
||||
curl -fsSL https://petio.tv/releases/latest -o petio-latest.zip
|
||||
$STD unzip petio-latest.zip -d /opt/Petio
|
||||
systemctl start petio.service
|
||||
msg_ok "Updated $APP"
|
||||
msg_info "No Update function implementd"
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -42,4 +38,4 @@ description
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7777${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||
@@ -20,7 +20,7 @@
|
||||
"script": "ct/overseerr.sh",
|
||||
"resources": {
|
||||
"cpu": 2,
|
||||
"ram": 2048,
|
||||
"ram": 4096,
|
||||
"hdd": 8,
|
||||
"os": "debian",
|
||||
"version": "12"
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
"name": "Petio",
|
||||
"slug": "petio",
|
||||
"categories": [
|
||||
13
|
||||
],
|
||||
"date_created": "2024-06-12",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 7777,
|
||||
"documentation": "https://docs.petio.tv/",
|
||||
"website": "https://petio.tv/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/petio.webp",
|
||||
"config_path": "",
|
||||
"description": "Petio is a third party companion app available to Plex server owners to allow their users to request, review and discover content.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/petio.sh",
|
||||
"resources": {
|
||||
"cpu": 2,
|
||||
"ram": 1024,
|
||||
"hdd": 4,
|
||||
"os": "ubuntu",
|
||||
"version": "20.04"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": []
|
||||
}
|
||||
44
frontend/public/json/phpmyadmin.json
Normal file
44
frontend/public/json/phpmyadmin.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"name": "PhpMyAdmin",
|
||||
"slug": "phpmyadmin",
|
||||
"categories": [
|
||||
8
|
||||
],
|
||||
"date_created": "2025-10-01",
|
||||
"type": "addon",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": null,
|
||||
"documentation": "https://www.phpmyadmin.net/docs/",
|
||||
"config_path": "Debian/Ubuntu: /var/www/html/phpMyAdmin | Alpine: /usr/share/phpmyadmin",
|
||||
"website": "https://www.phpmyadmin.net/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/phpmyadmin.webp",
|
||||
"description": "phpMyAdmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web. phpMyAdmin supports a wide range of operations on MySQL and MariaDB. Frequently used operations (managing databases, tables, columns, relations, indexes, users, permissions, etc) can be performed via the user interface, while you still have the ability to directly execute any SQL statement.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "tools/addon/phpmyadmin.sh",
|
||||
"resources": {
|
||||
"cpu": null,
|
||||
"ram": null,
|
||||
"hdd": null,
|
||||
"os": null,
|
||||
"version": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "Execute within an existing LXC Console",
|
||||
"type": "warning"
|
||||
},
|
||||
{
|
||||
"text": "To update or uninstall run bash call again",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -46,6 +46,10 @@
|
||||
{
|
||||
"text": "Set a password after installation for postgres user by running `echo \"ALTER USER postgres with encrypted password 'your_password';\" | sudo -u postgres psql`",
|
||||
"type": "info"
|
||||
},
|
||||
{
|
||||
"text": "Debian script offers versions `15, 16, 17, 18`, while Alpine script offers versions `15, 16, 17`.",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
35
frontend/public/json/pve-scripts-local.json
Normal file
35
frontend/public/json/pve-scripts-local.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"name": "PVEScriptsLocal",
|
||||
"slug": "pve-scripts-local",
|
||||
"categories": [
|
||||
1
|
||||
],
|
||||
"date_created": "2025-10-03",
|
||||
"type": "ct",
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 3000,
|
||||
"documentation": "https://github.com/community-scripts/ProxmoxVE-Local",
|
||||
"config_path": "/opt/PVEScripts-Local/.env",
|
||||
"website": "https://community-scripts.github.io/ProxmoxVE",
|
||||
"logo": "https://community-scripts.github.io/ProxmoxVE/logo.png",
|
||||
"description": "A modern web-based management interface for Proxmox VE (PVE) helper scripts. This tool provides a user-friendly way to discover, download, and execute community-sourced Proxmox scripts locally with real-time terminal output streaming.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/pve-scripts-local.sh",
|
||||
"resources": {
|
||||
"cpu": 2,
|
||||
"ram": 4096,
|
||||
"hdd": 4,
|
||||
"os": "Debian",
|
||||
"version": "13"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": []
|
||||
}
|
||||
@@ -1,34 +1,294 @@
|
||||
[
|
||||
{
|
||||
"name": "BerriAI/litellm",
|
||||
"version": "v1.77.5-stable",
|
||||
"date": "2025-10-04T23:34:11Z"
|
||||
},
|
||||
{
|
||||
"name": "Ombi-app/Ombi",
|
||||
"version": "v4.47.1",
|
||||
"date": "2025-01-05T21:14:23Z"
|
||||
},
|
||||
{
|
||||
"name": "ollama/ollama",
|
||||
"version": "v0.12.4-rc6",
|
||||
"date": "2025-10-04T18:46:45Z"
|
||||
},
|
||||
{
|
||||
"name": "wizarrrr/wizarr",
|
||||
"version": "v2025.10.1",
|
||||
"date": "2025-10-04T16:59:38Z"
|
||||
},
|
||||
{
|
||||
"name": "SigNoz/signoz",
|
||||
"version": "v0.97.0-rc.2",
|
||||
"date": "2025-10-04T16:21:45Z"
|
||||
},
|
||||
{
|
||||
"name": "gtsteffaniak/filebrowser",
|
||||
"version": "v0.8.8-beta",
|
||||
"date": "2025-10-04T15:56:29Z"
|
||||
},
|
||||
{
|
||||
"name": "silverbulletmd/silverbullet",
|
||||
"version": "2.1.7",
|
||||
"date": "2025-10-04T13:41:43Z"
|
||||
},
|
||||
{
|
||||
"name": "msgbyte/tianji",
|
||||
"version": "v1.27.5",
|
||||
"date": "2025-10-04T11:35:50Z"
|
||||
},
|
||||
{
|
||||
"name": "globaleaks/globaleaks-whistleblowing-software",
|
||||
"version": "v5.0.84",
|
||||
"date": "2025-10-04T08:06:12Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.24.37",
|
||||
"date": "2025-10-04T05:44:18Z"
|
||||
},
|
||||
{
|
||||
"name": "pommee/goaway",
|
||||
"version": "v0.62.10",
|
||||
"date": "2025-10-04T04:41:19Z"
|
||||
},
|
||||
{
|
||||
"name": "ErsatzTV/ErsatzTV",
|
||||
"version": "v25.7.0",
|
||||
"date": "2025-10-04T00:36:45Z"
|
||||
},
|
||||
{
|
||||
"name": "jeedom/core",
|
||||
"version": "4.4.20",
|
||||
"date": "2025-10-04T00:27:10Z"
|
||||
},
|
||||
{
|
||||
"name": "hyperion-project/hyperion.ng",
|
||||
"version": "2.1.1",
|
||||
"date": "2025-06-14T17:45:06Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v3.6.2",
|
||||
"date": "2025-07-17T12:08:03Z"
|
||||
},
|
||||
{
|
||||
"name": "rcourtman/Pulse",
|
||||
"version": "v4.21.0",
|
||||
"date": "2025-10-03T22:38:32Z"
|
||||
},
|
||||
{
|
||||
"name": "Luligu/matterbridge",
|
||||
"version": "3.3.0",
|
||||
"date": "2025-10-03T21:22:14Z"
|
||||
},
|
||||
{
|
||||
"name": "keycloak/keycloak",
|
||||
"version": "26.4.0",
|
||||
"date": "2025-09-30T11:49:13Z"
|
||||
},
|
||||
{
|
||||
"name": "homarr-labs/homarr",
|
||||
"version": "v1.40.0",
|
||||
"date": "2025-10-03T19:14:46Z"
|
||||
},
|
||||
{
|
||||
"name": "home-assistant/core",
|
||||
"version": "2025.10.1",
|
||||
"date": "2025-10-03T18:10:59Z"
|
||||
},
|
||||
{
|
||||
"name": "henrygd/beszel",
|
||||
"version": "v0.13.0",
|
||||
"date": "2025-10-03T18:04:07Z"
|
||||
},
|
||||
{
|
||||
"name": "fuma-nama/fumadocs",
|
||||
"version": "@fumadocs/mdx-remote@1.4.2",
|
||||
"date": "2025-10-03T17:01:32Z"
|
||||
},
|
||||
{
|
||||
"name": "bunkerity/bunkerweb",
|
||||
"version": "v1.6.5",
|
||||
"date": "2025-10-03T16:43:34Z"
|
||||
},
|
||||
{
|
||||
"name": "immich-app/immich",
|
||||
"version": "v2.0.1",
|
||||
"date": "2025-10-03T16:32:01Z"
|
||||
},
|
||||
{
|
||||
"name": "Lidarr/Lidarr",
|
||||
"version": "v2.13.3.4711",
|
||||
"date": "2025-08-28T20:06:24Z"
|
||||
},
|
||||
{
|
||||
"name": "duplicati/duplicati",
|
||||
"version": "v2.1.1.104-2.1.1.104_canary_2025-10-03",
|
||||
"date": "2025-10-03T13:14:48Z"
|
||||
},
|
||||
{
|
||||
"name": "docker/compose",
|
||||
"version": "v2.40.0",
|
||||
"date": "2025-10-03T12:56:38Z"
|
||||
},
|
||||
{
|
||||
"name": "mattermost/mattermost",
|
||||
"version": "mattermost-redux@10.12.0",
|
||||
"date": "2025-09-18T20:15:19Z"
|
||||
},
|
||||
{
|
||||
"name": "pocket-id/pocket-id",
|
||||
"version": "v1.12.0",
|
||||
"date": "2025-10-03T10:11:17Z"
|
||||
},
|
||||
{
|
||||
"name": "nzbgetcom/nzbget",
|
||||
"version": "v25.3",
|
||||
"date": "2025-09-01T09:47:06Z"
|
||||
},
|
||||
{
|
||||
"name": "pocketbase/pocketbase",
|
||||
"version": "v0.30.1",
|
||||
"date": "2025-10-03T06:55:25Z"
|
||||
},
|
||||
{
|
||||
"name": "booklore-app/booklore",
|
||||
"version": "v1.4.1",
|
||||
"date": "2025-10-03T06:52:35Z"
|
||||
},
|
||||
{
|
||||
"name": "redis/redis",
|
||||
"version": "8.2.2",
|
||||
"date": "2025-10-03T06:22:38Z"
|
||||
},
|
||||
{
|
||||
"name": "firefly-iii/firefly-iii",
|
||||
"version": "v6.4.0",
|
||||
"date": "2025-09-13T16:38:21Z"
|
||||
},
|
||||
{
|
||||
"name": "mealie-recipes/mealie",
|
||||
"version": "v3.3.1",
|
||||
"date": "2025-10-02T17:10:34Z"
|
||||
},
|
||||
{
|
||||
"name": "jhuckaby/Cronicle",
|
||||
"version": "v0.9.95",
|
||||
"date": "2025-10-02T16:07:18Z"
|
||||
},
|
||||
{
|
||||
"name": "n8n-io/n8n",
|
||||
"version": "n8n@1.112.6",
|
||||
"date": "2025-09-26T10:56:27Z"
|
||||
},
|
||||
{
|
||||
"name": "theonedev/onedev",
|
||||
"version": "v13.0.7",
|
||||
"date": "2025-10-02T14:33:22Z"
|
||||
},
|
||||
{
|
||||
"name": "cockpit-project/cockpit",
|
||||
"version": "348",
|
||||
"date": "2025-10-02T13:51:28Z"
|
||||
},
|
||||
{
|
||||
"name": "kyantech/Palmr",
|
||||
"version": "v3.2.3-beta",
|
||||
"date": "2025-10-02T13:48:14Z"
|
||||
},
|
||||
{
|
||||
"name": "meilisearch/meilisearch",
|
||||
"version": "prototype-docker-alpine-3-22-v2",
|
||||
"date": "2025-10-02T13:11:08Z"
|
||||
},
|
||||
{
|
||||
"name": "apache/tomcat",
|
||||
"version": "10.1.47",
|
||||
"date": "2025-10-02T12:12:04Z"
|
||||
},
|
||||
{
|
||||
"name": "actualbudget/actual",
|
||||
"version": "v25.10.0",
|
||||
"date": "2025-10-02T11:34:39Z"
|
||||
},
|
||||
{
|
||||
"name": "jenkinsci/jenkins",
|
||||
"version": "jenkins-2.530",
|
||||
"date": "2025-09-30T15:42:52Z"
|
||||
},
|
||||
{
|
||||
"name": "laurent22/joplin",
|
||||
"version": "server-v3.4.4",
|
||||
"date": "2025-09-25T13:19:26Z"
|
||||
},
|
||||
{
|
||||
"name": "ipfs/kubo",
|
||||
"version": "v0.38.0",
|
||||
"date": "2025-10-02T01:46:06Z"
|
||||
},
|
||||
{
|
||||
"name": "NodeBB/NodeBB",
|
||||
"version": "v4.6.0",
|
||||
"date": "2025-10-01T18:12:07Z"
|
||||
},
|
||||
{
|
||||
"name": "Koenkk/zigbee2mqtt",
|
||||
"version": "2.6.2",
|
||||
"date": "2025-10-01T17:51:09Z"
|
||||
},
|
||||
{
|
||||
"name": "runtipi/runtipi",
|
||||
"version": "v4.4.0",
|
||||
"date": "2025-09-02T19:26:18Z"
|
||||
},
|
||||
{
|
||||
"name": "Graylog2/graylog2-server",
|
||||
"version": "6.1.16",
|
||||
"date": "2025-10-01T14:58:20Z"
|
||||
},
|
||||
{
|
||||
"name": "glpi-project/glpi",
|
||||
"version": "11.0.0",
|
||||
"date": "2025-10-01T12:00:01Z"
|
||||
},
|
||||
{
|
||||
"name": "authelia/authelia",
|
||||
"version": "v4.39.11",
|
||||
"date": "2025-10-01T11:42:23Z"
|
||||
},
|
||||
{
|
||||
"name": "esphome/esphome",
|
||||
"version": "2025.9.3",
|
||||
"date": "2025-10-01T11:30:07Z"
|
||||
},
|
||||
{
|
||||
"name": "element-hq/synapse",
|
||||
"version": "v1.139.0",
|
||||
"date": "2025-10-01T08:24:16Z"
|
||||
},
|
||||
{
|
||||
"name": "Kozea/Radicale",
|
||||
"version": "v3.5.7.pypi",
|
||||
"date": "2025-10-01T05:32:27Z"
|
||||
},
|
||||
{
|
||||
"name": "HabitRPG/habitica",
|
||||
"version": "v5.41.4",
|
||||
"date": "2025-09-30T22:26:11Z"
|
||||
},
|
||||
{
|
||||
"name": "BerriAI/litellm",
|
||||
"version": "v1.77.5.rc.3",
|
||||
"date": "2025-09-30T22:18:41Z"
|
||||
"name": "zabbix/zabbix",
|
||||
"version": "7.4.3",
|
||||
"date": "2025-09-30T21:49:53Z"
|
||||
},
|
||||
{
|
||||
"name": "mongodb/mongo",
|
||||
"version": "r8.2.1",
|
||||
"date": "2025-09-30T21:46:28Z"
|
||||
},
|
||||
{
|
||||
"name": "rcourtman/Pulse",
|
||||
"version": "v4.16.0",
|
||||
"date": "2025-09-30T21:12:11Z"
|
||||
},
|
||||
{
|
||||
"name": "immich-app/immich",
|
||||
"version": "v1.144.1",
|
||||
"date": "2025-09-30T20:51:13Z"
|
||||
},
|
||||
{
|
||||
"name": "runtipi/runtipi",
|
||||
"version": "nightly",
|
||||
"date": "2025-09-28T18:26:30Z"
|
||||
},
|
||||
{
|
||||
"name": "MediaBrowser/Emby.Releases",
|
||||
"version": "4.9.1.80",
|
||||
@@ -39,16 +299,6 @@
|
||||
"version": "v4.4.2",
|
||||
"date": "2025-09-30T20:16:13Z"
|
||||
},
|
||||
{
|
||||
"name": "redis/redis",
|
||||
"version": "8.4-m01-int",
|
||||
"date": "2025-09-30T20:15:40Z"
|
||||
},
|
||||
{
|
||||
"name": "pommee/goaway",
|
||||
"version": "v0.62.7",
|
||||
"date": "2025-09-30T19:36:37Z"
|
||||
},
|
||||
{
|
||||
"name": "TwiN/gatus",
|
||||
"version": "v5.25.2",
|
||||
@@ -65,9 +315,9 @@
|
||||
"date": "2025-09-30T16:18:10Z"
|
||||
},
|
||||
{
|
||||
"name": "jenkinsci/jenkins",
|
||||
"version": "jenkins-2.530",
|
||||
"date": "2025-09-30T15:42:52Z"
|
||||
"name": "wazuh/wazuh",
|
||||
"version": "coverity-w40-4.14.0",
|
||||
"date": "2025-09-30T15:35:54Z"
|
||||
},
|
||||
{
|
||||
"name": "gristlabs/grist-core",
|
||||
@@ -79,11 +329,6 @@
|
||||
"version": "4.4.46",
|
||||
"date": "2025-09-30T13:21:24Z"
|
||||
},
|
||||
{
|
||||
"name": "meilisearch/meilisearch",
|
||||
"version": "latest",
|
||||
"date": "2025-09-30T13:14:19Z"
|
||||
},
|
||||
{
|
||||
"name": "fallenbagel/jellyseerr",
|
||||
"version": "preview-rename-tags",
|
||||
@@ -94,31 +339,6 @@
|
||||
"version": "e6.0.0",
|
||||
"date": "2025-09-30T12:04:20Z"
|
||||
},
|
||||
{
|
||||
"name": "keycloak/keycloak",
|
||||
"version": "26.4.0",
|
||||
"date": "2025-09-30T11:49:13Z"
|
||||
},
|
||||
{
|
||||
"name": "element-hq/synapse",
|
||||
"version": "v1.139.0",
|
||||
"date": "2025-09-30T11:01:45Z"
|
||||
},
|
||||
{
|
||||
"name": "mattermost/mattermost",
|
||||
"version": "mattermost-redux@10.12.0",
|
||||
"date": "2025-09-18T20:15:19Z"
|
||||
},
|
||||
{
|
||||
"name": "home-assistant/core",
|
||||
"version": "2025.9.4",
|
||||
"date": "2025-09-19T21:09:39Z"
|
||||
},
|
||||
{
|
||||
"name": "silverbulletmd/silverbullet",
|
||||
"version": "2.1.6",
|
||||
"date": "2025-09-30T09:09:13Z"
|
||||
},
|
||||
{
|
||||
"name": "chrisvel/tududi",
|
||||
"version": "v0.82-rc5",
|
||||
@@ -129,26 +349,11 @@
|
||||
"version": "v4.3.0",
|
||||
"date": "2025-09-30T06:54:15Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.24.7",
|
||||
"date": "2025-09-30T05:56:20Z"
|
||||
},
|
||||
{
|
||||
"name": "jeedom/core",
|
||||
"version": "4.4.20",
|
||||
"date": "2025-09-30T00:27:06Z"
|
||||
},
|
||||
{
|
||||
"name": "thomiceli/opengist",
|
||||
"version": "v1.11.1",
|
||||
"date": "2025-09-30T00:24:16Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v3.6.2",
|
||||
"date": "2025-07-17T12:08:03Z"
|
||||
},
|
||||
{
|
||||
"name": "goauthentik/authentik",
|
||||
"version": "version/2025.8.4",
|
||||
@@ -174,51 +379,21 @@
|
||||
"version": "v2.3.3",
|
||||
"date": "2025-09-29T18:53:35Z"
|
||||
},
|
||||
{
|
||||
"name": "esphome/esphome",
|
||||
"version": "2025.9.2",
|
||||
"date": "2025-09-29T18:50:27Z"
|
||||
},
|
||||
{
|
||||
"name": "zabbix/zabbix",
|
||||
"version": "7.0.19",
|
||||
"date": "2025-09-29T17:38:12Z"
|
||||
},
|
||||
{
|
||||
"name": "influxdata/influxdb",
|
||||
"version": "v3.5.0",
|
||||
"date": "2025-09-29T17:33:17Z"
|
||||
"version": "v2.7.12",
|
||||
"date": "2025-05-29T17:08:26Z"
|
||||
},
|
||||
{
|
||||
"name": "sassanix/Warracker",
|
||||
"version": "0.10.1.13",
|
||||
"date": "2025-09-29T17:11:25Z"
|
||||
},
|
||||
{
|
||||
"name": "jhuckaby/Cronicle",
|
||||
"version": "v0.9.93",
|
||||
"date": "2025-09-29T16:24:45Z"
|
||||
},
|
||||
{
|
||||
"name": "msgbyte/tianji",
|
||||
"version": "v1.27.2",
|
||||
"date": "2025-09-29T16:16:21Z"
|
||||
},
|
||||
{
|
||||
"name": "n8n-io/n8n",
|
||||
"version": "n8n@1.112.6",
|
||||
"date": "2025-09-26T10:56:27Z"
|
||||
},
|
||||
{
|
||||
"name": "AdguardTeam/AdGuardHome",
|
||||
"version": "v0.107.67",
|
||||
"date": "2025-09-29T14:45:57Z"
|
||||
},
|
||||
{
|
||||
"name": "NodeBB/NodeBB",
|
||||
"version": "v4.5.2",
|
||||
"date": "2025-09-29T14:04:09Z"
|
||||
},
|
||||
{
|
||||
"name": "MDeLuise/plant-it",
|
||||
"version": "1.0.0",
|
||||
@@ -229,16 +404,6 @@
|
||||
"version": "v1.12.8",
|
||||
"date": "2025-09-29T13:22:59Z"
|
||||
},
|
||||
{
|
||||
"name": "theonedev/onedev",
|
||||
"version": "v13.0.6",
|
||||
"date": "2025-09-29T12:33:56Z"
|
||||
},
|
||||
{
|
||||
"name": "Graylog2/graylog2-server",
|
||||
"version": "7.0.0-beta.2",
|
||||
"date": "2025-09-29T11:28:33Z"
|
||||
},
|
||||
{
|
||||
"name": "jupyter/notebook",
|
||||
"version": "@jupyter-notebook/ui-components@7.5.0-beta.0",
|
||||
@@ -254,11 +419,6 @@
|
||||
"version": "1.0.2",
|
||||
"date": "2025-09-29T04:02:44Z"
|
||||
},
|
||||
{
|
||||
"name": "firefly-iii/firefly-iii",
|
||||
"version": "v6.4.0",
|
||||
"date": "2025-09-13T16:38:21Z"
|
||||
},
|
||||
{
|
||||
"name": "autobrr/autobrr",
|
||||
"version": "v1.67.0",
|
||||
@@ -299,31 +459,11 @@
|
||||
"version": "v1.5.3",
|
||||
"date": "2025-09-20T12:12:33Z"
|
||||
},
|
||||
{
|
||||
"name": "mealie-recipes/mealie",
|
||||
"version": "v3.3.0",
|
||||
"date": "2025-09-28T00:49:34Z"
|
||||
},
|
||||
{
|
||||
"name": "hyperion-project/hyperion.ng",
|
||||
"version": "2.1.1",
|
||||
"date": "2025-06-14T17:45:06Z"
|
||||
},
|
||||
{
|
||||
"name": "moghtech/komodo",
|
||||
"version": "v1.19.5",
|
||||
"date": "2025-09-27T20:59:46Z"
|
||||
},
|
||||
{
|
||||
"name": "Luligu/matterbridge",
|
||||
"version": "3.2.9",
|
||||
"date": "2025-09-27T17:58:53Z"
|
||||
},
|
||||
{
|
||||
"name": "wizarrrr/wizarr",
|
||||
"version": "v2025.9.7",
|
||||
"date": "2025-09-27T17:52:44Z"
|
||||
},
|
||||
{
|
||||
"name": "raydak-labs/configarr",
|
||||
"version": "v1.16.0",
|
||||
@@ -349,21 +489,6 @@
|
||||
"version": "0.3.18",
|
||||
"date": "2025-09-27T10:32:09Z"
|
||||
},
|
||||
{
|
||||
"name": "fuma-nama/fumadocs",
|
||||
"version": "fumadocs-ui@15.8.1",
|
||||
"date": "2025-09-27T09:57:41Z"
|
||||
},
|
||||
{
|
||||
"name": "Kozea/Radicale",
|
||||
"version": "v3.5.7",
|
||||
"date": "2025-09-27T06:16:00Z"
|
||||
},
|
||||
{
|
||||
"name": "ipfs/kubo",
|
||||
"version": "v0.37.0",
|
||||
"date": "2025-08-27T20:03:52Z"
|
||||
},
|
||||
{
|
||||
"name": "Dolibarr/dolibarr",
|
||||
"version": "22.0.2",
|
||||
@@ -379,56 +504,16 @@
|
||||
"version": "v4.104.2",
|
||||
"date": "2025-09-26T22:34:32Z"
|
||||
},
|
||||
{
|
||||
"name": "Ombi-app/Ombi",
|
||||
"version": "v4.47.1",
|
||||
"date": "2025-01-05T21:14:23Z"
|
||||
},
|
||||
{
|
||||
"name": "bastienwirtz/homer",
|
||||
"version": "v25.09.1",
|
||||
"date": "2025-09-26T19:22:16Z"
|
||||
},
|
||||
{
|
||||
"name": "homarr-labs/homarr",
|
||||
"version": "v1.39.0",
|
||||
"date": "2025-09-26T19:15:10Z"
|
||||
},
|
||||
{
|
||||
"name": "bunkerity/bunkerweb",
|
||||
"version": "v1.6.4",
|
||||
"date": "2025-08-18T20:22:07Z"
|
||||
},
|
||||
{
|
||||
"name": "traefik/traefik",
|
||||
"version": "v3.5.3",
|
||||
"date": "2025-09-26T09:31:01Z"
|
||||
},
|
||||
{
|
||||
"name": "wazuh/wazuh",
|
||||
"version": "v4.13.1",
|
||||
"date": "2025-09-25T15:43:49Z"
|
||||
},
|
||||
{
|
||||
"name": "nzbgetcom/nzbget",
|
||||
"version": "v25.3",
|
||||
"date": "2025-09-01T09:47:06Z"
|
||||
},
|
||||
{
|
||||
"name": "ollama/ollama",
|
||||
"version": "v0.12.3",
|
||||
"date": "2025-09-26T05:08:26Z"
|
||||
},
|
||||
{
|
||||
"name": "henrygd/beszel",
|
||||
"version": "v0.12.12",
|
||||
"date": "2025-09-25T23:46:01Z"
|
||||
},
|
||||
{
|
||||
"name": "booklore-app/booklore",
|
||||
"version": "v1.3.4",
|
||||
"date": "2025-09-25T21:19:48Z"
|
||||
},
|
||||
{
|
||||
"name": "go-gitea/gitea",
|
||||
"version": "v1.26.0-dev",
|
||||
@@ -444,11 +529,6 @@
|
||||
"version": "2.2.7",
|
||||
"date": "2025-09-25T19:04:38Z"
|
||||
},
|
||||
{
|
||||
"name": "kyantech/Palmr",
|
||||
"version": "v3.2.2-beta",
|
||||
"date": "2025-09-25T18:44:52Z"
|
||||
},
|
||||
{
|
||||
"name": "Threadfin/Threadfin",
|
||||
"version": "1.2.39",
|
||||
@@ -459,21 +539,11 @@
|
||||
"version": "v1.88.3",
|
||||
"date": "2025-09-25T15:49:37Z"
|
||||
},
|
||||
{
|
||||
"name": "duplicati/duplicati",
|
||||
"version": "v2.1.1.103-2.1.1.103_canary_2025-09-25",
|
||||
"date": "2025-09-25T15:17:46Z"
|
||||
},
|
||||
{
|
||||
"name": "linkwarden/linkwarden",
|
||||
"version": "v2.13.0",
|
||||
"date": "2025-09-25T15:19:02Z"
|
||||
},
|
||||
{
|
||||
"name": "SigNoz/signoz",
|
||||
"version": "v0.96.1",
|
||||
"date": "2025-09-25T15:18:19Z"
|
||||
},
|
||||
{
|
||||
"name": "bluenviron/mediamtx",
|
||||
"version": "v1.15.1",
|
||||
@@ -484,11 +554,6 @@
|
||||
"version": "v14.0.0-dev",
|
||||
"date": "2025-09-25T13:19:45Z"
|
||||
},
|
||||
{
|
||||
"name": "laurent22/joplin",
|
||||
"version": "server-v3.4.4",
|
||||
"date": "2025-09-25T13:19:26Z"
|
||||
},
|
||||
{
|
||||
"name": "rabbitmq/rabbitmq-server",
|
||||
"version": "v4.1.4",
|
||||
@@ -549,11 +614,6 @@
|
||||
"version": "REL_18_0",
|
||||
"date": "2025-09-22T20:11:33Z"
|
||||
},
|
||||
{
|
||||
"name": "gtsteffaniak/filebrowser",
|
||||
"version": "v0.8.7-beta",
|
||||
"date": "2025-09-22T18:24:54Z"
|
||||
},
|
||||
{
|
||||
"name": "gethomepage/homepage",
|
||||
"version": "v1.5.0",
|
||||
@@ -589,11 +649,6 @@
|
||||
"version": "v2.0.5.5160",
|
||||
"date": "2025-08-23T21:23:11Z"
|
||||
},
|
||||
{
|
||||
"name": "Lidarr/Lidarr",
|
||||
"version": "v2.13.3.4711",
|
||||
"date": "2025-08-28T20:06:24Z"
|
||||
},
|
||||
{
|
||||
"name": "openhab/openhab-core",
|
||||
"version": "5.1.0.M1",
|
||||
@@ -604,16 +659,6 @@
|
||||
"version": "v2.7.3",
|
||||
"date": "2025-09-21T12:07:19Z"
|
||||
},
|
||||
{
|
||||
"name": "globaleaks/globaleaks-whistleblowing-software",
|
||||
"version": "v5.0.83",
|
||||
"date": "2025-09-21T07:40:35Z"
|
||||
},
|
||||
{
|
||||
"name": "pocket-id/pocket-id",
|
||||
"version": "v1.11.2",
|
||||
"date": "2025-09-20T20:15:40Z"
|
||||
},
|
||||
{
|
||||
"name": "traccar/traccar",
|
||||
"version": "v6.10.0",
|
||||
@@ -629,11 +674,6 @@
|
||||
"version": "v1.5.2",
|
||||
"date": "2025-09-19T14:18:53Z"
|
||||
},
|
||||
{
|
||||
"name": "docker/compose",
|
||||
"version": "v2.39.4",
|
||||
"date": "2025-09-19T08:49:23Z"
|
||||
},
|
||||
{
|
||||
"name": "saltstack/salt",
|
||||
"version": "v3007.8",
|
||||
@@ -674,16 +714,6 @@
|
||||
"version": "2.10.0",
|
||||
"date": "2025-09-17T14:47:00Z"
|
||||
},
|
||||
{
|
||||
"name": "glpi-project/glpi",
|
||||
"version": "10.0.20",
|
||||
"date": "2025-09-10T12:00:00Z"
|
||||
},
|
||||
{
|
||||
"name": "cockpit-project/cockpit",
|
||||
"version": "347",
|
||||
"date": "2025-09-17T12:03:45Z"
|
||||
},
|
||||
{
|
||||
"name": "dgtlmoon/changedetection.io",
|
||||
"version": "0.50.14",
|
||||
@@ -779,21 +809,11 @@
|
||||
"version": "pmm-6401-v1.126.0",
|
||||
"date": "2025-09-15T11:32:31Z"
|
||||
},
|
||||
{
|
||||
"name": "authelia/authelia",
|
||||
"version": "v4.39.10",
|
||||
"date": "2025-09-15T09:11:13Z"
|
||||
},
|
||||
{
|
||||
"name": "crafty-controller/crafty-4",
|
||||
"version": "v4.5.4",
|
||||
"date": "2025-09-15T00:49:53Z"
|
||||
},
|
||||
{
|
||||
"name": "ErsatzTV/ErsatzTV",
|
||||
"version": "v25.6.0",
|
||||
"date": "2025-09-14T17:55:21Z"
|
||||
},
|
||||
{
|
||||
"name": "karakeep-app/karakeep",
|
||||
"version": "cli/v0.27.1",
|
||||
@@ -844,11 +864,6 @@
|
||||
"version": "v4.3.1",
|
||||
"date": "2025-09-08T22:26:23Z"
|
||||
},
|
||||
{
|
||||
"name": "apache/tomcat",
|
||||
"version": "10.1.46",
|
||||
"date": "2025-09-08T14:29:54Z"
|
||||
},
|
||||
{
|
||||
"name": "home-assistant/operating-system",
|
||||
"version": "16.2",
|
||||
@@ -864,11 +879,6 @@
|
||||
"version": "RELEASE.2025-09-07T16-13-09Z",
|
||||
"date": "2025-09-07T18:53:04Z"
|
||||
},
|
||||
{
|
||||
"name": "pocketbase/pocketbase",
|
||||
"version": "v0.30.0",
|
||||
"date": "2025-09-07T05:25:44Z"
|
||||
},
|
||||
{
|
||||
"name": "Stirling-Tools/Stirling-PDF",
|
||||
"version": "v1.3.2",
|
||||
@@ -909,11 +919,6 @@
|
||||
"version": "v0.15.1",
|
||||
"date": "2025-09-04T10:37:23Z"
|
||||
},
|
||||
{
|
||||
"name": "actualbudget/actual",
|
||||
"version": "v25.9.0",
|
||||
"date": "2025-09-04T01:12:37Z"
|
||||
},
|
||||
{
|
||||
"name": "apache/cassandra",
|
||||
"version": "cassandra-4.1.10",
|
||||
@@ -929,11 +934,6 @@
|
||||
"version": "v2.1.8",
|
||||
"date": "2025-09-01T19:20:42Z"
|
||||
},
|
||||
{
|
||||
"name": "Koenkk/zigbee2mqtt",
|
||||
"version": "2.6.1",
|
||||
"date": "2025-09-01T19:05:18Z"
|
||||
},
|
||||
{
|
||||
"name": "seanmorley15/AdventureLog",
|
||||
"version": "v0.11.0",
|
||||
|
||||
@@ -42,7 +42,7 @@ function Navbar() {
|
||||
<Image height={18} unoptimized width={18} alt="logo" src="/ProxmoxVE/logo.png" className="" />
|
||||
<span className="">Proxmox VE Helper-Scripts</span>
|
||||
</Link>
|
||||
<div className="flex items-center justify-between gap-2 w-full">
|
||||
<div className="flex items-center justify-between sm:justify-end gap-2 w-full">
|
||||
<div className="flex sm:hidden">
|
||||
<Suspense>
|
||||
<MobileSidebar />
|
||||
|
||||
@@ -13,9 +13,12 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing PostgreSQL"
|
||||
$STD apk add --no-cache postgresql16 postgresql16-contrib postgresql16-openrc sudo
|
||||
msg_ok "Installed PostgreSQL"
|
||||
read -r -p "${TAB3}Enter PostgreSQL version (15/16/17): " ver
|
||||
[[ $ver =~ ^(15|16|17)$ ]] || { echo "Invalid version"; exit 1; }
|
||||
|
||||
msg_info "Installing PostgreSQL ${ver}"
|
||||
$STD apk add --no-cache postgresql${ver} postgresql${ver}-contrib postgresql${ver}-openrc sudo
|
||||
msg_ok "Installed PostgreSQL ${ver}"
|
||||
|
||||
msg_info "Enabling PostgreSQL Service"
|
||||
$STD rc-update add postgresql default
|
||||
@@ -26,8 +29,8 @@ $STD rc-service postgresql start
|
||||
msg_ok "Started PostgreSQL"
|
||||
|
||||
msg_info "Configuring PostgreSQL for External Access"
|
||||
conf_file="/etc/postgresql16/postgresql.conf"
|
||||
hba_file="/etc/postgresql16/pg_hba.conf"
|
||||
conf_file="/etc/postgresql${ver}/postgresql.conf"
|
||||
hba_file="/etc/postgresql${ver}/pg_hba.conf"
|
||||
sed -i 's/^#listen_addresses =.*/listen_addresses = '\''*'\''/' "$conf_file"
|
||||
sed -i '/^host\s\+all\s\+all\s\+127.0.0.1\/32\s\+md5/ s/.*/host all all 0.0.0.0\/0 md5/' "$hba_file"
|
||||
$STD rc-service postgresql restart
|
||||
|
||||
@@ -43,11 +43,11 @@ msg_ok "Set up database"
|
||||
|
||||
msg_info "Installing GLPi"
|
||||
cd /opt
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/glpi-project/glpi/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
|
||||
curl -fsSL "https://github.com/glpi-project/glpi/releases/download/${RELEASE}/glpi-${RELEASE}.tgz" -o "glpi-${RELEASE}.tgz"
|
||||
$STD tar -xzvf glpi-${RELEASE}.tgz
|
||||
#RELEASE=$(curl -fsSL https://api.github.com/repos/glpi-project/glpi/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
|
||||
curl -fsSL "https://github.com/glpi-project/glpi/releases/download/10.0.20/glpi-10.0.20.tgz" -o "glpi-10.0.20.tgz"
|
||||
$STD tar -xzvf glpi-10.0.20.tgz
|
||||
cd /opt/glpi
|
||||
$STD php bin/console db:install --db-name=$DB_NAME --db-user=$DB_USER --db-password=$DB_PASS --no-interaction
|
||||
$STD php bin/console db:install --db-name=$DB_NAME --db-user=$DB_USER --db-password=$DB_PASS --no-interaction --allow-superuser
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_ok "Installed GLPi"
|
||||
|
||||
@@ -144,7 +144,7 @@ customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf /opt/glpi/install
|
||||
rm -rf /opt/glpi-${RELEASE}.tgz
|
||||
rm -rf /opt/glpi-10.0.20.tgz
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -33,7 +33,6 @@ cat <<EOF >/opt/grist/.env
|
||||
NODE_ENV=production
|
||||
GRIST_HOST=0.0.0.0
|
||||
EOF
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_ok "Installed Grist"
|
||||
|
||||
msg_info "Create Service"
|
||||
|
||||
@@ -81,7 +81,7 @@ $STD apt-get update
|
||||
$STD apt-get install -y jellyfin-ffmpeg7
|
||||
ln -s /usr/lib/jellyfin-ffmpeg/ffmpeg /usr/bin/ffmpeg
|
||||
ln -s /usr/lib/jellyfin-ffmpeg/ffprobe /usr/bin/ffprobe
|
||||
if [[ "$CTTYPE" == "0" ]]; then
|
||||
if [[ "$CTTYPE" == "0" && -d /dev/dri ]]; then
|
||||
chgrp video /dev/dri
|
||||
chmod 755 /dev/dri
|
||||
chmod 660 /dev/dri/*
|
||||
@@ -272,7 +272,7 @@ GEO_DIR="${INSTALL_DIR}/geodata"
|
||||
mkdir -p "$INSTALL_DIR"
|
||||
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache}
|
||||
|
||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.143.1" "$SRC_DIR"
|
||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v2.0.1" "$SRC_DIR"
|
||||
|
||||
msg_info "Installing ${APPLICATION} (patience)"
|
||||
|
||||
@@ -451,4 +451,5 @@ customize
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
$STD apt clean -y
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://petio.tv/
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing MongoDB 4.4"
|
||||
curl -fsSL "https://www.mongodb.org/static/pgp/server-4.4.asc" | gpg --dearmor >/usr/share/keyrings/mongodb-server-4.4.gpg
|
||||
# Determine OS ID
|
||||
OS_ID=$(grep '^ID=' /etc/os-release | cut -d'=' -f2)
|
||||
|
||||
if [ "$OS_ID" = "debian" ]; then
|
||||
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-4.4.gpg ] http://repo.mongodb.org/apt/debian $(grep '^VERSION_CODENAME=' /etc/os-release | cut -d'=' -f2)/mongodb-org/4.4 main" >/etc/apt/sources.list.d/mongodb-org-4.4.list
|
||||
else
|
||||
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-4.4.gpg ] https://repo.mongodb.org/apt/ubuntu $(grep '^VERSION_CODENAME=' /etc/os-release | cut -d'=' -f2)/mongodb-org/4.4 multiverse" >/etc/apt/sources.list.d/mongodb-org-4.4.list
|
||||
fi
|
||||
|
||||
$STD apt-get update
|
||||
$STD apt-get install -y mongodb-org
|
||||
sed -i 's/bindIp: 127.0.0.1/bindIp: 0.0.0.0/' /etc/mongod.conf
|
||||
systemctl enable -q --now mongod
|
||||
msg_ok "MongoDB 4.4 Installed"
|
||||
|
||||
msg_info "Installing Petio"
|
||||
useradd -M --shell=/bin/false petio
|
||||
mkdir /opt/Petio
|
||||
curl -fsSL "https://petio.tv/releases/latest" -o "petio-latest.zip"
|
||||
$STD unzip petio-latest.zip -d /opt/Petio
|
||||
rm -rf petio-latest.zip
|
||||
chown -R petio:petio /opt/Petio
|
||||
msg_ok "Installed Petio"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/petio.service
|
||||
[Unit]
|
||||
Description=Petio a content request system
|
||||
After=network.target mongod.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=petio
|
||||
Restart=on-failure
|
||||
RestartSec=1
|
||||
ExecStart=/opt/Petio/bin/petio-linux
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
|
||||
EOF
|
||||
systemctl enable -q --now petio
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
@@ -15,8 +15,8 @@ update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
redis \
|
||||
nginx
|
||||
redis \
|
||||
nginx
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
setup_mariadb
|
||||
@@ -31,15 +31,15 @@ $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 "Plant-it Credentials"
|
||||
echo "Plant-it Database User: $DB_USER"
|
||||
echo "Plant-it Database Password: $DB_PASS"
|
||||
echo "Plant-it Database Name: $DB_NAME"
|
||||
echo "Plant-it Credentials"
|
||||
echo "Plant-it Database User: $DB_USER"
|
||||
echo "Plant-it Database Password: $DB_PASS"
|
||||
echo "Plant-it Database Name: $DB_NAME"
|
||||
} >>~/plant-it.creds
|
||||
msg_ok "Set up MariaDB"
|
||||
|
||||
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "plant-it" "MDeLuise/plant-it" "singlefile" "latest" "/opt/plant-it/backend" "server.jar"
|
||||
fetch_and_deploy_gh_release "plant-it-front" "MDeLuise/plant-it" "prebuild" "latest" "/opt/plant-it/frontend" "client.tar.gz"
|
||||
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "plant-it" "MDeLuise/plant-it" "singlefile" "0.10.0" "/opt/plant-it/backend" "server.jar"
|
||||
fetch_and_deploy_gh_release "plant-it-front" "MDeLuise/plant-it" "prebuild" "0.10.0" "/opt/plant-it/frontend" "client.tar.gz"
|
||||
|
||||
msg_info "Configured Plant-it"
|
||||
mkdir -p /opt/plant-it-data
|
||||
|
||||
@@ -13,9 +13,11 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
PG_VERSION="17" setup_postgresql
|
||||
read -r -p "${TAB3}Enter PostgreSQL version (15/16/17/18): " ver
|
||||
[[ $ver =~ ^(15|16|17|18)$ ]] || { echo "Invalid version"; exit 1; }
|
||||
PG_VERSION=$ver setup_postgresql
|
||||
|
||||
cat <<EOF >/etc/postgresql/17/main/pg_hba.conf
|
||||
cat <<EOF >/etc/postgresql/$ver/main/pg_hba.conf
|
||||
# PostgreSQL Client Authentication Configuration File
|
||||
local all postgres peer
|
||||
# TYPE DATABASE USER ADDRESS METHOD
|
||||
@@ -34,7 +36,7 @@ host replication all 127.0.0.1/32 scram-sha-256
|
||||
host replication all ::1/128 scram-sha-256
|
||||
EOF
|
||||
|
||||
cat <<EOF >/etc/postgresql/17/main/postgresql.conf
|
||||
cat <<EOF >/etc/postgresql/$ver/main/postgresql.conf
|
||||
# -----------------------------
|
||||
# PostgreSQL configuration file
|
||||
# -----------------------------
|
||||
@@ -43,10 +45,10 @@ cat <<EOF >/etc/postgresql/17/main/postgresql.conf
|
||||
# FILE LOCATIONS
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
data_directory = '/var/lib/postgresql/17/main'
|
||||
hba_file = '/etc/postgresql/17/main/pg_hba.conf'
|
||||
ident_file = '/etc/postgresql/17/main/pg_ident.conf'
|
||||
external_pid_file = '/var/run/postgresql/17-main.pid'
|
||||
data_directory = '/var/lib/postgresql/$ver/main'
|
||||
hba_file = '/etc/postgresql/$ver/main/pg_hba.conf'
|
||||
ident_file = '/etc/postgresql/$ver/main/pg_ident.conf'
|
||||
external_pid_file = '/var/run/postgresql/$ver-main.pid'
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# CONNECTIONS AND AUTHENTICATION
|
||||
@@ -92,7 +94,7 @@ log_timezone = 'Etc/UTC'
|
||||
# PROCESS TITLE
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
cluster_name = '17/main'
|
||||
cluster_name = '$ver/main'
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# CLIENT CONNECTION DEFAULTS
|
||||
|
||||
64
install/pve-scripts-local-install.sh
Normal file
64
install/pve-scripts-local-install.sh
Normal file
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: michelroegl-brunner
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get update
|
||||
$STD apt-get install -y \
|
||||
build-essential \
|
||||
sshpass \
|
||||
rsync \
|
||||
expect
|
||||
msg_ok "Dependencies installed."
|
||||
|
||||
NODE_VERSION=22 setup_nodejs
|
||||
fetch_and_deploy_gh_release "ProxmoxVE-Local" "community-scripts/ProxmoxVE-Local"
|
||||
|
||||
msg_info "Installing PVE Scripts local"
|
||||
cd /opt/ProxmoxVE-Local
|
||||
$STD npm install
|
||||
cp .env.example .env
|
||||
mkdir -p data
|
||||
chmod 755 data
|
||||
$STD npm run build
|
||||
msg_ok "Installed PVE Scripts local"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/pvescriptslocal.service
|
||||
[Unit]
|
||||
Description=PVEScriptslocal Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt/ProxmoxVE-Local
|
||||
ExecStart=/usr/bin/npm start
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
Environment=NODE_ENV=production
|
||||
User=root
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
systemctl enable -q --now pvescriptslocal
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt -y autoremove
|
||||
$STD apt -y autoclean
|
||||
$STD apt -y clean
|
||||
msg_ok "Cleaned"
|
||||
294
tools/addon/phpmyadmin.sh
Normal file
294
tools/addon/phpmyadmin.sh
Normal file
@@ -0,0 +1,294 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
|
||||
function header_info {
|
||||
clear
|
||||
cat <<"EOF"
|
||||
____ __ __ ___ ___ __ _
|
||||
/ __ \/ /_ ____ / |/ /_ __/ | ____/ /___ ___ (_)___
|
||||
/ /_/ / __ \/ __ \/ /|_/ / / / / /| |/ __ / __ `__ \/ / __ \
|
||||
/ ____/ / / / /_/ / / / / /_/ / ___ / /_/ / / / / / / / / / /
|
||||
/_/ /_/ /_/ .___/_/ /_/\__, /_/ |_\__,_/_/ /_/ /_/_/_/ /_/
|
||||
/_/ /____/
|
||||
EOF
|
||||
}
|
||||
|
||||
YW=$(echo "\033[33m")
|
||||
GN=$(echo "\033[1;92m")
|
||||
RD=$(echo "\033[01;31m")
|
||||
BL=$(echo "\033[36m")
|
||||
CL=$(echo "\033[m")
|
||||
CM="${GN}✔️${CL}"
|
||||
CROSS="${RD}✖️${CL}"
|
||||
INFO="${BL}ℹ️${CL}"
|
||||
|
||||
APP="phpMyAdmin"
|
||||
INSTALL_DIR_DEBIAN="/var/www/html/phpMyAdmin"
|
||||
INSTALL_DIR_ALPINE="/usr/share/phpmyadmin"
|
||||
|
||||
IFACE=$(ip -4 route | awk '/default/ {print $5; exit}')
|
||||
IP=$(ip -4 addr show "$IFACE" | awk '/inet / {print $2}' | cut -d/ -f1 | head -n 1)
|
||||
[[ -z "$IP" ]] && IP=$(hostname -I | awk '{print $1}')
|
||||
[[ -z "$IP" ]] && IP="127.0.0.1"
|
||||
|
||||
# Detect OS
|
||||
if [[ -f "/etc/alpine-release" ]]; then
|
||||
OS="Alpine"
|
||||
PKG_MANAGER_INSTALL="apk add --no-cache"
|
||||
PKG_QUERY="apk info -e"
|
||||
INSTALL_DIR="$INSTALL_DIR_ALPINE"
|
||||
elif [[ -f "/etc/debian_version" ]]; then
|
||||
OS="Debian"
|
||||
PKG_MANAGER_INSTALL="apt-get install -y"
|
||||
PKG_QUERY="dpkg -l"
|
||||
INSTALL_DIR="$INSTALL_DIR_DEBIAN"
|
||||
else
|
||||
echo -e "${CROSS} Unsupported OS detected. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
header_info
|
||||
|
||||
function msg_info() { echo -e "${INFO} ${YW}${1}...${CL}"; }
|
||||
function msg_ok() { echo -e "${CM} ${GN}${1}${CL}"; }
|
||||
function msg_error() { echo -e "${CROSS} ${RD}${1}${CL}"; }
|
||||
|
||||
function check_internet() {
|
||||
msg_info "Checking Internet connectivity to GitHub"
|
||||
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" https://github.com)
|
||||
if [[ "$HTTP_CODE" -ge 200 && "$HTTP_CODE" -lt 400 ]]; then
|
||||
msg_ok "Internet connectivity OK"
|
||||
else
|
||||
msg_error "Internet connectivity or GitHub unreachable (Status $HTTP_CODE). Exiting."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function is_phpmyadmin_installed() {
|
||||
if [[ "$OS" == "Debian" ]]; then
|
||||
[[ -f "$INSTALL_DIR/config.inc.php" ]]
|
||||
else
|
||||
[[ -d "$INSTALL_DIR_ALPINE" ]] && rc-service lighttpd status &>/dev/null
|
||||
fi
|
||||
}
|
||||
|
||||
function install_php_and_modules() {
|
||||
msg_info "Checking existing PHP installation"
|
||||
if command -v php >/dev/null 2>&1; then
|
||||
PHP_VERSION=$(php -r 'echo PHP_VERSION;')
|
||||
msg_ok "Found PHP version $PHP_VERSION"
|
||||
else
|
||||
msg_info "PHP not found, will install PHP core"
|
||||
fi
|
||||
|
||||
if [[ "$OS" == "Debian" ]]; then
|
||||
PHP_MODULES=("php" "php-mysqli" "php-mbstring" "php-zip" "php-gd" "php-json" "php-curl")
|
||||
MISSING_PACKAGES=()
|
||||
for pkg in "${PHP_MODULES[@]}"; do
|
||||
if ! dpkg -l | grep -qw "$pkg"; then
|
||||
MISSING_PACKAGES+=("$pkg")
|
||||
fi
|
||||
done
|
||||
if [[ ${#MISSING_PACKAGES[@]} -gt 0 ]]; then
|
||||
msg_info "Installing missing PHP packages: ${MISSING_PACKAGES[*]}"
|
||||
if ! apt-get update &>/dev/null || ! apt-get install -y "${MISSING_PACKAGES[@]}" &>/dev/null; then
|
||||
msg_error "Failed to install required PHP modules. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
msg_ok "Installed missing PHP packages"
|
||||
else
|
||||
msg_ok "All required PHP modules are already installed"
|
||||
fi
|
||||
else
|
||||
msg_info "Installing Lighttpd and PHP for Alpine"
|
||||
$PKG_MANAGER_INSTALL lighttpd php php-fpm php-session php-json php-mysqli curl tar openssl &>/dev/null
|
||||
msg_ok "Installed Lighttpd and PHP"
|
||||
fi
|
||||
}
|
||||
|
||||
function install_phpmyadmin() {
|
||||
msg_info "Fetching latest phpMyAdmin release from GitHub"
|
||||
LATEST_VERSION_RAW=$(curl -s https://api.github.com/repos/phpmyadmin/phpmyadmin/releases/latest | grep tag_name | cut -d '"' -f4)
|
||||
LATEST_VERSION=$(echo "$LATEST_VERSION_RAW" | sed -e 's/^RELEASE_//' -e 's/_/./g')
|
||||
if [[ -z "$LATEST_VERSION" ]]; then
|
||||
msg_error "Could not determine latest phpMyAdmin version from GitHub – falling back to 5.2.2"
|
||||
LATEST_VERSION="RELEASE_5_2_2"
|
||||
fi
|
||||
msg_ok "Latest version: $LATEST_VERSION"
|
||||
|
||||
TARBALL_URL="https://files.phpmyadmin.net/phpMyAdmin/${LATEST_VERSION}/phpMyAdmin-${LATEST_VERSION}-all-languages.tar.gz"
|
||||
msg_info "Downloading ${TARBALL_URL}"
|
||||
if ! curl -fsSL "$TARBALL_URL" -o /tmp/phpmyadmin.tar.gz; then
|
||||
msg_error "Download failed: $TARBALL_URL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$INSTALL_DIR"
|
||||
tar xf /tmp/phpmyadmin.tar.gz --strip-components=1 -C "$INSTALL_DIR"
|
||||
}
|
||||
|
||||
function configure_phpmyadmin() {
|
||||
if [[ "$OS" == "Debian" ]]; then
|
||||
cp "$INSTALL_DIR/config.sample.inc.php" "$INSTALL_DIR/config.inc.php"
|
||||
SECRET=$(openssl rand -base64 24)
|
||||
sed -i "s#\$cfg\['blowfish_secret'\] = '';#\$cfg['blowfish_secret'] = '${SECRET}';#" "$INSTALL_DIR/config.inc.php"
|
||||
chmod 660 "$INSTALL_DIR/config.inc.php"
|
||||
chown -R www-data:www-data "$INSTALL_DIR"
|
||||
systemctl restart apache2
|
||||
msg_ok "Configured phpMyAdmin with Apache"
|
||||
else
|
||||
msg_info "Configuring Lighttpd for phpMyAdmin (Alpine detected)"
|
||||
|
||||
mkdir -p /etc/lighttpd
|
||||
cat <<EOF >/etc/lighttpd/lighttpd.conf
|
||||
server.modules = (
|
||||
"mod_access",
|
||||
"mod_alias",
|
||||
"mod_accesslog",
|
||||
"mod_fastcgi"
|
||||
)
|
||||
|
||||
server.document-root = "${INSTALL_DIR}"
|
||||
server.port = 80
|
||||
|
||||
index-file.names = ( "index.php", "index.html" )
|
||||
|
||||
fastcgi.server = ( ".php" =>
|
||||
((
|
||||
"host" => "127.0.0.1",
|
||||
"port" => 9000,
|
||||
"check-local" => "disable"
|
||||
))
|
||||
)
|
||||
|
||||
alias.url = ( "/phpMyAdmin/" => "${INSTALL_DIR}/" )
|
||||
|
||||
accesslog.filename = "/var/log/lighttpd/access.log"
|
||||
server.errorlog = "/var/log/lighttpd/error.log"
|
||||
EOF
|
||||
|
||||
msg_info "Starting PHP-FPM and Lighttpd"
|
||||
|
||||
PHP_VERSION=$(php -r 'echo PHP_MAJOR_VERSION . PHP_MINOR_VERSION;')
|
||||
PHP_FPM_SERVICE="php-fpm${PHP_VERSION}"
|
||||
|
||||
if $STD rc-service "$PHP_FPM_SERVICE" start && $STD rc-update add "$PHP_FPM_SERVICE" default; then
|
||||
msg_ok "Started PHP-FPM service: $PHP_FPM_SERVICE"
|
||||
else
|
||||
msg_error "Failed to start PHP-FPM service: $PHP_FPM_SERVICE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$STD rc-service lighttpd start
|
||||
$STD rc-update add lighttpd default
|
||||
msg_ok "Configured and started Lighttpd successfully"
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
function uninstall_phpmyadmin() {
|
||||
msg_info "Stopping Webserver"
|
||||
if [[ "$OS" == "Debian" ]]; then
|
||||
systemctl stop apache2
|
||||
else
|
||||
$STD rc-service lighttpd stop
|
||||
$STD rc-service php-fpm stop
|
||||
fi
|
||||
|
||||
msg_info "Removing phpMyAdmin directory"
|
||||
rm -rf "$INSTALL_DIR"
|
||||
|
||||
if [[ "$OS" == "Alpine" ]]; then
|
||||
msg_info "Removing Lighttpd config"
|
||||
rm -f /etc/lighttpd/lighttpd.conf
|
||||
$STD rc-service php-fpm restart
|
||||
$STD rc-service lighttpd restart
|
||||
else
|
||||
$STD systemctl restart apache2
|
||||
fi
|
||||
msg_ok "Uninstalled phpMyAdmin"
|
||||
}
|
||||
|
||||
function update_phpmyadmin() {
|
||||
msg_info "Fetching latest phpMyAdmin release from GitHub"
|
||||
LATEST_VERSION_RAW=$(curl -s https://api.github.com/repos/phpmyadmin/phpmyadmin/releases/latest | grep tag_name | cut -d '"' -f4)
|
||||
LATEST_VERSION=$(echo "$LATEST_VERSION_RAW" | sed -e 's/^RELEASE_//' -e 's/_/./g')
|
||||
|
||||
if [[ -z "$LATEST_VERSION" ]]; then
|
||||
msg_error "Could not determine latest phpMyAdmin version from GitHub – falling back to 5.2.2"
|
||||
LATEST_VERSION="5.2.2"
|
||||
fi
|
||||
msg_ok "Latest version: $LATEST_VERSION"
|
||||
|
||||
TARBALL_URL="https://files.phpmyadmin.net/phpMyAdmin/${LATEST_VERSION}/phpMyAdmin-${LATEST_VERSION}-all-languages.tar.gz"
|
||||
msg_info "Downloading ${TARBALL_URL}"
|
||||
|
||||
if ! curl -fsSL "$TARBALL_URL" -o /tmp/phpmyadmin.tar.gz; then
|
||||
msg_error "Download failed: $TARBALL_URL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BACKUP_DIR="/tmp/phpmyadmin-backup-$(date +%Y%m%d-%H%M%S)"
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
BACKUP_ITEMS=("config.inc.php" "upload" "save" "tmp" "themes")
|
||||
|
||||
msg_info "Backing up existing phpMyAdmin data"
|
||||
for item in "${BACKUP_ITEMS[@]}"; do
|
||||
[[ -e "$INSTALL_DIR/$item" ]] && cp -a "$INSTALL_DIR/$item" "$BACKUP_DIR/" && echo " ↪︎ $item"
|
||||
done
|
||||
msg_ok "Backup completed: $BACKUP_DIR"
|
||||
|
||||
tar xf /tmp/phpmyadmin.tar.gz --strip-components=1 -C "$INSTALL_DIR"
|
||||
msg_ok "Extracted phpMyAdmin $LATEST_VERSION"
|
||||
|
||||
msg_info "Restoring preserved files"
|
||||
for item in "${BACKUP_ITEMS[@]}"; do
|
||||
[[ -e "$BACKUP_DIR/$item" ]] && cp -a "$BACKUP_DIR/$item" "$INSTALL_DIR/" && echo " ↪︎ $item restored"
|
||||
done
|
||||
msg_ok "Restoration completed"
|
||||
|
||||
configure_phpmyadmin
|
||||
}
|
||||
|
||||
if is_phpmyadmin_installed; then
|
||||
echo -e "${YW}⚠️ ${APP} is already installed at ${INSTALL_DIR}.${CL}"
|
||||
read -r -p "Would you like to Update (1), Uninstall (2) or Cancel (3)? [1/2/3]: " action
|
||||
action="${action//[[:space:]]/}"
|
||||
case "$action" in
|
||||
1)
|
||||
check_internet
|
||||
update_phpmyadmin
|
||||
;;
|
||||
2)
|
||||
uninstall_phpmyadmin
|
||||
;;
|
||||
3)
|
||||
echo -e "${YW}⚠️ Action cancelled. Exiting.${CL}"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo -e "${YW}⚠️ Invalid input. Exiting.${CL}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
else
|
||||
read -r -p "Would you like to install ${APP}? (y/n): " install_prompt
|
||||
install_prompt="${install_prompt//[[:space:]]/}"
|
||||
if [[ "${install_prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||
check_internet
|
||||
install_php_and_modules
|
||||
install_phpmyadmin
|
||||
configure_phpmyadmin
|
||||
if [[ "$OS" == "Debian" ]]; then
|
||||
echo -e "${CM} ${GN}${APP} is reachable at: ${BL}http://${IP}/phpMyAdmin${CL}"
|
||||
else
|
||||
echo -e "${CM} ${GN}${APP} is reachable at: ${BL}http://${IP}/${CL}"
|
||||
fi
|
||||
else
|
||||
echo -e "${YW}⚠️ Installation skipped. Exiting.${CL}"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
6
tools/headers/phpmyadmin
Normal file
6
tools/headers/phpmyadmin
Normal file
@@ -0,0 +1,6 @@
|
||||
__ __ ___ ___ __ _
|
||||
____ / /_ ____ / |/ /_ __/ | ____/ /___ ___ (_)___
|
||||
/ __ \/ __ \/ __ \/ /|_/ / / / / /| |/ __ / __ `__ \/ / __ \
|
||||
/ /_/ / / / / /_/ / / / / /_/ / ___ / /_/ / / / / / / / / / /
|
||||
/ .___/_/ /_/ .___/_/ /_/\__, /_/ |_\__,_/_/ /_/ /_/_/_/ /_/
|
||||
/_/ /_/ /____/
|
||||
@@ -189,7 +189,7 @@ start_routines_9() {
|
||||
# check if deb822 Sources (*.sources) exist
|
||||
if find /etc/apt/sources.list.d/ -maxdepth 1 -name '*.sources' | grep -q .; then
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Deb822 sources detected" \
|
||||
--msgbox "Modern deb822 sources (*.sources) already exist.\n\nNo changes to sources format required.\n\nYou may still have legacy sources.list or .list files, which you can disable in the next step." 12 65
|
||||
--msgbox "Modern deb822 sources (*.sources) already exist.\n\nNo changes to sources format required.\n\nYou may still have legacy sources.list or .list files, which you can disable in the next step." 12 65 || true
|
||||
else
|
||||
check_and_disable_legacy_sources() {
|
||||
local LEGACY_COUNT=0
|
||||
@@ -197,7 +197,7 @@ start_routines_9() {
|
||||
|
||||
# Check sources.list
|
||||
if [[ -f "$listfile" ]] && grep -qE '^\s*deb ' "$listfile"; then
|
||||
((LEGACY_COUNT++))
|
||||
(( ++LEGACY_COUNT ))
|
||||
fi
|
||||
|
||||
# Check .list files
|
||||
|
||||
@@ -530,7 +530,12 @@ msg_ok "Extracted OpenWrt Disk Image ${CL}${BL}$FILE${CL}"
|
||||
msg_info "Creating OpenWrt VM"
|
||||
qm create "$VMID" -cores "$CORE_COUNT" -memory "$RAM_SIZE" -name "$HN" \
|
||||
-onboot 1 -ostype l26 -scsihw virtio-scsi-pci --tablet 0
|
||||
pvesm alloc "$STORAGE" "$VMID" "vm-$VMID-disk-0" 4M >/dev/null
|
||||
if [[ "$(pvesm status | awk -v s=$STORAGE '$1==s {print $2}')" == "dir" ]]; then
|
||||
qm set "$VMID" -efidisk0 "${STORAGE}:0,efitype=4m,size=4M"
|
||||
else
|
||||
pvesm alloc "$STORAGE" "$VMID" "vm-$VMID-disk-0" 4M >/dev/null
|
||||
qm set "$VMID" -efidisk0 "${STORAGE}:vm-$VMID-disk-0,efitype=4m,size=4M"
|
||||
fi
|
||||
|
||||
IMPORT_OUT="$(qm importdisk "$VMID" "$FILE" "$STORAGE" --format raw 2>&1 || true)"
|
||||
DISK_REF="$(printf '%s\n' "$IMPORT_OUT" | sed -n "s/.*successfully imported disk '\([^']\+\)'.*/\1/p")"
|
||||
|
||||
Reference in New Issue
Block a user