mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 10:22:50 +00:00 
			
		
		
		
	Compare commits
	
		
			6 Commits
		
	
	
		
			deb13_k_to
			...
			2025-10-23
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					add12ef634 | ||
| 
						 | 
					3ab5167d8a | ||
| 
						 | 
					b16a7f4562 | ||
| 
						 | 
					fa3f993256 | ||
| 
						 | 
					c0894cb612 | ||
| 
						 | 
					3b96230327 | 
@@ -10,12 +10,16 @@
 | 
			
		||||
> [!CAUTION]
 | 
			
		||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
 | 
			
		||||
 | 
			
		||||
## 2025-10-24
 | 
			
		||||
 | 
			
		||||
## 2025-10-23
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Radicale: Update dependencies [@ilofX](https://github.com/ilofX) ([#8603](https://github.com/community-scripts/ProxmoxVE/pull/8603))
 | 
			
		||||
    - Various Downgrades to Debian 12 (MySQL / OMW / Technitium)  [@MickLesk](https://github.com/MickLesk) ([#8595](https://github.com/community-scripts/ProxmoxVE/pull/8595))
 | 
			
		||||
    - MeTube: Fix inserting path into .bashrc [@tremor021](https://github.com/tremor021) ([#8589](https://github.com/community-scripts/ProxmoxVE/pull/8589))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 
 | 
			
		||||
@@ -42,4 +42,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}${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-8}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -20,18 +20,18 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/iobroker ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /opt/iobroker ]]; 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 Successfully"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating ${APP} LXC"
 | 
			
		||||
  $STD apt update
 | 
			
		||||
  $STD apt -y upgrade
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
@@ -41,4 +41,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}:8081${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8081${CL}"
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-10}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -29,10 +29,11 @@ function update_script() {
 | 
			
		||||
    exit 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating LXC"
 | 
			
		||||
  msg_info "Updating ${APP} LXC"
 | 
			
		||||
  $STD apt-get update
 | 
			
		||||
  $STD apt-get -y upgrade
 | 
			
		||||
  msg_ok "Updated Successfully!"
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_disk="${var_disk:-2}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-0}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -38,4 +38,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:26000${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:26000${CL}"
 | 
			
		||||
@@ -28,24 +28,24 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "Jackett" "Jackett/Jackett"; then
 | 
			
		||||
    if [ ! -f /opt/.env ]; then
 | 
			
		||||
      sed -i 's|^Environment="DisableRootWarning=true"$|EnvironmentFile="/opt/.env"|' /etc/systemd/system/jackett.service
 | 
			
		||||
      cat <<EOF >/opt/.env
 | 
			
		||||
  if [ ! -f /opt/.env ]; then
 | 
			
		||||
    sed -i 's|^Environment="DisableRootWarning=true"$|EnvironmentFile="/opt/.env"|' /etc/systemd/system/jackett.service
 | 
			
		||||
    cat <<EOF >/opt/.env
 | 
			
		||||
DisableRootWarning=true
 | 
			
		||||
EOF
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "Jackett" "Jackett/Jackett"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop jackett
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    CLEAN_INSTALL=1 fetch_and_deploy_gh_release "jackett" "Jackett/Jackett" "prebuild" "latest" "/opt/Jackett" "Jackett.Binaries.LinuxAMDx64.tar.gz"
 | 
			
		||||
    rm -rf /opt/Jackett
 | 
			
		||||
    fetch_and_deploy_gh_release "jackett" "Jackett/Jackett" "prebuild" "latest" "/opt/Jackett" "Jackett.Binaries.LinuxAMDx64.tar.gz"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start jackett
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully!"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -20,22 +20,18 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /var/lib/jenkins ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /var/lib/jenkins ]]; 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
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  JAVA_VERSION="21" setup_java
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating Jenkings"
 | 
			
		||||
  $STD apt update
 | 
			
		||||
  $STD apt -y upgrade
 | 
			
		||||
  msg_ok "Updated Jenkins"
 | 
			
		||||
  msg_ok "Update Successfully!"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
@@ -45,4 +41,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-4096}"
 | 
			
		||||
var_disk="${var_disk:-20}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -35,18 +35,19 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "joplin-server" "laurent22/joplin" "tarball" "latest"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating Joplin-Server"
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    cd /opt/joplin-server
 | 
			
		||||
    sed -i "/onenote-converter/d" packages/lib/package.json
 | 
			
		||||
    $STD yarn config set --home enableTelemetry 0
 | 
			
		||||
    export BUILD_SEQUENCIAL=1
 | 
			
		||||
    $STD yarn install --inline-builds
 | 
			
		||||
    msg_ok "Updated Joplin-Server"
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Services"
 | 
			
		||||
    systemctl start joplin-server
 | 
			
		||||
    msg_ok "Started Services"
 | 
			
		||||
    msg_ok "Updated Successfully!"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-256}"
 | 
			
		||||
var_disk="${var_disk:-2}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -32,9 +32,9 @@ function update_script() {
 | 
			
		||||
  setup_uv
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "kapowarr" "Casvt/Kapowarr"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop kapowarr
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Creating Backup"
 | 
			
		||||
    mv /opt/kapowarr/db /opt/
 | 
			
		||||
@@ -42,14 +42,14 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "kapowarr" "Casvt/Kapowarr"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating Kapowarr"
 | 
			
		||||
    msg_info "Updating $APP"
 | 
			
		||||
    mv /opt/db /opt/kapowarr
 | 
			
		||||
    msg_ok "Updated Kapowarr"
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start kapowarr
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Update Successfully!"
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-4096}"
 | 
			
		||||
var_disk="${var_disk:-10}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -38,11 +38,14 @@ function update_script() {
 | 
			
		||||
    msg_ok "Updated yt-dlp"
 | 
			
		||||
 | 
			
		||||
    msg_info "Prepare update"
 | 
			
		||||
    $STD apt install -y graphicsmagick ghostscript
 | 
			
		||||
    if [[ -f /opt/${APP}_version.txt && "$(cat /opt/${APP}_version.txt)" < "0.23.0" ]]; then
 | 
			
		||||
      $STD apt-get install -y graphicsmagick ghostscript
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ -f /opt/karakeep/.env ]] && [[ ! -f /etc/karakeep/karakeep.env ]]; then
 | 
			
		||||
      mkdir -p /etc/karakeep
 | 
			
		||||
      mv /opt/karakeep/.env /etc/karakeep/karakeep.env
 | 
			
		||||
    fi
 | 
			
		||||
    rm -rf /opt/karakeep
 | 
			
		||||
    msg_ok "Update prepared"
 | 
			
		||||
 | 
			
		||||
    if grep -q "start:prod" /etc/systemd/system/karakeep-workers.service; then
 | 
			
		||||
@@ -62,7 +65,7 @@ function update_script() {
 | 
			
		||||
    MODULE_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/karakeep/package.json)"
 | 
			
		||||
    NODE_VERSION="22" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating Karakeep"
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    corepack enable
 | 
			
		||||
    export PUPPETEER_SKIP_DOWNLOAD="true"
 | 
			
		||||
    export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true"
 | 
			
		||||
@@ -83,18 +86,17 @@ function update_script() {
 | 
			
		||||
    $STD pnpm migrate
 | 
			
		||||
    $STD pnpm store prune
 | 
			
		||||
    sed -i "s/^SERVER_VERSION=.*$/SERVER_VERSION=${CHECK_UPDATE_RELEASE}/" /etc/karakeep/karakeep.env
 | 
			
		||||
    msg_ok "Updated Karakeep"
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Services"
 | 
			
		||||
    systemctl start karakeep-browser karakeep-workers karakeep-web
 | 
			
		||||
    msg_ok "Started Services"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    $STD apt autoremove -y
 | 
			
		||||
    $STD apt autoclean -y
 | 
			
		||||
    $STD apt clean -y
 | 
			
		||||
    $STD apt-get autoremove -y
 | 
			
		||||
    $STD apt-get autoclean -y
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully!"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								ct/kasm.sh
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								ct/kasm.sh
									
									
									
									
									
								
							@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-8192}"
 | 
			
		||||
var_disk="${var_disk:-30}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-0}"
 | 
			
		||||
var_fuse="${var_fuse:-yes}"
 | 
			
		||||
var_tun="${var_tun:-yes}"
 | 
			
		||||
@@ -29,10 +29,10 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating LXC"
 | 
			
		||||
  $STD apt update
 | 
			
		||||
  $STD apt -y upgrade
 | 
			
		||||
  msg_ok "Updated LXC"
 | 
			
		||||
  msg_info "Updating $APP LXC"
 | 
			
		||||
  $STD apt-get update
 | 
			
		||||
  $STD apt-get -y upgrade
 | 
			
		||||
  msg_ok "Updated $APP LXC"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -28,9 +28,9 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "keycloak_app" "keycloak/keycloak"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    msg_info "Stopping Keycloak"
 | 
			
		||||
    systemctl stop keycloak
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
    msg_ok "Stopped Keycloak"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating packages"
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
@@ -44,16 +44,16 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "keycloak_app" "keycloak/keycloak" "prebuild" "latest" "/opt/keycloak" "keycloak-*.tar.gz"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating Keycloak"
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    cd /opt
 | 
			
		||||
    cp -a keycloak.old/conf/. keycloak/conf/
 | 
			
		||||
    cp -a keycloak.old/providers/. keycloak/providers/ 2>/dev/null || true
 | 
			
		||||
    cp -a keycloak.old/themes/. keycloak/themes/ 2>/dev/null || true
 | 
			
		||||
    msg_ok "Updated Keycloak"
 | 
			
		||||
    msg_ok "Updated ${APP} LXC"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restarting Service"
 | 
			
		||||
    msg_info "Restarting Keycloak"
 | 
			
		||||
    systemctl restart keycloak
 | 
			
		||||
    msg_ok "Restarted Service"
 | 
			
		||||
    msg_ok "Restarted Keycloak"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -rf keycloak.old
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										42
									
								
								ct/kimai.sh
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								ct/kimai.sh
									
									
									
									
									
								
							@@ -30,13 +30,25 @@ 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.4" ]]; then
 | 
			
		||||
    msg_info "Migrating PHP $CURRENT_PHP to 8.4"
 | 
			
		||||
    $STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
 | 
			
		||||
    $STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
 | 
			
		||||
    $STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get remove -y php"${CURRENT_PHP//./}"*
 | 
			
		||||
    $STD apt-get install -y \
 | 
			
		||||
      php8.4 composer \
 | 
			
		||||
      php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} \
 | 
			
		||||
      libapache2-mod-php8.4
 | 
			
		||||
    msg_ok "Migrated PHP $CURRENT_PHP to 8.4"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  PHP_VERSION="8.4" PHP_MODULE="mysql" PHP_APACHE="YES" setup_php
 | 
			
		||||
  setup_composer
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "koillection" "benjaminjonard/koillection"; then
 | 
			
		||||
    BACKUP_DIR="/opt/kimai_backup"
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/kimai/kimai/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
  BACKUP_DIR="/opt/kimai_backup"
 | 
			
		||||
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
    msg_info "Stopping Apache2"
 | 
			
		||||
    systemctl stop apache2
 | 
			
		||||
    msg_ok "Stopped Apache2"
 | 
			
		||||
@@ -48,9 +60,15 @@ function update_script() {
 | 
			
		||||
    [ -f /opt/kimai/config/packages/local.yaml ] && cp /opt/kimai/config/packages/local.yaml "$BACKUP_DIR/"
 | 
			
		||||
    msg_ok "Backup completed"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "kimai" "kimai/kimai"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating Kimai"
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    trap "echo Unable to download release file for version ${RELEASE}; try again later" ERR
 | 
			
		||||
    set -e
 | 
			
		||||
    curl -fsSL "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip")
 | 
			
		||||
    $STD unzip "${RELEASE}".zip
 | 
			
		||||
    set +e
 | 
			
		||||
    trap - ERR
 | 
			
		||||
    rm -rf /opt/kimai
 | 
			
		||||
    mv kimai-"${RELEASE}" /opt/kimai
 | 
			
		||||
    [ -d "$BACKUP_DIR/var" ] && cp -r "$BACKUP_DIR/var" /opt/kimai/
 | 
			
		||||
    [ -f "$BACKUP_DIR/.env" ] && cp "$BACKUP_DIR/.env" /opt/kimai/
 | 
			
		||||
    [ -f "$BACKUP_DIR/local.yaml" ] && cp "$BACKUP_DIR/local.yaml" /opt/kimai/config/packages/
 | 
			
		||||
@@ -58,7 +76,8 @@ function update_script() {
 | 
			
		||||
    cd /opt/kimai
 | 
			
		||||
    $STD composer install --no-dev --optimize-autoloader
 | 
			
		||||
    $STD bin/console kimai:update
 | 
			
		||||
    msg_ok "Updated Kimai"
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Apache2"
 | 
			
		||||
    systemctl start apache2
 | 
			
		||||
@@ -73,9 +92,12 @@ function update_script() {
 | 
			
		||||
    msg_ok "Setup Permissions"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf "${RELEASE}".zip
 | 
			
		||||
    rm -rf "$BACKUP_DIR"
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully!"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-8}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -38,7 +38,7 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "koillection" "benjaminjonard/koillection"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating Koillection"
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    cd /opt/koillection
 | 
			
		||||
    cp -r /opt/koillection-backup/.env.local /opt/koillection
 | 
			
		||||
    cp -r /opt/koillection-backup/public/uploads/. /opt/koillection/public/uploads/
 | 
			
		||||
@@ -50,7 +50,7 @@ function update_script() {
 | 
			
		||||
    $STD yarn install
 | 
			
		||||
    $STD yarn build
 | 
			
		||||
    chown -R www-data:www-data /opt/koillection/public/uploads
 | 
			
		||||
    msg_ok "Updated Koillection"
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start apache2
 | 
			
		||||
@@ -59,7 +59,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -r /opt/koillection-backup
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully!"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,7 @@ function update_script() {
 | 
			
		||||
    cp /opt/kometa/config/config.yml /opt
 | 
			
		||||
    msg_ok "Backup completed"
 | 
			
		||||
 | 
			
		||||
    PYTHON_VERSION="3.13" setup_uv
 | 
			
		||||
    PYTHON_VERSION="3.12" setup_uv
 | 
			
		||||
    fetch_and_deploy_gh_release "kometa" "Kometa-Team/Kometa"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating Kometa"
 | 
			
		||||
@@ -49,7 +49,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start kometa
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Update Successfully!"
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -39,7 +39,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start komga
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully!"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-10}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -29,7 +29,7 @@ function update_script() {
 | 
			
		||||
    exit 1
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating Komodo"
 | 
			
		||||
  msg_info "Updating ${APP}"
 | 
			
		||||
  COMPOSE_FILE=$(find /opt/komodo -maxdepth 1 -type f -name '*.compose.yaml' ! -name 'compose.env' | head -n1)
 | 
			
		||||
  if [[ -z "$COMPOSE_FILE" ]]; then
 | 
			
		||||
    msg_error "No valid compose file found in /opt/komodo!"
 | 
			
		||||
@@ -61,7 +61,7 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
  $STD docker compose -p komodo -f "$COMPOSE_FILE" --env-file /opt/komodo/compose.env pull
 | 
			
		||||
  $STD docker compose -p komodo -f "$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d
 | 
			
		||||
  msg_ok "Updated Komodo"
 | 
			
		||||
  msg_ok "Updated ${APP}"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-4096}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -37,7 +37,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting service"
 | 
			
		||||
    systemctl start ipfs
 | 
			
		||||
    msg_ok "Service started"
 | 
			
		||||
    msg_ok "Updated successfully!"
 | 
			
		||||
    msg_ok "Updated successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								ct/mysql.sh
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								ct/mysql.sh
									
									
									
									
									
								
							@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -20,18 +20,18 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -f /usr/share/keyrings/mysql.gpg ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Updating ${APP} LXC"
 | 
			
		||||
    $STD apt update
 | 
			
		||||
    $STD apt -y upgrade
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -f /usr/share/keyrings/mysql.gpg ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating ${APP} LXC"
 | 
			
		||||
  $STD apt update
 | 
			
		||||
  $STD apt -y upgrade
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
@@ -41,4 +41,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 IP:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}${IP}:3306${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}${IP}:3306${CL}"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										26
									
								
								ct/omv.sh
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								ct/omv.sh
									
									
									
									
									
								
							@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -20,18 +20,18 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -f /etc/apt/sources.list.d/openmediavault.list ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Updating ${APP} LXC"
 | 
			
		||||
    $STD apt update
 | 
			
		||||
    $STD apt -y upgrade
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -f /etc/apt/sources.list.d/openmediavault.list ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating ${APP} LXC"
 | 
			
		||||
  $STD apt update
 | 
			
		||||
  $STD apt -y upgrade
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
@@ -41,4 +41,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}${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-2}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,48 +1,48 @@
 | 
			
		||||
{
 | 
			
		||||
    "name": "MySQL",
 | 
			
		||||
    "slug": "mysql",
 | 
			
		||||
    "categories": [
 | 
			
		||||
        8
 | 
			
		||||
    ],
 | 
			
		||||
    "date_created": "2024-10-10",
 | 
			
		||||
    "type": "ct",
 | 
			
		||||
    "updateable": true,
 | 
			
		||||
    "privileged": false,
 | 
			
		||||
    "interface_port": null,
 | 
			
		||||
    "documentation": "https://dev.mysql.com/doc/",
 | 
			
		||||
    "website": "https://www.mysql.com/",
 | 
			
		||||
    "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/mysql.webp",
 | 
			
		||||
    "config_path": "",
 | 
			
		||||
    "description": "MySQL is an open-source relational database management system (RDBMS) that uses SQL for managing and manipulating data. It is known for its scalability, reliability, and high performance, making it suitable for small to large-scale applications. Key features include support for ACID transactions, data replication for high availability, and compatibility with various programming languages like Python, PHP, and Java.",
 | 
			
		||||
    "install_methods": [
 | 
			
		||||
        {
 | 
			
		||||
            "type": "default",
 | 
			
		||||
            "script": "ct/mysql.sh",
 | 
			
		||||
            "resources": {
 | 
			
		||||
                "cpu": 1,
 | 
			
		||||
                "ram": 1024,
 | 
			
		||||
                "hdd": 4,
 | 
			
		||||
                "os": "debian",
 | 
			
		||||
                "version": "13"
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    "default_credentials": {
 | 
			
		||||
        "username": null,
 | 
			
		||||
        "password": null
 | 
			
		||||
  "name": "MySQL",
 | 
			
		||||
  "slug": "mysql",
 | 
			
		||||
  "categories": [
 | 
			
		||||
    8
 | 
			
		||||
  ],
 | 
			
		||||
  "date_created": "2024-10-10",
 | 
			
		||||
  "type": "ct",
 | 
			
		||||
  "updateable": true,
 | 
			
		||||
  "privileged": false,
 | 
			
		||||
  "interface_port": null,
 | 
			
		||||
  "documentation": "https://dev.mysql.com/doc/",
 | 
			
		||||
  "website": "https://www.mysql.com/",
 | 
			
		||||
  "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/mysql.webp",
 | 
			
		||||
  "config_path": "",
 | 
			
		||||
  "description": "MySQL is an open-source relational database management system (RDBMS) that uses SQL for managing and manipulating data. It is known for its scalability, reliability, and high performance, making it suitable for small to large-scale applications. Key features include support for ACID transactions, data replication for high availability, and compatibility with various programming languages like Python, PHP, and Java.",
 | 
			
		||||
  "install_methods": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "default",
 | 
			
		||||
      "script": "ct/mysql.sh",
 | 
			
		||||
      "resources": {
 | 
			
		||||
        "cpu": 1,
 | 
			
		||||
        "ram": 1024,
 | 
			
		||||
        "hdd": 4,
 | 
			
		||||
        "os": "debian",
 | 
			
		||||
        "version": "12"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "default_credentials": {
 | 
			
		||||
    "username": null,
 | 
			
		||||
    "password": null
 | 
			
		||||
  },
 | 
			
		||||
  "notes": [
 | 
			
		||||
    {
 | 
			
		||||
      "text": "Database credentials: `cat mysql.creds`",
 | 
			
		||||
      "type": "info"
 | 
			
		||||
    },
 | 
			
		||||
    "notes": [
 | 
			
		||||
        {
 | 
			
		||||
            "text": "Database credentials: `cat mysql.creds`",
 | 
			
		||||
            "type": "info"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "text": "With an option to install the MySQL 8.4 LTS release instead of MySQL 8.0",
 | 
			
		||||
            "type": "info"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "text": "If installed, access phpMyAdmin at `http://<LXC_IP>/phpMyAdmin`, case sensitive.",
 | 
			
		||||
            "type": "info"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
    {
 | 
			
		||||
      "text": "With an option to install the MySQL 8.4 LTS release instead of MySQL 8.0",
 | 
			
		||||
      "type": "info"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "text": "If installed, access phpMyAdmin at `http://<LXC_IP>/phpMyAdmin`, case sensitive.",
 | 
			
		||||
      "type": "info"
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,7 @@
 | 
			
		||||
        "ram": 1024,
 | 
			
		||||
        "hdd": 4,
 | 
			
		||||
        "os": "debian",
 | 
			
		||||
        "version": "13"
 | 
			
		||||
        "version": "12"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,7 @@
 | 
			
		||||
        "ram": 512,
 | 
			
		||||
        "hdd": 2,
 | 
			
		||||
        "os": "debian",
 | 
			
		||||
        "version": "13"
 | 
			
		||||
        "version": "12"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,98 @@
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
    "name": "mongodb/mongo",
 | 
			
		||||
    "version": "r8.2.2-rc0",
 | 
			
		||||
    "date": "2025-10-23T22:12:44Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Cleanuparr/Cleanuparr",
 | 
			
		||||
    "version": "v2.4.0",
 | 
			
		||||
    "date": "2025-10-23T21:12:48Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "wizarrrr/wizarr",
 | 
			
		||||
    "version": "v2025.10.6",
 | 
			
		||||
    "date": "2025-10-23T20:20:21Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "tailscale/tailscale",
 | 
			
		||||
    "version": "v1.90.1",
 | 
			
		||||
    "date": "2025-10-23T19:12:48Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "dgtlmoon/changedetection.io",
 | 
			
		||||
    "version": "0.50.29",
 | 
			
		||||
    "date": "2025-10-23T18:59:35Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "wazuh/wazuh",
 | 
			
		||||
    "version": "v4.14.0",
 | 
			
		||||
    "date": "2025-10-23T17:45:30Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "paperless-ngx/paperless-ngx",
 | 
			
		||||
    "version": "v2.19.2",
 | 
			
		||||
    "date": "2025-10-23T17:23:27Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "drakkan/sftpgo",
 | 
			
		||||
    "version": "v2.7.0",
 | 
			
		||||
    "date": "2025-10-23T17:15:07Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zitadel/zitadel",
 | 
			
		||||
    "version": "v4.4.0",
 | 
			
		||||
    "date": "2025-10-16T07:20:34Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "msgbyte/tianji",
 | 
			
		||||
    "version": "v1.30.1",
 | 
			
		||||
    "date": "2025-10-23T16:20:50Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "TwiN/gatus",
 | 
			
		||||
    "version": "v5.28.0",
 | 
			
		||||
    "date": "2025-10-23T16:16:04Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "juanfont/headscale",
 | 
			
		||||
    "version": "v0.26.1",
 | 
			
		||||
    "date": "2025-06-06T11:22:02Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "HabitRPG/habitica",
 | 
			
		||||
    "version": "v5.41.5",
 | 
			
		||||
    "date": "2025-10-23T15:12:42Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "AdguardTeam/AdGuardHome",
 | 
			
		||||
    "version": "v0.107.68",
 | 
			
		||||
    "date": "2025-10-23T14:26:29Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "fuma-nama/fumadocs",
 | 
			
		||||
    "version": "fumadocs-core@16.0.2",
 | 
			
		||||
    "date": "2025-10-23T13:59:04Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Kareadita/Kavita",
 | 
			
		||||
    "version": "v0.8.8.3",
 | 
			
		||||
    "date": "2025-10-23T12:31:49Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "YunoHost/yunohost",
 | 
			
		||||
    "version": "debian/12.1.32",
 | 
			
		||||
    "date": "2025-10-23T12:30:33Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "duplicati/duplicati",
 | 
			
		||||
    "version": "v2.2.0.0-2.2.0.0_stable_2025-10-23",
 | 
			
		||||
    "date": "2025-10-23T11:25:25Z"
 | 
			
		||||
    "version": "v2.2.0.0_stable_2025-10-23",
 | 
			
		||||
    "date": "2025-10-23T11:48:25Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "meilisearch/meilisearch",
 | 
			
		||||
    "version": "prototype-v1.24.0.s3-snapshots-2",
 | 
			
		||||
    "date": "2025-10-23T11:32:32Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "keycloak/keycloak",
 | 
			
		||||
@@ -14,11 +104,6 @@
 | 
			
		||||
    "version": "v0.24.175",
 | 
			
		||||
    "date": "2025-10-23T05:50:23Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "YunoHost/yunohost",
 | 
			
		||||
    "version": "debian/12.1.31",
 | 
			
		||||
    "date": "2025-10-23T00:45:04Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "jeedom/core",
 | 
			
		||||
    "version": "4.4.20",
 | 
			
		||||
@@ -49,11 +134,6 @@
 | 
			
		||||
    "version": "v1.19.5",
 | 
			
		||||
    "date": "2025-09-27T20:59:46Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "paperless-ngx/paperless-ngx",
 | 
			
		||||
    "version": "v2.19.1",
 | 
			
		||||
    "date": "2025-10-22T20:40:07Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "rcourtman/Pulse",
 | 
			
		||||
    "version": "issue-596",
 | 
			
		||||
@@ -114,46 +194,21 @@
 | 
			
		||||
    "version": "v1.5.3",
 | 
			
		||||
    "date": "2025-09-20T12:12:33Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "fuma-nama/fumadocs",
 | 
			
		||||
    "version": "create-fumadocs-app@16.0.1",
 | 
			
		||||
    "date": "2025-10-22T05:44:06Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "chrisbenincasa/tunarr",
 | 
			
		||||
    "version": "v0.23.0-alpha.17",
 | 
			
		||||
    "date": "2025-10-22T00:33:47Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "msgbyte/tianji",
 | 
			
		||||
    "version": "v1.30.0",
 | 
			
		||||
    "date": "2025-10-21T21:37:52Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "bluenviron/mediamtx",
 | 
			
		||||
    "version": "v1.15.3",
 | 
			
		||||
    "date": "2025-10-21T19:56:55Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "dgtlmoon/changedetection.io",
 | 
			
		||||
    "version": "0.50.28",
 | 
			
		||||
    "date": "2025-10-21T19:51:28Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "mongodb/mongo",
 | 
			
		||||
    "version": "r8.0.15",
 | 
			
		||||
    "date": "2025-10-21T19:03:20Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "jenkinsci/jenkins",
 | 
			
		||||
    "version": "jenkins-2.533",
 | 
			
		||||
    "date": "2025-10-21T18:26:10Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "TwiN/gatus",
 | 
			
		||||
    "version": "v5.27.2",
 | 
			
		||||
    "date": "2025-10-21T18:03:22Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "kyantech/Palmr",
 | 
			
		||||
    "version": "v3.2.5-beta",
 | 
			
		||||
@@ -184,11 +239,6 @@
 | 
			
		||||
    "version": "server-v3.4.4",
 | 
			
		||||
    "date": "2025-09-25T13:19:26Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "wazuh/wazuh",
 | 
			
		||||
    "version": "v4.14.0",
 | 
			
		||||
    "date": "2025-10-21T13:39:55Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "goauthentik/authentik",
 | 
			
		||||
    "version": "version/2025.10.0-rc2",
 | 
			
		||||
@@ -219,11 +269,6 @@
 | 
			
		||||
    "version": "pmm-6401-v1.128.0",
 | 
			
		||||
    "date": "2025-10-21T08:30:52Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "meilisearch/meilisearch",
 | 
			
		||||
    "version": "prototype-v1.24.0.ignore-embedding-failures-2",
 | 
			
		||||
    "date": "2025-10-21T07:36:22Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "openobserve/openobserve",
 | 
			
		||||
    "version": "v0.16.0-rc1",
 | 
			
		||||
@@ -259,11 +304,6 @@
 | 
			
		||||
    "version": "4.9.1.80",
 | 
			
		||||
    "date": "2025-09-30T20:25:16Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "tailscale/tailscale",
 | 
			
		||||
    "version": "v1.91.0-pre",
 | 
			
		||||
    "date": "2025-10-20T16:18:51Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "rclone/rclone",
 | 
			
		||||
    "version": "v1.71.2",
 | 
			
		||||
@@ -274,16 +314,6 @@
 | 
			
		||||
    "version": "7.0.0-rc.1",
 | 
			
		||||
    "date": "2025-10-20T11:53:31Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Kareadita/Kavita",
 | 
			
		||||
    "version": "v0.8.8",
 | 
			
		||||
    "date": "2025-10-20T11:26:24Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "wizarrrr/wizarr",
 | 
			
		||||
    "version": "v2025.10.4",
 | 
			
		||||
    "date": "2025-10-20T10:45:54Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "jupyter/notebook",
 | 
			
		||||
    "version": "@jupyter-notebook/ui-components@7.5.0-beta.1",
 | 
			
		||||
@@ -439,11 +469,6 @@
 | 
			
		||||
    "version": "v0.30.4",
 | 
			
		||||
    "date": "2025-10-17T08:03:10Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "juanfont/headscale",
 | 
			
		||||
    "version": "v0.26.1",
 | 
			
		||||
    "date": "2025-06-06T11:22:02Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "diced/zipline",
 | 
			
		||||
    "version": "v4.3.2",
 | 
			
		||||
@@ -479,11 +504,6 @@
 | 
			
		||||
    "version": "v3.2.8",
 | 
			
		||||
    "date": "2025-10-16T14:21:48Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zitadel/zitadel",
 | 
			
		||||
    "version": "v4.4.0",
 | 
			
		||||
    "date": "2025-10-16T07:20:34Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "cloudreve/cloudreve",
 | 
			
		||||
    "version": "4.9.2",
 | 
			
		||||
@@ -689,11 +709,6 @@
 | 
			
		||||
    "version": "v1.68.0",
 | 
			
		||||
    "date": "2025-10-08T18:33:12Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "AdguardTeam/AdGuardHome",
 | 
			
		||||
    "version": "v0.107.67",
 | 
			
		||||
    "date": "2025-09-29T14:45:57Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "advplyr/audiobookshelf",
 | 
			
		||||
    "version": "v2.30.0",
 | 
			
		||||
@@ -749,6 +764,11 @@
 | 
			
		||||
    "version": "v1.6.5",
 | 
			
		||||
    "date": "2025-10-06T15:25:17Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "mysql/mysql-server",
 | 
			
		||||
    "version": "mysql-cluster-7.6.36",
 | 
			
		||||
    "date": "2025-10-06T15:19:49Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "bastienwirtz/homer",
 | 
			
		||||
    "version": "v25.10.1",
 | 
			
		||||
@@ -799,11 +819,6 @@
 | 
			
		||||
    "version": "v3.5.7.pypi",
 | 
			
		||||
    "date": "2025-10-01T05:32:27Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "HabitRPG/habitica",
 | 
			
		||||
    "version": "v5.41.4",
 | 
			
		||||
    "date": "2025-09-30T22:26:11Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "WordPress/WordPress",
 | 
			
		||||
    "version": "4.7.31",
 | 
			
		||||
@@ -824,11 +839,6 @@
 | 
			
		||||
    "version": "v1.11.1",
 | 
			
		||||
    "date": "2025-09-30T00:24:16Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Cleanuparr/Cleanuparr",
 | 
			
		||||
    "version": "v2.3.3",
 | 
			
		||||
    "date": "2025-09-29T18:53:35Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "influxdata/influxdb",
 | 
			
		||||
    "version": "v2.7.12",
 | 
			
		||||
@@ -894,11 +904,6 @@
 | 
			
		||||
    "version": "2025.09.24",
 | 
			
		||||
    "date": "2025-09-24T13:51:23Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "mysql/mysql-server",
 | 
			
		||||
    "version": "mysql-cluster-8.4.7",
 | 
			
		||||
    "date": "2025-09-24T12:23:38Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "syncthing/syncthing",
 | 
			
		||||
    "version": "v2.0.10",
 | 
			
		||||
@@ -1444,11 +1449,6 @@
 | 
			
		||||
    "version": "v1.11.2",
 | 
			
		||||
    "date": "2025-02-24T19:47:06Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "drakkan/sftpgo",
 | 
			
		||||
    "version": "v2.6.6",
 | 
			
		||||
    "date": "2025-02-24T19:14:46Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "babybuddy/babybuddy",
 | 
			
		||||
    "version": "v2.7.1",
 | 
			
		||||
 
 | 
			
		||||
@@ -14,25 +14,40 @@ network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Dependencies"
 | 
			
		||||
$STD apt install -y \
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
  apt-transport-https \
 | 
			
		||||
  apache2 \
 | 
			
		||||
  git \
 | 
			
		||||
  expect
 | 
			
		||||
  expect \
 | 
			
		||||
  composer \
 | 
			
		||||
  lsb-release
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
setup_mariadb
 | 
			
		||||
PHP_VERSION="8.4" PHP_MODULE="mysql" PHP_APACHE="YES" setup_php
 | 
			
		||||
setup_composer
 | 
			
		||||
setup_mysql
 | 
			
		||||
 | 
			
		||||
msg_info "Adding PHP8.4 Repository"
 | 
			
		||||
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
 | 
			
		||||
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
 | 
			
		||||
$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 PHP8.4 Repository"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing PHP"
 | 
			
		||||
$STD apt-get remove -y php8.2*
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
  php8.4 \
 | 
			
		||||
  php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl} \
 | 
			
		||||
  libapache2-mod-php8.4
 | 
			
		||||
msg_ok "Installed PHP"
 | 
			
		||||
 | 
			
		||||
msg_info "Setting up database"
 | 
			
		||||
DB_NAME=kimai_db
 | 
			
		||||
DB_USER=kimai
 | 
			
		||||
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
 | 
			
		||||
MYSQL_VERSION=$(mariadb --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
 | 
			
		||||
$STD mariadb -e "CREATE DATABASE $DB_NAME;"
 | 
			
		||||
$STD mariadb -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
 | 
			
		||||
$STD mariadb -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
 | 
			
		||||
MYSQL_VERSION=$(mysql --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
 | 
			
		||||
$STD mysql -u root -e "CREATE DATABASE $DB_NAME;"
 | 
			
		||||
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
 | 
			
		||||
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
 | 
			
		||||
{
 | 
			
		||||
  echo "Kimai-Credentials"
 | 
			
		||||
  echo "Kimai Database User: $DB_USER"
 | 
			
		||||
@@ -41,9 +56,11 @@ $STD mariadb -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVIL
 | 
			
		||||
} >>~/kimai.creds
 | 
			
		||||
msg_ok "Set up database"
 | 
			
		||||
 | 
			
		||||
fetch_and_deploy_gh_release "kimai" "kimai/kimai"
 | 
			
		||||
 | 
			
		||||
msg_info "Setup Kimai"
 | 
			
		||||
msg_info "Installing Kimai (Patience)"
 | 
			
		||||
RELEASE=$(curl -fsSL https://api.github.com/repos/kimai/kimai/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
curl -fsSL "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip" -o "${RELEASE}".zip
 | 
			
		||||
$STD unzip "${RELEASE}".zip
 | 
			
		||||
mv kimai-"${RELEASE}" /opt/kimai
 | 
			
		||||
cd /opt/kimai
 | 
			
		||||
echo "export COMPOSER_ALLOW_SUPERUSER=1" >>~/.bashrc
 | 
			
		||||
source ~/.bashrc
 | 
			
		||||
@@ -75,6 +92,8 @@ admin_lte:
 | 
			
		||||
    options:
 | 
			
		||||
        default_avatar: build/apple-touch-icon.png
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
 | 
			
		||||
msg_ok "Installed Kimai"
 | 
			
		||||
 | 
			
		||||
msg_info "Creating Service"
 | 
			
		||||
@@ -112,7 +131,6 @@ customize
 | 
			
		||||
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
rm -rf "${RELEASE}".zip
 | 
			
		||||
$STD apt -y autoremove
 | 
			
		||||
$STD apt -y autoclean
 | 
			
		||||
$STD apt -y clean
 | 
			
		||||
$STD apt-get -y autoremove
 | 
			
		||||
$STD apt-get -y autoclean
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
 
 | 
			
		||||
@@ -63,27 +63,7 @@ msg_ok "MySQL Server configured"
 | 
			
		||||
 | 
			
		||||
read -r -p "${TAB3}Would you like to add PhpMyAdmin? <y/N> " prompt
 | 
			
		||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
 | 
			
		||||
  msg_info "Installing phpMyAdmin"
 | 
			
		||||
  $STD apt install -y \
 | 
			
		||||
    apache2 \
 | 
			
		||||
    php \
 | 
			
		||||
    php-mysqli \
 | 
			
		||||
    php-mbstring \
 | 
			
		||||
    php-zip \
 | 
			
		||||
    php-gd \
 | 
			
		||||
    php-json \
 | 
			
		||||
    php-curl
 | 
			
		||||
 | 
			
		||||
  curl -fsSL "https://files.phpmyadmin.net/phpMyAdmin/5.2.2/phpMyAdmin-5.2.2-all-languages.tar.gz" -o "phpMyAdmin-5.2.2-all-languages.tar.gz"
 | 
			
		||||
  mkdir -p /var/www/html/phpMyAdmin
 | 
			
		||||
  tar xf phpMyAdmin-5.2.2-all-languages.tar.gz --strip-components=1 -C /var/www/html/phpMyAdmin
 | 
			
		||||
  cp /var/www/html/phpMyAdmin/config.sample.inc.php /var/www/html/phpMyAdmin/config.inc.php
 | 
			
		||||
  SECRET=$(openssl rand -base64 24)
 | 
			
		||||
  sed -i "s#\$cfg\['blowfish_secret'\] = '';#\$cfg['blowfish_secret'] = '${SECRET}';#" /var/www/html/phpMyAdmin/config.inc.php
 | 
			
		||||
  chmod 660 /var/www/html/phpMyAdmin/config.inc.php
 | 
			
		||||
  chown -R www-data:www-data /var/www/html/phpMyAdmin
 | 
			
		||||
  systemctl restart apache2
 | 
			
		||||
  msg_ok "Installed phpMyAdmin"
 | 
			
		||||
  bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/phpmyadmin.sh)"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
msg_info "Start Service"
 | 
			
		||||
 
 | 
			
		||||
@@ -17,7 +17,7 @@ msg_info "Installing Dependencies"
 | 
			
		||||
$STD apt install -y \
 | 
			
		||||
  apache2-utils \
 | 
			
		||||
  python3-pip \
 | 
			
		||||
  python3.11-venv
 | 
			
		||||
  python3-venv
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
msg_info "Setting up Radicale"
 | 
			
		||||
 
 | 
			
		||||
@@ -1141,7 +1141,7 @@ function fetch_and_deploy_gh_release() {
 | 
			
		||||
      rm -rf "${target:?}/"*
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    tar --no-same-owner -xzf "$tmpdir/$filename" -C "$tmpdir" || {
 | 
			
		||||
  tar --no-same-owner -xzf "$tmpdir/$filename" -C "$tmpdir" || {
 | 
			
		||||
      msg_error "Failed to extract tarball"
 | 
			
		||||
      rm -rf "$tmpdir"
 | 
			
		||||
      return 1
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user