mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 10:22:50 +00:00 
			
		
		
		
	Compare commits
	
		
			14 Commits
		
	
	
		
			2025-04-06
			...
			2025-04-07
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					9a906d35e2 | ||
| 
						 | 
					97674cfae7 | ||
| 
						 | 
					89ae467364 | ||
| 
						 | 
					42a7c00bca | ||
| 
						 | 
					d28368b596 | ||
| 
						 | 
					9786bfb55e | ||
| 
						 | 
					26ea046ba2 | ||
| 
						 | 
					061c7ebd2e | ||
| 
						 | 
					5313bb0103 | ||
| 
						 | 
					86577a0d0d | ||
| 
						 | 
					4ae0352304 | ||
| 
						 | 
					0c202066f5 | ||
| 
						 | 
					9bac1398b2 | ||
| 
						 | 
					251f3c411d | 
							
								
								
									
										29
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -14,6 +14,35 @@ 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-07
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - Breaking: Hoarder > Karakeep [@MickLesk](https://github.com/MickLesk) ([#3699](https://github.com/community-scripts/ProxmoxVE/pull/3699))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - Actual: Increase RAM and add heap-space var for nodejs [@MickLesk](https://github.com/MickLesk) ([#3713](https://github.com/community-scripts/ProxmoxVE/pull/3713))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Alpine-MariaDB: Fix Install Service startup [@MickLesk](https://github.com/MickLesk) ([#3701](https://github.com/community-scripts/ProxmoxVE/pull/3701))
 | 
			
		||||
    - Zitadel: Fix release tarball crawling [@tremor021](https://github.com/tremor021) ([#3716](https://github.com/community-scripts/ProxmoxVE/pull/3716))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Kimai: bump php to 8.4 [@MickLesk](https://github.com/MickLesk) ([#3724](https://github.com/community-scripts/ProxmoxVE/pull/3724))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Refactor: Zabbix, get always latest version [@MickLesk](https://github.com/MickLesk) ([#3720](https://github.com/community-scripts/ProxmoxVE/pull/3720))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - Changed the category of Channels DVR and NextPVR [@johnsturgeon](https://github.com/johnsturgeon) ([#3729](https://github.com/community-scripts/ProxmoxVE/pull/3729))
 | 
			
		||||
 | 
			
		||||
## 2025-04-06
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 
 | 
			
		||||
@@ -8,8 +8,8 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
			
		||||
APP="Actual Budget"
 | 
			
		||||
var_tags="finance"
 | 
			
		||||
var_cpu="2"
 | 
			
		||||
var_ram="2048"
 | 
			
		||||
var_disk="4"
 | 
			
		||||
var_ram="8192"
 | 
			
		||||
var_disk="7"
 | 
			
		||||
var_os="debian"
 | 
			
		||||
var_version="12"
 | 
			
		||||
var_unprivileged="1"
 | 
			
		||||
@@ -84,6 +84,7 @@ ACTUAL_HTTPS_CERT=/opt/actualbudget/selfhost.crt
 | 
			
		||||
EOF
 | 
			
		||||
    fi
 | 
			
		||||
    cd /opt/actualbudget || exit
 | 
			
		||||
    export NODE_OPTIONS="--max_old_space_size=4096"
 | 
			
		||||
    $STD yarn install
 | 
			
		||||
    $STD yarn run build:server
 | 
			
		||||
    #$STD yarn workspaces focus @actual-app/sync-server --production
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/karakeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/karakeep
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    __                    __                 
 | 
			
		||||
   / /______ __________ _/ /_____  ___  ____ 
 | 
			
		||||
  / //_/ __ `/ ___/ __ `/ //_/ _ \/ _ \/ __ \
 | 
			
		||||
 / ,< / /_/ / /  / /_/ / ,< /  __/  __/ /_/ /
 | 
			
		||||
/_/|_|\__,_/_/   \__,_/_/|_|\___/\___/ .___/ 
 | 
			
		||||
                                    /_/      
 | 
			
		||||
@@ -40,23 +40,23 @@ function update_script() {
 | 
			
		||||
    if [[ "${PREV_RELEASE}" < 0.23.0 ]]; then
 | 
			
		||||
      $STD apt-get install -y graphicsmagick ghostscript
 | 
			
		||||
    fi
 | 
			
		||||
    cd /opt
 | 
			
		||||
    cd /opt || exit
 | 
			
		||||
    if [[ -f /opt/hoarder/.env ]] && [[ ! -f /etc/hoarder/hoarder.env ]]; then
 | 
			
		||||
      mkdir -p /etc/hoarder
 | 
			
		||||
      mv /opt/hoarder/.env /etc/hoarder/hoarder.env
 | 
			
		||||
    fi
 | 
			
		||||
    rm -rf /opt/hoarder
 | 
			
		||||
    curl -fsSL "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip")
 | 
			
		||||
    unzip -q v${RELEASE}.zip
 | 
			
		||||
    mv hoarder-${RELEASE} /opt/hoarder
 | 
			
		||||
    cd /opt/hoarder/apps/web
 | 
			
		||||
    curl -fsSL "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
 | 
			
		||||
    unzip -q v"${RELEASE}".zip
 | 
			
		||||
    mv karakeep-"${RELEASE}" /opt/hoarder
 | 
			
		||||
    cd /opt/hoarder/apps/web || exit
 | 
			
		||||
    $STD pnpm install --frozen-lockfile
 | 
			
		||||
    $STD pnpm exec next build --experimental-build-mode compile
 | 
			
		||||
    cp -r /opt/hoarder/apps/web/.next/standalone/apps/web/server.js /opt/hoarder/apps/web
 | 
			
		||||
    cd /opt/hoarder/apps/workers
 | 
			
		||||
    cd /opt/hoarder/apps/workers || exit
 | 
			
		||||
    $STD pnpm install --frozen-lockfile
 | 
			
		||||
    export DATA_DIR=/opt/hoarder_data
 | 
			
		||||
    cd /opt/hoarder/packages/db
 | 
			
		||||
    cd /opt/hoarder/packages/db || exit
 | 
			
		||||
    $STD pnpm migrate
 | 
			
		||||
    sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /etc/hoarder/hoarder.env
 | 
			
		||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
@@ -65,7 +65,7 @@ function update_script() {
 | 
			
		||||
    systemctl start hoarder-browser hoarder-workers hoarder-web
 | 
			
		||||
    msg_ok "Started Services"
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -R /opt/v${RELEASE}.zip
 | 
			
		||||
    rm -R /opt/v"${RELEASE}".zip
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										85
									
								
								ct/karakeep.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								ct/karakeep.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 tteck
 | 
			
		||||
# Author: MickLesk (Canbiz) & vhsdream
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://karakeep.app/
 | 
			
		||||
 | 
			
		||||
APP="karakeep"
 | 
			
		||||
var_tags="bookmark"
 | 
			
		||||
var_cpu="2"
 | 
			
		||||
var_ram="4096"
 | 
			
		||||
var_disk="10"
 | 
			
		||||
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/karakeep ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/karakeep-app/karakeep/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  PREV_RELEASE=$(cat /opt/${APP}_version.txt)
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "${PREV_RELEASE}" ]]; then
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
    systemctl stop karakeep-web karakeep-workers karakeep-browser
 | 
			
		||||
    msg_ok "Stopped Services"
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    if [[ $(corepack -v) < "0.31.0" ]]; then
 | 
			
		||||
      $STD npm install -g corepack@0.31.0
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ "${PREV_RELEASE}" < 0.23.0 ]]; then
 | 
			
		||||
      $STD apt-get install -y graphicsmagick ghostscript
 | 
			
		||||
    fi
 | 
			
		||||
    cd /opt || exit
 | 
			
		||||
    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
 | 
			
		||||
    curl -fsSL "https://github.com/karakeep-app/karakeep/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
 | 
			
		||||
    unzip -q "v${RELEASE}.zip"
 | 
			
		||||
    mv karakeep-"${RELEASE}" /opt/karakeep
 | 
			
		||||
    cd /opt/karakeep/apps/web || exit
 | 
			
		||||
    $STD pnpm install --frozen-lockfile
 | 
			
		||||
    $STD pnpm exec next build --experimental-build-mode compile
 | 
			
		||||
    cp -r /opt/karakeep/apps/web/.next/standalone/apps/web/server.js /opt/karakeep/apps/web
 | 
			
		||||
    cd /opt/karakeep/apps/workers || exit
 | 
			
		||||
    $STD pnpm install --frozen-lockfile
 | 
			
		||||
    export DATA_DIR=/opt/karakeep_data
 | 
			
		||||
    cd /opt/karakeep/packages/db || exit
 | 
			
		||||
    $STD pnpm migrate
 | 
			
		||||
    sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /etc/karakeep/karakeep.env
 | 
			
		||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Services"
 | 
			
		||||
    systemctl start karakeep-browser karakeep-workers karakeep-web
 | 
			
		||||
    msg_ok "Started Services"
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -R /opt/v"${RELEASE}".zip
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required.  ${APP} is already at ${RELEASE}."
 | 
			
		||||
  fi
 | 
			
		||||
  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}http://${IP}:3000${CL}"
 | 
			
		||||
							
								
								
									
										129
									
								
								ct/kimai.sh
									
									
									
									
									
								
							
							
						
						
									
										129
									
								
								ct/kimai.sh
									
									
									
									
									
								
							@@ -20,64 +20,79 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /opt/kimai ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    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"
 | 
			
		||||
 | 
			
		||||
        msg_info "Backing up Kimai configuration and var directory"
 | 
			
		||||
        mkdir -p "$BACKUP_DIR"
 | 
			
		||||
        [ -d /opt/kimai/var ] && cp -r /opt/kimai/var "$BACKUP_DIR/"
 | 
			
		||||
        [ -f /opt/kimai/.env ] && cp /opt/kimai/.env "$BACKUP_DIR/"
 | 
			
		||||
        [ -f /opt/kimai/config/packages/local.yaml ] && cp /opt/kimai/config/packages/local.yaml "$BACKUP_DIR/"
 | 
			
		||||
        msg_ok "Backup completed"
 | 
			
		||||
 | 
			
		||||
        msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
        rm -rf /opt/kimai
 | 
			
		||||
        curl -fsSL "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip")
 | 
			
		||||
        unzip -q ${RELEASE}.zip
 | 
			
		||||
        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/
 | 
			
		||||
        rm -rf "$BACKUP_DIR"
 | 
			
		||||
        cd /opt/kimai
 | 
			
		||||
        $STD composer install --no-dev --optimize-autoloader
 | 
			
		||||
        $STD bin/console kimai:update
 | 
			
		||||
        echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
        msg_ok "Updated ${APP} to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
        msg_info "Starting Apache2"
 | 
			
		||||
        systemctl start apache2
 | 
			
		||||
        msg_ok "Started Apache2"
 | 
			
		||||
 | 
			
		||||
        msg_info "Setup Permissions"
 | 
			
		||||
        chown -R :www-data /opt/*
 | 
			
		||||
        chmod -R g+r /opt/*
 | 
			
		||||
        chmod -R g+rw /opt/*
 | 
			
		||||
        chown -R www-data:www-data /opt/*
 | 
			
		||||
        chmod -R 777 /opt/*
 | 
			
		||||
        msg_ok "Setup Permissions"
 | 
			
		||||
 | 
			
		||||
        msg_info "Cleaning Up"
 | 
			
		||||
        rm -rf ${RELEASE}.zip
 | 
			
		||||
        rm -rf "$BACKUP_DIR"
 | 
			
		||||
        msg_ok "Cleaned"
 | 
			
		||||
        msg_ok "Updated Successfully"
 | 
			
		||||
    else
 | 
			
		||||
        msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
    fi
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/kimai ]]; then
 | 
			
		||||
    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 \
 | 
			
		||||
      php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl} \
 | 
			
		||||
      libapache2-mod-php8.4
 | 
			
		||||
    msg_ok "Migrated PHP $CURRENT_PHP to 8.4"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  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"
 | 
			
		||||
 | 
			
		||||
    msg_info "Backing up Kimai configuration and var directory"
 | 
			
		||||
    mkdir -p "$BACKUP_DIR"
 | 
			
		||||
    [ -d /opt/kimai/var ] && cp -r /opt/kimai/var "$BACKUP_DIR/"
 | 
			
		||||
    [ -f /opt/kimai/.env ] && cp /opt/kimai/.env "$BACKUP_DIR/"
 | 
			
		||||
    [ -f /opt/kimai/config/packages/local.yaml ] && cp /opt/kimai/config/packages/local.yaml "$BACKUP_DIR/"
 | 
			
		||||
    msg_ok "Backup completed"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    rm -rf /opt/kimai
 | 
			
		||||
    curl -fsSL "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip")
 | 
			
		||||
    unzip -q "${RELEASE}".zip
 | 
			
		||||
    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/
 | 
			
		||||
    rm -rf "$BACKUP_DIR"
 | 
			
		||||
    cd /opt/kimai || exit
 | 
			
		||||
    $STD composer install --no-dev --optimize-autoloader
 | 
			
		||||
    $STD bin/console kimai:update
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Apache2"
 | 
			
		||||
    systemctl start apache2
 | 
			
		||||
    msg_ok "Started Apache2"
 | 
			
		||||
 | 
			
		||||
    msg_info "Setup Permissions"
 | 
			
		||||
    chown -R :www-data /opt/*
 | 
			
		||||
    chmod -R g+r /opt/*
 | 
			
		||||
    chmod -R g+rw /opt/*
 | 
			
		||||
    chown -R www-data:www-data /opt/*
 | 
			
		||||
    chmod -R 777 /opt/*
 | 
			
		||||
    msg_ok "Setup Permissions"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf "${RELEASE}".zip
 | 
			
		||||
    rm -rf "$BACKUP_DIR"
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										73
									
								
								ct/zabbix.sh
									
									
									
									
									
								
							
							
						
						
									
										73
									
								
								ct/zabbix.sh
									
									
									
									
									
								
							@@ -1,7 +1,7 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 tteck
 | 
			
		||||
# Author: tteck (tteckster)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: MickLesk (CanbiZ)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://www.zabbix.com/
 | 
			
		||||
 | 
			
		||||
@@ -20,40 +20,43 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -f /etc/zabbix/zabbix_server.conf ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Stopping ${APP} Services"
 | 
			
		||||
    systemctl stop zabbix-server zabbix-agent2
 | 
			
		||||
    msg_ok "Stopped ${APP} Services"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP LXC"
 | 
			
		||||
    mkdir -p /opt/zabbix-backup/
 | 
			
		||||
    cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
 | 
			
		||||
    cp /etc/apache2/conf-enabled/zabbix.conf /opt/zabbix-backup/
 | 
			
		||||
    cp -R /usr/share/zabbix/ /opt/zabbix-backup/
 | 
			
		||||
    #cp -R /usr/share/zabbix-* /opt/zabbix-backup/ Remove temporary
 | 
			
		||||
    rm -Rf /etc/apt/sources.list.d/zabbix.list
 | 
			
		||||
    cd /tmp
 | 
			
		||||
    curl -fsSL "https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb" -o $(basename "https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb")
 | 
			
		||||
    $STD dpkg -i zabbix-release_latest+debian12_all.deb
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get install --only-upgrade zabbix-server-pgsql zabbix-frontend-php zabbix-agent2 zabbix-agent2-plugin-*
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP} Services"
 | 
			
		||||
    systemctl start zabbix-server zabbix-agent2
 | 
			
		||||
    systemctl restart apache2
 | 
			
		||||
    msg_ok "Started ${APP} Services"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf /tmp/zabbix-release_latest+debian12_all.deb
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -f /etc/zabbix/zabbix_server.conf ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Stopping ${APP} Services"
 | 
			
		||||
  systemctl stop zabbix-server zabbix-agent2
 | 
			
		||||
  msg_ok "Stopped ${APP} Services"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating $APP LXC"
 | 
			
		||||
  mkdir -p /opt/zabbix-backup/
 | 
			
		||||
  cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
 | 
			
		||||
  cp /etc/apache2/conf-enabled/zabbix.conf /opt/zabbix-backup/
 | 
			
		||||
  cp -R /usr/share/zabbix/ /opt/zabbix-backup/
 | 
			
		||||
  #cp -R /usr/share/zabbix-* /opt/zabbix-backup/ Remove temporary
 | 
			
		||||
  rm -Rf /etc/apt/sources.list.d/zabbix.list
 | 
			
		||||
  cd /tmp || exit
 | 
			
		||||
  curl -fsSL "$(curl -fsSL https://repo.zabbix.com/zabbix/ |
 | 
			
		||||
    grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1 |
 | 
			
		||||
    xargs -I{} echo "https://repo.zabbix.com/zabbix/{}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb")" \
 | 
			
		||||
    -o /tmp/zabbix-release_latest+debian12_all.deb
 | 
			
		||||
  $STD dpkg -i zabbix-release_latest+debian12_all.deb
 | 
			
		||||
  $STD apt-get update
 | 
			
		||||
  $STD apt-get install --only-upgrade zabbix-server-pgsql zabbix-frontend-php zabbix-agent2 zabbix-agent2-plugin-*
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP} Services"
 | 
			
		||||
  systemctl start zabbix-server zabbix-agent2
 | 
			
		||||
  systemctl restart apache2
 | 
			
		||||
  msg_ok "Started ${APP} Services"
 | 
			
		||||
 | 
			
		||||
  msg_info "Cleaning Up"
 | 
			
		||||
  rm -rf /tmp/zabbix-release_latest+debian12_all.deb
 | 
			
		||||
  msg_ok "Cleaned"
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
 
 | 
			
		||||
@@ -20,39 +20,39 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -f /etc/systemd/system/zitadel.service ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    RELEASE=$(curl -fsSL https://github.com/zitadel/zitadel/releases/latest | grep location: | cut -d '/' -f 8 | tr -d '\r')
 | 
			
		||||
    if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt | grep -oP '\d+\.\d+\.\d+')" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
			
		||||
        msg_info "Stopping $APP"
 | 
			
		||||
        systemctl stop zitadel
 | 
			
		||||
        msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
        msg_info "Updating $APP to ${RELEASE}"
 | 
			
		||||
        cd /tmp || exit
 | 
			
		||||
        curl -fsSL https://github.com/zitadel/zitadel/releases/download/"$RELEASE"/zitadel-linux-amd64.tar.gz | tar -xz
 | 
			
		||||
        mv zitadel-linux-amd64/zitadel /usr/local/bin
 | 
			
		||||
        $STD zitadel setup --masterkeyFile /opt/zitadel/.masterkey --config /opt/zitadel/config.yaml --init-projections=true
 | 
			
		||||
        echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
        msg_ok "Updated $APP to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
        msg_info "Starting $APP"
 | 
			
		||||
        systemctl start zitadel
 | 
			
		||||
        msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
        msg_info "Cleaning Up"
 | 
			
		||||
        rm -rf /tmp/zitadel-linux-amd64
 | 
			
		||||
        msg_ok "Cleanup Completed"
 | 
			
		||||
        msg_ok "Update Successful"
 | 
			
		||||
    else
 | 
			
		||||
        msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
    fi
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -f /etc/systemd/system/zitadel.service ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/zitadel/zitadel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt | grep -oP '\d+\.\d+\.\d+')" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop zitadel
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP to ${RELEASE}"
 | 
			
		||||
    cd /tmp || exit
 | 
			
		||||
    curl -fsSL "https://github.com/zitadel/zitadel/releases/download/v$RELEASE/zitadel-linux-amd64.tar.gz" | tar -xz
 | 
			
		||||
    mv zitadel-linux-amd64/zitadel /usr/local/bin
 | 
			
		||||
    $STD zitadel setup --masterkeyFile /opt/zitadel/.masterkey --config /opt/zitadel/config.yaml --init-projections=true
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start zitadel
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf /tmp/zitadel-linux-amd64
 | 
			
		||||
    msg_ok "Cleanup Completed"
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
 
 | 
			
		||||
@@ -19,8 +19,8 @@
 | 
			
		||||
            "script": "ct/actualbudget.sh",
 | 
			
		||||
            "resources": {
 | 
			
		||||
                "cpu": 2,
 | 
			
		||||
                "ram": 2048,
 | 
			
		||||
                "hdd": 4,
 | 
			
		||||
                "ram": 8192,
 | 
			
		||||
                "hdd": 7,
 | 
			
		||||
                "os": "debian",
 | 
			
		||||
                "version": "12"
 | 
			
		||||
            }
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
    "name": "Channels DVR Server",
 | 
			
		||||
    "slug": "channels",
 | 
			
		||||
    "categories": [
 | 
			
		||||
        15
 | 
			
		||||
        13
 | 
			
		||||
    ],
 | 
			
		||||
    "date_created": "2024-05-02",
 | 
			
		||||
    "type": "ct",
 | 
			
		||||
@@ -36,4 +36,4 @@
 | 
			
		||||
            "type": "warning"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,34 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "Hoarder",
 | 
			
		||||
  "slug": "hoarder",
 | 
			
		||||
  "categories": [
 | 
			
		||||
        12
 | 
			
		||||
  ],
 | 
			
		||||
  "date_created": "2024-12-02",
 | 
			
		||||
  "type": "ct",
 | 
			
		||||
  "updateable": true,
 | 
			
		||||
  "privileged": false,
 | 
			
		||||
  "interface_port": 3000,
 | 
			
		||||
  "documentation": "https://docs.hoarder.app/",
 | 
			
		||||
  "website": "https://hoarder.app/",
 | 
			
		||||
  "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/hoarder.svg",
 | 
			
		||||
  "description": "Hoarder is an AI-powered bookmarking tool that helps you save and organize your digital content. It automatically tags your links, notes, and images, making them easy to find later. With features like auto-fetching, lists, and full-text search, Hoarder is the perfect tool for anyone who wants to keep track of their digital life.",
 | 
			
		||||
  "install_methods": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "default",
 | 
			
		||||
      "script": "ct/hoarder.sh",
 | 
			
		||||
      "resources": {
 | 
			
		||||
        "cpu": 2,
 | 
			
		||||
        "ram": 4096,
 | 
			
		||||
        "hdd": 10,
 | 
			
		||||
        "os": "debian",
 | 
			
		||||
        "version": "12"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "default_credentials": {
 | 
			
		||||
    "username": null,
 | 
			
		||||
    "password": null
 | 
			
		||||
  },
 | 
			
		||||
  "notes": []
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										34
									
								
								frontend/public/json/karakeep.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								frontend/public/json/karakeep.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "karakeep",
 | 
			
		||||
  "slug": "karakeep",
 | 
			
		||||
  "categories": [
 | 
			
		||||
    12
 | 
			
		||||
  ],
 | 
			
		||||
  "date_created": "2025-04-07",
 | 
			
		||||
  "type": "ct",
 | 
			
		||||
  "updateable": true,
 | 
			
		||||
  "privileged": false,
 | 
			
		||||
  "interface_port": 3000,
 | 
			
		||||
  "documentation": "https://docs.karakeep.app/",
 | 
			
		||||
  "website": "https://karakeep.app/",
 | 
			
		||||
  "logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/karakeep.svg",
 | 
			
		||||
  "description": "karakeep (formerly: hoarder) is an AI-powered bookmarking tool that helps you save and organize your digital content. It automatically tags your links, notes, and images, making them easy to find later. With features like auto-fetching, lists, and full-text search, karakeep is the perfect tool for anyone who wants to keep track of their digital life.",
 | 
			
		||||
  "install_methods": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "default",
 | 
			
		||||
      "script": "ct/karakeep.sh",
 | 
			
		||||
      "resources": {
 | 
			
		||||
        "cpu": 2,
 | 
			
		||||
        "ram": 4096,
 | 
			
		||||
        "hdd": 10,
 | 
			
		||||
        "os": "debian",
 | 
			
		||||
        "version": "12"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "default_credentials": {
 | 
			
		||||
    "username": null,
 | 
			
		||||
    "password": null
 | 
			
		||||
  },
 | 
			
		||||
  "notes": []
 | 
			
		||||
}
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
  "name": "NextPVR",
 | 
			
		||||
  "slug": "nextpvr",
 | 
			
		||||
  "categories": [
 | 
			
		||||
        15
 | 
			
		||||
        13
 | 
			
		||||
  ],
 | 
			
		||||
  "date_created": "2024-11-20",
 | 
			
		||||
  "type": "ct",
 | 
			
		||||
 
 | 
			
		||||
@@ -1,49 +1,174 @@
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
    "name": "karakeep-app/karakeep",
 | 
			
		||||
    "version": "ios/v1.6.9-1",
 | 
			
		||||
    "date": "2025-04-06T10:51:57Z"
 | 
			
		||||
    "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": "semaphoreui/semaphore",
 | 
			
		||||
    "version": "v2.13.10",
 | 
			
		||||
    "date": "2025-04-07T11:05:41Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "fhem/fhem-mirror",
 | 
			
		||||
    "version": "6.2",
 | 
			
		||||
    "date": "2025-04-07T10:34:55Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "syncthing/syncthing",
 | 
			
		||||
    "version": "v1.29.4",
 | 
			
		||||
    "date": "2025-04-01T08:45:07Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "fallenbagel/jellyseerr",
 | 
			
		||||
    "version": "preview-back-to-axios",
 | 
			
		||||
    "date": "2025-04-06T10:39:06Z"
 | 
			
		||||
    "date": "2025-04-07T09:23:08Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zwave-js/zwave-js-ui",
 | 
			
		||||
    "version": "v10.1.5",
 | 
			
		||||
    "date": "2025-04-07T09:19:35Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Checkmk/checkmk",
 | 
			
		||||
    "version": "v2.4.0b4-rc1",
 | 
			
		||||
    "date": "2025-04-07T09:13:56Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "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": "StarFleetCPTN/GoMFT",
 | 
			
		||||
    "version": "v0.2.5",
 | 
			
		||||
    "date": "2025-04-07T07:43:29Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "nzbgetcom/nzbget",
 | 
			
		||||
    "version": "v24.8",
 | 
			
		||||
    "date": "2025-03-18T07:33:51Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "mattermost/mattermost",
 | 
			
		||||
    "version": "server/public/v0.1.11",
 | 
			
		||||
    "date": "2025-03-28T14:04:31Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "morpheus65535/bazarr",
 | 
			
		||||
    "version": "v1.5.1",
 | 
			
		||||
    "date": "2025-01-01T16:15:52Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Jackett/Jackett",
 | 
			
		||||
    "version": "v0.22.1740",
 | 
			
		||||
    "date": "2025-04-07T05:56:22Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "prometheus/prometheus",
 | 
			
		||||
    "version": "v0.303.0-rc.1",
 | 
			
		||||
    "date": "2025-04-07T04:39:38Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "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",
 | 
			
		||||
    "date": "2025-04-06T19:22:59Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "pelican-dev/wings",
 | 
			
		||||
    "version": "v1.0.0-beta11",
 | 
			
		||||
    "date": "2025-04-06T18:52:35Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "stonith404/pingvin-share",
 | 
			
		||||
    "version": "v1.11.1",
 | 
			
		||||
    "date": "2025-04-06T18:39:42Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "wavelog/wavelog",
 | 
			
		||||
    "version": "2.0.3",
 | 
			
		||||
    "date": "2025-04-06T17:35:41Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "TandoorRecipes/recipes",
 | 
			
		||||
    "version": "1.5.34",
 | 
			
		||||
    "date": "2025-03-27T16:17:38Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "runtipi/runtipi",
 | 
			
		||||
    "version": "v3.10.0",
 | 
			
		||||
    "date": "2025-03-15T14:38:16Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "stackblitz-labs/bolt.diy",
 | 
			
		||||
    "version": "v0.0.7-hf1",
 | 
			
		||||
    "date": "2025-03-10T20:49:39Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "msgbyte/tianji",
 | 
			
		||||
    "version": "v1.19.7",
 | 
			
		||||
    "date": "2025-04-06T14:22:44Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Prowlarr/Prowlarr",
 | 
			
		||||
    "version": "v1.32.2.4987",
 | 
			
		||||
    "date": "2025-03-16T09:41:37Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "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": "fhem/fhem-mirror",
 | 
			
		||||
    "version": "6.2",
 | 
			
		||||
    "date": "2025-04-06T10:31:42Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "kimai/kimai",
 | 
			
		||||
    "version": "2.32.0",
 | 
			
		||||
    "date": "2025-04-06T09:43:51Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "semaphoreui/semaphore",
 | 
			
		||||
    "version": "v2.13.8-beta2",
 | 
			
		||||
    "date": "2025-04-06T06:36:42Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Jackett/Jackett",
 | 
			
		||||
    "version": "v0.22.1733",
 | 
			
		||||
    "date": "2025-04-06T06:00:36Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "inventree/InvenTree",
 | 
			
		||||
    "version": "0.17.10",
 | 
			
		||||
    "date": "2025-04-06T05:31:49Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "firefly-iii/firefly-iii",
 | 
			
		||||
    "version": "v6.2.10",
 | 
			
		||||
    "date": "2025-03-22T13:02:26Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "ollama/ollama",
 | 
			
		||||
    "version": "v0.6.5-rc0",
 | 
			
		||||
@@ -69,21 +194,11 @@
 | 
			
		||||
    "version": "v1.0.2",
 | 
			
		||||
    "date": "2025-04-05T17:40:25Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "open-webui/open-webui",
 | 
			
		||||
    "version": "v0.6.1",
 | 
			
		||||
    "date": "2025-04-05T17:15:47Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "keycloak/keycloak",
 | 
			
		||||
    "version": "26.1.4",
 | 
			
		||||
    "date": "2025-03-13T15:41:42Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "stonith404/pingvin-share",
 | 
			
		||||
    "version": "v1.11.0",
 | 
			
		||||
    "date": "2025-04-05T14:56:47Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "bastienwirtz/homer",
 | 
			
		||||
    "version": "v25.04.1",
 | 
			
		||||
@@ -134,31 +249,16 @@
 | 
			
		||||
    "version": "5.7.0",
 | 
			
		||||
    "date": "2025-04-04T18:10:16Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "syncthing/syncthing",
 | 
			
		||||
    "version": "v1.29.4",
 | 
			
		||||
    "date": "2025-04-01T08:45:07Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "icereed/paperless-gpt",
 | 
			
		||||
    "version": "v0.14.4",
 | 
			
		||||
    "date": "2025-04-04T14:18:53Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "nzbgetcom/nzbget",
 | 
			
		||||
    "version": "v24.8",
 | 
			
		||||
    "date": "2025-03-18T07:33:51Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "apache/tomcat",
 | 
			
		||||
    "version": "9.0.104",
 | 
			
		||||
    "date": "2025-04-04T12:58:11Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Dolibarr/dolibarr",
 | 
			
		||||
    "version": "21.0.1",
 | 
			
		||||
    "date": "2025-04-04T12:56:35Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "sabnzbd/sabnzbd",
 | 
			
		||||
    "version": "4.5.0",
 | 
			
		||||
@@ -169,11 +269,6 @@
 | 
			
		||||
    "version": "0.49.12",
 | 
			
		||||
    "date": "2025-04-04T07:31:08Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "morpheus65535/bazarr",
 | 
			
		||||
    "version": "v1.5.1",
 | 
			
		||||
    "date": "2025-01-01T16:15:52Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "wazuh/wazuh",
 | 
			
		||||
    "version": "coverity-w14-4.12.0",
 | 
			
		||||
@@ -189,21 +284,11 @@
 | 
			
		||||
    "version": "1.10.3",
 | 
			
		||||
    "date": "2024-11-05T09:20:50Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Graylog2/graylog2-server",
 | 
			
		||||
    "version": "6.0.14",
 | 
			
		||||
    "date": "2025-04-03T07:52:24Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "jupyter/notebook",
 | 
			
		||||
    "version": "@jupyter-notebook/ui-components@7.4.0-rc.0",
 | 
			
		||||
    "date": "2025-04-03T06:49:38Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "mattermost/mattermost",
 | 
			
		||||
    "version": "server/public/v0.1.11",
 | 
			
		||||
    "date": "2025-03-28T14:04:31Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "rabbitmq/rabbitmq-server",
 | 
			
		||||
    "version": "v4.0.8",
 | 
			
		||||
@@ -214,11 +299,6 @@
 | 
			
		||||
    "version": "v5.35.1",
 | 
			
		||||
    "date": "2025-04-02T21:49:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "redis/redis",
 | 
			
		||||
    "version": "8.0-rc1-int2",
 | 
			
		||||
    "date": "2025-04-02T19:05:08Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zitadel/zitadel",
 | 
			
		||||
    "version": "v2.63.9",
 | 
			
		||||
@@ -239,26 +319,11 @@
 | 
			
		||||
    "version": "jenkins-2.503",
 | 
			
		||||
    "date": "2025-04-02T15:12:13Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Checkmk/checkmk",
 | 
			
		||||
    "version": "v2.4.0b3",
 | 
			
		||||
    "date": "2025-04-02T14:39:56Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "hargata/lubelog",
 | 
			
		||||
    "version": "v1.4.6",
 | 
			
		||||
    "date": "2025-04-02T14:07:12Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zwave-js/zwave-js-ui",
 | 
			
		||||
    "version": "v10.1.4",
 | 
			
		||||
    "date": "2025-04-02T09:38:52Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "runtipi/runtipi",
 | 
			
		||||
    "version": "v3.10.0",
 | 
			
		||||
    "date": "2025-03-15T14:38:16Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "immich-app/immich",
 | 
			
		||||
    "version": "v1.131.3",
 | 
			
		||||
@@ -269,11 +334,6 @@
 | 
			
		||||
    "version": "v2.31.0",
 | 
			
		||||
    "date": "2025-04-01T18:12:45Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "msgbyte/tianji",
 | 
			
		||||
    "version": "v1.19.6",
 | 
			
		||||
    "date": "2025-04-01T17:26:31Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "influxdata/influxdb",
 | 
			
		||||
    "version": "v3.0.0-0.beta.3",
 | 
			
		||||
@@ -284,11 +344,6 @@
 | 
			
		||||
    "version": "v1.127.1",
 | 
			
		||||
    "date": "2025-03-26T21:44:28Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Luligu/matterbridge",
 | 
			
		||||
    "version": "2.2.6",
 | 
			
		||||
    "date": "2025-04-01T14:01:36Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "theonedev/onedev",
 | 
			
		||||
    "version": "v11.8.6",
 | 
			
		||||
@@ -349,11 +404,6 @@
 | 
			
		||||
    "version": "4.8.11.0",
 | 
			
		||||
    "date": "2025-03-10T06:39:11Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "StarFleetCPTN/GoMFT",
 | 
			
		||||
    "version": "v0.2.4",
 | 
			
		||||
    "date": "2025-03-30T19:46:08Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "louislam/dockge",
 | 
			
		||||
    "version": "1.5.0",
 | 
			
		||||
@@ -379,11 +429,6 @@
 | 
			
		||||
    "version": "v0.26.6",
 | 
			
		||||
    "date": "2025-03-30T08:02:19Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Prowlarr/Prowlarr",
 | 
			
		||||
    "version": "v1.32.2.4987",
 | 
			
		||||
    "date": "2025-03-16T09:41:37Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Readarr/Readarr",
 | 
			
		||||
    "version": "v2.0.0.4645",
 | 
			
		||||
@@ -394,11 +439,6 @@
 | 
			
		||||
    "version": "v2.10.3.4602",
 | 
			
		||||
    "date": "2025-03-23T11:00:37Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Radarr/Radarr",
 | 
			
		||||
    "version": "v5.21.1.9799",
 | 
			
		||||
    "date": "2025-03-24T15:52:12Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "aceberg/WatchYourLAN",
 | 
			
		||||
    "version": "2.1.2-alpine",
 | 
			
		||||
@@ -499,21 +539,11 @@
 | 
			
		||||
    "version": "2025.2",
 | 
			
		||||
    "date": "2025-03-27T19:21:13Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "TandoorRecipes/recipes",
 | 
			
		||||
    "version": "1.5.34",
 | 
			
		||||
    "date": "2025-03-27T16:17:38Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "tailscale/tailscale",
 | 
			
		||||
    "version": "v1.82.0",
 | 
			
		||||
    "date": "2025-03-27T13:08:18Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zabbix/zabbix",
 | 
			
		||||
    "version": "7.2.5",
 | 
			
		||||
    "date": "2025-03-27T11:06:48Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "evcc-io/evcc",
 | 
			
		||||
    "version": "0.202.1",
 | 
			
		||||
@@ -529,11 +559,6 @@
 | 
			
		||||
    "version": "v2.1.0.112-2.1.0.112_canary_2025-03-26",
 | 
			
		||||
    "date": "2025-03-26T21:04:38Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "prometheus/prometheus",
 | 
			
		||||
    "version": "v0.303.0-rc.0",
 | 
			
		||||
    "date": "2025-03-26T12:48:46Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "forgejo/forgejo",
 | 
			
		||||
    "version": "v12.0.0-dev",
 | 
			
		||||
@@ -574,11 +599,6 @@
 | 
			
		||||
    "version": "v1.6.8",
 | 
			
		||||
    "date": "2025-03-25T13:33:10Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "VictoriaMetrics/VictoriaMetrics",
 | 
			
		||||
    "version": "pmm-6401-v1.114.0",
 | 
			
		||||
    "date": "2025-03-25T07:58:34Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "caddyserver/caddy",
 | 
			
		||||
    "version": "v2.9.1",
 | 
			
		||||
@@ -599,11 +619,6 @@
 | 
			
		||||
    "version": "v0.9.0",
 | 
			
		||||
    "date": "2025-03-24T18:25:37Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "wavelog/wavelog",
 | 
			
		||||
    "version": "2.0.2",
 | 
			
		||||
    "date": "2025-03-24T12:02:08Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "requarks/wiki",
 | 
			
		||||
    "version": "v2.5.307",
 | 
			
		||||
@@ -699,11 +714,6 @@
 | 
			
		||||
    "version": "v1.60.0",
 | 
			
		||||
    "date": "2025-03-16T18:39:49Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "pelican-dev/wings",
 | 
			
		||||
    "version": "v1.0.0-beta10",
 | 
			
		||||
    "date": "2025-03-15T20:24:34Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "pelican-dev/panel",
 | 
			
		||||
    "version": "v1.0.0-beta18",
 | 
			
		||||
@@ -769,11 +779,6 @@
 | 
			
		||||
    "version": "v0.8.2",
 | 
			
		||||
    "date": "2025-03-11T05:20:22Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "stackblitz-labs/bolt.diy",
 | 
			
		||||
    "version": "v0.0.7-hf1",
 | 
			
		||||
    "date": "2025-03-10T20:49:39Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "AlexxIT/go2rtc",
 | 
			
		||||
    "version": "v1.9.9",
 | 
			
		||||
@@ -879,11 +884,6 @@
 | 
			
		||||
    "version": "v1.1.05",
 | 
			
		||||
    "date": "2025-02-24T11:53:12Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "TechnitiumSoftware/DnsServer",
 | 
			
		||||
    "version": "v13.4.3",
 | 
			
		||||
    "date": "2025-02-23T11:08:26Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "prometheus-pve/prometheus-pve-exporter",
 | 
			
		||||
    "version": "v3.5.2",
 | 
			
		||||
 
 | 
			
		||||
@@ -55,6 +55,7 @@ ACTUAL_HTTPS_KEY=/opt/actualbudget/selfhost.key
 | 
			
		||||
ACTUAL_HTTPS_CERT=/opt/actualbudget/selfhost.crt
 | 
			
		||||
EOF
 | 
			
		||||
cd /opt/actualbudget || exit
 | 
			
		||||
export NODE_OPTIONS="--max_old_space_size=4096"
 | 
			
		||||
$STD yarn install
 | 
			
		||||
$STD yarn run build:server
 | 
			
		||||
$STD openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout selfhost.key -out selfhost.crt <<EOF
 | 
			
		||||
 
 | 
			
		||||
@@ -15,41 +15,40 @@ update_os
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Dependencies"
 | 
			
		||||
$STD apk add \
 | 
			
		||||
    gpg \
 | 
			
		||||
    sudo
 | 
			
		||||
  gpg \
 | 
			
		||||
  sudo
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing MariaDB"
 | 
			
		||||
$STD apk add --no-cache mariadb mariadb-client
 | 
			
		||||
$STD rc-update add mariadb default
 | 
			
		||||
$STD rc-service mariadb start
 | 
			
		||||
msg_ok "Installed MariaDB"
 | 
			
		||||
 | 
			
		||||
msg_info "Configuring MariaDB"
 | 
			
		||||
mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql >/dev/null 2>&1
 | 
			
		||||
$STD rc-service mariadb restart
 | 
			
		||||
$STD rc-service mariadb start
 | 
			
		||||
msg_ok "MariaDB Configured"
 | 
			
		||||
 | 
			
		||||
read -r -p "Would you like to install Adminer with lighthttpd? <y/N>: " prompt
 | 
			
		||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
 | 
			
		||||
    msg_info "Installing Adminer"
 | 
			
		||||
    $STD apk add --no-cache lighttpd php php-cgi php-mysqli php-mbstring php-zip php-gd php-json php-curl jq
 | 
			
		||||
    sed -i 's|server.modules += ( "mod_cgi" )|server.modules += ( "mod_cgi", "mod_fastcgi" )|' /etc/lighttpd/lighttpd.conf
 | 
			
		||||
    echo 'fastcgi.server += ( ".php" => (( "bin-path" => "/usr/bin/php-cgi", "socket" => "/var/run/php-cgi.sock" )))' >>/etc/lighttpd/lighttpd.conf
 | 
			
		||||
    ADMINER_VERSION=$(curl -s https://api.github.com/repos/vrana/adminer/releases/latest | jq -r '.tag_name' | sed 's/v//')
 | 
			
		||||
    wget -q -O /var/www/adminer.php "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php"
 | 
			
		||||
    chown lighttpd:lighttpd /var/www/adminer.php
 | 
			
		||||
    chmod 755 /var/www/adminer.php
 | 
			
		||||
    msg_ok "Adminer Installed"
 | 
			
		||||
  msg_info "Installing Adminer"
 | 
			
		||||
  $STD apk add --no-cache lighttpd php php-cgi php-mysqli php-mbstring php-zip php-gd php-json php-curl jq
 | 
			
		||||
  sed -i 's|server.modules += ( "mod_cgi" )|server.modules += ( "mod_cgi", "mod_fastcgi" )|' /etc/lighttpd/lighttpd.conf
 | 
			
		||||
  echo 'fastcgi.server += ( ".php" => (( "bin-path" => "/usr/bin/php-cgi", "socket" => "/var/run/php-cgi.sock" )))' >>/etc/lighttpd/lighttpd.conf
 | 
			
		||||
  ADMINER_VERSION=$(curl -fsSL https://api.github.com/repos/vrana/adminer/releases/latest | jq -r '.tag_name' | sed 's/v//')
 | 
			
		||||
  curl -fsSL "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php" -o /var/www/adminer.php
 | 
			
		||||
  chown lighttpd:lighttpd /var/www/adminer.php
 | 
			
		||||
  chmod 755 /var/www/adminer.php
 | 
			
		||||
  msg_ok "Adminer Installed"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Lighttpd"
 | 
			
		||||
    $STD rc-update add lighttpd default
 | 
			
		||||
    $STD rc-service lighttpd restart
 | 
			
		||||
    msg_ok "Lighttpd Started"
 | 
			
		||||
  msg_info "Starting Lighttpd"
 | 
			
		||||
  $STD rc-update add lighttpd default
 | 
			
		||||
  $STD rc-service lighttpd restart
 | 
			
		||||
  msg_ok "Lighttpd Started"
 | 
			
		||||
 | 
			
		||||
    echo -e "Adminer is available at: ${BL}http://$(hostname -I | awk '{print $1}')/adminer${CL}"
 | 
			
		||||
  echo -e "Adminer is available at: ${BL}http://$(hostname -I | awk '{print $1}')/adminer${CL}"
 | 
			
		||||
else
 | 
			
		||||
    echo -e "Skipped Adminer Installation..."
 | 
			
		||||
  echo -e "Skipped Adminer Installation..."
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
motd_ssh
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
# Copyright (c) 2021-2025 tteck
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: MickLesk (Canbiz) & vhsdream
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://hoarder.app/
 | 
			
		||||
# Source: https://karakeep.app/
 | 
			
		||||
 | 
			
		||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
 | 
			
		||||
color
 | 
			
		||||
@@ -34,8 +34,8 @@ chmod +x /usr/bin/yt-dlp
 | 
			
		||||
msg_ok "Installed Additional Tools"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Meilisearch"
 | 
			
		||||
cd /tmp
 | 
			
		||||
curl -fsSL "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb" -o $(basename "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb")
 | 
			
		||||
cd /tmp || exit
 | 
			
		||||
curl -fsSL "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb" -o "meilisearch.deb"
 | 
			
		||||
$STD dpkg -i meilisearch.deb
 | 
			
		||||
curl -fsSL "https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml" -o "/etc/meilisearch.toml"
 | 
			
		||||
MASTER_KEY=$(openssl rand -base64 12)
 | 
			
		||||
@@ -58,30 +58,30 @@ $STD apt-get install -y nodejs
 | 
			
		||||
$STD npm install -g corepack@0.31.0
 | 
			
		||||
msg_ok "Installed Node.js"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Hoarder"
 | 
			
		||||
cd /opt
 | 
			
		||||
RELEASE=$(curl -fsSL https://api.github.com/repos/hoarder-app/hoarder/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
curl -fsSL "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip")
 | 
			
		||||
unzip -q v${RELEASE}.zip
 | 
			
		||||
mv hoarder-${RELEASE} /opt/hoarder
 | 
			
		||||
cd /opt/hoarder
 | 
			
		||||
msg_info "Installing karakeep"
 | 
			
		||||
cd /opt || exit
 | 
			
		||||
RELEASE=$(curl -fsSL https://api.github.com/repos/karakeep-app/karakeep/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
curl -fsSL "https://github.com/karakeep-app/karakeep/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
 | 
			
		||||
unzip -q "v${RELEASE}.zip"
 | 
			
		||||
mv karakeep-"${RELEASE}" /opt/karakeep
 | 
			
		||||
cd /opt/karakeep || exit
 | 
			
		||||
corepack enable
 | 
			
		||||
export PUPPETEER_SKIP_DOWNLOAD="true"
 | 
			
		||||
export NEXT_TELEMETRY_DISABLED=1
 | 
			
		||||
export CI="true"
 | 
			
		||||
cd /opt/hoarder/apps/web
 | 
			
		||||
cd /opt/karakeep/apps/web || exit
 | 
			
		||||
$STD pnpm install --frozen-lockfile
 | 
			
		||||
$STD pnpm exec next build --experimental-build-mode compile
 | 
			
		||||
cp -r /opt/hoarder/apps/web/.next/standalone/apps/web/server.js /opt/hoarder/apps/web
 | 
			
		||||
cd /opt/hoarder/apps/workers
 | 
			
		||||
cp -r /opt/karakeep/apps/web/.next/standalone/apps/web/server.js /opt/karakeep/apps/web
 | 
			
		||||
cd /opt/karakeep/apps/workers || exit
 | 
			
		||||
$STD pnpm install --frozen-lockfile
 | 
			
		||||
 | 
			
		||||
export DATA_DIR=/opt/hoarder_data
 | 
			
		||||
HOARDER_SECRET=$(openssl rand -base64 36 | cut -c1-24)
 | 
			
		||||
mkdir -p /etc/hoarder
 | 
			
		||||
cat <<EOF >/etc/hoarder/hoarder.env
 | 
			
		||||
export DATA_DIR=/opt/karakeep_data
 | 
			
		||||
karakeep_SECRET=$(openssl rand -base64 36 | cut -c1-24)
 | 
			
		||||
mkdir -p /etc/karakeep
 | 
			
		||||
cat <<EOF >/etc/karakeep/karakeep.env
 | 
			
		||||
SERVER_VERSION=$RELEASE
 | 
			
		||||
NEXTAUTH_SECRET="$HOARDER_SECRET"
 | 
			
		||||
NEXTAUTH_SECRET="$karakeep_SECRET"
 | 
			
		||||
NEXTAUTH_URL="http://localhost:3000"
 | 
			
		||||
DATA_DIR="$DATA_DIR"
 | 
			
		||||
MEILI_ADDR="http://127.0.0.1:7700"
 | 
			
		||||
@@ -99,11 +99,11 @@ BROWSER_WEB_URL="http://127.0.0.1:9222"
 | 
			
		||||
# INFERENCE_IMAGE_MODEL="gpt-4o-mini" 
 | 
			
		||||
EOF
 | 
			
		||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
 | 
			
		||||
msg_ok "Installed Hoarder"
 | 
			
		||||
msg_ok "Installed karakeep"
 | 
			
		||||
 | 
			
		||||
msg_info "Running Database Migration"
 | 
			
		||||
mkdir -p ${DATA_DIR}
 | 
			
		||||
cd /opt/hoarder/packages/db
 | 
			
		||||
cd /opt/karakeep/packages/db || exit
 | 
			
		||||
$STD pnpm migrate
 | 
			
		||||
msg_ok "Database Migration Completed"
 | 
			
		||||
 | 
			
		||||
@@ -121,25 +121,25 @@ Restart=always
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
cat <<EOF >/etc/systemd/system/hoarder-web.service
 | 
			
		||||
cat <<EOF >/etc/systemd/system/karakeep-web.service
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Hoarder Web
 | 
			
		||||
Wants=network.target hoarder-workers.service
 | 
			
		||||
After=network.target hoarder-workers.service
 | 
			
		||||
Description=karakeep Web
 | 
			
		||||
Wants=network.target karakeep-workers.service
 | 
			
		||||
After=network.target karakeep-workers.service
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
ExecStart=pnpm start
 | 
			
		||||
WorkingDirectory=/opt/hoarder/apps/web
 | 
			
		||||
EnvironmentFile=/etc/hoarder/hoarder.env
 | 
			
		||||
WorkingDirectory=/opt/karakeep/apps/web
 | 
			
		||||
EnvironmentFile=/etc/karakeep/karakeep.env
 | 
			
		||||
Restart=always
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
cat <<EOF >/etc/systemd/system/hoarder-browser.service
 | 
			
		||||
cat <<EOF >/etc/systemd/system/karakeep-browser.service
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Hoarder Headless Browser
 | 
			
		||||
Description=karakeep Headless Browser
 | 
			
		||||
After=network.target
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
@@ -151,16 +151,16 @@ Restart=always
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
cat <<EOF >/etc/systemd/system/hoarder-workers.service
 | 
			
		||||
cat <<EOF >/etc/systemd/system/karakeep-workers.service
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Hoarder Workers
 | 
			
		||||
Wants=network.target hoarder-browser.service meilisearch.service
 | 
			
		||||
After=network.target hoarder-browser.service meilisearch.service
 | 
			
		||||
Description=karakeep Workers
 | 
			
		||||
Wants=network.target karakeep-browser.service meilisearch.service
 | 
			
		||||
After=network.target karakeep-browser.service meilisearch.service
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
ExecStart=pnpm start:prod
 | 
			
		||||
WorkingDirectory=/opt/hoarder/apps/workers
 | 
			
		||||
EnvironmentFile=/etc/hoarder/hoarder.env
 | 
			
		||||
WorkingDirectory=/opt/karakeep/apps/workers
 | 
			
		||||
EnvironmentFile=/etc/karakeep/karakeep.env
 | 
			
		||||
Restart=always
 | 
			
		||||
TimeoutStopSec=5
 | 
			
		||||
 | 
			
		||||
@@ -168,7 +168,7 @@ TimeoutStopSec=5
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
systemctl enable -q --now meilisearch hoarder-browser hoarder-workers hoarder-web
 | 
			
		||||
systemctl enable -q --now meilisearch karakeep-browser karakeep-workers karakeep-web
 | 
			
		||||
msg_ok "Created Services"
 | 
			
		||||
 | 
			
		||||
motd_ssh
 | 
			
		||||
@@ -176,7 +176,7 @@ customize
 | 
			
		||||
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
rm -rf /tmp/meilisearch.deb
 | 
			
		||||
rm -f /opt/v${RELEASE}.zip
 | 
			
		||||
rm -f /opt/v"${RELEASE}".zip
 | 
			
		||||
$STD apt-get autoremove -y
 | 
			
		||||
$STD apt-get autoclean -y
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
@@ -24,21 +24,20 @@ $STD apt-get install -y \
 | 
			
		||||
  lsb-release
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
msg_info "Setup PHP8.4 Repository"
 | 
			
		||||
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
 | 
			
		||||
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 "Setup PHP8.4 Repository"
 | 
			
		||||
msg_ok "Added PHP8.4 Repository"
 | 
			
		||||
 | 
			
		||||
msg_info "Setup PHP"
 | 
			
		||||
msg_info "Installing PHP"
 | 
			
		||||
$STD apt-get remove -y php8.2*
 | 
			
		||||
#$STD apt-get remove -y php8.3*
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
  php8.3 \
 | 
			
		||||
  php8.3-{mbstring,gd,intl,common,mysql,zip,xml} \
 | 
			
		||||
  libapache2-mod-php8.3
 | 
			
		||||
msg_info "Setup PHP"
 | 
			
		||||
  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
 | 
			
		||||
@@ -59,9 +58,9 @@ msg_ok "Set up database"
 | 
			
		||||
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 $(basename "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip")
 | 
			
		||||
unzip -q ${RELEASE}.zip
 | 
			
		||||
mv kimai-${RELEASE} /opt/kimai
 | 
			
		||||
cd /opt/kimai
 | 
			
		||||
unzip -q "${RELEASE}".zip
 | 
			
		||||
mv kimai-"${RELEASE}" /opt/kimai
 | 
			
		||||
cd /opt/kimai || exit
 | 
			
		||||
echo "export COMPOSER_ALLOW_SUPERUSER=1" >>~/.bashrc
 | 
			
		||||
source ~/.bashrc
 | 
			
		||||
$STD composer install --no-dev --optimize-autoloader --no-interaction
 | 
			
		||||
@@ -130,7 +129,7 @@ motd_ssh
 | 
			
		||||
customize
 | 
			
		||||
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
rm -rf ${RELEASE}.zip
 | 
			
		||||
rm -rf "${RELEASE}".zip
 | 
			
		||||
$STD apt-get -y autoremove
 | 
			
		||||
$STD apt-get -y autoclean
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
# Copyright (c) 2021-2025 tteck
 | 
			
		||||
# Author: tteck (tteckster)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: MickLesk (CanbiZ)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://www.zabbix.com/
 | 
			
		||||
 | 
			
		||||
@@ -14,8 +14,11 @@ network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Zabbix"
 | 
			
		||||
cd /tmp
 | 
			
		||||
curl -fsSL "https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb" -o $(basename "https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb")
 | 
			
		||||
cd /tmp || exit
 | 
			
		||||
curl -fsSL "$(curl -fsSL https://repo.zabbix.com/zabbix/ |
 | 
			
		||||
  grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1 |
 | 
			
		||||
  xargs -I{} echo "https://repo.zabbix.com/zabbix/{}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb")" \
 | 
			
		||||
  -o /tmp/zabbix-release_latest+debian12_all.deb
 | 
			
		||||
$STD dpkg -i /tmp/zabbix-release_latest+debian12_all.deb
 | 
			
		||||
$STD apt-get update
 | 
			
		||||
$STD apt-get install -y zabbix-server-pgsql zabbix-frontend-php php8.2-pgsql zabbix-apache-conf zabbix-sql-scripts
 | 
			
		||||
 
 | 
			
		||||
@@ -39,8 +39,8 @@ $STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME OWNER $DB_ADMIN_USER;"
 | 
			
		||||
msg_ok "Installed PostgreSQL"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Zitadel"
 | 
			
		||||
RELEASE=$(curl -fsSL https://github.com/zitadel/zitadel/releases/latest | grep location: | cut -d '/' -f 8 | tr -d '\r')
 | 
			
		||||
curl -fsSL https://github.com/zitadel/zitadel/releases/download/$RELEASE/zitadel-linux-amd64.tar.gz | tar -xz
 | 
			
		||||
RELEASE=$(curl -fsSL https://api.github.com/repos/zitadel/zitadel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
curl -fsSL "https://github.com/zitadel/zitadel/releases/download/v$RELEASE/zitadel-linux-amd64.tar.gz" | tar -xz
 | 
			
		||||
mv zitadel-linux-amd64/zitadel /usr/local/bin
 | 
			
		||||
msg_ok "Installed Zitadel"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user