mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 02:12:49 +00:00 
			
		
		
		
	Compare commits
	
		
			34 Commits
		
	
	
		
			2025-04-10
			...
			2025-04-14
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					4b275ae911 | ||
| 
						 | 
					b25b823d69 | ||
| 
						 | 
					d7757aa5d1 | ||
| 
						 | 
					5def868c67 | ||
| 
						 | 
					b87871f56c | ||
| 
						 | 
					4403635733 | ||
| 
						 | 
					2fd847215c | ||
| 
						 | 
					6e2cb8d4e2 | ||
| 
						 | 
					173bc7201c | ||
| 
						 | 
					54b794da54 | ||
| 
						 | 
					203d022db5 | ||
| 
						 | 
					97c05542d6 | ||
| 
						 | 
					20e5b1a2bf | ||
| 
						 | 
					e5800a0ec5 | ||
| 
						 | 
					21bdf2a828 | ||
| 
						 | 
					2551cb4b22 | ||
| 
						 | 
					0cb6ea8e4a | ||
| 
						 | 
					04656327e2 | ||
| 
						 | 
					374c3342a1 | ||
| 
						 | 
					3668c089dd | ||
| 
						 | 
					6dbe7aed99 | ||
| 
						 | 
					423c1e9568 | ||
| 
						 | 
					73fbf74707 | ||
| 
						 | 
					8e87fbd481 | ||
| 
						 | 
					9c9a7c78fc | ||
| 
						 | 
					ea03177126 | ||
| 
						 | 
					df507f74a9 | ||
| 
						 | 
					d933d05bd3 | ||
| 
						 | 
					1cc8b93fc2 | ||
| 
						 | 
					b132580f62 | ||
| 
						 | 
					21da4bc8b5 | ||
| 
						 | 
					36bab52e7a | ||
| 
						 | 
					911ca2da24 | ||
| 
						 | 
					220faf05ff | 
							
								
								
									
										52
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -14,6 +14,58 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
 | 
			
		||||
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## 2025-04-14
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - openziti-controller ([#3880](https://github.com/community-scripts/ProxmoxVE/pull/3880))
 | 
			
		||||
- Alpine-AdGuardHome [@MickLesk](https://github.com/MickLesk) ([#3875](https://github.com/community-scripts/ProxmoxVE/pull/3875))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - Paymenter: bump php to 8.3 [@opastorello](https://github.com/opastorello) ([#3825](https://github.com/community-scripts/ProxmoxVE/pull/3825))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Neo4j: Add Java dependency [@tremor021](https://github.com/tremor021) ([#3871](https://github.com/community-scripts/ProxmoxVE/pull/3871))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Refactor Cockpit update_script part [@MickLesk](https://github.com/MickLesk) ([#3878](https://github.com/community-scripts/ProxmoxVE/pull/3878))
 | 
			
		||||
 | 
			
		||||
## 2025-04-12
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Add "Not Updateable" tooltip to scripts [@BramSuurdje](https://github.com/BramSuurdje) ([#3852](https://github.com/community-scripts/ProxmoxVE/pull/3852))
 | 
			
		||||
 | 
			
		||||
## 2025-04-11
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - slskd: fix missing -o for curl [@MickLesk](https://github.com/MickLesk) ([#3828](https://github.com/community-scripts/ProxmoxVE/pull/3828))
 | 
			
		||||
    - 2FAuth: Fix php dependencies [@tremor021](https://github.com/tremor021) ([#3820](https://github.com/community-scripts/ProxmoxVE/pull/3820))
 | 
			
		||||
    - Komodo: Update Repository link [@sendyputra](https://github.com/sendyputra) ([#3823](https://github.com/community-scripts/ProxmoxVE/pull/3823))
 | 
			
		||||
 | 
			
		||||
### 🧰 Maintenance
 | 
			
		||||
 | 
			
		||||
  - #### 💾 Core
 | 
			
		||||
 | 
			
		||||
    - Enlarge the size of the menu in build.func [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#3833](https://github.com/community-scripts/ProxmoxVE/pull/3833))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - Bump vite from 6.2.5 to 6.2.6 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#3842](https://github.com/community-scripts/ProxmoxVE/pull/3842))
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - SQLServer: fix some typos in notes [@stiny861](https://github.com/stiny861) ([#3838](https://github.com/community-scripts/ProxmoxVE/pull/3838))
 | 
			
		||||
    - Radicale: move to misc category [@tremor021](https://github.com/tremor021) ([#3830](https://github.com/community-scripts/ProxmoxVE/pull/3830))
 | 
			
		||||
 | 
			
		||||
## 2025-04-10
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										47
									
								
								ct/alpine-adguard.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								ct/alpine-adguard.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: MickLesk (CanbiZ)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://adguardhome.com/
 | 
			
		||||
 | 
			
		||||
APP="Alpine-AdGuard"
 | 
			
		||||
var_tags="${var_tags:-alpine;adblock}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-256}"
 | 
			
		||||
var_disk="${var_disk:-1}"
 | 
			
		||||
var_os="${var_os:-alpine}"
 | 
			
		||||
var_version="${var_version:-3.21}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    msg_info "Updating Alpine Packages"
 | 
			
		||||
    $STD apk update
 | 
			
		||||
    $STD apk upgrade
 | 
			
		||||
    msg_ok "Updated Alpine Packages"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating AdGuard Home"
 | 
			
		||||
    $STD /opt/AdGuardHome/AdGuardHome --update
 | 
			
		||||
    msg_ok "Updated AdGuard Home"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restarting AdGuard Home"
 | 
			
		||||
    $STD rc-service adguardhome restart
 | 
			
		||||
    msg_ok "Restarted AdGuard Home"
 | 
			
		||||
 | 
			
		||||
    exit 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
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}:3000${CL}"
 | 
			
		||||
@@ -41,44 +41,56 @@ function update_script() {
 | 
			
		||||
    msg_ok "Updated ${APP} LXC"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if [ "$UPD" == "2" ]; then
 | 
			
		||||
    msg_info "Installing dependencies (patience)"
 | 
			
		||||
    $STD apt-get install -y attr
 | 
			
		||||
    $STD apt-get install -y nfs-kernel-server
 | 
			
		||||
    $STD apt-get install -y samba
 | 
			
		||||
    $STD apt-get install -y samba-common-bin
 | 
			
		||||
    $STD apt-get install -y winbind
 | 
			
		||||
    $STD apt-get install -y gawk
 | 
			
		||||
    $STD apt-get install -y \
 | 
			
		||||
      attr \
 | 
			
		||||
      nfs-kernel-server \
 | 
			
		||||
      samba \
 | 
			
		||||
      samba-common-bin \
 | 
			
		||||
      winbind \
 | 
			
		||||
      gawk
 | 
			
		||||
    msg_ok "Installed dependencies"
 | 
			
		||||
    msg_info "Installing Cockpit file sharing"
 | 
			
		||||
    curl -fsSL "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)")
 | 
			
		||||
    $STD dpkg -i cockpit-file-sharing_*focal_all.deb
 | 
			
		||||
    rm cockpit-file-sharing_*focal_all.deb
 | 
			
		||||
    URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
 | 
			
		||||
    FILE=$(basename "$URL")
 | 
			
		||||
    curl -fsSL "$URL" -o "$FILE"
 | 
			
		||||
    $STD dpkg -i "$FILE" || $STD apt-get install -f -y
 | 
			
		||||
    rm -f "$FILE"
 | 
			
		||||
    msg_ok "Installed Cockpit file sharing"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if [ "$UPD" == "3" ]; then
 | 
			
		||||
    msg_info "Installing dependencies (patience)"
 | 
			
		||||
    $STD apt-get install -y psmisc
 | 
			
		||||
    $STD apt-get install -y samba
 | 
			
		||||
    $STD apt-get install -y samba-common-bin
 | 
			
		||||
    $STD apt-get install -y \
 | 
			
		||||
      psmisc \
 | 
			
		||||
      samba \
 | 
			
		||||
      samba-common-bin
 | 
			
		||||
    msg_ok "Installed dependencies"
 | 
			
		||||
    msg_info "Installing Cockpit identities"
 | 
			
		||||
    curl -fsSL "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)")
 | 
			
		||||
    $STD dpkg -i cockpit-identities_*focal_all.deb
 | 
			
		||||
    rm cockpit-identities_*focal_all.deb
 | 
			
		||||
    URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
 | 
			
		||||
    FILE=$(basename "$URL")
 | 
			
		||||
    curl -fsSL "$URL" -o "$FILE"
 | 
			
		||||
    $STD dpkg -i "$FILE" || $STD apt-get install -f -y
 | 
			
		||||
    rm -f "$FILE"
 | 
			
		||||
    msg_ok "Installed Cockpit identities"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if [ "$UPD" == "4" ]; then
 | 
			
		||||
    msg_info "Installing dependencies"
 | 
			
		||||
    $STD apt-get install -y rsync
 | 
			
		||||
    $STD apt-get install -y zip
 | 
			
		||||
    $STD apt-get install -y \
 | 
			
		||||
      rsync \
 | 
			
		||||
      zip
 | 
			
		||||
    msg_ok "Installed dependencies"
 | 
			
		||||
    msg_info "Installing Cockpit navigator"
 | 
			
		||||
    curl -fsSL "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)")
 | 
			
		||||
    $STD dpkg -i cockpit-navigator_*focal_all.deb
 | 
			
		||||
    rm cockpit-navigator_*focal_all.deb
 | 
			
		||||
    URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
 | 
			
		||||
    FILE=$(basename "$URL")
 | 
			
		||||
    curl -fsSL "$URL" -o "$FILE"
 | 
			
		||||
    $STD dpkg -i "$FILE" || $STD apt-get install -f -y
 | 
			
		||||
    rm -f "$FILE"
 | 
			
		||||
    msg_ok "Installed Cockpit navigator"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/alpine-adguard
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/alpine-adguard
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ___    __      _                  ___       ________                     __
 | 
			
		||||
   /   |  / /___  (_)___  ___        /   | ____/ / ____/_  ______ __________/ /
 | 
			
		||||
  / /| | / / __ \/ / __ \/ _ \______/ /| |/ __  / / __/ / / / __ `/ ___/ __  / 
 | 
			
		||||
 / ___ |/ / /_/ / / / / /  __/_____/ ___ / /_/ / /_/ / /_/ / /_/ / /  / /_/ /  
 | 
			
		||||
/_/  |_/_/ .___/_/_/ /_/\___/     /_/  |_\__,_/\____/\__,_/\__,_/_/   \__,_/   
 | 
			
		||||
        /_/                                                                    
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/openziti-controller
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/openziti-controller
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
                                _ __  _                        __             ____         
 | 
			
		||||
  ____  ____  ___  ____  ____  (_) /_(_)     _________  ____  / /__________  / / /__  _____
 | 
			
		||||
 / __ \/ __ \/ _ \/ __ \/_  / / / __/ /_____/ ___/ __ \/ __ \/ __/ ___/ __ \/ / / _ \/ ___/
 | 
			
		||||
/ /_/ / /_/ /  __/ / / / / /_/ / /_/ /_____/ /__/ /_/ / / / / /_/ /  / /_/ / / /  __/ /    
 | 
			
		||||
\____/ .___/\___/_/ /_/ /___/_/\__/_/      \___/\____/_/ /_/\__/_/   \____/_/_/\___/_/     
 | 
			
		||||
    /_/                                                                                    
 | 
			
		||||
@@ -47,7 +47,7 @@ function update_script() {
 | 
			
		||||
        exit 1
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    GITHUB_URL="https://raw.githubusercontent.com/mbecker20/komodo/main/compose/${COMPOSE_FILE}"
 | 
			
		||||
    GITHUB_URL="https://raw.githubusercontent.com/moghtech/komodo/main/compose/${COMPOSE_FILE}"
 | 
			
		||||
    if ! curl -fsSL "$GITHUB_URL" -o "/opt/komodo/${COMPOSE_FILE}"; then
 | 
			
		||||
        msg_error "Failed to download ${COMPOSE_FILE} from GitHub!"
 | 
			
		||||
        mv "/opt/komodo/${BACKUP_FILE}" "/opt/komodo/${COMPOSE_FILE}"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										36
									
								
								ct/neo4j.sh
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								ct/neo4j.sh
									
									
									
									
									
								
							@@ -20,18 +20,30 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /etc/neo4j ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get -y upgrade
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /etc/neo4j ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if ! dpkg -l | grep -q temurin-21-jre; then
 | 
			
		||||
    msg_info "Installing Adoptium JDK"
 | 
			
		||||
    $STD apt-get install -y \
 | 
			
		||||
      gnupg2 \
 | 
			
		||||
      lsb-release
 | 
			
		||||
    mkdir -p /etc/apt/keyrings
 | 
			
		||||
    curl -fsSL https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor >/etc/apt/trusted.gpg.d/adoptium.gpg
 | 
			
		||||
    echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" >/etc/apt/sources.list.d/adoptium.list
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get install -y temurin-21-jre
 | 
			
		||||
    msg_ok "Adoptium JDK installed"
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating ${APP}"
 | 
			
		||||
  $STD apt-get update
 | 
			
		||||
  $STD apt-get -y upgrade
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
@@ -41,4 +53,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}:7474${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7474${CL}"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										21
									
								
								ct/omada.sh
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								ct/omada.sh
									
									
									
									
									
								
							@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
			
		||||
APP="Omada"
 | 
			
		||||
var_tags="${var_tags:-tp-link;controller}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_ram="${var_ram:-3072}"
 | 
			
		||||
var_disk="${var_disk:-8}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
@@ -53,17 +53,18 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating Omada Controller"
 | 
			
		||||
  latest_url=$(curl -fsSL "https://support.omadanetworks.com/en/download/software/omada-controller/" | grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' | head -n 1)
 | 
			
		||||
  latest_version=$(basename "$latest_url")
 | 
			
		||||
  if [ -z "${latest_version}" ]; then
 | 
			
		||||
    msg_error "It seems that the server (tp-link.com) might be down. Please try again at a later time."
 | 
			
		||||
    exit
 | 
			
		||||
  OMADA_URL=$(curl -fsSL "https://support.omadanetworks.com/en/download/software/omada-controller/" |
 | 
			
		||||
    grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' |
 | 
			
		||||
    head -n1)
 | 
			
		||||
  OMADA_PKG=$(basename "$OMADA_URL")
 | 
			
		||||
  if [ -z "$OMADA_PKG" ]; then
 | 
			
		||||
    msg_error "Could not retrieve Omada package – server may be down."
 | 
			
		||||
    exit 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  curl -fsSL "${latest_url}" -O
 | 
			
		||||
  curl -fsSL "$OMADA_URL" -o "$OMADA_PKG"
 | 
			
		||||
  export DEBIAN_FRONTEND=noninteractive
 | 
			
		||||
  $STD dpkg -i ${latest_version}
 | 
			
		||||
  rm -rf ${latest_version}
 | 
			
		||||
  $STD dpkg -i "$OMADA_PKG"
 | 
			
		||||
  rm -f "$OMADA_PKG"
 | 
			
		||||
  msg_ok "Updated Omada Controller"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										44
									
								
								ct/openziti-controller.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								ct/openziti-controller.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: emoscardini
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/openziti/ziti
 | 
			
		||||
 | 
			
		||||
APP="openziti-controller"
 | 
			
		||||
var_tags="network;openziti-controller"
 | 
			
		||||
var_cpu="2"
 | 
			
		||||
var_ram="1024"
 | 
			
		||||
var_disk="8"
 | 
			
		||||
var_os="debian"
 | 
			
		||||
var_version="12"
 | 
			
		||||
var_unprivileged="1"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
   header_info
 | 
			
		||||
   check_container_storage
 | 
			
		||||
   check_container_resources
 | 
			
		||||
   if [[ ! -d /opt/openziti ]]; then
 | 
			
		||||
      msg_error "No ${APP} Installation Found!"
 | 
			
		||||
      exit
 | 
			
		||||
   fi
 | 
			
		||||
   msg_info "Updating $APP LXC"
 | 
			
		||||
   $STD apt-get update
 | 
			
		||||
   $STD apt-get -y upgrade
 | 
			
		||||
   msg_ok "Updated $APP LXC"
 | 
			
		||||
   exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
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}https://${IP}:<port>/zac${CL}"
 | 
			
		||||
@@ -28,11 +28,26 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  CURRENT_PHP=$(php -v 2>/dev/null | awk '/^PHP/{print $2}' | cut -d. -f1,2)
 | 
			
		||||
  if [[ "$CURRENT_PHP" != "8.3" ]]; then
 | 
			
		||||
    msg_info "Migrating PHP $CURRENT_PHP to 8.3"
 | 
			
		||||
    $STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
 | 
			
		||||
    $STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
 | 
			
		||||
    $STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get remove -y php"${CURRENT_PHP//./}"*
 | 
			
		||||
    $STD apt-get install -y \
 | 
			
		||||
      php8.3 \
 | 
			
		||||
      php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,curl,zip,intl,redis,fpm}
 | 
			
		||||
    sed -i 's|php8\.2-fpm\.sock|php8.3-fpm.sock|g' /etc/nginx/sites-available/paymenter.conf
 | 
			
		||||
    $STD systemctl reload nginx
 | 
			
		||||
    msg_ok "Migrated PHP $CURRENT_PHP to 8.3"
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/paymenter/paymenter/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    cd /opt/paymenter
 | 
			
		||||
    cd /opt/paymenter || exit
 | 
			
		||||
    $STD php artisan p:upgrade --no-interaction
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
@@ -48,4 +63,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}:80${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -47,7 +47,7 @@ function update_script() {
 | 
			
		||||
    cp /opt/soularr/run.sh /opt/run.sh.bak
 | 
			
		||||
    cd /tmp
 | 
			
		||||
    rm -rf /opt/soularr
 | 
			
		||||
    curl -fsSL https://github.com/mrusse/soularr/archive/refs/heads/main.zip
 | 
			
		||||
    curl -fsSL -o main.zip https://github.com/mrusse/soularr/archive/refs/heads/main.zip
 | 
			
		||||
    unzip -q main.zip
 | 
			
		||||
    mv soularr-main /opt/soularr
 | 
			
		||||
    cd /opt/soularr
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										394
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										394
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -21,7 +21,7 @@
 | 
			
		||||
        "@radix-ui/react-slot": "^1.1.2",
 | 
			
		||||
        "@radix-ui/react-switch": "^1.1.3",
 | 
			
		||||
        "@radix-ui/react-tabs": "^1.1.3",
 | 
			
		||||
        "@radix-ui/react-tooltip": "^1.1.8",
 | 
			
		||||
        "@radix-ui/react-tooltip": "^1.2.0",
 | 
			
		||||
        "@tanstack/react-query": "^5.71.1",
 | 
			
		||||
        "chart.js": "^4.4.8",
 | 
			
		||||
        "chartjs-plugin-datalabels": "^2.2.0",
 | 
			
		||||
@@ -2570,23 +2570,23 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip": {
 | 
			
		||||
      "version": "1.1.8",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.8.tgz",
 | 
			
		||||
      "integrity": "sha512-YAA2cu48EkJZdAMHC0dqo9kialOcRStbtiY4nJPaht7Ptrhcvpo+eDChaM6BIs8kL6a8Z5l5poiqLnXcNduOkA==",
 | 
			
		||||
      "version": "1.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.0.tgz",
 | 
			
		||||
      "integrity": "sha512-b1Sdc75s7zN9B8ONQTGBSHL3XS8+IcjcOIY51fhM4R1Hx8s0YbgqgyNZiri4qcYMVZK8hfCZVBiyCm7N9rs0rw==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@radix-ui/primitive": "1.1.1",
 | 
			
		||||
        "@radix-ui/react-compose-refs": "1.1.1",
 | 
			
		||||
        "@radix-ui/react-context": "1.1.1",
 | 
			
		||||
        "@radix-ui/react-dismissable-layer": "1.1.5",
 | 
			
		||||
        "@radix-ui/react-id": "1.1.0",
 | 
			
		||||
        "@radix-ui/react-popper": "1.2.2",
 | 
			
		||||
        "@radix-ui/react-portal": "1.1.4",
 | 
			
		||||
        "@radix-ui/react-presence": "1.1.2",
 | 
			
		||||
        "@radix-ui/react-primitive": "2.0.2",
 | 
			
		||||
        "@radix-ui/react-slot": "1.1.2",
 | 
			
		||||
        "@radix-ui/react-use-controllable-state": "1.1.0",
 | 
			
		||||
        "@radix-ui/react-visually-hidden": "1.1.2"
 | 
			
		||||
        "@radix-ui/primitive": "1.1.2",
 | 
			
		||||
        "@radix-ui/react-compose-refs": "1.1.2",
 | 
			
		||||
        "@radix-ui/react-context": "1.1.2",
 | 
			
		||||
        "@radix-ui/react-dismissable-layer": "1.1.6",
 | 
			
		||||
        "@radix-ui/react-id": "1.1.1",
 | 
			
		||||
        "@radix-ui/react-popper": "1.2.3",
 | 
			
		||||
        "@radix-ui/react-portal": "1.1.5",
 | 
			
		||||
        "@radix-ui/react-presence": "1.1.3",
 | 
			
		||||
        "@radix-ui/react-primitive": "2.0.3",
 | 
			
		||||
        "@radix-ui/react-slot": "1.2.0",
 | 
			
		||||
        "@radix-ui/react-use-controllable-state": "1.1.1",
 | 
			
		||||
        "@radix-ui/react-visually-hidden": "1.1.3"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
@@ -2603,6 +2603,362 @@
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/primitive": {
 | 
			
		||||
      "version": "1.1.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz",
 | 
			
		||||
      "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==",
 | 
			
		||||
      "license": "MIT"
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-arrow": {
 | 
			
		||||
      "version": "1.1.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.3.tgz",
 | 
			
		||||
      "integrity": "sha512-2dvVU4jva0qkNZH6HHWuSz5FN5GeU5tymvCgutF8WaXz9WnD1NgUhy73cqzkjkN4Zkn8lfTPv5JIfrC221W+Nw==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@radix-ui/react-primitive": "2.0.3"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "@types/react-dom": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
 | 
			
		||||
        "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        },
 | 
			
		||||
        "@types/react-dom": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-compose-refs": {
 | 
			
		||||
      "version": "1.1.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz",
 | 
			
		||||
      "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-context": {
 | 
			
		||||
      "version": "1.1.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz",
 | 
			
		||||
      "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-dismissable-layer": {
 | 
			
		||||
      "version": "1.1.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.6.tgz",
 | 
			
		||||
      "integrity": "sha512-7gpgMT2gyKym9Jz2ZhlRXSg2y6cNQIK8d/cqBZ0RBCaps8pFryCWXiUKI+uHGFrhMrbGUP7U6PWgiXzIxoyF3Q==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@radix-ui/primitive": "1.1.2",
 | 
			
		||||
        "@radix-ui/react-compose-refs": "1.1.2",
 | 
			
		||||
        "@radix-ui/react-primitive": "2.0.3",
 | 
			
		||||
        "@radix-ui/react-use-callback-ref": "1.1.1",
 | 
			
		||||
        "@radix-ui/react-use-escape-keydown": "1.1.1"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "@types/react-dom": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
 | 
			
		||||
        "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        },
 | 
			
		||||
        "@types/react-dom": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-id": {
 | 
			
		||||
      "version": "1.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@radix-ui/react-use-layout-effect": "1.1.1"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-popper": {
 | 
			
		||||
      "version": "1.2.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.3.tgz",
 | 
			
		||||
      "integrity": "sha512-iNb9LYUMkne9zIahukgQmHlSBp9XWGeQQ7FvUGNk45ywzOb6kQa+Ca38OphXlWDiKvyneo9S+KSJsLfLt8812A==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@floating-ui/react-dom": "^2.0.0",
 | 
			
		||||
        "@radix-ui/react-arrow": "1.1.3",
 | 
			
		||||
        "@radix-ui/react-compose-refs": "1.1.2",
 | 
			
		||||
        "@radix-ui/react-context": "1.1.2",
 | 
			
		||||
        "@radix-ui/react-primitive": "2.0.3",
 | 
			
		||||
        "@radix-ui/react-use-callback-ref": "1.1.1",
 | 
			
		||||
        "@radix-ui/react-use-layout-effect": "1.1.1",
 | 
			
		||||
        "@radix-ui/react-use-rect": "1.1.1",
 | 
			
		||||
        "@radix-ui/react-use-size": "1.1.1",
 | 
			
		||||
        "@radix-ui/rect": "1.1.1"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "@types/react-dom": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
 | 
			
		||||
        "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        },
 | 
			
		||||
        "@types/react-dom": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-portal": {
 | 
			
		||||
      "version": "1.1.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.5.tgz",
 | 
			
		||||
      "integrity": "sha512-ps/67ZqsFm+Mb6lSPJpfhRLrVL2i2fntgCmGMqqth4eaGUf+knAuuRtWVJrNjUhExgmdRqftSgzpf0DF0n6yXA==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@radix-ui/react-primitive": "2.0.3",
 | 
			
		||||
        "@radix-ui/react-use-layout-effect": "1.1.1"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "@types/react-dom": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
 | 
			
		||||
        "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        },
 | 
			
		||||
        "@types/react-dom": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-presence": {
 | 
			
		||||
      "version": "1.1.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.3.tgz",
 | 
			
		||||
      "integrity": "sha512-IrVLIhskYhH3nLvtcBLQFZr61tBG7wx7O3kEmdzcYwRGAEBmBicGGL7ATzNgruYJ3xBTbuzEEq9OXJM3PAX3tA==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@radix-ui/react-compose-refs": "1.1.2",
 | 
			
		||||
        "@radix-ui/react-use-layout-effect": "1.1.1"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "@types/react-dom": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
 | 
			
		||||
        "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        },
 | 
			
		||||
        "@types/react-dom": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-primitive": {
 | 
			
		||||
      "version": "2.0.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.3.tgz",
 | 
			
		||||
      "integrity": "sha512-Pf/t/GkndH7CQ8wE2hbkXA+WyZ83fhQQn5DDmwDiDo6AwN/fhaH8oqZ0jRjMrO2iaMhDi6P1HRx6AZwyMinY1g==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@radix-ui/react-slot": "1.2.0"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "@types/react-dom": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
 | 
			
		||||
        "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        },
 | 
			
		||||
        "@types/react-dom": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot": {
 | 
			
		||||
      "version": "1.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.0.tgz",
 | 
			
		||||
      "integrity": "sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@radix-ui/react-compose-refs": "1.1.2"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-use-callback-ref": {
 | 
			
		||||
      "version": "1.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-use-controllable-state": {
 | 
			
		||||
      "version": "1.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-YnEXIy8/ga01Y1PN0VfaNH//MhA91JlEGVBDxDzROqwrAtG5Yr2QGEPz8A/rJA3C7ZAHryOYGaUv8fLSW2H/mg==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@radix-ui/react-use-callback-ref": "1.1.1"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-use-escape-keydown": {
 | 
			
		||||
      "version": "1.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@radix-ui/react-use-callback-ref": "1.1.1"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-use-layout-effect": {
 | 
			
		||||
      "version": "1.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-use-rect": {
 | 
			
		||||
      "version": "1.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@radix-ui/rect": "1.1.1"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-use-size": {
 | 
			
		||||
      "version": "1.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@radix-ui/react-use-layout-effect": "1.1.1"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-visually-hidden": {
 | 
			
		||||
      "version": "1.1.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.3.tgz",
 | 
			
		||||
      "integrity": "sha512-oXSF3ZQRd5fvomd9hmUCb2EHSZbPp3ZSHAHJJU/DlF9XoFkJBBW8RHU/E8WEH+RbSfJd/QFA0sl8ClJXknBwHQ==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@radix-ui/react-primitive": "2.0.3"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@types/react": "*",
 | 
			
		||||
        "@types/react-dom": "*",
 | 
			
		||||
        "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
 | 
			
		||||
        "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@types/react": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        },
 | 
			
		||||
        "@types/react-dom": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/rect": {
 | 
			
		||||
      "version": "1.1.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz",
 | 
			
		||||
      "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==",
 | 
			
		||||
      "license": "MIT"
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@radix-ui/react-use-callback-ref": {
 | 
			
		||||
      "version": "1.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz",
 | 
			
		||||
@@ -9667,9 +10023,9 @@
 | 
			
		||||
      "license": "MIT"
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/vite": {
 | 
			
		||||
      "version": "6.2.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.5.tgz",
 | 
			
		||||
      "integrity": "sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA==",
 | 
			
		||||
      "version": "6.2.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.6.tgz",
 | 
			
		||||
      "integrity": "sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@
 | 
			
		||||
    "@radix-ui/react-slot": "^1.1.2",
 | 
			
		||||
    "@radix-ui/react-switch": "^1.1.3",
 | 
			
		||||
    "@radix-ui/react-tabs": "^1.1.3",
 | 
			
		||||
    "@radix-ui/react-tooltip": "^1.1.8",
 | 
			
		||||
    "@radix-ui/react-tooltip": "^1.2.0",
 | 
			
		||||
    "@tanstack/react-query": "^5.71.1",
 | 
			
		||||
    "chart.js": "^4.4.8",
 | 
			
		||||
    "chartjs-plugin-datalabels": "^2.2.0",
 | 
			
		||||
 
 | 
			
		||||
@@ -24,6 +24,17 @@
 | 
			
		||||
                "os": "debian",
 | 
			
		||||
                "version": "12"
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "type": "alpine",
 | 
			
		||||
            "script": "ct/alpine-adguard.sh",
 | 
			
		||||
            "resources": {
 | 
			
		||||
                "cpu": 1,
 | 
			
		||||
                "ram": 256,
 | 
			
		||||
                "hdd": 1,
 | 
			
		||||
                "os": "alpine",
 | 
			
		||||
                "version": "3.21"
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    "default_credentials": {
 | 
			
		||||
 
 | 
			
		||||
@@ -19,7 +19,7 @@
 | 
			
		||||
            "script": "ct/omada.sh",
 | 
			
		||||
            "resources": {
 | 
			
		||||
                "cpu": 2,
 | 
			
		||||
                "ram": 2048,
 | 
			
		||||
                "ram": 3072,
 | 
			
		||||
                "hdd": 8,
 | 
			
		||||
                "os": "debian",
 | 
			
		||||
                "version": "12"
 | 
			
		||||
@@ -31,4 +31,4 @@
 | 
			
		||||
        "password": null
 | 
			
		||||
    },
 | 
			
		||||
    "notes": []
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										39
									
								
								frontend/public/json/openziti-controller.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								frontend/public/json/openziti-controller.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
{
 | 
			
		||||
    "name": "openziti-controller",
 | 
			
		||||
    "slug": "openziti-controller",
 | 
			
		||||
    "categories": [
 | 
			
		||||
        4
 | 
			
		||||
    ],
 | 
			
		||||
    "date_created": "2025-04-14",
 | 
			
		||||
    "type": "ct",
 | 
			
		||||
    "updateable": true,
 | 
			
		||||
    "privileged": false,
 | 
			
		||||
    "interface_port": null,
 | 
			
		||||
    "documentation": "https://openziti.io/docs/reference/tunnelers/docker/",
 | 
			
		||||
    "website": "https://www.openziti.io/",
 | 
			
		||||
    "logo": "https://raw.githubusercontent.com/openziti/ziti-doc/main/docusaurus/static/img/ziti-logo-dark.svg",
 | 
			
		||||
    "description": "OpenZiti is an open-source, zero trust networking platform that enables secure connectivity between applications, services, and devices. It provides secure, encrypted connections between clients and services, and can be used to create secure, zero trust networks.",
 | 
			
		||||
    "install_methods": [
 | 
			
		||||
        {
 | 
			
		||||
            "type": "default",
 | 
			
		||||
            "script": "ct/openziti-controller.sh",
 | 
			
		||||
            "resources": {
 | 
			
		||||
                "cpu": 2,
 | 
			
		||||
                "ram": 1024,
 | 
			
		||||
                "hdd": 8,
 | 
			
		||||
                "os": "debian",
 | 
			
		||||
                "version": "12"
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    "default_credentials": {
 | 
			
		||||
        "username": null,
 | 
			
		||||
        "password": null
 | 
			
		||||
    },
 | 
			
		||||
    "notes": [
 | 
			
		||||
        {
 | 
			
		||||
            "text": "The Openziti Controller installation will prompt for configuration settings during installation.",
 | 
			
		||||
            "type": "info"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
@@ -30,5 +30,10 @@
 | 
			
		||||
    "username": "admin@paymenter.org",
 | 
			
		||||
    "password": "paymenter"
 | 
			
		||||
  },
 | 
			
		||||
  "notes": []
 | 
			
		||||
  "notes": [
 | 
			
		||||
    {
 | 
			
		||||
      "text": "After installation, navigate to the directory with `cd /opt/paymenter` and run `php artisan app:init`. An interactive setup will prompt you to enter your company name and application URL.",
 | 
			
		||||
      "type": "info"
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,43 +1,43 @@
 | 
			
		||||
{
 | 
			
		||||
    "name": "Radicale",
 | 
			
		||||
    "slug": "radicale",
 | 
			
		||||
    "categories": [
 | 
			
		||||
        6
 | 
			
		||||
    ],
 | 
			
		||||
    "date_created": "2025-02-02",
 | 
			
		||||
    "type": "ct",
 | 
			
		||||
    "updateable": false,
 | 
			
		||||
    "privileged": false,
 | 
			
		||||
    "interface_port": 5232,
 | 
			
		||||
    "documentation": "https://radicale.org/master.html#documentation-1",
 | 
			
		||||
    "website": "https://radicale.org/",
 | 
			
		||||
    "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/radicale.svg",
 | 
			
		||||
    "description": "Radicale is a small but powerful CalDAV (calendars, to-do lists) and CardDAV (contacts)",
 | 
			
		||||
    "install_methods": [
 | 
			
		||||
      {
 | 
			
		||||
        "type": "default",
 | 
			
		||||
        "script": "ct/radicale.sh",
 | 
			
		||||
        "resources": {
 | 
			
		||||
          "cpu": 1,
 | 
			
		||||
          "ram": 512,
 | 
			
		||||
          "hdd": 2,
 | 
			
		||||
          "os": "debian",
 | 
			
		||||
          "version": "12"
 | 
			
		||||
        }
 | 
			
		||||
  "name": "Radicale",
 | 
			
		||||
  "slug": "radicale",
 | 
			
		||||
  "categories": [
 | 
			
		||||
    0
 | 
			
		||||
  ],
 | 
			
		||||
  "date_created": "2025-02-02",
 | 
			
		||||
  "type": "ct",
 | 
			
		||||
  "updateable": false,
 | 
			
		||||
  "privileged": false,
 | 
			
		||||
  "interface_port": 5232,
 | 
			
		||||
  "documentation": "https://radicale.org/master.html#documentation-1",
 | 
			
		||||
  "website": "https://radicale.org/",
 | 
			
		||||
  "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/radicale.svg",
 | 
			
		||||
  "description": "Radicale is a small but powerful CalDAV (calendars, to-do lists) and CardDAV (contacts)",
 | 
			
		||||
  "install_methods": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "default",
 | 
			
		||||
      "script": "ct/radicale.sh",
 | 
			
		||||
      "resources": {
 | 
			
		||||
        "cpu": 1,
 | 
			
		||||
        "ram": 512,
 | 
			
		||||
        "hdd": 2,
 | 
			
		||||
        "os": "debian",
 | 
			
		||||
        "version": "12"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "default_credentials": {
 | 
			
		||||
      "username": null,
 | 
			
		||||
      "password": null
 | 
			
		||||
    },
 | 
			
		||||
    "notes": [
 | 
			
		||||
      {
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "default_credentials": {
 | 
			
		||||
    "username": null,
 | 
			
		||||
    "password": null
 | 
			
		||||
  },
 | 
			
		||||
  "notes": [
 | 
			
		||||
    {
 | 
			
		||||
      "text": "To view the user credentials : `cat radicale.creds`",
 | 
			
		||||
      "type": "info"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "text": "This application requires additional configuration. Please refer to https://github.com/community-scripts/ProxmoxVE/discussions/2073.",
 | 
			
		||||
        "type": "info"
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "text": "This application requires additional configuration. Please refer to https://github.com/community-scripts/ProxmoxVE/discussions/2073.",
 | 
			
		||||
      "type": "info"
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@
 | 
			
		||||
   },
 | 
			
		||||
   "notes":[
 | 
			
		||||
      {
 | 
			
		||||
         "text":"if you not choose the install setup, execute: `/opt/mssql/bin/mssql-conf setup` in LXC shell.",
 | 
			
		||||
         "text":"If you choose not to run the installation setup, execute: `/opt/mssql/bin/mssql-conf setup` in LXC shell.",
 | 
			
		||||
         "type":"info"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
@@ -40,7 +40,7 @@
 | 
			
		||||
         "type":"info"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
         "text":"Do disable the SA account if you intent to use this in production!",
 | 
			
		||||
         "text":"Make sure you disable the SA account if you intend to use this in production!",
 | 
			
		||||
         "type":"warning"
 | 
			
		||||
      }
 | 
			
		||||
   ]
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,48 @@
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Graylog2/graylog2-server",
 | 
			
		||||
    "version": "6.2.0-rc.1",
 | 
			
		||||
    "date": "2025-04-14T11:26:18Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "fhem/fhem-mirror",
 | 
			
		||||
    "version": "6.2",
 | 
			
		||||
    "date": "2025-04-10T10:34:26Z"
 | 
			
		||||
    "date": "2025-04-14T10:36:18Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "n8n-io/n8n",
 | 
			
		||||
    "version": "n8n@1.86.1",
 | 
			
		||||
    "date": "2025-04-09T09:20:55Z"
 | 
			
		||||
    "name": "bluenviron/mediamtx",
 | 
			
		||||
    "version": "v1.12.0",
 | 
			
		||||
    "date": "2025-04-14T10:36:04Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Stirling-Tools/Stirling-PDF",
 | 
			
		||||
    "version": "v0.45.5",
 | 
			
		||||
    "date": "2025-04-14T09:57:39Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "open-webui/open-webui",
 | 
			
		||||
    "version": "v0.6.5",
 | 
			
		||||
    "date": "2025-04-14T09:13:36Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zwave-js/zwave-js-ui",
 | 
			
		||||
    "version": "v10.2.0",
 | 
			
		||||
    "date": "2025-04-14T08:53:44Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zabbix/zabbix",
 | 
			
		||||
    "version": "6.0.40rc1",
 | 
			
		||||
    "date": "2025-04-14T08:45:46Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "duplicati/duplicati",
 | 
			
		||||
    "version": "v2.1.0.114-2.1.0.114_canary_2025-04-14",
 | 
			
		||||
    "date": "2025-04-14T07:54:21Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "evcc-io/evcc",
 | 
			
		||||
    "version": "0.203.1",
 | 
			
		||||
    "date": "2025-04-14T07:23:02Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "morpheus65535/bazarr",
 | 
			
		||||
@@ -16,18 +51,238 @@
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Jackett/Jackett",
 | 
			
		||||
    "version": "v0.22.1756",
 | 
			
		||||
    "date": "2025-04-10T05:56:27Z"
 | 
			
		||||
    "version": "v0.22.1775",
 | 
			
		||||
    "date": "2025-04-14T05:59:53Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "outline/outline",
 | 
			
		||||
    "version": "v0.82.1-23",
 | 
			
		||||
    "date": "2025-04-10T03:51:33Z"
 | 
			
		||||
    "name": "firefly-iii/firefly-iii",
 | 
			
		||||
    "version": "v6.2.10",
 | 
			
		||||
    "date": "2025-03-22T13:02:26Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "glanceapp/glance",
 | 
			
		||||
    "version": "v0.7.10",
 | 
			
		||||
    "date": "2025-04-09T23:51:06Z"
 | 
			
		||||
    "version": "v0.7.12",
 | 
			
		||||
    "date": "2025-04-14T00:16:15Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "ellite/Wallos",
 | 
			
		||||
    "version": "v2.49.1",
 | 
			
		||||
    "date": "2025-04-13T22:36:24Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "rogerfar/rdt-client",
 | 
			
		||||
    "version": "v2.0.108",
 | 
			
		||||
    "date": "2025-04-13T22:17:55Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "autobrr/autobrr",
 | 
			
		||||
    "version": "v1.61.0",
 | 
			
		||||
    "date": "2025-04-13T21:14:40Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Ombi-app/Ombi",
 | 
			
		||||
    "version": "v4.47.1",
 | 
			
		||||
    "date": "2025-01-05T21:14:23Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "pocket-id/pocket-id",
 | 
			
		||||
    "version": "v0.46.0",
 | 
			
		||||
    "date": "2025-04-13T18:31:13Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "runtipi/runtipi",
 | 
			
		||||
    "version": "v3.10.0",
 | 
			
		||||
    "date": "2025-03-15T14:38:16Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "keycloak/keycloak",
 | 
			
		||||
    "version": "26.2.0",
 | 
			
		||||
    "date": "2025-04-11T12:48:27Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "karakeep-app/karakeep",
 | 
			
		||||
    "version": "mcp/v0.23.4",
 | 
			
		||||
    "date": "2025-04-13T14:09:19Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "syncthing/syncthing",
 | 
			
		||||
    "version": "v2.0.0-beta.9",
 | 
			
		||||
    "date": "2025-04-12T13:58:29Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "qbittorrent/qBittorrent",
 | 
			
		||||
    "version": "release-5.0.5",
 | 
			
		||||
    "date": "2025-04-13T07:55:55Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Lidarr/Lidarr",
 | 
			
		||||
    "version": "v2.10.3.4602",
 | 
			
		||||
    "date": "2025-03-23T11:00:37Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Readarr/Readarr",
 | 
			
		||||
    "version": "v2.0.0.4645",
 | 
			
		||||
    "date": "2017-03-07T18:56:06Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Prowlarr/Prowlarr",
 | 
			
		||||
    "version": "v1.33.3.5008",
 | 
			
		||||
    "date": "2025-04-09T17:58:37Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Radarr/Radarr",
 | 
			
		||||
    "version": "v5.21.1.9799",
 | 
			
		||||
    "date": "2025-03-24T15:52:12Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "slskd/slskd",
 | 
			
		||||
    "version": "0.22.4",
 | 
			
		||||
    "date": "2025-04-13T00:14:13Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Tautulli/Tautulli",
 | 
			
		||||
    "version": "v2.15.2",
 | 
			
		||||
    "date": "2025-04-12T23:27:51Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "StarFleetCPTN/GoMFT",
 | 
			
		||||
    "version": "v0.2.11",
 | 
			
		||||
    "date": "2025-04-12T21:13:08Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "semaphoreui/semaphore",
 | 
			
		||||
    "version": "v2.14.0-beta1",
 | 
			
		||||
    "date": "2025-04-12T20:14:09Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "MediaBrowser/Emby.Releases",
 | 
			
		||||
    "version": "4.8.11.0",
 | 
			
		||||
    "date": "2025-03-10T06:39:11Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "home-assistant/core",
 | 
			
		||||
    "version": "2025.4.2",
 | 
			
		||||
    "date": "2025-04-12T09:46:22Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "readeck/readeck",
 | 
			
		||||
    "version": "0.18.0",
 | 
			
		||||
    "date": "2025-04-12T08:55:32Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Bubka/2FAuth",
 | 
			
		||||
    "version": "v5.5.2",
 | 
			
		||||
    "date": "2025-04-11T22:00:06Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "homarr-labs/homarr",
 | 
			
		||||
    "version": "v1.16.0",
 | 
			
		||||
    "date": "2025-04-11T19:15:24Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "rabbitmq/rabbitmq-server",
 | 
			
		||||
    "version": "v4.0.8",
 | 
			
		||||
    "date": "2025-04-03T05:11:15Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "tailscale/tailscale",
 | 
			
		||||
    "version": "v1.82.4",
 | 
			
		||||
    "date": "2025-04-11T17:58:09Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "coder/code-server",
 | 
			
		||||
    "version": "v4.99.2",
 | 
			
		||||
    "date": "2025-04-11T17:57:47Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "TriliumNext/Notes",
 | 
			
		||||
    "version": "v0.0.0",
 | 
			
		||||
    "date": "2025-04-11T14:18:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "emqx/emqx",
 | 
			
		||||
    "version": "e5.9.0-beta.3",
 | 
			
		||||
    "date": "2025-04-11T14:17:53Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "NLnetLabs/unbound",
 | 
			
		||||
    "version": "release-1.23.0rc2",
 | 
			
		||||
    "date": "2025-04-11T13:24:25Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "docmost/docmost",
 | 
			
		||||
    "version": "v0.10.1",
 | 
			
		||||
    "date": "2025-04-11T12:42:08Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "dgtlmoon/changedetection.io",
 | 
			
		||||
    "version": "0.49.13",
 | 
			
		||||
    "date": "2025-04-11T11:48:06Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "sabnzbd/sabnzbd",
 | 
			
		||||
    "version": "4.5.1",
 | 
			
		||||
    "date": "2025-04-11T09:57:47Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "home-assistant/operating-system",
 | 
			
		||||
    "version": "15.1",
 | 
			
		||||
    "date": "2025-03-31T13:42:20Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "outline/outline",
 | 
			
		||||
    "version": "v0.83.0",
 | 
			
		||||
    "date": "2025-04-11T03:53:10Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "openobserve/openobserve",
 | 
			
		||||
    "version": "v0.14.6-rc3",
 | 
			
		||||
    "date": "2025-04-11T03:08:28Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Luligu/matterbridge",
 | 
			
		||||
    "version": "2.2.8",
 | 
			
		||||
    "date": "2025-04-10T20:30:49Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "netbox-community/netbox",
 | 
			
		||||
    "version": "v4.2.7",
 | 
			
		||||
    "date": "2025-04-10T20:08:13Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "gristlabs/grist-core",
 | 
			
		||||
    "version": "v1.5.1",
 | 
			
		||||
    "date": "2025-04-10T19:48:43Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "apache/cassandra",
 | 
			
		||||
    "version": "cassandra-5.0.4",
 | 
			
		||||
    "date": "2025-04-10T16:32:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "VictoriaMetrics/VictoriaMetrics",
 | 
			
		||||
    "version": "v1.18.0-victorialogs",
 | 
			
		||||
    "date": "2025-04-10T15:05:20Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "NodeBB/NodeBB",
 | 
			
		||||
    "version": "v4.2.1",
 | 
			
		||||
    "date": "2025-04-10T14:03:47Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Paymenter/Paymenter",
 | 
			
		||||
    "version": "v1.0.3",
 | 
			
		||||
    "date": "2025-04-10T13:57:39Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "docker/compose",
 | 
			
		||||
    "version": "v2.35.0",
 | 
			
		||||
    "date": "2025-04-10T13:45:22Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "n8n-io/n8n",
 | 
			
		||||
    "version": "n8n@1.86.1",
 | 
			
		||||
    "date": "2025-04-09T09:20:55Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "mongodb/mongo",
 | 
			
		||||
@@ -39,46 +294,11 @@
 | 
			
		||||
    "version": "v2.15.1",
 | 
			
		||||
    "date": "2025-04-09T22:26:39Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "syncthing/syncthing",
 | 
			
		||||
    "version": "v2.0.0-beta.7",
 | 
			
		||||
    "date": "2025-04-09T13:41:32Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "NodeBB/NodeBB",
 | 
			
		||||
    "version": "v4.2.0",
 | 
			
		||||
    "date": "2025-03-19T18:34:01Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "docmost/docmost",
 | 
			
		||||
    "version": "v0.10.0",
 | 
			
		||||
    "date": "2025-04-09T18:58:20Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Prowlarr/Prowlarr",
 | 
			
		||||
    "version": "v1.33.3.5008",
 | 
			
		||||
    "date": "2025-04-09T17:58:37Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "jupyter/notebook",
 | 
			
		||||
    "version": "v7.4.0",
 | 
			
		||||
    "date": "2025-04-09T17:36:14Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "MediaBrowser/Emby.Releases",
 | 
			
		||||
    "version": "4.8.11.0",
 | 
			
		||||
    "date": "2025-03-10T06:39:11Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Stirling-Tools/Stirling-PDF",
 | 
			
		||||
    "version": "v0.45.3",
 | 
			
		||||
    "date": "2025-04-09T17:17:58Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "keycloak/keycloak",
 | 
			
		||||
    "version": "26.1.4",
 | 
			
		||||
    "date": "2025-03-13T15:41:42Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Brandawg93/PeaNUT",
 | 
			
		||||
    "version": "v5.7.1",
 | 
			
		||||
@@ -89,21 +309,11 @@
 | 
			
		||||
    "version": "10.0.18",
 | 
			
		||||
    "date": "2025-02-12T11:07:02Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "slskd/slskd",
 | 
			
		||||
    "version": "0.22.3",
 | 
			
		||||
    "date": "2025-04-09T14:02:12Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "HabitRPG/habitica",
 | 
			
		||||
    "version": "v5.35.2",
 | 
			
		||||
    "date": "2025-04-09T13:46:58Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "homarr-labs/homarr",
 | 
			
		||||
    "version": "v1.15.0",
 | 
			
		||||
    "date": "2025-04-09T13:27:14Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zitadel/zitadel",
 | 
			
		||||
    "version": "v2.69.10",
 | 
			
		||||
@@ -119,31 +329,11 @@
 | 
			
		||||
    "version": "2025.3.3",
 | 
			
		||||
    "date": "2025-03-31T22:07:05Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "runtipi/runtipi",
 | 
			
		||||
    "version": "v3.10.0",
 | 
			
		||||
    "date": "2025-03-15T14:38:16Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "StarFleetCPTN/GoMFT",
 | 
			
		||||
    "version": "v0.2.7",
 | 
			
		||||
    "date": "2025-04-09T04:53:30Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "OliveTin/OliveTin",
 | 
			
		||||
    "version": "2025.4.8",
 | 
			
		||||
    "date": "2025-04-08T22:02:50Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "coder/code-server",
 | 
			
		||||
    "version": "v4.99.1",
 | 
			
		||||
    "date": "2025-04-08T21:35:21Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "semaphoreui/semaphore",
 | 
			
		||||
    "version": "v2.13.12",
 | 
			
		||||
    "date": "2025-04-08T20:54:58Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "minio/minio",
 | 
			
		||||
    "version": "RELEASE.2025-04-08T15-41-24Z",
 | 
			
		||||
@@ -169,11 +359,6 @@
 | 
			
		||||
    "version": "v0.107.59",
 | 
			
		||||
    "date": "2025-03-21T11:11:39Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "openobserve/openobserve",
 | 
			
		||||
    "version": "v0.14.6-rc2",
 | 
			
		||||
    "date": "2025-04-08T14:42:54Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "element-hq/synapse",
 | 
			
		||||
    "version": "v1.128.0",
 | 
			
		||||
@@ -189,11 +374,6 @@
 | 
			
		||||
    "version": "v0.303.0-rc.1",
 | 
			
		||||
    "date": "2025-04-07T04:39:38Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "NLnetLabs/unbound",
 | 
			
		||||
    "version": "release-1.23.0rc1",
 | 
			
		||||
    "date": "2025-04-08T06:39:46Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "pelican-dev/panel",
 | 
			
		||||
    "version": "v1.0.0-beta19",
 | 
			
		||||
@@ -229,41 +409,16 @@
 | 
			
		||||
    "version": "v1.10.0",
 | 
			
		||||
    "date": "2025-04-07T14:32:15Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "apache/cassandra",
 | 
			
		||||
    "version": "5.0.4-tentative",
 | 
			
		||||
    "date": "2025-04-07T12:05:05Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Graylog2/graylog2-server",
 | 
			
		||||
    "version": "6.2.0-beta.4",
 | 
			
		||||
    "date": "2025-04-07T11:28:13Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "VictoriaMetrics/VictoriaMetrics",
 | 
			
		||||
    "version": "pmm-6401-v1.115.0",
 | 
			
		||||
    "date": "2025-04-07T11:15:53Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "fallenbagel/jellyseerr",
 | 
			
		||||
    "version": "preview-back-to-axios",
 | 
			
		||||
    "date": "2025-04-07T09:23:08Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zwave-js/zwave-js-ui",
 | 
			
		||||
    "version": "v10.1.5",
 | 
			
		||||
    "date": "2025-04-07T09:19:35Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "redis/redis",
 | 
			
		||||
    "version": "8.0-rc1-int2",
 | 
			
		||||
    "date": "2025-04-02T19:05:08Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zabbix/zabbix",
 | 
			
		||||
    "version": "7.4.0beta1",
 | 
			
		||||
    "date": "2025-04-07T08:14:13Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "nzbgetcom/nzbget",
 | 
			
		||||
    "version": "v24.8",
 | 
			
		||||
@@ -274,21 +429,6 @@
 | 
			
		||||
    "version": "server/public/v0.1.11",
 | 
			
		||||
    "date": "2025-03-28T14:04:31Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "open-webui/open-webui",
 | 
			
		||||
    "version": "v0.6.2",
 | 
			
		||||
    "date": "2025-04-07T03:41:23Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "firefly-iii/firefly-iii",
 | 
			
		||||
    "version": "v6.2.10",
 | 
			
		||||
    "date": "2025-03-22T13:02:26Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Luligu/matterbridge",
 | 
			
		||||
    "version": "2.2.7",
 | 
			
		||||
    "date": "2025-04-06T20:00:53Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Dolibarr/dolibarr",
 | 
			
		||||
    "version": "21.0.1",
 | 
			
		||||
@@ -319,26 +459,11 @@
 | 
			
		||||
    "version": "v1.19.7",
 | 
			
		||||
    "date": "2025-04-06T14:22:44Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Radarr/Radarr",
 | 
			
		||||
    "version": "v5.21.1.9799",
 | 
			
		||||
    "date": "2025-03-24T15:52:12Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "karakeep-app/karakeep",
 | 
			
		||||
    "version": "extension/v1.2.4",
 | 
			
		||||
    "date": "2025-04-06T11:56:18Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "TechnitiumSoftware/DnsServer",
 | 
			
		||||
    "version": "v13.5.0",
 | 
			
		||||
    "date": "2025-04-06T11:24:50Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "TriliumNext/Notes",
 | 
			
		||||
    "version": "v0.92.6",
 | 
			
		||||
    "date": "2025-04-06T10:38:54Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "kimai/kimai",
 | 
			
		||||
    "version": "2.32.0",
 | 
			
		||||
@@ -369,11 +494,6 @@
 | 
			
		||||
    "version": "2.3",
 | 
			
		||||
    "date": "2025-04-05T18:05:36Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Paymenter/Paymenter",
 | 
			
		||||
    "version": "v1.0.2",
 | 
			
		||||
    "date": "2025-04-05T17:40:25Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "bastienwirtz/homer",
 | 
			
		||||
    "version": "v25.04.1",
 | 
			
		||||
@@ -394,11 +514,6 @@
 | 
			
		||||
    "version": "v25.4.0",
 | 
			
		||||
    "date": "2025-04-05T04:14:57Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "home-assistant/core",
 | 
			
		||||
    "version": "2025.4.1",
 | 
			
		||||
    "date": "2025-04-04T20:59:57Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Koenkk/zigbee2mqtt",
 | 
			
		||||
    "version": "2.2.1",
 | 
			
		||||
@@ -419,26 +534,11 @@
 | 
			
		||||
    "version": "9.0.104",
 | 
			
		||||
    "date": "2025-04-04T12:58:11Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "sabnzbd/sabnzbd",
 | 
			
		||||
    "version": "4.5.0",
 | 
			
		||||
    "date": "2025-03-30T16:17:11Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "dgtlmoon/changedetection.io",
 | 
			
		||||
    "version": "0.49.12",
 | 
			
		||||
    "date": "2025-04-04T07:31:08Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "OctoPrint/OctoPrint",
 | 
			
		||||
    "version": "1.10.3",
 | 
			
		||||
    "date": "2024-11-05T09:20:50Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "rabbitmq/rabbitmq-server",
 | 
			
		||||
    "version": "v4.0.8",
 | 
			
		||||
    "date": "2025-04-03T05:11:15Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "BookStackApp/BookStack",
 | 
			
		||||
    "version": "v25.02.2",
 | 
			
		||||
@@ -489,11 +589,6 @@
 | 
			
		||||
    "version": "v3.3.5",
 | 
			
		||||
    "date": "2025-03-31T08:55:12Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "home-assistant/operating-system",
 | 
			
		||||
    "version": "15.1",
 | 
			
		||||
    "date": "2025-03-31T13:42:20Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "documenso/documenso",
 | 
			
		||||
    "version": "v1.10.0-rc.4",
 | 
			
		||||
@@ -524,26 +619,11 @@
 | 
			
		||||
    "version": "v0.26.6",
 | 
			
		||||
    "date": "2025-03-30T08:02:19Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Readarr/Readarr",
 | 
			
		||||
    "version": "v2.0.0.4645",
 | 
			
		||||
    "date": "2017-03-07T18:56:06Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Lidarr/Lidarr",
 | 
			
		||||
    "version": "v2.10.3.4602",
 | 
			
		||||
    "date": "2025-03-23T11:00:37Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "aceberg/WatchYourLAN",
 | 
			
		||||
    "version": "2.1.2-alpine",
 | 
			
		||||
    "date": "2025-03-30T06:25:22Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "pocket-id/pocket-id",
 | 
			
		||||
    "version": "v0.45.0",
 | 
			
		||||
    "date": "2025-03-29T23:12:22Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "tobychui/zoraxy",
 | 
			
		||||
    "version": "v3.1.9",
 | 
			
		||||
@@ -564,11 +644,6 @@
 | 
			
		||||
    "version": "v4.2.3",
 | 
			
		||||
    "date": "2025-02-09T23:07:48Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "gristlabs/grist-core",
 | 
			
		||||
    "version": "v1.5.0",
 | 
			
		||||
    "date": "2025-03-28T20:43:51Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "grocy/grocy",
 | 
			
		||||
    "version": "v4.5.0",
 | 
			
		||||
@@ -579,11 +654,6 @@
 | 
			
		||||
    "version": "2.0.0-beta.2-temp",
 | 
			
		||||
    "date": "2025-03-28T08:45:58Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "emqx/emqx",
 | 
			
		||||
    "version": "e5.9.0-beta.2",
 | 
			
		||||
    "date": "2025-03-28T15:06:27Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "hakimel/reveal.js",
 | 
			
		||||
    "version": "5.2.1",
 | 
			
		||||
@@ -599,36 +669,11 @@
 | 
			
		||||
    "version": "v1.1.1",
 | 
			
		||||
    "date": "2025-03-28T04:12:31Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Bubka/2FAuth",
 | 
			
		||||
    "version": "v5.5.0",
 | 
			
		||||
    "date": "2025-03-27T22:35:02Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "ellite/Wallos",
 | 
			
		||||
    "version": "v2.48.1",
 | 
			
		||||
    "date": "2025-03-27T22:02:16Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "hivemq/hivemq-community-edition",
 | 
			
		||||
    "version": "2025.2",
 | 
			
		||||
    "date": "2025-03-27T19:21:13Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "tailscale/tailscale",
 | 
			
		||||
    "version": "v1.82.0",
 | 
			
		||||
    "date": "2025-03-27T13:08:18Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "evcc-io/evcc",
 | 
			
		||||
    "version": "0.202.1",
 | 
			
		||||
    "date": "2025-03-27T08:24:55Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "duplicati/duplicati",
 | 
			
		||||
    "version": "v2.1.0.112-2.1.0.112_canary_2025-03-26",
 | 
			
		||||
    "date": "2025-03-26T21:04:38Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "forgejo/forgejo",
 | 
			
		||||
    "version": "v12.0.0-dev",
 | 
			
		||||
@@ -674,6 +719,11 @@
 | 
			
		||||
    "version": "2025-03-24-r2",
 | 
			
		||||
    "date": "2025-03-24T20:52:35Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "nextcloud/nextcloudpi",
 | 
			
		||||
    "version": "v1.55.4",
 | 
			
		||||
    "date": "2025-03-24T11:31:02Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "requarks/wiki",
 | 
			
		||||
    "version": "v2.5.307",
 | 
			
		||||
@@ -694,11 +744,6 @@
 | 
			
		||||
    "version": "v0.24.2",
 | 
			
		||||
    "date": "2025-03-23T04:01:50Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "netbox-community/netbox",
 | 
			
		||||
    "version": "v4.2.6",
 | 
			
		||||
    "date": "2025-03-21T21:20:29Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "leiweibau/Pi.Alert",
 | 
			
		||||
    "version": "v2025-03-21",
 | 
			
		||||
@@ -759,11 +804,6 @@
 | 
			
		||||
    "version": "2.303",
 | 
			
		||||
    "date": "2025-03-17T04:54:50Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "autobrr/autobrr",
 | 
			
		||||
    "version": "v1.60.0",
 | 
			
		||||
    "date": "2025-03-16T18:39:49Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "henrygd/beszel",
 | 
			
		||||
    "version": "v0.10.2",
 | 
			
		||||
@@ -774,11 +814,6 @@
 | 
			
		||||
    "version": "flowise@2.2.7-patch.1",
 | 
			
		||||
    "date": "2025-03-14T14:53:53Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "docker/compose",
 | 
			
		||||
    "version": "v2.34.0",
 | 
			
		||||
    "date": "2025-03-14T09:11:17Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "FreshRSS/FreshRSS",
 | 
			
		||||
    "version": "1.26.1",
 | 
			
		||||
@@ -804,11 +839,6 @@
 | 
			
		||||
    "version": "v0.18.0",
 | 
			
		||||
    "date": "2025-03-11T12:47:22Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Ombi-app/Ombi",
 | 
			
		||||
    "version": "v4.47.1",
 | 
			
		||||
    "date": "2025-01-05T21:14:23Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "mylar3/mylar3",
 | 
			
		||||
    "version": "v0.8.2",
 | 
			
		||||
@@ -834,11 +864,6 @@
 | 
			
		||||
    "version": "v2.17.0",
 | 
			
		||||
    "date": "2025-03-08T06:08:04Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "rogerfar/rdt-client",
 | 
			
		||||
    "version": "v2.0.102",
 | 
			
		||||
    "date": "2025-03-07T20:48:46Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "prometheus/alertmanager",
 | 
			
		||||
    "version": "v0.28.1",
 | 
			
		||||
@@ -929,11 +954,6 @@
 | 
			
		||||
    "version": "v28.0",
 | 
			
		||||
    "date": "2025-02-18T15:49:57Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "qbittorrent/qBittorrent",
 | 
			
		||||
    "version": "release-5.0.4",
 | 
			
		||||
    "date": "2025-02-18T14:14:11Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "postgres/postgres",
 | 
			
		||||
    "version": "REL_13_20",
 | 
			
		||||
@@ -989,11 +1009,6 @@
 | 
			
		||||
    "version": "v0.15.0",
 | 
			
		||||
    "date": "2025-02-08T18:45:30Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "bluenviron/mediamtx",
 | 
			
		||||
    "version": "v1.11.3",
 | 
			
		||||
    "date": "2025-02-07T19:29:19Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "apache/tika",
 | 
			
		||||
    "version": "2.9.3",
 | 
			
		||||
@@ -1049,16 +1064,6 @@
 | 
			
		||||
    "version": "v0.5.7",
 | 
			
		||||
    "date": "2025-01-17T15:57:17Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "readeck/readeck",
 | 
			
		||||
    "version": "0.17.1",
 | 
			
		||||
    "date": "2025-01-15T19:13:33Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Tautulli/Tautulli",
 | 
			
		||||
    "version": "v2.15.1",
 | 
			
		||||
    "date": "2025-01-11T23:38:33Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "traccar/traccar",
 | 
			
		||||
    "version": "v6.6",
 | 
			
		||||
@@ -1129,11 +1134,6 @@
 | 
			
		||||
    "version": "0.10.1",
 | 
			
		||||
    "date": "2024-11-10T10:25:45Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "nextcloud/nextcloudpi",
 | 
			
		||||
    "version": "v1.55.3",
 | 
			
		||||
    "date": "2024-11-08T22:21:10Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "caddyserver/xcaddy",
 | 
			
		||||
    "version": "v0.4.4",
 | 
			
		||||
 
 | 
			
		||||
@@ -1,31 +1,29 @@
 | 
			
		||||
import { Badge } from "@/components/ui/badge";
 | 
			
		||||
import {
 | 
			
		||||
  Tooltip,
 | 
			
		||||
  TooltipContent,
 | 
			
		||||
  TooltipProvider,
 | 
			
		||||
  TooltipTrigger,
 | 
			
		||||
} from "@/components/ui/tooltip";
 | 
			
		||||
import { Badge, type BadgeProps } from "@/components/ui/badge";
 | 
			
		||||
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip";
 | 
			
		||||
import { Script } from "@/lib/types";
 | 
			
		||||
import { cn } from "@/lib/utils";
 | 
			
		||||
import { CircleHelp } from "lucide-react";
 | 
			
		||||
import React from "react";
 | 
			
		||||
 | 
			
		||||
interface TooltipProps {
 | 
			
		||||
  variant: "warning" | "success";
 | 
			
		||||
  variant: BadgeProps["variant"];
 | 
			
		||||
  label: string;
 | 
			
		||||
  content: string;
 | 
			
		||||
  content?: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const TooltipBadge: React.FC<TooltipProps> = ({ variant, label, content }) => (
 | 
			
		||||
  <TooltipProvider>
 | 
			
		||||
    <Tooltip delayDuration={100}>
 | 
			
		||||
      <TooltipTrigger className="flex items-center">
 | 
			
		||||
      <TooltipTrigger className={cn("flex items-center", !content && "cursor-default")}>
 | 
			
		||||
        <Badge variant={variant} className="flex items-center gap-1">
 | 
			
		||||
          {label} <CircleHelp className="size-3" />
 | 
			
		||||
          {label} {content && <CircleHelp className="size-3" />}
 | 
			
		||||
        </Badge>
 | 
			
		||||
      </TooltipTrigger>
 | 
			
		||||
      <TooltipContent side="bottom" className="text-sm max-w-64">
 | 
			
		||||
        {content}
 | 
			
		||||
      </TooltipContent>
 | 
			
		||||
      {content && (
 | 
			
		||||
        <TooltipContent side="bottom" className="text-sm max-w-64">
 | 
			
		||||
          {content}
 | 
			
		||||
        </TooltipContent>
 | 
			
		||||
      )}
 | 
			
		||||
    </Tooltip>
 | 
			
		||||
  </TooltipProvider>
 | 
			
		||||
);
 | 
			
		||||
@@ -34,11 +32,7 @@ export default function Tooltips({ item }: { item: Script }) {
 | 
			
		||||
  return (
 | 
			
		||||
    <div className="flex items-center gap-2">
 | 
			
		||||
      {item.privileged && (
 | 
			
		||||
        <TooltipBadge
 | 
			
		||||
          variant="warning"
 | 
			
		||||
          label="Privileged"
 | 
			
		||||
          content="This script will be run in a privileged LXC"
 | 
			
		||||
        />
 | 
			
		||||
        <TooltipBadge variant="warning" label="Privileged" content="This script will be run in a privileged LXC" />
 | 
			
		||||
      )}
 | 
			
		||||
      {item.updateable && (
 | 
			
		||||
        <TooltipBadge
 | 
			
		||||
@@ -47,6 +41,7 @@ export default function Tooltips({ item }: { item: Script }) {
 | 
			
		||||
          content={`To Update ${item.name}, run the command below (or type update) in the LXC Console.`}
 | 
			
		||||
        />
 | 
			
		||||
      )}
 | 
			
		||||
      {!item.updateable && <TooltipBadge variant="failure" label="Not Updateable" />}
 | 
			
		||||
    </div>
 | 
			
		||||
  );
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,15 @@
 | 
			
		||||
"use client";
 | 
			
		||||
"use client"
 | 
			
		||||
 | 
			
		||||
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
 | 
			
		||||
import * as React from "react";
 | 
			
		||||
import * as React from "react"
 | 
			
		||||
import * as TooltipPrimitive from "@radix-ui/react-tooltip"
 | 
			
		||||
 | 
			
		||||
import { cn } from "@/lib/utils";
 | 
			
		||||
import { cn } from "@/lib/utils"
 | 
			
		||||
 | 
			
		||||
const TooltipProvider = TooltipPrimitive.Provider;
 | 
			
		||||
const TooltipProvider = TooltipPrimitive.Provider
 | 
			
		||||
 | 
			
		||||
const Tooltip = TooltipPrimitive.Root;
 | 
			
		||||
const Tooltip = TooltipPrimitive.Root
 | 
			
		||||
 | 
			
		||||
const TooltipTrigger = TooltipPrimitive.Trigger;
 | 
			
		||||
const TooltipTrigger = TooltipPrimitive.Trigger
 | 
			
		||||
 | 
			
		||||
const TooltipContent = React.forwardRef<
 | 
			
		||||
  React.ElementRef<typeof TooltipPrimitive.Content>,
 | 
			
		||||
@@ -19,12 +19,12 @@ const TooltipContent = React.forwardRef<
 | 
			
		||||
    ref={ref}
 | 
			
		||||
    sideOffset={sideOffset}
 | 
			
		||||
    className={cn(
 | 
			
		||||
      "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
 | 
			
		||||
      className,
 | 
			
		||||
      "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]",
 | 
			
		||||
      className
 | 
			
		||||
    )}
 | 
			
		||||
    {...props}
 | 
			
		||||
  />
 | 
			
		||||
));
 | 
			
		||||
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
 | 
			
		||||
))
 | 
			
		||||
TooltipContent.displayName = TooltipPrimitive.Content.displayName
 | 
			
		||||
 | 
			
		||||
export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
 | 
			
		||||
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }
 | 
			
		||||
 
 | 
			
		||||
@@ -16,18 +16,18 @@ update_os
 | 
			
		||||
msg_info "Installing Dependencies"
 | 
			
		||||
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
        lsb-release \
 | 
			
		||||
        gpg
 | 
			
		||||
  lsb-release \
 | 
			
		||||
  gpg
 | 
			
		||||
 | 
			
		||||
curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/deb.sury.org-php.gpg
 | 
			
		||||
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
 | 
			
		||||
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" >/etc/apt/sources.list.d/php.list
 | 
			
		||||
$STD apt-get update
 | 
			
		||||
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
        nginx \
 | 
			
		||||
        composer \
 | 
			
		||||
        php8.3-{bcmath,common,ctype,curl,fileinfo,fpm,gd,mbstring,mysql,xml,cli} \
 | 
			
		||||
        mariadb-server
 | 
			
		||||
  nginx \
 | 
			
		||||
  composer \
 | 
			
		||||
  php8.3-{bcmath,common,ctype,curl,fileinfo,fpm,gd,intl,mbstring,mysql,xml,cli} \
 | 
			
		||||
  mariadb-server
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
msg_info "Setting up Database"
 | 
			
		||||
@@ -38,10 +38,10 @@ $STD mysql -u root -e "CREATE DATABASE $DB_NAME;"
 | 
			
		||||
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
 | 
			
		||||
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
 | 
			
		||||
{
 | 
			
		||||
        echo "2FAuth Credentials"
 | 
			
		||||
        echo "Database User: $DB_USER"
 | 
			
		||||
        echo "Database Password: $DB_PASS"
 | 
			
		||||
        echo "Database Name: $DB_NAME"
 | 
			
		||||
  echo "2FAuth Credentials"
 | 
			
		||||
  echo "Database User: $DB_USER"
 | 
			
		||||
  echo "Database Password: $DB_PASS"
 | 
			
		||||
  echo "Database Name: $DB_NAME"
 | 
			
		||||
} >>~/2FAuth.creds
 | 
			
		||||
msg_ok "Set up Database"
 | 
			
		||||
 | 
			
		||||
@@ -56,12 +56,12 @@ cp .env.example .env
 | 
			
		||||
IPADDRESS=$(hostname -I | awk '{print $1}')
 | 
			
		||||
 | 
			
		||||
sed -i -e "s|^APP_URL=.*|APP_URL=http://$IPADDRESS|" \
 | 
			
		||||
        -e "s|^DB_CONNECTION=$|DB_CONNECTION=mysql|" \
 | 
			
		||||
        -e "s|^DB_DATABASE=$|DB_DATABASE=$DB_NAME|" \
 | 
			
		||||
        -e "s|^DB_HOST=$|DB_HOST=127.0.0.1|" \
 | 
			
		||||
        -e "s|^DB_PORT=$|DB_PORT=3306|" \
 | 
			
		||||
        -e "s|^DB_USERNAME=$|DB_USERNAME=$DB_USER|" \
 | 
			
		||||
        -e "s|^DB_PASSWORD=$|DB_PASSWORD=$DB_PASS|" .env
 | 
			
		||||
  -e "s|^DB_CONNECTION=$|DB_CONNECTION=mysql|" \
 | 
			
		||||
  -e "s|^DB_DATABASE=$|DB_DATABASE=$DB_NAME|" \
 | 
			
		||||
  -e "s|^DB_HOST=$|DB_HOST=127.0.0.1|" \
 | 
			
		||||
  -e "s|^DB_PORT=$|DB_PORT=3306|" \
 | 
			
		||||
  -e "s|^DB_USERNAME=$|DB_USERNAME=$DB_USER|" \
 | 
			
		||||
  -e "s|^DB_PASSWORD=$|DB_PASSWORD=$DB_PASS|" .env
 | 
			
		||||
 | 
			
		||||
export COMPOSER_ALLOW_SUPERUSER=1
 | 
			
		||||
$STD composer update --no-plugins --no-scripts
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										47
									
								
								install/alpine-adguard-install.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								install/alpine-adguard-install.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
#!/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
 | 
			
		||||
# Source: https://adguardhome.com/
 | 
			
		||||
 | 
			
		||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
 | 
			
		||||
color
 | 
			
		||||
verb_ip6
 | 
			
		||||
catch_errors
 | 
			
		||||
setting_up_container
 | 
			
		||||
network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
msg_info "Downloading AdGuard Home"
 | 
			
		||||
$STD curl -fsSL -o /tmp/AdGuardHome_linux_amd64.tar.gz \
 | 
			
		||||
  "https://github.com/AdguardTeam/AdGuardHome/releases/latest/download/AdGuardHome_linux_amd64.tar.gz"
 | 
			
		||||
msg_ok "Downloaded AdGuard Home"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing AdGuard Home"
 | 
			
		||||
$STD tar -xzf /tmp/AdGuardHome_linux_amd64.tar.gz -C /opt
 | 
			
		||||
$STD rm /tmp/AdGuardHome_linux_amd64.tar.gz
 | 
			
		||||
msg_ok "Installed AdGuard Home"
 | 
			
		||||
 | 
			
		||||
msg_info "Creating AdGuard Home Service"
 | 
			
		||||
cat <<EOF >/etc/init.d/adguardhome
 | 
			
		||||
#!/sbin/openrc-run
 | 
			
		||||
name="AdGuardHome"
 | 
			
		||||
description="AdGuard Home Service"
 | 
			
		||||
command="/opt/AdGuardHome/AdGuardHome"
 | 
			
		||||
command_background="yes"
 | 
			
		||||
pidfile="/run/adguardhome.pid"
 | 
			
		||||
EOF
 | 
			
		||||
$STD chmod +x /etc/init.d/adguardhome
 | 
			
		||||
msg_ok "Created AdGuard Home Service"
 | 
			
		||||
 | 
			
		||||
msg_info "Enabling AdGuard Home Service"
 | 
			
		||||
$STD rc-update add adguardhome default
 | 
			
		||||
msg_ok "Enabled AdGuard Home Service"
 | 
			
		||||
 | 
			
		||||
msg_info "Starting AdGuard Home"
 | 
			
		||||
$STD rc-service adguardhome start
 | 
			
		||||
msg_ok "Started AdGuard Home"
 | 
			
		||||
 | 
			
		||||
motd_ssh
 | 
			
		||||
customize
 | 
			
		||||
@@ -61,10 +61,10 @@ case $DB_CHOICE in
 | 
			
		||||
esac
 | 
			
		||||
mkdir -p /opt/komodo
 | 
			
		||||
cd /opt/komodo
 | 
			
		||||
curl -fsSL "https://raw.githubusercontent.com/mbecker20/komodo/main/compose/$DB_COMPOSE_FILE" -o $(basename "https://raw.githubusercontent.com/mbecker20/komodo/main/compose/$DB_COMPOSE_FILE")
 | 
			
		||||
curl -fsSL "https://raw.githubusercontent.com/moghtech/komodo/main/compose/$DB_COMPOSE_FILE" -o $(basename "https://raw.githubusercontent.com/moghtech/komodo/main/compose/$DB_COMPOSE_FILE")
 | 
			
		||||
 | 
			
		||||
msg_info "Setup Komodo Environment"
 | 
			
		||||
curl -fsSL "https://raw.githubusercontent.com/mbecker20/komodo/main/compose/compose.env" -o "/opt/komodo/compose.env"
 | 
			
		||||
curl -fsSL "https://raw.githubusercontent.com/moghtech/komodo/main/compose/compose.env" -o "/opt/komodo/compose.env"
 | 
			
		||||
DB_PASSWORD=$(openssl rand -base64 16 | tr -d '/+=')
 | 
			
		||||
PASSKEY=$(openssl rand -base64 24 | tr -d '/+=')
 | 
			
		||||
WEBHOOK_SECRET=$(openssl rand -base64 24 | tr -d '/+=')
 | 
			
		||||
 
 | 
			
		||||
@@ -15,13 +15,22 @@ network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Dependencies"
 | 
			
		||||
$STD apt-get install -y gpg
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
  gnupg2 \
 | 
			
		||||
  lsb-release
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
msg_info "Setting up Adoptium Repository"
 | 
			
		||||
mkdir -p /etc/apt/keyrings
 | 
			
		||||
curl -fsSL "https://packages.adoptium.net/artifactory/api/gpg/key/public" | gpg --dearmor >/etc/apt/trusted.gpg.d/adoptium.gpg
 | 
			
		||||
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" >/etc/apt/sources.list.d/adoptium.list
 | 
			
		||||
msg_ok "Set up Adoptium Repository"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Neo4j (patience)"
 | 
			
		||||
curl -fsSL "https://debian.neo4j.com/neotechnology.gpg.key" | gpg --dearmor -o /etc/apt/keyrings/neotechnology.gpg
 | 
			
		||||
echo 'deb [signed-by=/etc/apt/keyrings/neotechnology.gpg] https://debian.neo4j.com stable latest' >/etc/apt/sources.list.d/neo4j.list
 | 
			
		||||
$STD apt-get update
 | 
			
		||||
$STD apt-get install -y temurin-21-jre
 | 
			
		||||
$STD apt-get install -y neo4j
 | 
			
		||||
sed -i '/server.default_listen_address/s/^#//' /etc/neo4j/neo4j.conf
 | 
			
		||||
systemctl enable -q --now neo4j
 | 
			
		||||
 
 | 
			
		||||
@@ -19,20 +19,17 @@ msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
msg_info "Checking CPU Features"
 | 
			
		||||
if lscpu | grep -q 'avx'; then
 | 
			
		||||
    USE_AVX=true
 | 
			
		||||
    MONGODB_VERSION="7.0"
 | 
			
		||||
    msg_ok "AVX detected: Using MongoDB 7.0"
 | 
			
		||||
else
 | 
			
		||||
    USE_AVX=false
 | 
			
		||||
    MONGODB_VERSION="4.4"
 | 
			
		||||
    msg_error "No AVX detected: TP-Link Canceled Support for Old MongoDB for Debian 12\n https://www.tp-link.com/baltic/support/faq/4160/"
 | 
			
		||||
    exit 1
 | 
			
		||||
    exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Azul Zulu Java"
 | 
			
		||||
curl -fsSL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xB1998361219BD9C9" -o "/etc/apt/trusted.gpg.d/zulu-repo.asc"
 | 
			
		||||
curl -fsSL "https://cdn.azul.com/zulu/bin/zulu-repo_1.0.0-3_all.deb" -o $(basename "https://cdn.azul.com/zulu/bin/zulu-repo_1.0.0-3_all.deb")
 | 
			
		||||
$STD dpkg -i zulu-repo_1.0.0-3_all.deb
 | 
			
		||||
curl -fsSL "https://cdn.azul.com/zulu/bin/zulu-repo_1.0.0-3_all.deb" -o zulu-repo.deb
 | 
			
		||||
$STD dpkg -i zulu-repo.deb
 | 
			
		||||
$STD apt-get update
 | 
			
		||||
$STD apt-get -y install zulu21-jre-headless
 | 
			
		||||
msg_ok "Installed Azul Zulu Java"
 | 
			
		||||
@@ -43,8 +40,6 @@ if ! dpkg -l | grep -q 'libssl1.1'; then
 | 
			
		||||
    $STD dpkg -i /tmp/libssl.deb
 | 
			
		||||
    rm -f /tmp/libssl.deb
 | 
			
		||||
    msg_ok "Installed libssl1.1"
 | 
			
		||||
else
 | 
			
		||||
    msg_ok "libssl1.1 already installed"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
msg_info "Installing MongoDB $MONGODB_VERSION"
 | 
			
		||||
@@ -55,18 +50,19 @@ $STD apt-get install -y mongodb-org
 | 
			
		||||
msg_ok "Installed MongoDB $MONGODB_VERSION"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Omada Controller"
 | 
			
		||||
latest_url=$(curl -fsSL "https://support.omadanetworks.com/en/download/software/omada-controller/" | grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' | head -n 1)
 | 
			
		||||
latest_version=$(basename "$latest_url")
 | 
			
		||||
 | 
			
		||||
curl -fsSL "${latest_url}" -O
 | 
			
		||||
$STD dpkg -i ${latest_version}
 | 
			
		||||
OMADA_URL=$(curl -fsSL "https://support.omadanetworks.com/en/download/software/omada-controller/" |
 | 
			
		||||
    grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' |
 | 
			
		||||
    head -n1)
 | 
			
		||||
OMADA_PKG=$(basename "$OMADA_URL")
 | 
			
		||||
curl -fsSL "$OMADA_URL" -o "$OMADA_PKG"
 | 
			
		||||
$STD dpkg -i "$OMADA_PKG"
 | 
			
		||||
msg_ok "Installed Omada Controller"
 | 
			
		||||
 | 
			
		||||
motd_ssh
 | 
			
		||||
customize
 | 
			
		||||
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
rm -rf ${latest_version} zulu-repo_1.0.0-3_all.deb
 | 
			
		||||
rm -rf "$OMADA_PKG" zulu-repo.deb
 | 
			
		||||
$STD apt-get -y autoremove
 | 
			
		||||
$STD apt-get -y autoclean
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										60
									
								
								install/openziti-controller-install.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								install/openziti-controller-install.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,60 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: emoscardini
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/openziti/ziti
 | 
			
		||||
 | 
			
		||||
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 install -y gpg
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing openziti"
 | 
			
		||||
mkdir -p --mode=0755 /usr/share/keyrings
 | 
			
		||||
curl -fsSL https://get.openziti.io/tun/package-repos.gpg | gpg --dearmor -o /usr/share/keyrings/openziti.gpg
 | 
			
		||||
echo "deb [signed-by=/usr/share/keyrings/openziti.gpg] https://packages.openziti.org/zitipax-openziti-deb-stable debian main" >/etc/apt/sources.list.d/openziti.list
 | 
			
		||||
$STD apt-get update 
 | 
			
		||||
$STD apt-get install -y openziti-controller openziti-console
 | 
			
		||||
msg_ok "Installed openziti"
 | 
			
		||||
 | 
			
		||||
read -r -p "Would you like to go through the auto configuration now? <y/N>" prompt
 | 
			
		||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
 | 
			
		||||
  IPADDRESS=$(hostname -I | awk '{print $1}')
 | 
			
		||||
  GEN_FQDN="controller.${IPADDRESS}.sslip.io"
 | 
			
		||||
  read -r -p "Please enter the controller FQDN [${GEN_FQDN}]: " ZITI_CTRL_ADVERTISED_ADDRESS
 | 
			
		||||
  ZITI_CTRL_ADVERTISED_ADDRESS=${ZITI_CTRL_ADVERTISED_ADDRESS:-$GEN_FQDN}
 | 
			
		||||
  read -r -p "Please enter the controller port [1280]: " ZITI_CTRL_ADVERTISED_PORT
 | 
			
		||||
  ZITI_CTRL_ADVERTISED_PORT=${ZITI_CTRL_ADVERTISED_PORT:-1280}
 | 
			
		||||
  read -r -p "Please enter the controller admin user [admin]: " ZITI_USER
 | 
			
		||||
  ZITI_USER=${ZITI_USER:-admin}
 | 
			
		||||
  GEN_PWD=$(head -c128 /dev/urandom | LC_ALL=C tr -dc 'A-Za-z0-9!@#$%^*_+~' | cut -c 1-12)
 | 
			
		||||
  read -r -p "Please enter the controller admin password [${GEN_PWD}]:" ZITI_PWD
 | 
			
		||||
  ZITI_PWD=${ZITI_PWD:-$GEN_PWD}
 | 
			
		||||
  CONFIG_FILE="/opt/openziti/etc/controller/bootstrap.env"
 | 
			
		||||
  sed -i "s|^ZITI_CTRL_ADVERTISED_ADDRESS=.*|ZITI_CTRL_ADVERTISED_ADDRESS='${ZITI_CTRL_ADVERTISED_ADDRESS}'|" "$CONFIG_FILE"
 | 
			
		||||
  sed -i "s|^ZITI_CTRL_ADVERTISED_PORT=.*|ZITI_CTRL_ADVERTISED_PORT='${ZITI_CTRL_ADVERTISED_PORT}'|" "$CONFIG_FILE"
 | 
			
		||||
  sed -i "s|^ZITI_USER=.*|ZITI_USER='${ZITI_USER}'|" "$CONFIG_FILE"
 | 
			
		||||
  sed -i "s|^ZITI_PWD=.*|ZITI_PWD='${ZITI_PWD}'|" "$CONFIG_FILE"
 | 
			
		||||
  env VERBOSE=0 bash /opt/openziti/etc/controller/bootstrap.bash
 | 
			
		||||
  msg_ok "Configuration Completed"
 | 
			
		||||
  systemctl enable -q --now ziti-controller
 | 
			
		||||
else
 | 
			
		||||
  systemctl enable -q ziti-controller
 | 
			
		||||
  msg_error "Configration not provided; Please run /opt/openziti/etc/controller/bootstrap.bash to configure the controller and restart the container"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
motd_ssh
 | 
			
		||||
customize
 | 
			
		||||
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
$STD apt-get -y autoremove
 | 
			
		||||
$STD apt-get -y autoclean
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
@@ -19,21 +19,36 @@ $STD apt-get install -y \
 | 
			
		||||
    software-properties-common \
 | 
			
		||||
    apt-transport-https \
 | 
			
		||||
    ca-certificates \
 | 
			
		||||
    gnupg \
 | 
			
		||||
    php8.2 \
 | 
			
		||||
    php8.2-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} \
 | 
			
		||||
    gnupg2 \
 | 
			
		||||
    mariadb-server \
 | 
			
		||||
    nginx \
 | 
			
		||||
    redis-server
 | 
			
		||||
$STD curl -fsSL https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
msg_info "Adding PHP Repository"
 | 
			
		||||
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
 | 
			
		||||
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
 | 
			
		||||
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
 | 
			
		||||
$STD apt-get update
 | 
			
		||||
msg_ok "Added PHP Repository"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing PHP"
 | 
			
		||||
$STD apt-get remove -y php8.2*
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
    php8.3 \
 | 
			
		||||
    php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm,redis}
 | 
			
		||||
msg_info "Installed PHP"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Composer"
 | 
			
		||||
$STD curl -fsSL https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
 | 
			
		||||
msg_ok "Installed Composer"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Paymenter"
 | 
			
		||||
RELEASE=$(curl -fsSL https://api.github.com/repos/paymenter/paymenter/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
 | 
			
		||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
 | 
			
		||||
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
 | 
			
		||||
mkdir -p /opt/paymenter
 | 
			
		||||
cd /opt/paymenter
 | 
			
		||||
curl -fsSL "https://github.com/paymenter/paymenter/releases/download/${RELEASE}/paymenter.tar.gz" -o $(basename "https://github.com/paymenter/paymenter/releases/download/${RELEASE}/paymenter.tar.gz")
 | 
			
		||||
cd /opt/paymenter || exit
 | 
			
		||||
curl -fsSL "https://github.com/paymenter/paymenter/releases/download/${RELEASE}/paymenter.tar.gz" -o paymenter.tar.gz
 | 
			
		||||
$STD tar -xzvf paymenter.tar.gz
 | 
			
		||||
chmod -R 755 storage/* bootstrap/cache/
 | 
			
		||||
msg_ok "Installed Paymenter"
 | 
			
		||||
@@ -47,10 +62,10 @@ mysql -u root -e "CREATE DATABASE $DB_NAME;"
 | 
			
		||||
mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
 | 
			
		||||
mysql -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost' WITH GRANT OPTION;"
 | 
			
		||||
{
 | 
			
		||||
  echo "Paymenter Database Credentials"
 | 
			
		||||
  echo "Database: $DB_NAME"
 | 
			
		||||
  echo "Username: $DB_USER"
 | 
			
		||||
  echo "Password: $DB_PASS"
 | 
			
		||||
    echo "Paymenter Database Credentials"
 | 
			
		||||
    echo "Database: $DB_NAME"
 | 
			
		||||
    echo "Username: $DB_USER"
 | 
			
		||||
    echo "Password: $DB_PASS"
 | 
			
		||||
} >>~/paymenter_db.creds
 | 
			
		||||
cp .env.example .env
 | 
			
		||||
$STD composer install --no-dev --optimize-autoloader --no-interaction
 | 
			
		||||
@@ -63,13 +78,7 @@ $STD php artisan migrate --force --seed
 | 
			
		||||
msg_ok "Set up database"
 | 
			
		||||
 | 
			
		||||
msg_info "Creating Admin User"
 | 
			
		||||
$STD php artisan p:user:create <<EOF
 | 
			
		||||
admin@paymenter.org
 | 
			
		||||
paymenter
 | 
			
		||||
admin
 | 
			
		||||
paymenter
 | 
			
		||||
0
 | 
			
		||||
EOF
 | 
			
		||||
$STD php artisan app:user:create paymenter admin admin@paymenter.org paymenter 1 -q
 | 
			
		||||
msg_ok "Created Admin User"
 | 
			
		||||
 | 
			
		||||
msg_info "Configuring Nginx"
 | 
			
		||||
@@ -88,7 +97,7 @@ server {
 | 
			
		||||
 | 
			
		||||
    location ~ \.php\$ {
 | 
			
		||||
        include snippets/fastcgi-php.conf;
 | 
			
		||||
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
 | 
			
		||||
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
 | 
			
		||||
        fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
 | 
			
		||||
        include fastcgi_params;
 | 
			
		||||
    }
 | 
			
		||||
@@ -125,7 +134,8 @@ RestartSec=5s
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
EOF
 | 
			
		||||
$STD systemctl enable --now paymenter
 | 
			
		||||
systemctl enable --now paymenter
 | 
			
		||||
systemctl enable --now redis-server
 | 
			
		||||
msg_ok "Setup Service"
 | 
			
		||||
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
 
 | 
			
		||||
@@ -1120,7 +1120,7 @@ install_script() {
 | 
			
		||||
  while true; do
 | 
			
		||||
 | 
			
		||||
    CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SETTINGS" --menu "Choose an option:" \
 | 
			
		||||
      12 50 5 \
 | 
			
		||||
      14 50 5 \
 | 
			
		||||
      "1" "Default Settings" \
 | 
			
		||||
      "2" "Default Settings (with verbose)" \
 | 
			
		||||
      "3" "Advanced Settings" \
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user