mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 10:22:50 +00:00 
			
		
		
		
	Compare commits
	
		
			30 Commits
		
	
	
		
			2025-09-29
			...
			2025-10-01
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					e93dccb0d5 | ||
| 
						 | 
					168e7b7c2b | ||
| 
						 | 
					3f54d0d7f4 | ||
| 
						 | 
					9477677385 | ||
| 
						 | 
					e58d1dc3d2 | ||
| 
						 | 
					2a765f58f0 | ||
| 
						 | 
					8dfb632a4d | ||
| 
						 | 
					42ae2a4cdc | ||
| 
						 | 
					36e41aca22 | ||
| 
						 | 
					6b1141f9de | ||
| 
						 | 
					97f891d53b | ||
| 
						 | 
					0c63e64662 | ||
| 
						 | 
					d83a378af4 | ||
| 
						 | 
					6820bdcade | ||
| 
						 | 
					8ff82d0c3c | ||
| 
						 | 
					9e39c6cd2b | ||
| 
						 | 
					0bea24888e | ||
| 
						 | 
					70d2be62e9 | ||
| 
						 | 
					fe30e06a48 | ||
| 
						 | 
					193a2ea2df | ||
| 
						 | 
					ffbe0feee1 | ||
| 
						 | 
					107865b06d | ||
| 
						 | 
					0d33b38e29 | ||
| 
						 | 
					11ae7450c7 | ||
| 
						 | 
					598bfd291f | ||
| 
						 | 
					1a38df4c12 | ||
| 
						 | 
					cfc85c1b79 | ||
| 
						 | 
					e7d41fecdc | ||
| 
						 | 
					34ef80ac87 | ||
| 
						 | 
					b18d45631f | 
							
								
								
									
										36
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -10,8 +10,44 @@
 | 
			
		||||
> [!CAUTION]
 | 
			
		||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
 | 
			
		||||
 | 
			
		||||
## 2025-10-02
 | 
			
		||||
 | 
			
		||||
## 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
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - caddy: fix typo for setup_go [@MickLesk](https://github.com/MickLesk) ([#8017](https://github.com/community-scripts/ProxmoxVE/pull/8017))
 | 
			
		||||
    - Changedetection: Fix Browserless installation and update process [@h-stoyanov](https://github.com/h-stoyanov) ([#8011](https://github.com/community-scripts/ProxmoxVE/pull/8011))
 | 
			
		||||
    - n8n: Update procedure workaround [@tremor021](https://github.com/tremor021) ([#8004](https://github.com/community-scripts/ProxmoxVE/pull/8004))
 | 
			
		||||
    - Changedetection: Bump nodejs to 24 [@MickLesk](https://github.com/MickLesk) ([#8002](https://github.com/community-scripts/ProxmoxVE/pull/8002))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Bump Guacamole to Debian 13 [@burgerga](https://github.com/burgerga) ([#8010](https://github.com/community-scripts/ProxmoxVE/pull/8010))
 | 
			
		||||
 | 
			
		||||
## 2025-09-29
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_disk="${var_disk:-4}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -38,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}:8080/guacamole${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/guacamole${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,7 @@ function update_script() {
 | 
			
		||||
   msg_ok "Updated $APP LXC"
 | 
			
		||||
 | 
			
		||||
    if command -v xcaddy >/dev/null 2>&1; then
 | 
			
		||||
      install_go
 | 
			
		||||
      setup_go
 | 
			
		||||
      msg_info "Updating xCaddy"
 | 
			
		||||
      cd /opt
 | 
			
		||||
      RELEASE=$(curl -fsSL https://api.github.com/repos/caddyserver/xcaddy/releases/latest | grep "tag_name" | awk -F '"' '{print $4}')
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,8 @@ function update_script() {
 | 
			
		||||
    msg_ok "Updated Dependencies"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  NODE_VERSION="24" setup_nodejs
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP}"
 | 
			
		||||
  $STD pip3 install changedetection.io --upgrade
 | 
			
		||||
  msg_ok "Updated ${APP}"
 | 
			
		||||
@@ -49,6 +51,7 @@ function update_script() {
 | 
			
		||||
    $STD git -C /opt/browserless/ fetch --all
 | 
			
		||||
    $STD git -C /opt/browserless/ reset --hard origin/main
 | 
			
		||||
    $STD npm update --prefix /opt/browserless
 | 
			
		||||
    $STD npm ci --include=optional --include=dev --prefix /opt/browserless
 | 
			
		||||
    $STD /opt/browserless/node_modules/playwright-core/cli.js install --with-deps
 | 
			
		||||
    # Update Chrome separately, as it has to be done with the force option. Otherwise the installation of other browsers will not be done if Chrome is already installed.
 | 
			
		||||
    $STD /opt/browserless/node_modules/playwright-core/cli.js install --force chrome
 | 
			
		||||
 
 | 
			
		||||
@@ -74,7 +74,7 @@ function update_script() {
 | 
			
		||||
    done
 | 
			
		||||
    msg_ok "Image-processing libraries up to date"
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE="1.143.1"
 | 
			
		||||
  RELEASE="2.0.0"
 | 
			
		||||
  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
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,8 @@ EOF
 | 
			
		||||
  NODE_VERSION="22" setup_nodejs
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP} LXC"
 | 
			
		||||
  $STD npm update -g n8n
 | 
			
		||||
  rm -rf /usr/lib/node_modules/.n8n-* /usr/lib/node_modules/n8n
 | 
			
		||||
  $STD npm install -g n8n --force
 | 
			
		||||
  systemctl restart n8n
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,7 @@
 | 
			
		||||
        "ram": 2048,
 | 
			
		||||
        "hdd": 4,
 | 
			
		||||
        "os": "debian",
 | 
			
		||||
        "version": "12"
 | 
			
		||||
        "version": "13"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
@@ -1,24 +1,239 @@
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
    "name": "jhuckaby/Cronicle",
 | 
			
		||||
    "version": "v0.9.94",
 | 
			
		||||
    "date": "2025-10-01T23:23:11Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "BerriAI/litellm",
 | 
			
		||||
    "version": "v1.77.5.rc.4",
 | 
			
		||||
    "date": "2025-10-01T22:52:14Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "immich-app/immich",
 | 
			
		||||
    "version": "v2.0.0",
 | 
			
		||||
    "date": "2025-10-01T21:39:09Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "rcourtman/Pulse",
 | 
			
		||||
    "version": "v4.18.0",
 | 
			
		||||
    "date": "2025-10-01T19:35:14Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "ipfs/kubo",
 | 
			
		||||
    "version": "v0.38.0",
 | 
			
		||||
    "date": "2025-10-01T18:14:53Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "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": "nightly",
 | 
			
		||||
    "date": "2025-09-28T18:26:30Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "home-assistant/core",
 | 
			
		||||
    "version": "2025.10.0",
 | 
			
		||||
    "date": "2025-10-01T16:38:38Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "pommee/goaway",
 | 
			
		||||
    "version": "v0.62.8",
 | 
			
		||||
    "date": "2025-10-01T15:58:55Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "fuma-nama/fumadocs",
 | 
			
		||||
    "version": "fumadocs-openapi@9.4.0",
 | 
			
		||||
    "date": "2025-10-01T15:45:53Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Graylog2/graylog2-server",
 | 
			
		||||
    "version": "6.1.16",
 | 
			
		||||
    "date": "2025-10-01T14:58:20Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "meilisearch/meilisearch",
 | 
			
		||||
    "version": "prototype-speedup-post-processing-2",
 | 
			
		||||
    "date": "2025-10-01T14:19:58Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "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": "apache/tomcat",
 | 
			
		||||
    "version": "9.0.110",
 | 
			
		||||
    "date": "2025-10-01T09:24:07Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "element-hq/synapse",
 | 
			
		||||
    "version": "v1.139.0",
 | 
			
		||||
    "date": "2025-10-01T08:24:16Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Jackett/Jackett",
 | 
			
		||||
    "version": "v0.24.17",
 | 
			
		||||
    "date": "2025-10-01T05:59:28Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Kozea/Radicale",
 | 
			
		||||
    "version": "v3.5.7.pypi",
 | 
			
		||||
    "date": "2025-10-01T05:32:27Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "jeedom/core",
 | 
			
		||||
    "version": "4.4.20",
 | 
			
		||||
    "date": "2025-10-01T00:27:05Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "steveiliop56/tinyauth",
 | 
			
		||||
    "version": "v3.6.2",
 | 
			
		||||
    "date": "2025-07-17T12:08:03Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "booklore-app/booklore",
 | 
			
		||||
    "version": "v1.4.0",
 | 
			
		||||
    "date": "2025-09-30T23:52:34Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "HabitRPG/habitica",
 | 
			
		||||
    "version": "v5.41.4",
 | 
			
		||||
    "date": "2025-09-30T22:26:11Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "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": "MediaBrowser/Emby.Releases",
 | 
			
		||||
    "version": "4.9.1.80",
 | 
			
		||||
    "date": "2025-09-30T20:25:16Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "netbox-community/netbox",
 | 
			
		||||
    "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": "TwiN/gatus",
 | 
			
		||||
    "version": "v5.25.2",
 | 
			
		||||
    "date": "2025-09-30T18:32:35Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "WordPress/WordPress",
 | 
			
		||||
    "version": "4.7.31",
 | 
			
		||||
    "date": "2025-09-30T18:00:06Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "MagicMirrorOrg/MagicMirror",
 | 
			
		||||
    "version": "v2.33.0",
 | 
			
		||||
    "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",
 | 
			
		||||
    "version": "v1.7.4",
 | 
			
		||||
    "date": "2025-09-30T13:34:30Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "neo4j/neo4j",
 | 
			
		||||
    "version": "4.4.46",
 | 
			
		||||
    "date": "2025-09-30T13:21:24Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "fallenbagel/jellyseerr",
 | 
			
		||||
    "version": "preview-rename-tags",
 | 
			
		||||
    "date": "2025-09-30T12:50:15Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "keycloak/keycloak",
 | 
			
		||||
    "version": "26.4.0",
 | 
			
		||||
    "date": "2025-09-30T11:49:13Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "emqx/emqx",
 | 
			
		||||
    "version": "e6.0.0",
 | 
			
		||||
    "date": "2025-09-30T12:04:20Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "mattermost/mattermost",
 | 
			
		||||
    "version": "mattermost-redux@10.12.0",
 | 
			
		||||
    "date": "2025-09-18T20:15:19Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "silverbulletmd/silverbullet",
 | 
			
		||||
    "version": "2.1.6",
 | 
			
		||||
    "date": "2025-09-30T09:09:13Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "chrisvel/tududi",
 | 
			
		||||
    "version": "v0.82-rc5",
 | 
			
		||||
    "date": "2025-09-23T07:31:12Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zitadel/zitadel",
 | 
			
		||||
    "version": "v4.3.0",
 | 
			
		||||
    "date": "2025-09-30T06:54:15Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "thomiceli/opengist",
 | 
			
		||||
    "version": "v1.11.1",
 | 
			
		||||
    "date": "2025-09-30T00:24:16Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "goauthentik/authentik",
 | 
			
		||||
    "version": "version/2025.8.4",
 | 
			
		||||
    "date": "2025-09-29T22:01:27Z"
 | 
			
		||||
    "date": "2025-09-30T00:03:11Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "9001/copyparty",
 | 
			
		||||
    "version": "v1.19.15",
 | 
			
		||||
    "date": "2025-09-29T23:42:38Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "verdaccio/verdaccio",
 | 
			
		||||
    "version": "v6.2.0",
 | 
			
		||||
    "date": "2025-09-29T20:59:23Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "gristlabs/grist-core",
 | 
			
		||||
    "version": "v1.7.4",
 | 
			
		||||
    "date": "2025-09-29T20:19:43Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "immich-app/immich",
 | 
			
		||||
    "version": "v1.144.1",
 | 
			
		||||
    "date": "2025-09-29T19:49:34Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "influxdata/telegraf",
 | 
			
		||||
    "version": "v1.36.2",
 | 
			
		||||
@@ -29,46 +244,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": "pommee/goaway",
 | 
			
		||||
    "version": "v0.62.6",
 | 
			
		||||
    "date": "2025-09-29T18:50:13Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "emqx/emqx",
 | 
			
		||||
    "version": "e6.0.0-rc.1",
 | 
			
		||||
    "date": "2025-09-29T18:31:17Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "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": "meilisearch/meilisearch",
 | 
			
		||||
    "version": "prototype-v1.22.1.personalization-00",
 | 
			
		||||
    "date": "2025-09-29T15:47:10Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "n8n-io/n8n",
 | 
			
		||||
    "version": "n8n@1.112.6",
 | 
			
		||||
@@ -79,11 +269,6 @@
 | 
			
		||||
    "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",
 | 
			
		||||
@@ -97,12 +282,7 @@
 | 
			
		||||
  {
 | 
			
		||||
    "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"
 | 
			
		||||
    "date": "2025-09-29T12:13:09Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "jupyter/notebook",
 | 
			
		||||
@@ -114,11 +294,6 @@
 | 
			
		||||
    "version": "v0.6.32",
 | 
			
		||||
    "date": "2025-09-29T06:13:12Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Jackett/Jackett",
 | 
			
		||||
    "version": "v0.23.87",
 | 
			
		||||
    "date": "2025-09-29T05:54:12Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "inventree/InvenTree",
 | 
			
		||||
    "version": "1.0.2",
 | 
			
		||||
@@ -129,16 +304,6 @@
 | 
			
		||||
    "version": "v6.4.0",
 | 
			
		||||
    "date": "2025-09-13T16:38:21Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "jeedom/core",
 | 
			
		||||
    "version": "4.4.20",
 | 
			
		||||
    "date": "2025-09-29T00:27:05Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "steveiliop56/tinyauth",
 | 
			
		||||
    "version": "v3.6.2",
 | 
			
		||||
    "date": "2025-07-17T12:08:03Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "autobrr/autobrr",
 | 
			
		||||
    "version": "v1.67.0",
 | 
			
		||||
@@ -149,16 +314,6 @@
 | 
			
		||||
    "version": "v5.27.5.10198",
 | 
			
		||||
    "date": "2025-09-03T12:08:43Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "TwiN/gatus",
 | 
			
		||||
    "version": "v5.25.0",
 | 
			
		||||
    "date": "2025-09-28T19:02:02Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "runtipi/runtipi",
 | 
			
		||||
    "version": "nightly",
 | 
			
		||||
    "date": "2025-09-28T18:26:30Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "lazy-media/Reactive-Resume",
 | 
			
		||||
    "version": "v1.2.6",
 | 
			
		||||
@@ -169,11 +324,6 @@
 | 
			
		||||
    "version": "v10.10.7",
 | 
			
		||||
    "date": "2025-04-05T19:14:59Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "BerriAI/litellm",
 | 
			
		||||
    "version": "v1.77.6.dev.1",
 | 
			
		||||
    "date": "2025-09-28T16:42:42Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "YunoHost/yunohost",
 | 
			
		||||
    "version": "debian/12.1.26",
 | 
			
		||||
@@ -241,33 +391,8 @@
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "javedh-dev/tracktor",
 | 
			
		||||
    "version": "0.3.17",
 | 
			
		||||
    "date": "2025-09-27T07:00:36Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "fuma-nama/fumadocs",
 | 
			
		||||
    "version": "fumadocs-ui@15.8.1",
 | 
			
		||||
    "date": "2025-09-27T09:57:41Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "keycloak/keycloak",
 | 
			
		||||
    "version": "26.3.5",
 | 
			
		||||
    "date": "2025-09-25T06:23:28Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Kozea/Radicale",
 | 
			
		||||
    "version": "v3.5.7",
 | 
			
		||||
    "date": "2025-09-27T06:12:51Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "silverbulletmd/silverbullet",
 | 
			
		||||
    "version": "2.1.5",
 | 
			
		||||
    "date": "2025-09-27T04:43:40Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "ipfs/kubo",
 | 
			
		||||
    "version": "v0.37.0",
 | 
			
		||||
    "date": "2025-08-27T20:03:52Z"
 | 
			
		||||
    "version": "0.3.18",
 | 
			
		||||
    "date": "2025-09-27T10:32:09Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Dolibarr/dolibarr",
 | 
			
		||||
@@ -284,11 +409,6 @@
 | 
			
		||||
    "version": "v4.104.2",
 | 
			
		||||
    "date": "2025-09-26T22:34:32Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "home-assistant/core",
 | 
			
		||||
    "version": "2025.9.4",
 | 
			
		||||
    "date": "2025-09-19T21:09:39Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Ombi-app/Ombi",
 | 
			
		||||
    "version": "v4.47.1",
 | 
			
		||||
@@ -314,11 +434,6 @@
 | 
			
		||||
    "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",
 | 
			
		||||
@@ -334,11 +449,6 @@
 | 
			
		||||
    "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",
 | 
			
		||||
@@ -399,26 +509,11 @@
 | 
			
		||||
    "version": "server-v3.4.4",
 | 
			
		||||
    "date": "2025-09-25T13:19:26Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "element-hq/synapse",
 | 
			
		||||
    "version": "v1.138.2",
 | 
			
		||||
    "date": "2025-09-24T12:45:13Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "rabbitmq/rabbitmq-server",
 | 
			
		||||
    "version": "v4.1.4",
 | 
			
		||||
    "date": "2025-09-02T14:26:24Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "MediaBrowser/Emby.Releases",
 | 
			
		||||
    "version": "4.9.1.2",
 | 
			
		||||
    "date": "2025-06-26T22:08:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "mongodb/mongo",
 | 
			
		||||
    "version": "r8.2.1-rc1",
 | 
			
		||||
    "date": "2025-09-24T19:54:34Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "gelbphoenix/autocaliweb",
 | 
			
		||||
    "version": "v0.10.2",
 | 
			
		||||
@@ -459,16 +554,6 @@
 | 
			
		||||
    "version": "v12.2.0",
 | 
			
		||||
    "date": "2025-09-23T23:47:02Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "9001/copyparty",
 | 
			
		||||
    "version": "v1.19.14",
 | 
			
		||||
    "date": "2025-09-23T22:57:50Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "HabitRPG/habitica",
 | 
			
		||||
    "version": "v5.41.3",
 | 
			
		||||
    "date": "2025-09-23T22:21:04Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Part-DB/Part-DB-server",
 | 
			
		||||
    "version": "v2.2.0",
 | 
			
		||||
@@ -479,21 +564,6 @@
 | 
			
		||||
    "version": "1.4.2",
 | 
			
		||||
    "date": "2025-05-09T08:54:49Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "jenkinsci/jenkins",
 | 
			
		||||
    "version": "jenkins-2.529",
 | 
			
		||||
    "date": "2025-09-23T14:40:20Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zabbix/zabbix",
 | 
			
		||||
    "version": "7.4.3rc1",
 | 
			
		||||
    "date": "2025-09-23T13:54:56Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "chrisvel/tududi",
 | 
			
		||||
    "version": "v0.82-rc5",
 | 
			
		||||
    "date": "2025-09-23T07:31:12Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "postgres/postgres",
 | 
			
		||||
    "version": "REL_18_0",
 | 
			
		||||
@@ -559,16 +629,6 @@
 | 
			
		||||
    "version": "v5.0.83",
 | 
			
		||||
    "date": "2025-09-21T07:40:35Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "thomiceli/opengist",
 | 
			
		||||
    "version": "v1.11.0",
 | 
			
		||||
    "date": "2025-09-21T02:53:18Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "fallenbagel/jellyseerr",
 | 
			
		||||
    "version": "preview-fix-watchlist-error",
 | 
			
		||||
    "date": "2025-09-20T21:07:50Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "pocket-id/pocket-id",
 | 
			
		||||
    "version": "v1.11.2",
 | 
			
		||||
@@ -589,11 +649,6 @@
 | 
			
		||||
    "version": "v1.5.2",
 | 
			
		||||
    "date": "2025-09-19T14:18:53Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "mattermost/mattermost",
 | 
			
		||||
    "version": "mattermost-redux@10.12.0",
 | 
			
		||||
    "date": "2025-09-18T20:15:19Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "docker/compose",
 | 
			
		||||
    "version": "v2.39.4",
 | 
			
		||||
@@ -609,21 +664,11 @@
 | 
			
		||||
    "version": "v0.23.2",
 | 
			
		||||
    "date": "2025-09-18T17:18:59Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "neo4j/neo4j",
 | 
			
		||||
    "version": "2025.09.0",
 | 
			
		||||
    "date": "2025-09-18T15:07:01Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "grokability/snipe-it",
 | 
			
		||||
    "version": "v8.3.2",
 | 
			
		||||
    "date": "2025-09-18T13:55:58Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zitadel/zitadel",
 | 
			
		||||
    "version": "v4.2.2",
 | 
			
		||||
    "date": "2025-09-18T10:45:22Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "NLnetLabs/unbound",
 | 
			
		||||
    "version": "release-1.24.0",
 | 
			
		||||
@@ -649,11 +694,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",
 | 
			
		||||
@@ -684,11 +724,6 @@
 | 
			
		||||
    "version": "2.510",
 | 
			
		||||
    "date": "2025-09-16T20:28:37Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "netbox-community/netbox",
 | 
			
		||||
    "version": "v4.4.1",
 | 
			
		||||
    "date": "2025-09-16T15:58:14Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "tobychui/zoraxy",
 | 
			
		||||
    "version": "v3.2.5r2",
 | 
			
		||||
@@ -759,11 +794,6 @@
 | 
			
		||||
    "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",
 | 
			
		||||
@@ -799,11 +829,6 @@
 | 
			
		||||
    "version": "1.16.0",
 | 
			
		||||
    "date": "2025-09-11T18:01:57Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "rcourtman/Pulse",
 | 
			
		||||
    "version": "v4.14.0",
 | 
			
		||||
    "date": "2025-09-05T18:28:28Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "aceberg/WatchYourLAN",
 | 
			
		||||
    "version": "2.1.4",
 | 
			
		||||
@@ -829,11 +854,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",
 | 
			
		||||
@@ -914,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",
 | 
			
		||||
@@ -989,11 +1004,6 @@
 | 
			
		||||
    "version": "v1.1.07",
 | 
			
		||||
    "date": "2025-08-18T16:13:54Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "redis/redis",
 | 
			
		||||
    "version": "8.2.1",
 | 
			
		||||
    "date": "2025-08-18T15:42:48Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "lldap/lldap",
 | 
			
		||||
    "version": "v0.6.2",
 | 
			
		||||
@@ -1059,11 +1069,6 @@
 | 
			
		||||
    "version": "v1.28.3",
 | 
			
		||||
    "date": "2025-08-06T12:32:02Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "WordPress/WordPress",
 | 
			
		||||
    "version": "4.7.30",
 | 
			
		||||
    "date": "2025-08-05T17:23:06Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "binwiederhier/ntfy",
 | 
			
		||||
    "version": "v2.14.0",
 | 
			
		||||
@@ -1189,11 +1194,6 @@
 | 
			
		||||
    "version": "2025.4",
 | 
			
		||||
    "date": "2025-07-01T18:01:37Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "MagicMirrorOrg/MagicMirror",
 | 
			
		||||
    "version": "v2.32.0",
 | 
			
		||||
    "date": "2025-06-30T22:12:48Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "typesense/typesense",
 | 
			
		||||
    "version": "v29.0",
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@ network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Dependencies"
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
$STD apt install -y \
 | 
			
		||||
  build-essential \
 | 
			
		||||
  jq \
 | 
			
		||||
  libcairo2-dev \
 | 
			
		||||
@@ -22,7 +22,7 @@ $STD apt-get install -y \
 | 
			
		||||
  libtool-bin \
 | 
			
		||||
  libossp-uuid-dev \
 | 
			
		||||
  libvncserver-dev \
 | 
			
		||||
  freerdp2-dev \
 | 
			
		||||
  freerdp3-dev \
 | 
			
		||||
  libssh2-1-dev \
 | 
			
		||||
  libtelnet-dev \
 | 
			
		||||
  libwebsockets-dev \
 | 
			
		||||
@@ -56,8 +56,9 @@ mkdir -p /etc/guacamole/{extensions,lib}
 | 
			
		||||
RELEASE_SERVER=$(curl -fsSL https://api.github.com/repos/apache/guacamole-server/tags | jq -r '.[].name' | grep -v -- '-RC' | head -n 1)
 | 
			
		||||
curl -fsSL "https://api.github.com/repos/apache/guacamole-server/tarball/refs/tags/${RELEASE_SERVER}" | tar -xz --strip-components=1 -C /opt/apache-guacamole/server
 | 
			
		||||
cd /opt/apache-guacamole/server
 | 
			
		||||
export CPPFLAGS="-Wno-error=deprecated-declarations"
 | 
			
		||||
$STD autoreconf -fi
 | 
			
		||||
$STD ./configure --with-init-dir=/etc/init.d --enable-allow-freerdp-snapshots
 | 
			
		||||
$STD ./configure --with-init-dir=/etc/init.d --enable-allow-freerdp-snapshots --disable-guaclog
 | 
			
		||||
$STD make
 | 
			
		||||
$STD make install
 | 
			
		||||
$STD ldconfig
 | 
			
		||||
@@ -149,6 +150,6 @@ customize
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
rm -rf ~/mysql-connector-j-9.3.0{,.tar.gz}
 | 
			
		||||
rm -rf ~/guacamole-auth-jdbc-$RELEASE_SERVER{,.tar.gz}
 | 
			
		||||
$STD apt-get -y autoremove
 | 
			
		||||
$STD apt-get -y autoclean
 | 
			
		||||
$STD apt -y autoremove
 | 
			
		||||
$STD apt -y autoclean
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
 
 | 
			
		||||
@@ -51,7 +51,7 @@ $STD apt-get install -y \
 | 
			
		||||
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
 | 
			
		||||
msg_ok "Setup Python3"
 | 
			
		||||
 | 
			
		||||
NODE_VERSION="22" setup_nodejs
 | 
			
		||||
NODE_VERSION="24" setup_nodejs
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Change Detection"
 | 
			
		||||
mkdir /opt/changedetection
 | 
			
		||||
@@ -62,7 +62,7 @@ msg_info "Installing Browserless & Playwright"
 | 
			
		||||
mkdir /opt/browserless
 | 
			
		||||
$STD python3 -m pip install playwright
 | 
			
		||||
$STD git clone https://github.com/browserless/chrome /opt/browserless
 | 
			
		||||
$STD npm install --prefix /opt/browserless
 | 
			
		||||
$STD npm ci --include=optional --include=dev --prefix /opt/browserless
 | 
			
		||||
$STD /opt/browserless/node_modules/playwright-core/cli.js install --with-deps &>/dev/null
 | 
			
		||||
$STD /opt/browserless/node_modules/playwright-core/cli.js install --force chrome &>/dev/null
 | 
			
		||||
$STD /opt/browserless/node_modules/playwright-core/cli.js install chromium firefox webkit &>/dev/null
 | 
			
		||||
 
 | 
			
		||||
@@ -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.0" "$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"
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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 @@
 | 
			
		||||
           __          __  ___      ___       __          _     
 | 
			
		||||
    ____  / /_  ____  /  |/  /_  __/   | ____/ /___ ___  (_)___ 
 | 
			
		||||
   / __ \/ __ \/ __ \/ /|_/ / / / / /| |/ __  / __ `__ \/ / __ \
 | 
			
		||||
  / /_/ / / / / /_/ / /  / / /_/ / ___ / /_/ / / / / / / / / / /
 | 
			
		||||
 / .___/_/ /_/ .___/_/  /_/\__, /_/  |_\__,_/_/ /_/ /_/_/_/ /_/ 
 | 
			
		||||
/_/         /_/           /____/                                
 | 
			
		||||
@@ -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