Compare commits

...

53 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
9b5fa050c7 Update CHANGELOG.md (#8117)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-05 00:14:36 +00:00
community-scripts-pr-app[bot]
efb8e0f2f3 Update versions.json (#8116)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-05 02:14:14 +02:00
Tobias
07eda340ea fix: pve-scripts-local: typo (#8113) 2025-10-04 22:29:30 +02:00
community-scripts-pr-app[bot]
1a37c759c3 Update CHANGELOG.md (#8111)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-04 16:45:25 +00:00
Slaviša Arežina
e39dd5ffa3 PosgreSQL: Add version choice (#8103)
* Add version choice

* Update

* Update
2025-10-04 18:45:02 +02:00
community-scripts-pr-app[bot]
aded2cbd56 Update CHANGELOG.md (#8110)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-04 16:44:23 +00:00
mlongwell
2c791b9e41 immich: guard /dev/dri permissions so CPU-only installs don’t fail (#8094) 2025-10-04 18:44:00 +02:00
community-scripts-pr-app[bot]
d1786241ec Update versions.json (#8105)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-04 14:04:45 +02:00
community-scripts-pr-app[bot]
73cf6c66e3 Update CHANGELOG.md (#8099)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-04 00:12:21 +00:00
community-scripts-pr-app[bot]
efc9153926 Update versions.json (#8098)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-04 02:11:54 +02:00
community-scripts-pr-app[bot]
1f4b446788 Update CHANGELOG.md (#8093)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 19:40:20 +00:00
Slaviša Arežina
aeafbb1047 Update glpi-install.sh (#8092) 2025-10-03 21:39:59 +02:00
community-scripts-pr-app[bot]
938609d5eb Update CHANGELOG.md (#8091)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 18:55:21 +00:00
Chris
ae6ca4de23 Immich: bump version to 2.0.1 (#8090) 2025-10-03 20:54:58 +02:00
community-scripts-pr-app[bot]
dfdf8c0ddb Update CHANGELOG.md (#8089)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 17:23:52 +00:00
Bram Suurd
4136f5e7e3 Adjust navbar layout for large screen (#8087) 2025-10-03 19:23:26 +02:00
community-scripts-pr-app[bot]
51302d516e Update CHANGELOG.md (#8088)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 14:54:19 +00:00
Slaviša Arežina
ab995bd493 Increase resources (#8086) 2025-10-03 16:53:55 +02:00
community-scripts-pr-app[bot]
ac12051057 Update CHANGELOG.md (#8084)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 13:30:12 +00:00
push-app-to-main[bot]
c3cca616a4 pve-scripts-local (#8083)
* 'Add new script'

* Add rsync to installation dependencies

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>
2025-10-03 15:29:46 +02:00
community-scripts-pr-app[bot]
b1bca924b9 Update versions.json (#8079)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 14:05:25 +02:00
community-scripts-pr-app[bot]
1909e35e62 Update CHANGELOG.md (#8075)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 11:10:11 +00:00
Slaviša Arežina
237349ef47 Fix glpi (#8074) 2025-10-03 13:09:41 +02:00
community-scripts-pr-app[bot]
e4cf50dfcd Update .app files (#8073)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-10-03 09:39:17 +00:00
Michel Roegl-Brunner
0c30d8e3e7 Remove Petio Script (#8071)
* Delete install/petio-install.sh

* Delete ct/petio.sh

* Delete frontend/public/json/petio.json
2025-10-03 11:38:32 +02:00
community-scripts-pr-app[bot]
92999b4db3 Update CHANGELOG.md (#8072)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 09:38:13 +00:00
Michel Roegl-Brunner
4a02986de1 Fix legacy count increment syntax in post-pve-install.sh (#8070) 2025-10-03 11:37:48 +02:00
community-scripts-pr-app[bot]
d06299685f Update CHANGELOG.md (#8069)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 08:36:58 +00:00
rcourtman
71f71fbca9 fix: ensure /etc/pulse exists before chown in update script (#8068)
* fix: ensure /etc/pulse exists before chown in update script

- Add mkdir -p /etc/pulse to create directory if missing
- Use non-recursive chown on /etc/pulse to preserve file permissions
- Keep recursive chown on /opt/pulse for binary ownership
- Add chmod 700 for security on config directory

Fixes #8064

* remove comments
2025-10-03 10:36:33 +02:00
community-scripts-pr-app[bot]
938fb6dc58 Update CHANGELOG.md (#8067)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 07:30:44 +00:00
CanbiZ
03d36a6c10 grist: remove unneeded var (#8060) 2025-10-03 09:30:18 +02:00
community-scripts-pr-app[bot]
8e25b70a25 Update CHANGELOG.md (#8062)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 00:12:10 +00:00
community-scripts-pr-app[bot]
1840cce15f Update versions.json (#8061)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 02:11:42 +02:00
community-scripts-pr-app[bot]
1d0ac4ca10 Update versions.json (#8055)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-02 14:05:34 +02:00
CanbiZ
deb85bd264 rm v in Version check 2025-10-02 13:18:59 +02:00
community-scripts-pr-app[bot]
348f8863a8 Update CHANGELOG.md (#8054)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-02 10:33:30 +00:00
CanbiZ
74b332b7ec EMQX: removal logic in emqx update (#8050)
Added conditional checks to remove either emqx or emqx-enterprise packages.
2025-10-02 12:33:08 +02:00
community-scripts-pr-app[bot]
2fe3ee667b Update CHANGELOG.md (#8053)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-02 10:32:45 +00:00
CanbiZ
48e3b66342 fix FlareSolverr version check to v3.3.25 (#8051) 2025-10-02 12:32:24 +02:00
community-scripts-pr-app[bot]
e93dccb0d5 Update CHANGELOG.md (#8045)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-02 00:13:27 +00:00
community-scripts-pr-app[bot]
168e7b7c2b Update versions.json (#8044)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-02 02:13:06 +02:00
community-scripts-pr-app[bot]
3f54d0d7f4 Update .app files (#8043)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-10-02 00:30:17 +02:00
community-scripts-pr-app[bot]
9477677385 Update CHANGELOG.md (#8042)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-01 22:29:30 +00:00
CanbiZ
e58d1dc3d2 Add conditional logic for EFI disk allocation (#8024) 2025-10-02 00:29:12 +02:00
Chris
2a765f58f0 Immich: bump version to 2.0.0 stable (#8041) 2025-10-02 00:28:51 +02:00
community-scripts-pr-app[bot]
8dfb632a4d Update CHANGELOG.md (#8036)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-01 15:07:56 +00:00
CanbiZ
42ae2a4cdc New Script: PhpMyAdmin (Addon) (#8030) 2025-10-01 17:07:28 +02:00
community-scripts-pr-app[bot]
36e41aca22 Update versions.json (#8031)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-01 14:07:20 +02:00
community-scripts-pr-app[bot]
6b1141f9de Update CHANGELOG.md (#8027)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-01 08:40:17 +00:00
community-scripts-pr-app[bot]
97f891d53b Update CHANGELOG.md (#8026)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-01 08:40:07 +00:00
Slaviša Arežina
0c63e64662 Pin version (#8023) 2025-10-01 10:39:55 +02:00
community-scripts-pr-app[bot]
d83a378af4 Update CHANGELOG.md (#8025)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-01 08:39:46 +00:00
Chris
6820bdcade Immich: bump version to 1.144.1 (#7994)
- small change during update to ensure the immich user can write to
uv.lock while building machine-learning
2025-10-01 10:39:20 +02:00
29 changed files with 879 additions and 450 deletions

View File

@@ -10,8 +10,75 @@
> [!CAUTION] > [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes. 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 dont 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 ## 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 ## 2025-09-30
### 🚀 Updated Scripts ### 🚀 Updated Scripts

View File

@@ -31,7 +31,13 @@ function update_script() {
msg_ok "Stopped EMQX" msg_ok "Stopped EMQX"
msg_info "Removing old EMQX" msg_info "Removing old EMQX"
if dpkg -l | grep -q "^ii\s\+emqx\s"; then
$STD apt-get remove --purge -y emqx $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_ok "Removed old EMQX"
msg_info "Downloading EMQX v${RELEASE}" msg_info "Downloading EMQX v${RELEASE}"

View File

@@ -28,7 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi 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" msg_info "Stopping service"
systemctl stop flaresolverr systemctl stop flaresolverr
msg_ok "Stopped service" msg_ok "Stopped service"

View File

@@ -1,6 +0,0 @@
____ __ _
/ __ \___ / /_(_)___
/ /_/ / _ \/ __/ / __ \
/ ____/ __/ /_/ / /_/ /
/_/ \___/\__/_/\____/

View File

@@ -0,0 +1,6 @@
____ _ ________ _____ _ __ __ __
/ __ \ | / / ____/ / ___/__________(_)___ / /______ / / ____ _________ _/ /
/ /_/ / | / / __/______\__ \/ ___/ ___/ / __ \/ __/ ___/_____/ / / __ \/ ___/ __ `/ /
/ ____/| |/ / /__/_____/__/ / /__/ / / / /_/ / /_(__ )_____/ /___/ /_/ / /__/ /_/ / /
/_/ |___/_____/ /____/\___/_/ /_/ .___/\__/____/ /_____/\____/\___/\__,_/_/
/_/

View File

@@ -74,7 +74,7 @@ function update_script() {
done done
msg_ok "Image-processing libraries up to date" msg_ok "Image-processing libraries up to date"
fi fi
RELEASE="1.143.1" RELEASE="2.0.1"
if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
msg_info "Stopping Services" msg_info "Stopping Services"
systemctl stop immich-web systemctl stop immich-web
@@ -158,6 +158,7 @@ EOF
cd "$SRC_DIR"/machine-learning cd "$SRC_DIR"/machine-learning
mkdir -p "$ML_DIR" && chown -R immich:immich "$ML_DIR" mkdir -p "$ML_DIR" && chown -R immich:immich "$ML_DIR"
chown immich:immich ./uv.lock
export VIRTUAL_ENV="${ML_DIR}"/ml-venv export VIRTUAL_ENV="${ML_DIR}"/ml-venv
if [[ -f ~/.openvino ]]; then if [[ -f ~/.openvino ]]; then
msg_info "Updating HW-accelerated machine-learning" msg_info "Updating HW-accelerated machine-learning"
@@ -190,6 +191,7 @@ EOF
msg_info "Cleaning up" msg_info "Cleaning up"
$STD apt-get -y autoremove $STD apt-get -y autoremove
$STD apt-get -y autoclean $STD apt-get -y autoclean
$STD apt clean -y
msg_ok "Cleaned" msg_ok "Cleaned"
systemctl restart immich-ml immich-web systemctl restart immich-ml immich-web
fi fi

View File

@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="Overseerr" APP="Overseerr"
var_tags="${var_tags:-media}" var_tags="${var_tags:-media}"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-4096}"
var_disk="${var_disk:-8}" var_disk="${var_disk:-8}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-12}"

View File

@@ -32,8 +32,10 @@ function update_script() {
systemctl stop plant-it systemctl stop plant-it
msg_ok "Stopped $APP" 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" 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" "latest" "/opt/plant-it/frontend" "client.tar.gz" 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" msg_info "Starting $APP"
systemctl start plant-it systemctl start plant-it

View File

@@ -40,7 +40,10 @@ function update_script() {
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz" 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 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 if [[ -f "$SERVICE_PATH"/pulse-backend.service ]]; then
mv "$SERVICE_PATH"/pulse-backend.service "$SERVICE_PATH"/pulse.service mv "$SERVICE_PATH"/pulse-backend.service "$SERVICE_PATH"/pulse.service
fi fi

View File

@@ -1,17 +1,18 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2025 community-scripts ORG
# Author: tteck (tteckster) # Author: michelroegl-brunner
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://petio.tv/ # Source: https://www.debian.org/
APP="Petio" APP="PVE-Scripts-Local"
var_tags="${var_tags:-media}" var_tags="${var_tags:-pve-scripts-local}"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-4096}"
var_disk="${var_disk:-4}" var_disk="${var_disk:-4}"
var_os="${var_os:-ubuntu}" var_os="${var_os:-debian}"
var_version="${var_version:-20.04}" var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
variables variables
@@ -22,16 +23,11 @@ function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /opt/Petio ]]; then if [[ ! -d /var ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
msg_info "Updating $APP" msg_info "No Update function implementd"
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"
exit exit
} }
@@ -42,4 +38,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${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}"

View File

@@ -20,7 +20,7 @@
"script": "ct/overseerr.sh", "script": "ct/overseerr.sh",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 2048, "ram": 4096,
"hdd": 8, "hdd": 8,
"os": "debian", "os": "debian",
"version": "12" "version": "12"

View File

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

View 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"
}
]
}

View File

@@ -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`", "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" "type": "info"
},
{
"text": "Debian script offers versions `15, 16, 17, 18`, while Alpine script offers versions `15, 16, 17`.",
"type": "info"
} }
] ]
} }

View 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": []
}

View File

@@ -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", "name": "HabitRPG/habitica",
"version": "v5.41.4", "version": "v5.41.4",
"date": "2025-09-30T22:26:11Z" "date": "2025-09-30T22:26:11Z"
}, },
{ {
"name": "BerriAI/litellm", "name": "zabbix/zabbix",
"version": "v1.77.5.rc.3", "version": "7.4.3",
"date": "2025-09-30T22:18:41Z" "date": "2025-09-30T21:49:53Z"
}, },
{ {
"name": "mongodb/mongo", "name": "mongodb/mongo",
"version": "r8.2.1", "version": "r8.2.1",
"date": "2025-09-30T21:46:28Z" "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", "name": "MediaBrowser/Emby.Releases",
"version": "4.9.1.80", "version": "4.9.1.80",
@@ -39,16 +299,6 @@
"version": "v4.4.2", "version": "v4.4.2",
"date": "2025-09-30T20:16:13Z" "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", "name": "TwiN/gatus",
"version": "v5.25.2", "version": "v5.25.2",
@@ -65,9 +315,9 @@
"date": "2025-09-30T16:18:10Z" "date": "2025-09-30T16:18:10Z"
}, },
{ {
"name": "jenkinsci/jenkins", "name": "wazuh/wazuh",
"version": "jenkins-2.530", "version": "coverity-w40-4.14.0",
"date": "2025-09-30T15:42:52Z" "date": "2025-09-30T15:35:54Z"
}, },
{ {
"name": "gristlabs/grist-core", "name": "gristlabs/grist-core",
@@ -79,11 +329,6 @@
"version": "4.4.46", "version": "4.4.46",
"date": "2025-09-30T13:21:24Z" "date": "2025-09-30T13:21:24Z"
}, },
{
"name": "meilisearch/meilisearch",
"version": "latest",
"date": "2025-09-30T13:14:19Z"
},
{ {
"name": "fallenbagel/jellyseerr", "name": "fallenbagel/jellyseerr",
"version": "preview-rename-tags", "version": "preview-rename-tags",
@@ -94,31 +339,6 @@
"version": "e6.0.0", "version": "e6.0.0",
"date": "2025-09-30T12:04:20Z" "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", "name": "chrisvel/tududi",
"version": "v0.82-rc5", "version": "v0.82-rc5",
@@ -129,26 +349,11 @@
"version": "v4.3.0", "version": "v4.3.0",
"date": "2025-09-30T06:54:15Z" "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", "name": "thomiceli/opengist",
"version": "v1.11.1", "version": "v1.11.1",
"date": "2025-09-30T00:24:16Z" "date": "2025-09-30T00:24:16Z"
}, },
{
"name": "steveiliop56/tinyauth",
"version": "v3.6.2",
"date": "2025-07-17T12:08:03Z"
},
{ {
"name": "goauthentik/authentik", "name": "goauthentik/authentik",
"version": "version/2025.8.4", "version": "version/2025.8.4",
@@ -174,51 +379,21 @@
"version": "v2.3.3", "version": "v2.3.3",
"date": "2025-09-29T18:53:35Z" "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", "name": "influxdata/influxdb",
"version": "v3.5.0", "version": "v2.7.12",
"date": "2025-09-29T17:33:17Z" "date": "2025-05-29T17:08:26Z"
}, },
{ {
"name": "sassanix/Warracker", "name": "sassanix/Warracker",
"version": "0.10.1.13", "version": "0.10.1.13",
"date": "2025-09-29T17:11:25Z" "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", "name": "AdguardTeam/AdGuardHome",
"version": "v0.107.67", "version": "v0.107.67",
"date": "2025-09-29T14:45:57Z" "date": "2025-09-29T14:45:57Z"
}, },
{
"name": "NodeBB/NodeBB",
"version": "v4.5.2",
"date": "2025-09-29T14:04:09Z"
},
{ {
"name": "MDeLuise/plant-it", "name": "MDeLuise/plant-it",
"version": "1.0.0", "version": "1.0.0",
@@ -229,16 +404,6 @@
"version": "v1.12.8", "version": "v1.12.8",
"date": "2025-09-29T13:22:59Z" "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", "name": "jupyter/notebook",
"version": "@jupyter-notebook/ui-components@7.5.0-beta.0", "version": "@jupyter-notebook/ui-components@7.5.0-beta.0",
@@ -254,11 +419,6 @@
"version": "1.0.2", "version": "1.0.2",
"date": "2025-09-29T04:02:44Z" "date": "2025-09-29T04:02:44Z"
}, },
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.0",
"date": "2025-09-13T16:38:21Z"
},
{ {
"name": "autobrr/autobrr", "name": "autobrr/autobrr",
"version": "v1.67.0", "version": "v1.67.0",
@@ -299,31 +459,11 @@
"version": "v1.5.3", "version": "v1.5.3",
"date": "2025-09-20T12:12:33Z" "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", "name": "moghtech/komodo",
"version": "v1.19.5", "version": "v1.19.5",
"date": "2025-09-27T20:59:46Z" "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", "name": "raydak-labs/configarr",
"version": "v1.16.0", "version": "v1.16.0",
@@ -349,21 +489,6 @@
"version": "0.3.18", "version": "0.3.18",
"date": "2025-09-27T10:32:09Z" "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", "name": "Dolibarr/dolibarr",
"version": "22.0.2", "version": "22.0.2",
@@ -379,56 +504,16 @@
"version": "v4.104.2", "version": "v4.104.2",
"date": "2025-09-26T22:34:32Z" "date": "2025-09-26T22:34:32Z"
}, },
{
"name": "Ombi-app/Ombi",
"version": "v4.47.1",
"date": "2025-01-05T21:14:23Z"
},
{ {
"name": "bastienwirtz/homer", "name": "bastienwirtz/homer",
"version": "v25.09.1", "version": "v25.09.1",
"date": "2025-09-26T19:22:16Z" "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", "name": "traefik/traefik",
"version": "v3.5.3", "version": "v3.5.3",
"date": "2025-09-26T09:31:01Z" "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", "name": "go-gitea/gitea",
"version": "v1.26.0-dev", "version": "v1.26.0-dev",
@@ -444,11 +529,6 @@
"version": "2.2.7", "version": "2.2.7",
"date": "2025-09-25T19:04:38Z" "date": "2025-09-25T19:04:38Z"
}, },
{
"name": "kyantech/Palmr",
"version": "v3.2.2-beta",
"date": "2025-09-25T18:44:52Z"
},
{ {
"name": "Threadfin/Threadfin", "name": "Threadfin/Threadfin",
"version": "1.2.39", "version": "1.2.39",
@@ -459,21 +539,11 @@
"version": "v1.88.3", "version": "v1.88.3",
"date": "2025-09-25T15:49:37Z" "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", "name": "linkwarden/linkwarden",
"version": "v2.13.0", "version": "v2.13.0",
"date": "2025-09-25T15:19:02Z" "date": "2025-09-25T15:19:02Z"
}, },
{
"name": "SigNoz/signoz",
"version": "v0.96.1",
"date": "2025-09-25T15:18:19Z"
},
{ {
"name": "bluenviron/mediamtx", "name": "bluenviron/mediamtx",
"version": "v1.15.1", "version": "v1.15.1",
@@ -484,11 +554,6 @@
"version": "v14.0.0-dev", "version": "v14.0.0-dev",
"date": "2025-09-25T13:19:45Z" "date": "2025-09-25T13:19:45Z"
}, },
{
"name": "laurent22/joplin",
"version": "server-v3.4.4",
"date": "2025-09-25T13:19:26Z"
},
{ {
"name": "rabbitmq/rabbitmq-server", "name": "rabbitmq/rabbitmq-server",
"version": "v4.1.4", "version": "v4.1.4",
@@ -549,11 +614,6 @@
"version": "REL_18_0", "version": "REL_18_0",
"date": "2025-09-22T20:11:33Z" "date": "2025-09-22T20:11:33Z"
}, },
{
"name": "gtsteffaniak/filebrowser",
"version": "v0.8.7-beta",
"date": "2025-09-22T18:24:54Z"
},
{ {
"name": "gethomepage/homepage", "name": "gethomepage/homepage",
"version": "v1.5.0", "version": "v1.5.0",
@@ -589,11 +649,6 @@
"version": "v2.0.5.5160", "version": "v2.0.5.5160",
"date": "2025-08-23T21:23:11Z" "date": "2025-08-23T21:23:11Z"
}, },
{
"name": "Lidarr/Lidarr",
"version": "v2.13.3.4711",
"date": "2025-08-28T20:06:24Z"
},
{ {
"name": "openhab/openhab-core", "name": "openhab/openhab-core",
"version": "5.1.0.M1", "version": "5.1.0.M1",
@@ -604,16 +659,6 @@
"version": "v2.7.3", "version": "v2.7.3",
"date": "2025-09-21T12:07:19Z" "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", "name": "traccar/traccar",
"version": "v6.10.0", "version": "v6.10.0",
@@ -629,11 +674,6 @@
"version": "v1.5.2", "version": "v1.5.2",
"date": "2025-09-19T14:18:53Z" "date": "2025-09-19T14:18:53Z"
}, },
{
"name": "docker/compose",
"version": "v2.39.4",
"date": "2025-09-19T08:49:23Z"
},
{ {
"name": "saltstack/salt", "name": "saltstack/salt",
"version": "v3007.8", "version": "v3007.8",
@@ -674,16 +714,6 @@
"version": "2.10.0", "version": "2.10.0",
"date": "2025-09-17T14:47:00Z" "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", "name": "dgtlmoon/changedetection.io",
"version": "0.50.14", "version": "0.50.14",
@@ -779,21 +809,11 @@
"version": "pmm-6401-v1.126.0", "version": "pmm-6401-v1.126.0",
"date": "2025-09-15T11:32:31Z" "date": "2025-09-15T11:32:31Z"
}, },
{
"name": "authelia/authelia",
"version": "v4.39.10",
"date": "2025-09-15T09:11:13Z"
},
{ {
"name": "crafty-controller/crafty-4", "name": "crafty-controller/crafty-4",
"version": "v4.5.4", "version": "v4.5.4",
"date": "2025-09-15T00:49:53Z" "date": "2025-09-15T00:49:53Z"
}, },
{
"name": "ErsatzTV/ErsatzTV",
"version": "v25.6.0",
"date": "2025-09-14T17:55:21Z"
},
{ {
"name": "karakeep-app/karakeep", "name": "karakeep-app/karakeep",
"version": "cli/v0.27.1", "version": "cli/v0.27.1",
@@ -844,11 +864,6 @@
"version": "v4.3.1", "version": "v4.3.1",
"date": "2025-09-08T22:26:23Z" "date": "2025-09-08T22:26:23Z"
}, },
{
"name": "apache/tomcat",
"version": "10.1.46",
"date": "2025-09-08T14:29:54Z"
},
{ {
"name": "home-assistant/operating-system", "name": "home-assistant/operating-system",
"version": "16.2", "version": "16.2",
@@ -864,11 +879,6 @@
"version": "RELEASE.2025-09-07T16-13-09Z", "version": "RELEASE.2025-09-07T16-13-09Z",
"date": "2025-09-07T18:53:04Z" "date": "2025-09-07T18:53:04Z"
}, },
{
"name": "pocketbase/pocketbase",
"version": "v0.30.0",
"date": "2025-09-07T05:25:44Z"
},
{ {
"name": "Stirling-Tools/Stirling-PDF", "name": "Stirling-Tools/Stirling-PDF",
"version": "v1.3.2", "version": "v1.3.2",
@@ -909,11 +919,6 @@
"version": "v0.15.1", "version": "v0.15.1",
"date": "2025-09-04T10:37:23Z" "date": "2025-09-04T10:37:23Z"
}, },
{
"name": "actualbudget/actual",
"version": "v25.9.0",
"date": "2025-09-04T01:12:37Z"
},
{ {
"name": "apache/cassandra", "name": "apache/cassandra",
"version": "cassandra-4.1.10", "version": "cassandra-4.1.10",
@@ -929,11 +934,6 @@
"version": "v2.1.8", "version": "v2.1.8",
"date": "2025-09-01T19:20:42Z" "date": "2025-09-01T19:20:42Z"
}, },
{
"name": "Koenkk/zigbee2mqtt",
"version": "2.6.1",
"date": "2025-09-01T19:05:18Z"
},
{ {
"name": "seanmorley15/AdventureLog", "name": "seanmorley15/AdventureLog",
"version": "v0.11.0", "version": "v0.11.0",

View File

@@ -42,7 +42,7 @@ function Navbar() {
<Image height={18} unoptimized width={18} alt="logo" src="/ProxmoxVE/logo.png" className="" /> <Image height={18} unoptimized width={18} alt="logo" src="/ProxmoxVE/logo.png" className="" />
<span className="">Proxmox VE Helper-Scripts</span> <span className="">Proxmox VE Helper-Scripts</span>
</Link> </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"> <div className="flex sm:hidden">
<Suspense> <Suspense>
<MobileSidebar /> <MobileSidebar />

View File

@@ -13,9 +13,12 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing PostgreSQL" read -r -p "${TAB3}Enter PostgreSQL version (15/16/17): " ver
$STD apk add --no-cache postgresql16 postgresql16-contrib postgresql16-openrc sudo [[ $ver =~ ^(15|16|17)$ ]] || { echo "Invalid version"; exit 1; }
msg_ok "Installed PostgreSQL"
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" msg_info "Enabling PostgreSQL Service"
$STD rc-update add postgresql default $STD rc-update add postgresql default
@@ -26,8 +29,8 @@ $STD rc-service postgresql start
msg_ok "Started PostgreSQL" msg_ok "Started PostgreSQL"
msg_info "Configuring PostgreSQL for External Access" msg_info "Configuring PostgreSQL for External Access"
conf_file="/etc/postgresql16/postgresql.conf" conf_file="/etc/postgresql${ver}/postgresql.conf"
hba_file="/etc/postgresql16/pg_hba.conf" hba_file="/etc/postgresql${ver}/pg_hba.conf"
sed -i 's/^#listen_addresses =.*/listen_addresses = '\''*'\''/' "$conf_file" 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" 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 $STD rc-service postgresql restart

View File

@@ -43,11 +43,11 @@ msg_ok "Set up database"
msg_info "Installing GLPi" msg_info "Installing GLPi"
cd /opt cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/glpi-project/glpi/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/') #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" 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-${RELEASE}.tgz $STD tar -xzvf glpi-10.0.20.tgz
cd /opt/glpi 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 echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed GLPi" msg_ok "Installed GLPi"
@@ -144,7 +144,7 @@ customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -rf /opt/glpi/install 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 autoremove
$STD apt-get -y autoclean $STD apt-get -y autoclean
msg_ok "Cleaned" msg_ok "Cleaned"

View File

@@ -33,7 +33,6 @@ cat <<EOF >/opt/grist/.env
NODE_ENV=production NODE_ENV=production
GRIST_HOST=0.0.0.0 GRIST_HOST=0.0.0.0
EOF EOF
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Grist" msg_ok "Installed Grist"
msg_info "Create Service" msg_info "Create Service"

View File

@@ -81,7 +81,7 @@ $STD apt-get update
$STD apt-get install -y jellyfin-ffmpeg7 $STD apt-get install -y jellyfin-ffmpeg7
ln -s /usr/lib/jellyfin-ffmpeg/ffmpeg /usr/bin/ffmpeg ln -s /usr/lib/jellyfin-ffmpeg/ffmpeg /usr/bin/ffmpeg
ln -s /usr/lib/jellyfin-ffmpeg/ffprobe /usr/bin/ffprobe 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 chgrp video /dev/dri
chmod 755 /dev/dri chmod 755 /dev/dri
chmod 660 /dev/dri/* chmod 660 /dev/dri/*
@@ -272,7 +272,7 @@ GEO_DIR="${INSTALL_DIR}/geodata"
mkdir -p "$INSTALL_DIR" mkdir -p "$INSTALL_DIR"
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache} 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)" msg_info "Installing ${APPLICATION} (patience)"
@@ -451,4 +451,5 @@ customize
msg_info "Cleaning up" msg_info "Cleaning up"
$STD apt-get -y autoremove $STD apt-get -y autoremove
$STD apt-get -y autoclean $STD apt-get -y autoclean
$STD apt clean -y
msg_ok "Cleaned" msg_ok "Cleaned"

View File

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

View File

@@ -38,8 +38,8 @@ $STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUS
} >>~/plant-it.creds } >>~/plant-it.creds
msg_ok "Set up MariaDB" 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" 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" "latest" "/opt/plant-it/frontend" "client.tar.gz" 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" msg_info "Configured Plant-it"
mkdir -p /opt/plant-it-data mkdir -p /opt/plant-it-data

View File

@@ -13,9 +13,11 @@ setting_up_container
network_check network_check
update_os 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 # PostgreSQL Client Authentication Configuration File
local all postgres peer local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD # 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 host replication all ::1/128 scram-sha-256
EOF EOF
cat <<EOF >/etc/postgresql/17/main/postgresql.conf cat <<EOF >/etc/postgresql/$ver/main/postgresql.conf
# ----------------------------- # -----------------------------
# PostgreSQL configuration file # PostgreSQL configuration file
# ----------------------------- # -----------------------------
@@ -43,10 +45,10 @@ cat <<EOF >/etc/postgresql/17/main/postgresql.conf
# FILE LOCATIONS # FILE LOCATIONS
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
data_directory = '/var/lib/postgresql/17/main' data_directory = '/var/lib/postgresql/$ver/main'
hba_file = '/etc/postgresql/17/main/pg_hba.conf' hba_file = '/etc/postgresql/$ver/main/pg_hba.conf'
ident_file = '/etc/postgresql/17/main/pg_ident.conf' ident_file = '/etc/postgresql/$ver/main/pg_ident.conf'
external_pid_file = '/var/run/postgresql/17-main.pid' external_pid_file = '/var/run/postgresql/$ver-main.pid'
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION # CONNECTIONS AND AUTHENTICATION
@@ -92,7 +94,7 @@ log_timezone = 'Etc/UTC'
# PROCESS TITLE # PROCESS TITLE
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
cluster_name = '17/main' cluster_name = '$ver/main'
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS # CLIENT CONNECTION DEFAULTS

View 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
View 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
View File

@@ -0,0 +1,6 @@
__ __ ___ ___ __ _
____ / /_ ____ / |/ /_ __/ | ____/ /___ ___ (_)___
/ __ \/ __ \/ __ \/ /|_/ / / / / /| |/ __ / __ `__ \/ / __ \
/ /_/ / / / / /_/ / / / / /_/ / ___ / /_/ / / / / / / / / / /
/ .___/_/ /_/ .___/_/ /_/\__, /_/ |_\__,_/_/ /_/ /_/_/_/ /_/
/_/ /_/ /____/

View File

@@ -189,7 +189,7 @@ start_routines_9() {
# check if deb822 Sources (*.sources) exist # check if deb822 Sources (*.sources) exist
if find /etc/apt/sources.list.d/ -maxdepth 1 -name '*.sources' | grep -q .; then if find /etc/apt/sources.list.d/ -maxdepth 1 -name '*.sources' | grep -q .; then
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Deb822 sources detected" \ 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 else
check_and_disable_legacy_sources() { check_and_disable_legacy_sources() {
local LEGACY_COUNT=0 local LEGACY_COUNT=0
@@ -197,7 +197,7 @@ start_routines_9() {
# Check sources.list # Check sources.list
if [[ -f "$listfile" ]] && grep -qE '^\s*deb ' "$listfile"; then if [[ -f "$listfile" ]] && grep -qE '^\s*deb ' "$listfile"; then
((LEGACY_COUNT++)) (( ++LEGACY_COUNT ))
fi fi
# Check .list files # Check .list files

View File

@@ -530,7 +530,12 @@ msg_ok "Extracted OpenWrt Disk Image ${CL}${BL}$FILE${CL}"
msg_info "Creating OpenWrt VM" msg_info "Creating OpenWrt VM"
qm create "$VMID" -cores "$CORE_COUNT" -memory "$RAM_SIZE" -name "$HN" \ qm create "$VMID" -cores "$CORE_COUNT" -memory "$RAM_SIZE" -name "$HN" \
-onboot 1 -ostype l26 -scsihw virtio-scsi-pci --tablet 0 -onboot 1 -ostype l26 -scsihw virtio-scsi-pci --tablet 0
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 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)" 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")" DISK_REF="$(printf '%s\n' "$IMPORT_OUT" | sed -n "s/.*successfully imported disk '\([^']\+\)'.*/\1/p")"