mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 10:22:50 +00:00 
			
		
		
		
	Compare commits
	
		
			50 Commits
		
	
	
		
			2025-10-09
			...
			2025-10-12
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					9ba1e00de6 | ||
| 
						 | 
					fd32db9157 | ||
| 
						 | 
					bd7aef10cc | ||
| 
						 | 
					21bb9c618b | ||
| 
						 | 
					68924a2fc2 | ||
| 
						 | 
					fce7c8a100 | ||
| 
						 | 
					e0ffcb4160 | ||
| 
						 | 
					f0fa24e1a5 | ||
| 
						 | 
					a015537d0b | ||
| 
						 | 
					2244676cee | ||
| 
						 | 
					b4f0fcb3d3 | ||
| 
						 | 
					b39672f92e | ||
| 
						 | 
					45e1e490aa | ||
| 
						 | 
					bda3f22016 | ||
| 
						 | 
					03af580449 | ||
| 
						 | 
					a43f97df92 | ||
| 
						 | 
					d53a249bbf | ||
| 
						 | 
					1bdd93a137 | ||
| 
						 | 
					e2e63cf319 | ||
| 
						 | 
					4a7648da94 | ||
| 
						 | 
					86a1aadfda | ||
| 
						 | 
					2fefd45b2f | ||
| 
						 | 
					220196309b | ||
| 
						 | 
					984d722563 | ||
| 
						 | 
					f81e50c430 | ||
| 
						 | 
					9b4812df33 | ||
| 
						 | 
					0ba2abc53d | ||
| 
						 | 
					a733c85293 | ||
| 
						 | 
					8199c77708 | ||
| 
						 | 
					58f56851f2 | ||
| 
						 | 
					ab6974186c | ||
| 
						 | 
					578b9fc7de | ||
| 
						 | 
					67c7c32b7b | ||
| 
						 | 
					ca6bcfc087 | ||
| 
						 | 
					fc644d8434 | ||
| 
						 | 
					3e0ffc193b | ||
| 
						 | 
					21513cffbc | ||
| 
						 | 
					2d838629eb | ||
| 
						 | 
					a672b22650 | ||
| 
						 | 
					3f02934bf5 | ||
| 
						 | 
					162ac5b066 | ||
| 
						 | 
					f58b58806b | ||
| 
						 | 
					e12b9383a9 | ||
| 
						 | 
					62feaf76f4 | ||
| 
						 | 
					5aeb235768 | ||
| 
						 | 
					1ae9543eec | ||
| 
						 | 
					efecfdfb2d | ||
| 
						 | 
					4b5fc75ee1 | ||
| 
						 | 
					f39b17ad7a | ||
| 
						 | 
					1f5a83732e | 
							
								
								
									
										59
									
								
								.github/workflows/close_template_issue.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								.github/workflows/close_template_issue.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
name: Auto-Close Wrong Template Issues
 | 
			
		||||
on:
 | 
			
		||||
  issues:
 | 
			
		||||
    types: [opened]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  close_tteck_issues:
 | 
			
		||||
    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Auto-close if wrong Template issue detected
 | 
			
		||||
        uses: actions/github-script@v7
 | 
			
		||||
        with:
 | 
			
		||||
          script: |
 | 
			
		||||
            const issue = context.payload.issue;
 | 
			
		||||
            const content = `${issue.title}\n${issue.body}`;
 | 
			
		||||
            const issueNumber = issue.number;
 | 
			
		||||
 | 
			
		||||
            // Regex patterns (case-insensitive, flexible versioning)
 | 
			
		||||
            const patterns = [
 | 
			
		||||
              /Template\s+debian-13-standard_[\d.]+-[\d]+_amd64\.tar\.zst\s*\[(online|local)\]/i,
 | 
			
		||||
              /Template\s+debian-13-standard_[\d.]+-[\d]+_amd64\.tar\.zst\s+is\s+missing\s+or\s+corrupted/i,
 | 
			
		||||
              /Container\s+creation\s+failed\.?\s+Checking\s+if\s+template\s+is\s+corrupted\s+or\s+incomplete/i,
 | 
			
		||||
              /Template\s+is\s+valid,\s+but\s+container\s+creation\s+still\s+failed/i,
 | 
			
		||||
              /exit\s+code\s+0:\s+while\s+executing\s+command\s+bash\s+-c\s+"\$?\(curl\s+-fsSL\s+https:\/\/raw\.githubusercontent\.com\/[\w/-]+\/create_lxc\.sh\)"/i
 | 
			
		||||
            ];
 | 
			
		||||
 | 
			
		||||
            const matched = patterns.some((regex) => regex.test(content));
 | 
			
		||||
 | 
			
		||||
            if (matched) {
 | 
			
		||||
              const message = `👋 Hello!
 | 
			
		||||
 | 
			
		||||
It looks like you are referencing a **container creation issue with a Debian 13 template** (e.g. \`debian-13-standard_13.x-x_amd64.tar.zst\`).
 | 
			
		||||
 | 
			
		||||
We receive many similar reports about this, and it’s not related to the scripts themselves but to **a Proxmox base template bug**.
 | 
			
		||||
 | 
			
		||||
Please refer to [discussion #8126](https://github.com/community-scripts/ProxmoxVE/discussions/8126) for details.  
 | 
			
		||||
If your issue persists after following the guidance there, feel free to reopen this issue.
 | 
			
		||||
 | 
			
		||||
_This issue was automatically closed by a bot._`;
 | 
			
		||||
 | 
			
		||||
              await github.rest.issues.createComment({
 | 
			
		||||
                ...context.repo,
 | 
			
		||||
                issue_number: issueNumber,
 | 
			
		||||
                body: message
 | 
			
		||||
              });
 | 
			
		||||
 | 
			
		||||
              await github.rest.issues.addLabels({
 | 
			
		||||
                ...context.repo,
 | 
			
		||||
                issue_number: issueNumber,
 | 
			
		||||
                labels: ["not planned"]
 | 
			
		||||
              });
 | 
			
		||||
 | 
			
		||||
              await github.rest.issues.update({
 | 
			
		||||
                ...context.repo,
 | 
			
		||||
                issue_number: issueNumber,
 | 
			
		||||
                state: "closed"
 | 
			
		||||
              });
 | 
			
		||||
            }
 | 
			
		||||
							
								
								
									
										12
									
								
								.github/workflows/frontend-cicd.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/frontend-cicd.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -109,15 +109,13 @@ jobs:
 | 
			
		||||
      - name: Checkout
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Setup Node
 | 
			
		||||
        uses: actions/setup-node@v4
 | 
			
		||||
      - name: Setup Bun
 | 
			
		||||
        uses: oven-sh/setup-bun@v2
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: "20"
 | 
			
		||||
          cache: npm
 | 
			
		||||
          cache-dependency-path: frontend/package-lock.json
 | 
			
		||||
          bun-version: latest
 | 
			
		||||
 | 
			
		||||
      - name: Install dependencies
 | 
			
		||||
        run: npm ci --prefer-offline --legacy-peer-deps
 | 
			
		||||
        run: bun install --frozen-lockfile
 | 
			
		||||
 | 
			
		||||
      - name: Configure Next.js for pages
 | 
			
		||||
        uses: actions/configure-pages@v5
 | 
			
		||||
@@ -125,7 +123,7 @@ jobs:
 | 
			
		||||
          static_site_generator: next
 | 
			
		||||
 | 
			
		||||
      - name: Build with Next.js
 | 
			
		||||
        run: npm run build
 | 
			
		||||
        run: bun run build
 | 
			
		||||
 | 
			
		||||
      - name: Upload artifact
 | 
			
		||||
        if: github.ref == 'refs/heads/main'
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										50
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -10,8 +10,58 @@
 | 
			
		||||
> [!CAUTION]
 | 
			
		||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
 | 
			
		||||
 | 
			
		||||
## 2025-10-13
 | 
			
		||||
 | 
			
		||||
## 2025-10-12
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Immich: add Debian Testing repo [@vhsdream](https://github.com/vhsdream) ([#8310](https://github.com/community-scripts/ProxmoxVE/pull/8310))
 | 
			
		||||
    - Tinyauth: Fix install issues for v4 [@tremor021](https://github.com/tremor021) ([#8309](https://github.com/community-scripts/ProxmoxVE/pull/8309))
 | 
			
		||||
 | 
			
		||||
## 2025-10-11
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Zabbix: various bugfixes agent1/agent2 [@MickLesk](https://github.com/MickLesk) ([#8294](https://github.com/community-scripts/ProxmoxVE/pull/8294))
 | 
			
		||||
    - wger: fix python and pip install [@MickLesk](https://github.com/MickLesk) ([#8295](https://github.com/community-scripts/ProxmoxVE/pull/8295))
 | 
			
		||||
    - searxng: add msgspec as dependency [@MickLesk](https://github.com/MickLesk) ([#8293](https://github.com/community-scripts/ProxmoxVE/pull/8293))
 | 
			
		||||
    - keycloak: fix update check [@MickLesk](https://github.com/MickLesk) ([#8275](https://github.com/community-scripts/ProxmoxVE/pull/8275))
 | 
			
		||||
    - komga: fix update check [@MickLesk](https://github.com/MickLesk) ([#8285](https://github.com/community-scripts/ProxmoxVE/pull/8285))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - host-backup.sh: Added "ALL" option and include timestamp in backup filename [@stumpyofpain](https://github.com/stumpyofpain) ([#8276](https://github.com/community-scripts/ProxmoxVE/pull/8276))
 | 
			
		||||
    - Komga: Update dependencies and enable RAR5 support [@tremor021](https://github.com/tremor021) ([#8257](https://github.com/community-scripts/ProxmoxVE/pull/8257))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - Update script count in metadata and page content from 300+ to 400+ [@BramSuurdje](https://github.com/BramSuurdje) ([#8279](https://github.com/community-scripts/ProxmoxVE/pull/8279))
 | 
			
		||||
- Refactor CI workflow to use Bun instead of Node.js. [@BramSuurdje](https://github.com/BramSuurdje) ([#8277](https://github.com/community-scripts/ProxmoxVE/pull/8277))
 | 
			
		||||
 | 
			
		||||
## 2025-10-10
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - Prometheus-Blackbox-Exporter ([#8255](https://github.com/community-scripts/ProxmoxVE/pull/8255))
 | 
			
		||||
- SonarQube ([#8256](https://github.com/community-scripts/ProxmoxVE/pull/8256))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - Unifi installation script fix [@knightfall](https://github.com/knightfall) ([#8242](https://github.com/community-scripts/ProxmoxVE/pull/8242))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Docmost: Fix env variables [@tremor021](https://github.com/tremor021) ([#8244](https://github.com/community-scripts/ProxmoxVE/pull/8244))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Harmonize Service MSG-Blocks [@MickLesk](https://github.com/MickLesk) ([#8233](https://github.com/community-scripts/ProxmoxVE/pull/8233))
 | 
			
		||||
 | 
			
		||||
## 2025-10-09
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 
 | 
			
		||||
@@ -32,18 +32,18 @@ function update_script() {
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ -f /opt/actualbudget-data/config.json ]]; then
 | 
			
		||||
    if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then
 | 
			
		||||
      msg_info "Stopping ${APP}"
 | 
			
		||||
      msg_info "Stopping Service"
 | 
			
		||||
      systemctl stop actualbudget
 | 
			
		||||
      msg_ok "${APP} Stopped"
 | 
			
		||||
      msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
      msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
      $STD npm update -g @actual-app/sync-server
 | 
			
		||||
      echo "${RELEASE}" >/opt/actualbudget_version.txt
 | 
			
		||||
      msg_ok "Updated ${APP} to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
      msg_info "Starting ${APP}"
 | 
			
		||||
      msg_info "Starting Service"
 | 
			
		||||
      systemctl start actualbudget
 | 
			
		||||
      msg_ok "Restarted ${APP}"
 | 
			
		||||
      msg_ok "Started Service"
 | 
			
		||||
    else
 | 
			
		||||
      msg_info "${APP} is already up to date"
 | 
			
		||||
    fi
 | 
			
		||||
 
 | 
			
		||||
@@ -32,15 +32,15 @@ function update_script() {
 | 
			
		||||
  $STD apk -U upgrade
 | 
			
		||||
  msg_ok "Updated Alpine Packages"
 | 
			
		||||
 | 
			
		||||
  msg_info "Stopping ${APP} Service"
 | 
			
		||||
  msg_info "Stopping Service"
 | 
			
		||||
  $STD rc-service redlib stop
 | 
			
		||||
  msg_ok "Stopped ${APP} Service"
 | 
			
		||||
  msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  fetch_and_deploy_gh_release "redlib" "redlib-org/redlib" "prebuild" "latest" "/opt/redlib" "redlib-x86_64-unknown-linux-musl.tar.gz"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP} Service"
 | 
			
		||||
  msg_info "Starting Service"
 | 
			
		||||
  $STD rc-service redlib start
 | 
			
		||||
  msg_ok "Started ${APP} Service"
 | 
			
		||||
  msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
  msg_ok "Update Successful"
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -29,15 +29,19 @@ function update_script() {
 | 
			
		||||
  $STD apk -U upgrade
 | 
			
		||||
  msg_ok "Updated packages"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating Tinyauth"
 | 
			
		||||
  RELEASE=$(curl -s https://api.github.com/repos/steveiliop56/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
 | 
			
		||||
  if [ "${RELEASE}" != "$(cat /opt/tinyauth_version.txt)" ] || [ ! -f /opt/tinyauth_version.txt ]; then
 | 
			
		||||
  if [ "${RELEASE}" != "$(cat ~/.tinyauth 2>/dev/null)" ] || [ ! -f ~/.tinyauth ]; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    $STD service tinyauth stop
 | 
			
		||||
    msg_ok "Service Stopped"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating Tinyauth"
 | 
			
		||||
    rm -f /opt/tinyauth/tinyauth
 | 
			
		||||
    curl -fsSL "https://github.com/steveiliop56/tinyauth/releases/download/v${RELEASE}/tinyauth-amd64" -o /opt/tinyauth/tinyauth
 | 
			
		||||
    chmod +x /opt/tinyauth/tinyauth
 | 
			
		||||
    echo "${RELEASE}" >/opt/tinyauth_version.txt
 | 
			
		||||
    echo "${RELEASE}" >~/.tinyauth
 | 
			
		||||
    msg_ok "Updated Tinyauth"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restarting Tinyauth"
 | 
			
		||||
    $STD service tinyauth start
 | 
			
		||||
    msg_ok "Restarted Tinyauth"
 | 
			
		||||
 
 | 
			
		||||
@@ -29,9 +29,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE="$(curl -fsSL https://dlcdn.apache.org/tika/ | grep -oP '(?<=href=")[0-9]+\.[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1)"
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop apache-tika
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    cd /opt/apache-tika
 | 
			
		||||
@@ -41,9 +41,9 @@ function update_script() {
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start apache-tika
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf /opt/apache-tika/tika-server-standard-prev-version.jar
 | 
			
		||||
    msg_ok "Cleanup Completed"
 | 
			
		||||
 
 | 
			
		||||
@@ -29,15 +29,15 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "autobrr" "autobrr/autobrr"; then
 | 
			
		||||
    msg_info "Stopping ${APP} LXC"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop autobrr
 | 
			
		||||
    msg_ok "Stopped ${APP} LXC"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "autobrr" "autobrr/autobrr" "prebuild" "latest" "/usr/local/bin" "autobrr_*_linux_x86_64.tar.gz"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP} LXC"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start autobrr
 | 
			
		||||
    msg_ok "Started ${APP} LXC"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -29,9 +29,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/garethgeorge/backrest/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop backrest
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    temp_file=$(mktemp)
 | 
			
		||||
@@ -42,9 +42,9 @@ function update_script() {
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start backrest
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -f "$temp_file"
 | 
			
		||||
 
 | 
			
		||||
@@ -27,9 +27,9 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Stopping ${APP}"
 | 
			
		||||
  msg_info "Stopping Service"
 | 
			
		||||
  systemctl stop cps
 | 
			
		||||
  msg_ok "Stopped ${APP}"
 | 
			
		||||
  msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP}"
 | 
			
		||||
  cd /opt/kepubify
 | 
			
		||||
@@ -121,9 +121,9 @@ function update_script() {
 | 
			
		||||
    $STD pip install --upgrade calibreweb
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP}"
 | 
			
		||||
  msg_info "Starting Service"
 | 
			
		||||
  systemctl start cps
 | 
			
		||||
  msg_ok "Started ${APP}"
 | 
			
		||||
  msg_ok "Started Service"
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -28,15 +28,15 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "cleanuparr" "Cleanuparr/Cleanuparr"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop cleanuparr
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start cleanuparr
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -29,9 +29,9 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "commafeed" "Athou/commafeed"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop commafeed
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    if ! [[ $(dpkg -s rsync 2>/dev/null) ]]; then
 | 
			
		||||
      msg_info "Installing Dependencies"
 | 
			
		||||
@@ -54,9 +54,9 @@ function update_script() {
 | 
			
		||||
      msg_ok "Restored data"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start commafeed
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -28,9 +28,9 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "dashy" "Lissy93/dashy"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop dashy
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Backing up conf.yml"
 | 
			
		||||
    cd ~
 | 
			
		||||
 
 | 
			
		||||
@@ -32,9 +32,9 @@ function update_script() {
 | 
			
		||||
  export NODE_OPTIONS="--max_old_space_size=4096"
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "docmost" "docmost/docmost"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop docmost
 | 
			
		||||
    msg_ok "${APP} Stopped"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Backing up data"
 | 
			
		||||
    cp /opt/docmost/.env /opt/
 | 
			
		||||
@@ -52,9 +52,9 @@ function update_script() {
 | 
			
		||||
    $STD pnpm build
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start docmost
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -29,9 +29,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/documenso/documenso/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop documenso
 | 
			
		||||
    msg_ok "${APP} Stopped"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    cp /opt/documenso/.env /opt/
 | 
			
		||||
@@ -53,9 +53,9 @@ function update_script() {
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start documenso
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf /opt/v${RELEASE}.zip
 | 
			
		||||
 
 | 
			
		||||
@@ -29,15 +29,15 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "emby" "MediaBrowser/Emby.Releases"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop emby-server
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "emby" "MediaBrowser/Emby.Releases" "binary"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start emby-server
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -28,9 +28,9 @@ function update_script() {
 | 
			
		||||
    exit 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Stopping ${APP}"
 | 
			
		||||
  msg_info "Stopping Service"
 | 
			
		||||
  systemctl stop esphomeDashboard
 | 
			
		||||
  msg_ok "Stopped ${APP}"
 | 
			
		||||
  msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  VENV_PATH="/opt/esphome/.venv"
 | 
			
		||||
  ESPHOME_BIN="${VENV_PATH}/bin/esphome"
 | 
			
		||||
@@ -78,9 +78,9 @@ EOF
 | 
			
		||||
  ln -s /opt/esphome/.venv/bin/esphome /usr/local/bin/esphome
 | 
			
		||||
  msg_ok "Linked esphome binary"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP}"
 | 
			
		||||
  msg_info "Starting Service"
 | 
			
		||||
  systemctl start esphomeDashboard
 | 
			
		||||
  msg_ok "Started ${APP}"
 | 
			
		||||
  msg_ok "Started Service"
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -27,13 +27,13 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Stopping ${APP}"
 | 
			
		||||
  msg_info "Stopping Service"
 | 
			
		||||
  systemctl stop forgejo
 | 
			
		||||
  msg_ok "Stopped ${APP}"
 | 
			
		||||
  msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP}"
 | 
			
		||||
  RELEASE=$(curl -fsSL https://codeberg.org/api/v1/repos/forgejo/forgejo/releases/latest | grep -oP '"tag_name":\s*"\K[^"]+' | sed 's/^v//')
 | 
			
		||||
curl -fsSL "https://codeberg.org/forgejo/forgejo/releases/download/v${RELEASE}/forgejo-${RELEASE}-linux-amd64" -o "forgejo-$RELEASE-linux-amd64"
 | 
			
		||||
  curl -fsSL "https://codeberg.org/forgejo/forgejo/releases/download/v${RELEASE}/forgejo-${RELEASE}-linux-amd64" -o "forgejo-$RELEASE-linux-amd64"
 | 
			
		||||
  rm -rf /opt/forgejo/*
 | 
			
		||||
  cp -r forgejo-$RELEASE-linux-amd64 /opt/forgejo/forgejo-$RELEASE-linux-amd64
 | 
			
		||||
  chmod +x /opt/forgejo/forgejo-$RELEASE-linux-amd64
 | 
			
		||||
@@ -44,9 +44,9 @@ curl -fsSL "https://codeberg.org/forgejo/forgejo/releases/download/v${RELEASE}/f
 | 
			
		||||
  rm -rf forgejo-$RELEASE-linux-amd64
 | 
			
		||||
  msg_ok "Cleaned"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP}"
 | 
			
		||||
  msg_info "Starting Service"
 | 
			
		||||
  systemctl start forgejo
 | 
			
		||||
  msg_ok "Started ${APP}"
 | 
			
		||||
  msg_ok "Started Service"
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -28,15 +28,15 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "gokapi" "Forceu/Gokapi"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop gokapi
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "gokapi" "Forceu/Gokapi" "prebuild" "latest" "/opt/gokapi" "gokapi-linux_amd64.zip"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start gokapi
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -28,16 +28,16 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "gotify" "gotify/server"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop gotify
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "gotify" "gotify/server" "prebuild" "latest" "/opt/gotify" "gotify-linux-amd64.zip"
 | 
			
		||||
    chmod +x /opt/gotify/gotify-linux-amd64
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start gotify
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -30,9 +30,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "grist" "gristlabs/grist-core"; then
 | 
			
		||||
    msg_info "Stopping ${APP} Service"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop grist
 | 
			
		||||
    msg_ok "Stopped ${APP} Service"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Creating backup"
 | 
			
		||||
    rm -rf /opt/grist_bak
 | 
			
		||||
@@ -52,9 +52,9 @@ function update_script() {
 | 
			
		||||
    $STD yarn run install:python
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP} Service"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start grist
 | 
			
		||||
    msg_ok "Started ${APP} Service"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/prometheus-blackbox-exporter
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/prometheus-blackbox-exporter
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ____                            __  __                          ____  __           __   __                     ______                      __           
 | 
			
		||||
   / __ \_________  ____ ___  ___  / /_/ /_  ___  __  _______      / __ )/ /___ ______/ /__/ /_  ____  _  __      / ____/  ______  ____  _____/ /____  _____
 | 
			
		||||
  / /_/ / ___/ __ \/ __ `__ \/ _ \/ __/ __ \/ _ \/ / / / ___/_____/ __  / / __ `/ ___/ //_/ __ \/ __ \| |/_/_____/ __/ | |/_/ __ \/ __ \/ ___/ __/ _ \/ ___/
 | 
			
		||||
 / ____/ /  / /_/ / / / / / /  __/ /_/ / / /  __/ /_/ (__  )_____/ /_/ / / /_/ / /__/ ,< / /_/ / /_/ />  </_____/ /____>  </ /_/ / /_/ / /  / /_/  __/ /    
 | 
			
		||||
/_/   /_/   \____/_/ /_/ /_/\___/\__/_/ /_/\___/\__,_/____/     /_____/_/\__,_/\___/_/|_/_.___/\____/_/|_|     /_____/_/|_/ .___/\____/_/   \__/\___/_/     
 | 
			
		||||
                                                                                                                         /_/                                
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/sonarqube
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/sonarqube
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   _____                        ____        __       
 | 
			
		||||
  / ___/____  ____  ____ ______/ __ \__  __/ /_  ___ 
 | 
			
		||||
  \__ \/ __ \/ __ \/ __ `/ ___/ / / / / / / __ \/ _ \
 | 
			
		||||
 ___/ / /_/ / / / / /_/ / /  / /_/ / /_/ / /_/ /  __/
 | 
			
		||||
/____/\____/_/ /_/\__,_/_/   \___\_\__,_/_.___/\___/ 
 | 
			
		||||
                                                     
 | 
			
		||||
@@ -32,16 +32,16 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "headscale" "juanfont/headscale"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop headscale
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "headscale" "juanfont/headscale" "binary"
 | 
			
		||||
    fetch_and_deploy_gh_release "headscale-admin" "GoodiesHQ/headscale-admin" "prebuild" "latest" "/opt/headscale-admin" "admin.zip"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl enable -q --now headscale
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -29,10 +29,10 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" | awk '/tag_name/{print $4;exit}' FS='[""]')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop heimdall
 | 
			
		||||
    sleep 1
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
    msg_info "Backing up Data"
 | 
			
		||||
    cp -R /opt/Heimdall/database database-backup
 | 
			
		||||
    cp -R /opt/Heimdall/public public-backup
 | 
			
		||||
@@ -59,10 +59,10 @@ function update_script() {
 | 
			
		||||
    rm -rf {"${RELEASE}".tar.gz,Heimdall-"${VER}",public-backup,database-backup,Heimdall}
 | 
			
		||||
    sleep 1
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start heimdall.service
 | 
			
		||||
    sleep 2
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required.  ${APP} is already at ${RELEASE}."
 | 
			
		||||
 
 | 
			
		||||
@@ -34,9 +34,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "homebox" "sysadminsmedia/homebox"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop homebox
 | 
			
		||||
    msg_ok "${APP} Stopped"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    if [ -f /opt/homebox ] && [ -x /opt/homebox ]; then
 | 
			
		||||
      rm -f /opt/homebox
 | 
			
		||||
@@ -46,9 +46,9 @@ function update_script() {
 | 
			
		||||
    [ -f /opt/.env ] && mv /opt/.env /opt/homebox/.env
 | 
			
		||||
    [ -d /opt/.data ] && mv /opt/.data /opt/homebox/.data
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start homebox
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -27,9 +27,9 @@ function update_script() {
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop homer
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Backing up assets directory"
 | 
			
		||||
    cd ~
 | 
			
		||||
@@ -53,9 +53,9 @@ function update_script() {
 | 
			
		||||
    rm -rf assets-backup /opt/homer/homer.zip
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start homer
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
    exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										24
									
								
								ct/immich.sh
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								ct/immich.sh
									
									
									
									
									
								
							@@ -39,8 +39,26 @@ function update_script() {
 | 
			
		||||
  PNPM_VERSION="$(curl -fsSL "https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/package.json" | jq -r '.packageManager | split("@")[1]')"
 | 
			
		||||
  NODE_VERSION="22" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
 | 
			
		||||
 | 
			
		||||
  if dpkg -l | grep -q "libmimalloc2.0"; then
 | 
			
		||||
    $STD apt-get update && $STD apt-get install -y libmimalloc3
 | 
			
		||||
  if [[ ! -f /etc/apt/preferences.d/preferences ]]; then
 | 
			
		||||
    msg_info "Adding Debian Testing repo"
 | 
			
		||||
    sed -i 's/ trixie-updates/ trixie-updates testing/g' /etc/apt/sources.list.d/debian.sources
 | 
			
		||||
    cat <<EOF >/etc/apt/preferences.d/preferences
 | 
			
		||||
Package: *
 | 
			
		||||
Pin: release a=unstable
 | 
			
		||||
Pin-Priority: 450
 | 
			
		||||
 | 
			
		||||
Package: *
 | 
			
		||||
Pin:release a=testing
 | 
			
		||||
Pin-Priority: 450
 | 
			
		||||
EOF
 | 
			
		||||
    if [[ -f /etc/apt/preferences.d/immich ]]; then
 | 
			
		||||
      rm /etc/apt/preferences.d/immich
 | 
			
		||||
    fi
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    msg_ok "Added Debian Testing repo"
 | 
			
		||||
    msg_info "Installing libmimalloc3"
 | 
			
		||||
    $STD apt-get install -t testing --no-install-recommends libmimalloc3
 | 
			
		||||
    msg_ok "Installed libmimalloc3"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  STAGING_DIR=/opt/staging
 | 
			
		||||
@@ -79,7 +97,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
    systemctl stop immich-web
 | 
			
		||||
    systemctl stop immich-ml
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
    INSTALL_DIR="/opt/${APP}"
 | 
			
		||||
    UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
 | 
			
		||||
    SRC_DIR="${INSTALL_DIR}/source"
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "keycloak" "keycloak/keycloak"; then
 | 
			
		||||
  if check_for_gh_release "keycloak-app" "keycloak/keycloak"; then
 | 
			
		||||
    msg_info "Stopping Keycloak"
 | 
			
		||||
    systemctl stop keycloak
 | 
			
		||||
    msg_ok "Stopped Keycloak"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								ct/komga.sh
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								ct/komga.sh
									
									
									
									
									
								
							@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -27,18 +27,18 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "komga" "gotson/komga"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
  if check_for_gh_release "komga-org" "gotson/komga"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop komga
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    rm -f /opt/komga/komga.jar
 | 
			
		||||
    USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "komga-org" "gotson/komga" "singlefile" "latest" "/opt/komga" "komga*.jar"
 | 
			
		||||
    mv /opt/komga/komga-*.jar /opt/komga/komga.jar
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start komga
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -28,9 +28,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "linkwarden" "linkwarden/linkwarden"; then
 | 
			
		||||
    NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop linkwarden
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    RUST_CRATES="monolith" setup_rust
 | 
			
		||||
 | 
			
		||||
@@ -54,9 +54,9 @@ function update_script() {
 | 
			
		||||
    [ -d /opt/data.bak ] && mv /opt/data.bak /opt/linkwarden/data
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start linkwarden
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -rf ~/.cargo/registry ~/.cargo/git ~/.cargo/.package-cache ~/.rustup
 | 
			
		||||
 
 | 
			
		||||
@@ -28,9 +28,9 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "listmonk" "knadh/listmonk"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop listmonk
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Backing up data"
 | 
			
		||||
    mv /opt/listmonk/ /opt/listmonk-backup
 | 
			
		||||
@@ -44,9 +44,9 @@ function update_script() {
 | 
			
		||||
    $STD /opt/listmonk/listmonk --upgrade --yes --config /opt/listmonk/config.toml
 | 
			
		||||
    msg_ok "Configured listmonk"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start listmonk
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -rf /opt/listmonk-backup/
 | 
			
		||||
 
 | 
			
		||||
@@ -27,9 +27,9 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Stopping ${APP}"
 | 
			
		||||
  msg_info "Stopping Service"
 | 
			
		||||
  systemctl stop medusa
 | 
			
		||||
  msg_ok "Stopped ${APP}"
 | 
			
		||||
  msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP}"
 | 
			
		||||
  cd /opt/medusa
 | 
			
		||||
@@ -40,9 +40,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP}"
 | 
			
		||||
  msg_info "Starting Service"
 | 
			
		||||
  systemctl start medusa
 | 
			
		||||
  msg_ok "Started ${APP}"
 | 
			
		||||
  msg_ok "Started Service"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -41,9 +41,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "metube" "alexta69/metube"; then
 | 
			
		||||
    msg_info "Stopping ${APP} Service"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop metube
 | 
			
		||||
    msg_ok "Stopped ${APP} Service"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Backing up Old Installation"
 | 
			
		||||
    if [[ -d /opt/metube_bak ]]; then
 | 
			
		||||
@@ -102,10 +102,10 @@ EOF
 | 
			
		||||
    $STD apt-get -y autoclean
 | 
			
		||||
    msg_ok "Cleaned Up"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP} Service"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start metube
 | 
			
		||||
    sleep 1
 | 
			
		||||
    msg_ok "Started ${APP} Service"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully!"
 | 
			
		||||
  fi
 | 
			
		||||
 
 | 
			
		||||
@@ -29,18 +29,18 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Stopping ${APP}"
 | 
			
		||||
  msg_info "Stopping Service"
 | 
			
		||||
  systemctl stop minarca-server
 | 
			
		||||
  msg_ok "${APP} Stopped"
 | 
			
		||||
  msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP} LXC"
 | 
			
		||||
  $STD apt-get update
 | 
			
		||||
  $STD apt-get upgrade -y
 | 
			
		||||
  msg_ok "Updated ${APP} LXC"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP}"
 | 
			
		||||
  msg_info "Starting Service"
 | 
			
		||||
  systemctl start minarca-server
 | 
			
		||||
  msg_ok "Restarted ${APP}"
 | 
			
		||||
  msg_ok "Started Service"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -47,9 +47,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if [[ "${CURRENT_VERSION}" != "${RELEASE}" ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop minio
 | 
			
		||||
    msg_ok "${APP} Stopped"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    mv /usr/local/bin/minio /usr/local/bin/minio_bak
 | 
			
		||||
@@ -58,9 +58,9 @@ function update_script() {
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start minio
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -f /usr/local/bin/minio_bak
 | 
			
		||||
 
 | 
			
		||||
@@ -31,9 +31,9 @@ function update_script() {
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/netbox-community/netbox/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop netbox netbox-rq
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
    mv /opt/netbox/ /opt/netbox-backup
 | 
			
		||||
@@ -60,9 +60,9 @@ function update_script() {
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start netbox netbox-rq
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -r "/opt/v${RELEASE}.zip"
 | 
			
		||||
 
 | 
			
		||||
@@ -28,9 +28,9 @@ function update_script() {
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop nextpvr-server
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating LXC packages"
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
@@ -43,9 +43,9 @@ function update_script() {
 | 
			
		||||
    $STD dpkg -i nextpvr-helper.deb
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start nextpvr-server
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf /opt/nextpvr-helper.deb
 | 
			
		||||
 
 | 
			
		||||
@@ -31,9 +31,9 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "nodebb" "NodeBB/NodeBB"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop nodebb
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    cd /opt/nodebb
 | 
			
		||||
@@ -41,9 +41,9 @@ function update_script() {
 | 
			
		||||
    echo "${CHECK_UPDATE_RELEASE}" >~/.nodebb
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start nodebb
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully\n"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -32,22 +32,22 @@ function update_script() {
 | 
			
		||||
  DETAIL_PAGE=$(curl -fsSL "$BASE_URL#note_$RELEASE")
 | 
			
		||||
  DOWNLOAD_URL=$(echo "$DETAIL_PAGE" | grep -oP "https://updates.networkoptix.com/default/$RELEASE/linux/nxwitness-server-[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+-linux_x64\.deb" | head -n 1)
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop networkoptix-root-tool networkoptix-mediaserver
 | 
			
		||||
    msg_ok "${APP} Stopped"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    cd /tmp
 | 
			
		||||
curl -fsSL "$DOWNLOAD_URL" -o ""nxwitness-server-$RELEASE-linux_x64.deb""
 | 
			
		||||
    curl -fsSL "$DOWNLOAD_URL" -o ""nxwitness-server-$RELEASE-linux_x64.deb""
 | 
			
		||||
    export DEBIAN_FRONTEND=noninteractive
 | 
			
		||||
    export DEBCONF_NOWARNINGS=yes
 | 
			
		||||
    $STD dpkg -i nxwitness-server-$RELEASE-linux_x64.deb
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start networkoptix-root-tool networkoptix-mediaserver
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -f /tmp/nxwitness-server-$RELEASE-linux_x64.deb
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,7 @@ function update_script() {
 | 
			
		||||
  if [[ "${LATEST_VERSION}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP} service"
 | 
			
		||||
    systemctl stop odoo
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${LATEST_VERSION}"
 | 
			
		||||
    curl -fsSL https://nightly.odoo.com/${RELEASE}/nightly/deb/odoo_${RELEASE}.latest_all.deb -o /opt/odoo.deb
 | 
			
		||||
@@ -55,7 +55,7 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP} service"
 | 
			
		||||
    systemctl start odoo
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -f /opt/odoo.deb
 | 
			
		||||
 
 | 
			
		||||
@@ -28,18 +28,18 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "pocketbase" "pocketbase/pocketbase"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop pocketbase
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    /opt/pocketbase/pocketbase update
 | 
			
		||||
    echo "${CHECK_UPDATE_RELEASE}" >~/.pocketbase
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start pocketbase
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -30,8 +30,8 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "pocket-id" "pocket-id/pocket-id"; then
 | 
			
		||||
    if [ "$(printf '%s\n%s' "$(cat ~/.pocket-id 2>/dev/null || echo 0.0.0)" "1.0.0" | sort -V | head -n1)" = "$(cat ~/.pocket-id 2>/dev/null || echo 0.0.0)" ] \
 | 
			
		||||
      && [ "$(cat ~/.pocket-id 2>/dev/null || echo 0.0.0)" != "1.0.0" ]; then      
 | 
			
		||||
    if [ "$(printf '%s\n%s' "$(cat ~/.pocket-id 2>/dev/null || echo 0.0.0)" "1.0.0" | sort -V | head -n1)" = "$(cat ~/.pocket-id 2>/dev/null || echo 0.0.0)" ] &&
 | 
			
		||||
      [ "$(cat ~/.pocket-id 2>/dev/null || echo 0.0.0)" != "1.0.0" ]; then
 | 
			
		||||
      msg_info "Migrating ${APP}"
 | 
			
		||||
      systemctl -q disable --now pocketid-backend pocketid-frontend caddy
 | 
			
		||||
      mv /etc/caddy/Caddyfile ~/Caddyfile.bak
 | 
			
		||||
@@ -58,9 +58,9 @@ function update_script() {
 | 
			
		||||
      mv /opt/data /opt/pocket-id
 | 
			
		||||
      msg_ok "Migration complete. The reverse proxy port has been changed to 1411."
 | 
			
		||||
    else
 | 
			
		||||
      msg_info "Stopping ${APP}"
 | 
			
		||||
      msg_info "Stopping Service"
 | 
			
		||||
      systemctl stop pocketid
 | 
			
		||||
      msg_ok "Stopped ${APP}"
 | 
			
		||||
      msg_ok "Stopped Service"
 | 
			
		||||
      cp /opt/pocket-id/.env /opt/env
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										62
									
								
								ct/prometheus-blackbox-exporter.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								ct/prometheus-blackbox-exporter.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: Marfnl
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/prometheus/blackbox_exporter
 | 
			
		||||
 | 
			
		||||
APP="Prometheus-Blackbox-Exporter"
 | 
			
		||||
var_tags="${var_tags:-monitoring;prometheus}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/blackbox-exporter ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "blackbox-exporter" "prometheus/blackbox_exporter"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop blackbox-exporter
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Creating backup"
 | 
			
		||||
    mv /opt/blackbox-exporter/blackbox.yml /opt
 | 
			
		||||
    msg_ok "Backup created"
 | 
			
		||||
 | 
			
		||||
    CLEAN_INSTALL=1 fetch_and_deploy_gh_release "blackbox-exporter" "prometheus/blackbox_exporter" "prebuild" "latest" "/opt/blackbox-exporter" "blackbox_exporter-*.linux-amd64.tar.gz"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restoring backup"
 | 
			
		||||
    cp -r /opt/blackbox.yml /opt/blackbox-exporter
 | 
			
		||||
    rm -f /opt/blackbox.yml
 | 
			
		||||
    msg_ok "Backup restored"
 | 
			
		||||
    
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start blackbox-exporter
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Update Successfully!"
 | 
			
		||||
  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}:9115${CL}"
 | 
			
		||||
@@ -28,9 +28,9 @@ function update_script() {
 | 
			
		||||
    exit 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Stopping ${APP}"
 | 
			
		||||
  msg_info "Stopping Service"
 | 
			
		||||
  systemctl stop prometheus-pve-exporter
 | 
			
		||||
  msg_ok "Stopped ${APP}"
 | 
			
		||||
  msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  export PVE_VENV_PATH="/opt/prometheus-pve-exporter/.venv"
 | 
			
		||||
  export PVE_EXPORTER_BIN="${PVE_VENV_PATH}/bin/pve_exporter"
 | 
			
		||||
@@ -77,9 +77,9 @@ EOF
 | 
			
		||||
    msg_ok "Updated systemd service"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP}"
 | 
			
		||||
  msg_info "Starting Service"
 | 
			
		||||
  systemctl start prometheus-pve-exporter
 | 
			
		||||
  msg_ok "Started ${APP}"
 | 
			
		||||
  msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit 0
 | 
			
		||||
 
 | 
			
		||||
@@ -41,17 +41,17 @@ EOF
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Stopping ${APP} Service"
 | 
			
		||||
  msg_info "Stopping Service"
 | 
			
		||||
  systemctl stop rabbitmq-server
 | 
			
		||||
  msg_ok "Stopped ${APP} Service"
 | 
			
		||||
  msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating..."
 | 
			
		||||
  $STD apt install --only-upgrade rabbitmq-server
 | 
			
		||||
  msg_ok "Update Successfully"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP}"
 | 
			
		||||
  msg_info "Starting Service"
 | 
			
		||||
  systemctl start rabbitmq-server
 | 
			
		||||
  msg_ok "Started ${APP}"
 | 
			
		||||
  msg_ok "Started Service"
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -30,9 +30,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "rwMarkable" "fccview/rwMarkable"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop rwmarkable
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Backing up configuration & data"
 | 
			
		||||
    cd /opt/rwmarkable
 | 
			
		||||
 
 | 
			
		||||
@@ -28,15 +28,15 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "silverbullet" "silverbulletmd/silverbullet"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop silverbullet
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "silverbullet" "silverbulletmd/silverbullet" "prebuild" "latest" "/opt/silverbullet/bin" "silverbullet-server-linux-x86_64.zip"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start silverbullet
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										71
									
								
								ct/sonarqube.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								ct/sonarqube.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: prop4n
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://docs.sonarsource.com/sonarqube-server
 | 
			
		||||
 | 
			
		||||
APP="SonarQube"
 | 
			
		||||
var_tags="${var_tags:-automation}"
 | 
			
		||||
var_cpu="${var_cpu:-4}"
 | 
			
		||||
var_ram="${var_ram:-6144}"
 | 
			
		||||
var_disk="${var_disk:-25}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/sonarqube ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "sonarqube" "SonarSource/sonarqube"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop sonarqube
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Creating backup"
 | 
			
		||||
    BACKUP_DIR="/opt/sonarqube-backup"
 | 
			
		||||
    mv /opt/sonarqube ${BACKUP_DIR}
 | 
			
		||||
    msg_ok "Backup created"
 | 
			
		||||
 | 
			
		||||
    msg_info "Installing sonarqube"
 | 
			
		||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/SonarSource/sonarqube/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
    curl -fsSL "https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-${RELEASE}.zip" -o $temp_file
 | 
			
		||||
    unzip -q "$temp_file" -d /opt
 | 
			
		||||
    mv /opt/sonarqube-* /opt/sonarqube
 | 
			
		||||
    msg_ok "Installed sonarqube"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restoring backup"
 | 
			
		||||
    cp -rp ${BACKUP_DIR}/data/ /opt/sonarqube/data/
 | 
			
		||||
    cp -rp ${BACKUP_DIR}/extensions/ /opt/sonarqube/extensions/
 | 
			
		||||
    cp -p ${BACKUP_DIR}/conf/sonar.properties /opt/sonarqube/conf/sonar.properties
 | 
			
		||||
    rm -rf ${BACKUP_DIR}
 | 
			
		||||
    chown -R sonarqube:sonarqube /opt/sonarqube
 | 
			
		||||
    msg_ok "Backup restored"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start sonarqube
 | 
			
		||||
    msg_ok "Service started"
 | 
			
		||||
    msg_ok "Updated Successfully!"
 | 
			
		||||
  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}:9000${CL}"
 | 
			
		||||
@@ -30,9 +30,9 @@ function update_script() {
 | 
			
		||||
  RELEASE=$(curl -fsSL https://github.com/Donkie/Spoolman/releases/latest | grep "title>Release" | cut -d " " -f 4)
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
 | 
			
		||||
    msg_info "Stopping ${APP} Service"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop spoolman
 | 
			
		||||
    msg_ok "Stopped ${APP} Service"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    cd /opt
 | 
			
		||||
@@ -46,9 +46,9 @@ function update_script() {
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP} Service"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start spoolman
 | 
			
		||||
    msg_ok "Started ${APP} Service"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -rf /opt/spoolman.zip
 | 
			
		||||
 
 | 
			
		||||
@@ -61,9 +61,9 @@ function update_script() {
 | 
			
		||||
    $STD uv pip install apprise cryptography --system
 | 
			
		||||
    msg_ok "Updated AppRise"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start tianji
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -rf /opt/tianji_bak
 | 
			
		||||
 
 | 
			
		||||
@@ -38,7 +38,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start traefik
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully!"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -66,8 +66,9 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start trilium
 | 
			
		||||
    sleep 1
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully!"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start umami
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully!"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -46,7 +46,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start uptime-kuma
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully!"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -39,16 +39,18 @@ function update_script() {
 | 
			
		||||
    tar xzf "$temp_file"
 | 
			
		||||
    cp -rf wger-"$RELEASE"/* /home/wger/src
 | 
			
		||||
    cd /home/wger/src || exit
 | 
			
		||||
    $STD pip install -r requirements_prod.txt --ignore-installed
 | 
			
		||||
    $STD pip install -e .
 | 
			
		||||
    $STD python3 manage.py migrate
 | 
			
		||||
    $STD python3 manage.py collectstatic --no-input
 | 
			
		||||
    $STD yarn install
 | 
			
		||||
    $STD yarn build:css:sass
 | 
			
		||||
    $STD python3 manage.py collectstatic --noinput
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start wger
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf "$temp_file"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								ct/zabbix.sh
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								ct/zabbix.sh
									
									
									
									
									
								
							@@ -42,7 +42,12 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Stopping Services"
 | 
			
		||||
  systemctl stop zabbix-server $AGENT_SERVICE
 | 
			
		||||
  $STD systemctl stop zabbix-server
 | 
			
		||||
  if systemctl list-unit-files | grep -q zabbix-agent2; then
 | 
			
		||||
    $STD systemctl stop zabbix-agent2
 | 
			
		||||
  else
 | 
			
		||||
    $STD systemctl stop zabbix-agent
 | 
			
		||||
  fi
 | 
			
		||||
  msg_ok "Stopped Services"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating Zabbix"
 | 
			
		||||
@@ -83,14 +88,22 @@ function update_script() {
 | 
			
		||||
  msg_ok "Updated Zabbix"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting Services"
 | 
			
		||||
  systemctl start zabbix-server $AGENT_SERVICE
 | 
			
		||||
  $STD systemctl start zabbix-server
 | 
			
		||||
  if systemctl list-unit-files | grep -q zabbix-agent2; then
 | 
			
		||||
    $STD systemctl start zabbix-agent2
 | 
			
		||||
  else
 | 
			
		||||
    $STD systemctl start zabbix-agent
 | 
			
		||||
  fi
 | 
			
		||||
  systemctl restart apache2
 | 
			
		||||
  msg_ok "Started Services"
 | 
			
		||||
 | 
			
		||||
  msg_info "Cleaning Up"
 | 
			
		||||
  rm -rf /tmp/zabbix-release_latest+debian13_all.deb
 | 
			
		||||
  $STD apt -y autoremove
 | 
			
		||||
  $STD apt -y autoclean
 | 
			
		||||
  $STD apt -y clean
 | 
			
		||||
  msg_ok "Cleaned"
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  msg_ok "Updated Successfully!"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -49,9 +49,9 @@ function update_script() {
 | 
			
		||||
    $STD pnpm build
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start zipline
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1960
									
								
								frontend/bun.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										1960
									
								
								frontend/bun.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										14460
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										14460
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -23,7 +23,7 @@
 | 
			
		||||
        "ram": 2048,
 | 
			
		||||
        "hdd": 4,
 | 
			
		||||
        "os": "debian",
 | 
			
		||||
        "version": "12"
 | 
			
		||||
        "version": "13"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										41
									
								
								frontend/public/json/prometheus-blackbox-exporter.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								frontend/public/json/prometheus-blackbox-exporter.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "Prometheus Blackbox Exporter",
 | 
			
		||||
  "slug": "prometheus-blackbox-exporter",
 | 
			
		||||
  "categories": [
 | 
			
		||||
    1,
 | 
			
		||||
    9
 | 
			
		||||
  ],
 | 
			
		||||
  "date_created": "2025-10-10",
 | 
			
		||||
  "type": "ct",
 | 
			
		||||
  "updateable": true,
 | 
			
		||||
  "privileged": false,
 | 
			
		||||
  "interface_port": 9115,
 | 
			
		||||
  "documentation": "https://github.com/prometheus/blackbox_exporter",
 | 
			
		||||
  "website": "https://github.com/prometheus/blackbox_exporter",
 | 
			
		||||
  "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/prometheus.webp",
 | 
			
		||||
  "config_path": "/opt/blackbox-exporter/blackbox.yml",
 | 
			
		||||
  "description": "An exporter allows blackbox probing of endpoints over HTTP, HTTPS, DNS, TCP, ICMP and gRPC for use by the Prometheus monitoring system.",
 | 
			
		||||
  "install_methods": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "default",
 | 
			
		||||
      "script": "ct/prometheus-blackbox-exporter.sh",
 | 
			
		||||
      "resources": {
 | 
			
		||||
        "cpu": 1,
 | 
			
		||||
        "ram": 512,
 | 
			
		||||
        "hdd": 4,
 | 
			
		||||
        "os": "debian",
 | 
			
		||||
        "version": "13"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "default_credentials": {
 | 
			
		||||
    "username": null,
 | 
			
		||||
    "password": null
 | 
			
		||||
  },
 | 
			
		||||
  "notes": [
 | 
			
		||||
    {
 | 
			
		||||
      "text": "Please adjust the Proxmox credentials in the configuration file!",
 | 
			
		||||
      "type": "info"
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										36
									
								
								frontend/public/json/sonarqube.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								frontend/public/json/sonarqube.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "sonarqube",
 | 
			
		||||
  "slug": "sonarqube",
 | 
			
		||||
  "categories": [
 | 
			
		||||
    20,
 | 
			
		||||
    19
 | 
			
		||||
  ],
 | 
			
		||||
  "date_created": "2025-10-10",
 | 
			
		||||
  "type": "ct",
 | 
			
		||||
  "updateable": true,
 | 
			
		||||
  "privileged": false,
 | 
			
		||||
  "interface_port": 9000,
 | 
			
		||||
  "documentation": "https://docs.sonarsource.com/sonarqube-server",
 | 
			
		||||
  "config_path": "/opt/sonarqube/conf/sonar.properties",
 | 
			
		||||
  "website": "https://www.sonarsource.com/products/sonarqube/",
 | 
			
		||||
  "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/sonarqube.webp",
 | 
			
		||||
  "description": "SonarQube Server automates code quality and security reviews and provides actionable code intelligence so developers can focus on building better, faster.",
 | 
			
		||||
  "install_methods": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "default",
 | 
			
		||||
      "script": "ct/sonarqube.sh",
 | 
			
		||||
      "resources": {
 | 
			
		||||
        "cpu": 4,
 | 
			
		||||
        "ram": 6144,
 | 
			
		||||
        "hdd": 25,
 | 
			
		||||
        "os": "Debian",
 | 
			
		||||
        "version": "13"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "default_credentials": {
 | 
			
		||||
    "username": "admin",
 | 
			
		||||
    "password": "admin"
 | 
			
		||||
  },
 | 
			
		||||
  "notes": []
 | 
			
		||||
}
 | 
			
		||||
@@ -1,34 +1,249 @@
 | 
			
		||||
[
 | 
			
		||||
  {
 | 
			
		||||
    "name": "rcourtman/Pulse",
 | 
			
		||||
    "version": "v4.22.0",
 | 
			
		||||
    "date": "2025-10-09T08:23:58Z"
 | 
			
		||||
    "name": "esphome/esphome",
 | 
			
		||||
    "version": "2025.9.3",
 | 
			
		||||
    "date": "2025-10-01T11:30:07Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Luligu/matterbridge",
 | 
			
		||||
    "version": "3.3.2",
 | 
			
		||||
    "date": "2025-10-12T21:30:43Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "dgtlmoon/changedetection.io",
 | 
			
		||||
    "version": "0.50.19",
 | 
			
		||||
    "date": "2025-10-09T23:19:31Z"
 | 
			
		||||
    "version": "0.50.22",
 | 
			
		||||
    "date": "2025-10-12T20:49:21Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "runtipi/runtipi",
 | 
			
		||||
    "version": "nightly",
 | 
			
		||||
    "date": "2025-10-11T19:50:32Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "globaleaks/globaleaks-whistleblowing-software",
 | 
			
		||||
    "version": "v5.0.85",
 | 
			
		||||
    "date": "2025-10-12T19:55:18Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "rcourtman/Pulse",
 | 
			
		||||
    "version": "v4.23.0",
 | 
			
		||||
    "date": "2025-10-12T18:41:33Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "booklore-app/booklore",
 | 
			
		||||
    "version": "v1.6.0",
 | 
			
		||||
    "date": "2025-10-12T16:09:29Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "ellite/Wallos",
 | 
			
		||||
    "version": "v4.4.1",
 | 
			
		||||
    "date": "2025-10-12T15:38:24Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "YunoHost/yunohost",
 | 
			
		||||
    "version": "debian/12.1.28",
 | 
			
		||||
    "date": "2025-10-12T14:55:27Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "firefly-iii/firefly-iii",
 | 
			
		||||
    "version": "v6.4.2",
 | 
			
		||||
    "date": "2025-10-07T08:11:58Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "PrivateBin/PrivateBin",
 | 
			
		||||
    "version": "2.0.1",
 | 
			
		||||
    "date": "2025-10-12T10:00:52Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "steveiliop56/tinyauth",
 | 
			
		||||
    "version": "v4.0.0",
 | 
			
		||||
    "date": "2025-10-08T16:12:11Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Jackett/Jackett",
 | 
			
		||||
    "version": "v0.24.115",
 | 
			
		||||
    "date": "2025-10-12T05:54:52Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "authelia/authelia",
 | 
			
		||||
    "version": "v4.39.13",
 | 
			
		||||
    "date": "2025-10-12T05:45:48Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "jeedom/core",
 | 
			
		||||
    "version": "4.4.20",
 | 
			
		||||
    "date": "2025-10-12T00:27:08Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "BerriAI/litellm",
 | 
			
		||||
    "version": "v1.77.7.dev10",
 | 
			
		||||
    "date": "2025-10-09T22:25:13Z"
 | 
			
		||||
    "version": "v1.78.0.rc.1",
 | 
			
		||||
    "date": "2025-10-11T22:11:56Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "gelbphoenix/autocaliweb",
 | 
			
		||||
    "version": "v0.10.3",
 | 
			
		||||
    "date": "2025-10-09T21:55:26Z"
 | 
			
		||||
    "version": "v0.10.4",
 | 
			
		||||
    "date": "2025-10-11T19:53:39Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "raydak-labs/configarr",
 | 
			
		||||
    "version": "v1.17.0",
 | 
			
		||||
    "date": "2025-10-09T19:15:06Z"
 | 
			
		||||
    "name": "jhuckaby/Cronicle",
 | 
			
		||||
    "version": "v0.9.96",
 | 
			
		||||
    "date": "2025-10-11T18:33:27Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Stirling-Tools/Stirling-PDF",
 | 
			
		||||
    "version": "v1.4.0",
 | 
			
		||||
    "date": "2025-10-11T18:16:32Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "MediaBrowser/Emby.Releases",
 | 
			
		||||
    "version": "4.9.1.80",
 | 
			
		||||
    "date": "2025-09-30T20:25:16Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "SigNoz/signoz",
 | 
			
		||||
    "version": "v0.97.0-515a1bda0",
 | 
			
		||||
    "date": "2025-10-11T15:06:55Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "TandoorRecipes/recipes",
 | 
			
		||||
    "version": "2.3.2",
 | 
			
		||||
    "date": "2025-10-11T09:59:27Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "meilisearch/meilisearch",
 | 
			
		||||
    "version": "prototype-docker-alpine-3-22-v5",
 | 
			
		||||
    "date": "2025-10-11T09:04:29Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "duplicati/duplicati",
 | 
			
		||||
    "version": "v2.1.2.3-2.1.2.3_beta_2025-10-11",
 | 
			
		||||
    "date": "2025-10-11T06:49:43Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "morpheus65535/bazarr",
 | 
			
		||||
    "version": "v1.5.3",
 | 
			
		||||
    "date": "2025-09-20T12:12:33Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "home-assistant/core",
 | 
			
		||||
    "version": "2025.10.2",
 | 
			
		||||
    "date": "2025-10-10T21:20:11Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Ombi-app/Ombi",
 | 
			
		||||
    "version": "v4.47.1",
 | 
			
		||||
    "date": "2025-01-05T21:14:23Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "0xERR0R/blocky",
 | 
			
		||||
    "version": "v0.27.0",
 | 
			
		||||
    "date": "2025-10-10T20:11:48Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "keycloak/keycloak",
 | 
			
		||||
    "version": "26.0.16",
 | 
			
		||||
    "date": "2025-10-08T04:44:28Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "homarr-labs/homarr",
 | 
			
		||||
    "version": "v1.41.0",
 | 
			
		||||
    "date": "2025-10-10T19:15:38Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "laurent22/joplin",
 | 
			
		||||
    "version": "server-v3.4.4",
 | 
			
		||||
    "date": "2025-09-25T13:19:26Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "getumbrel/umbrel",
 | 
			
		||||
    "version": "1.4.2",
 | 
			
		||||
    "date": "2025-05-09T08:54:49Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "ollama/ollama",
 | 
			
		||||
    "version": "v0.12.5",
 | 
			
		||||
    "date": "2025-10-10T16:30:53Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Brandawg93/PeaNUT",
 | 
			
		||||
    "version": "v5.16.0",
 | 
			
		||||
    "date": "2025-10-10T16:17:02Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "raydak-labs/configarr",
 | 
			
		||||
    "version": "v1.17.1",
 | 
			
		||||
    "date": "2025-10-10T16:12:41Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "msgbyte/tianji",
 | 
			
		||||
    "version": "v1.27.9",
 | 
			
		||||
    "date": "2025-10-10T14:48:51Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "apache/tomcat",
 | 
			
		||||
    "version": "10.1.48",
 | 
			
		||||
    "date": "2025-10-10T14:46:53Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "element-hq/synapse",
 | 
			
		||||
    "version": "v1.138.4",
 | 
			
		||||
    "date": "2025-10-08T09:11:57Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "crowdsecurity/crowdsec",
 | 
			
		||||
    "version": "v1.7.0",
 | 
			
		||||
    "date": "2025-09-01T10:10:34Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "n8n-io/n8n",
 | 
			
		||||
    "version": "n8n@1.114.4",
 | 
			
		||||
    "date": "2025-10-07T14:28:46Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "semaphoreui/semaphore",
 | 
			
		||||
    "version": "v2.16.34",
 | 
			
		||||
    "date": "2025-10-10T11:57:38Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "azukaar/Cosmos-Server",
 | 
			
		||||
    "version": "v0.18.4",
 | 
			
		||||
    "date": "2025-04-05T19:12:57Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zitadel/zitadel",
 | 
			
		||||
    "version": "v4.3.2",
 | 
			
		||||
    "date": "2025-10-10T08:39:41Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "moghtech/komodo",
 | 
			
		||||
    "version": "v1.19.5",
 | 
			
		||||
    "date": "2025-09-27T20:59:46Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "emqx/emqx",
 | 
			
		||||
    "version": "e6.0.1-alpha.1",
 | 
			
		||||
    "date": "2025-10-10T06:57:48Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "nzbgetcom/nzbget",
 | 
			
		||||
    "version": "v25.4",
 | 
			
		||||
    "date": "2025-10-09T10:27:01Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "mealie-recipes/mealie",
 | 
			
		||||
    "version": "v3.3.2",
 | 
			
		||||
    "date": "2025-10-10T03:45:06Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "projectsend/projectsend",
 | 
			
		||||
    "version": "r1945",
 | 
			
		||||
    "date": "2025-10-10T02:30:05Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "prometheus/alertmanager",
 | 
			
		||||
    "version": "v0.29.0-rc.0",
 | 
			
		||||
    "date": "2025-10-10T01:13:27Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "FlareSolverr/FlareSolverr",
 | 
			
		||||
    "version": "v3.4.2",
 | 
			
		||||
@@ -39,26 +254,6 @@
 | 
			
		||||
    "version": "v0.13.2",
 | 
			
		||||
    "date": "2025-10-09T18:33:46Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "esphome/esphome",
 | 
			
		||||
    "version": "2025.9.3",
 | 
			
		||||
    "date": "2025-10-01T11:30:07Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "MediaBrowser/Emby.Releases",
 | 
			
		||||
    "version": "4.9.1.80",
 | 
			
		||||
    "date": "2025-09-30T20:25:16Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "azukaar/Cosmos-Server",
 | 
			
		||||
    "version": "v0.18.4",
 | 
			
		||||
    "date": "2025-04-05T19:12:57Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "ollama/ollama",
 | 
			
		||||
    "version": "v0.12.4-rc7",
 | 
			
		||||
    "date": "2025-10-09T02:13:38Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "mattermost/mattermost",
 | 
			
		||||
    "version": "server/public/v0.1.20",
 | 
			
		||||
@@ -69,16 +264,16 @@
 | 
			
		||||
    "version": "v25.7.1",
 | 
			
		||||
    "date": "2025-10-09T15:42:11Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "wazuh/wazuh",
 | 
			
		||||
    "version": "coverity-w41-4.14.0",
 | 
			
		||||
    "date": "2025-10-03T18:56:57Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "silverbulletmd/silverbullet",
 | 
			
		||||
    "version": "2.1.9",
 | 
			
		||||
    "date": "2025-10-09T13:57:14Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "msgbyte/tianji",
 | 
			
		||||
    "version": "v1.27.8",
 | 
			
		||||
    "date": "2025-10-09T13:49:59Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "tobychui/zoraxy",
 | 
			
		||||
    "version": "v3.2.7",
 | 
			
		||||
@@ -89,35 +284,10 @@
 | 
			
		||||
    "version": "11.0.1",
 | 
			
		||||
    "date": "2025-10-09T12:34:15Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "nzbgetcom/nzbget",
 | 
			
		||||
    "version": "v25.4",
 | 
			
		||||
    "date": "2025-10-09T10:27:01Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "wazuh/wazuh",
 | 
			
		||||
    "version": "coverity-w41-4.14.0",
 | 
			
		||||
    "date": "2025-10-03T18:56:57Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "firefly-iii/firefly-iii",
 | 
			
		||||
    "version": "v6.4.2",
 | 
			
		||||
    "date": "2025-10-07T08:11:58Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "meilisearch/meilisearch",
 | 
			
		||||
    "version": "prototype-v1.22.2-compaction-task-3",
 | 
			
		||||
    "date": "2025-10-09T08:20:58Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "theonedev/onedev",
 | 
			
		||||
    "version": "v13.0.8",
 | 
			
		||||
    "date": "2025-10-09T06:36:42Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Jackett/Jackett",
 | 
			
		||||
    "version": "v0.24.95",
 | 
			
		||||
    "date": "2025-10-09T05:58:58Z"
 | 
			
		||||
    "date": "2025-10-09T07:13:00Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "documenso/documenso",
 | 
			
		||||
@@ -129,16 +299,6 @@
 | 
			
		||||
    "version": "v2.0.118",
 | 
			
		||||
    "date": "2025-10-09T03:33:01Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "jeedom/core",
 | 
			
		||||
    "version": "4.4.20",
 | 
			
		||||
    "date": "2025-10-09T00:27:04Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "steveiliop56/tinyauth",
 | 
			
		||||
    "version": "v4.0.0",
 | 
			
		||||
    "date": "2025-10-08T16:12:11Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "rabbitmq/rabbitmq-server",
 | 
			
		||||
    "version": "v4.1.4",
 | 
			
		||||
@@ -159,11 +319,6 @@
 | 
			
		||||
    "version": "v1.68.0",
 | 
			
		||||
    "date": "2025-10-08T18:33:12Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "keycloak/keycloak",
 | 
			
		||||
    "version": "26.0.16",
 | 
			
		||||
    "date": "2025-10-08T04:44:28Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "AdguardTeam/AdGuardHome",
 | 
			
		||||
    "version": "v0.107.67",
 | 
			
		||||
@@ -204,46 +359,11 @@
 | 
			
		||||
    "version": "v0.307.0-rc.0",
 | 
			
		||||
    "date": "2025-10-08T11:25:44Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "element-hq/synapse",
 | 
			
		||||
    "version": "v1.138.4",
 | 
			
		||||
    "date": "2025-10-08T09:11:57Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "n8n-io/n8n",
 | 
			
		||||
    "version": "n8n@1.114.4",
 | 
			
		||||
    "date": "2025-10-07T14:28:46Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "authelia/authelia",
 | 
			
		||||
    "version": "v4.39.12",
 | 
			
		||||
    "date": "2025-10-08T08:03:01Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "gotson/komga",
 | 
			
		||||
    "version": "1.23.5",
 | 
			
		||||
    "date": "2025-10-08T07:31:37Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "SigNoz/signoz",
 | 
			
		||||
    "version": "v0.97.0-rc.3",
 | 
			
		||||
    "date": "2025-10-08T06:53:48Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "morpheus65535/bazarr",
 | 
			
		||||
    "version": "v1.5.3",
 | 
			
		||||
    "date": "2025-09-20T12:12:33Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "TandoorRecipes/recipes",
 | 
			
		||||
    "version": "2.3.1",
 | 
			
		||||
    "date": "2025-10-08T05:58:37Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "booklore-app/booklore",
 | 
			
		||||
    "version": "v1.5.1",
 | 
			
		||||
    "date": "2025-10-07T21:57:21Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "open-webui/open-webui",
 | 
			
		||||
    "version": "v0.6.33",
 | 
			
		||||
@@ -259,11 +379,6 @@
 | 
			
		||||
    "version": "v0.15.1",
 | 
			
		||||
    "date": "2025-10-07T20:30:56Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "runtipi/runtipi",
 | 
			
		||||
    "version": "nightly",
 | 
			
		||||
    "date": "2025-10-07T18:00:49Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "coder/code-server",
 | 
			
		||||
    "version": "v4.104.3",
 | 
			
		||||
@@ -284,11 +399,6 @@
 | 
			
		||||
    "version": "jenkins-2.531",
 | 
			
		||||
    "date": "2025-10-07T13:42:39Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zitadel/zitadel",
 | 
			
		||||
    "version": "v4.3.1",
 | 
			
		||||
    "date": "2025-10-07T12:55:04Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "zwave-js/zwave-js-ui",
 | 
			
		||||
    "version": "v11.4.1",
 | 
			
		||||
@@ -374,11 +484,6 @@
 | 
			
		||||
    "version": "v1.5.9",
 | 
			
		||||
    "date": "2025-10-06T08:34:01Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "moghtech/komodo",
 | 
			
		||||
    "version": "v1.19.5",
 | 
			
		||||
    "date": "2025-09-27T20:59:46Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "hyperion-project/hyperion.ng",
 | 
			
		||||
    "version": "2.1.1",
 | 
			
		||||
@@ -419,11 +524,6 @@
 | 
			
		||||
    "version": "v0.62.11",
 | 
			
		||||
    "date": "2025-10-05T07:31:57Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "YunoHost/yunohost",
 | 
			
		||||
    "version": "debian/12.1.27",
 | 
			
		||||
    "date": "2025-10-05T02:16:42Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "webmin/webmin",
 | 
			
		||||
    "version": "2.520",
 | 
			
		||||
@@ -434,36 +534,11 @@
 | 
			
		||||
    "version": "v0.8.8-beta",
 | 
			
		||||
    "date": "2025-10-04T15:56:29Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "globaleaks/globaleaks-whistleblowing-software",
 | 
			
		||||
    "version": "v5.0.84",
 | 
			
		||||
    "date": "2025-10-04T08:06:12Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Luligu/matterbridge",
 | 
			
		||||
    "version": "3.3.0",
 | 
			
		||||
    "date": "2025-10-03T21:22:14Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "homarr-labs/homarr",
 | 
			
		||||
    "version": "v1.40.0",
 | 
			
		||||
    "date": "2025-10-03T19:14:46Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "home-assistant/core",
 | 
			
		||||
    "version": "2025.10.1",
 | 
			
		||||
    "date": "2025-10-03T18:10:59Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "immich-app/immich",
 | 
			
		||||
    "version": "v2.0.1",
 | 
			
		||||
    "date": "2025-10-03T16:32:01Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "duplicati/duplicati",
 | 
			
		||||
    "version": "v2.1.1.104-2.1.1.104_canary_2025-10-03",
 | 
			
		||||
    "date": "2025-10-03T13:14:48Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "docker/compose",
 | 
			
		||||
    "version": "v2.40.0",
 | 
			
		||||
@@ -474,16 +549,6 @@
 | 
			
		||||
    "version": "8.2.2",
 | 
			
		||||
    "date": "2025-10-03T06:22:38Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "mealie-recipes/mealie",
 | 
			
		||||
    "version": "v3.3.1",
 | 
			
		||||
    "date": "2025-10-02T17:10:34Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "jhuckaby/Cronicle",
 | 
			
		||||
    "version": "v0.9.95",
 | 
			
		||||
    "date": "2025-10-02T16:07:18Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "cockpit-project/cockpit",
 | 
			
		||||
    "version": "348",
 | 
			
		||||
@@ -494,21 +559,11 @@
 | 
			
		||||
    "version": "v3.2.3-beta",
 | 
			
		||||
    "date": "2025-10-02T13:48:14Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "apache/tomcat",
 | 
			
		||||
    "version": "10.1.47",
 | 
			
		||||
    "date": "2025-10-02T12:12:04Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "actualbudget/actual",
 | 
			
		||||
    "version": "v25.10.0",
 | 
			
		||||
    "date": "2025-10-02T11:34:39Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "laurent22/joplin",
 | 
			
		||||
    "version": "server-v3.4.4",
 | 
			
		||||
    "date": "2025-09-25T13:19:26Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "NodeBB/NodeBB",
 | 
			
		||||
    "version": "v4.6.0",
 | 
			
		||||
@@ -564,11 +619,6 @@
 | 
			
		||||
    "version": "4.4.46",
 | 
			
		||||
    "date": "2025-09-30T13:21:24Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "emqx/emqx",
 | 
			
		||||
    "version": "e6.0.0",
 | 
			
		||||
    "date": "2025-09-30T12:04:20Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "thomiceli/opengist",
 | 
			
		||||
    "version": "v1.11.1",
 | 
			
		||||
@@ -664,11 +714,6 @@
 | 
			
		||||
    "version": "v1.26.0-dev",
 | 
			
		||||
    "date": "2025-09-24T16:45:38Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "crowdsecurity/crowdsec",
 | 
			
		||||
    "version": "v1.7.0",
 | 
			
		||||
    "date": "2025-09-01T10:10:34Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Threadfin/Threadfin",
 | 
			
		||||
    "version": "1.2.39",
 | 
			
		||||
@@ -729,11 +774,6 @@
 | 
			
		||||
    "version": "v2.2.0",
 | 
			
		||||
    "date": "2025-09-23T21:46:21Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "getumbrel/umbrel",
 | 
			
		||||
    "version": "1.4.2",
 | 
			
		||||
    "date": "2025-05-09T08:54:49Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "postgres/postgres",
 | 
			
		||||
    "version": "REL_18_0",
 | 
			
		||||
@@ -819,11 +859,6 @@
 | 
			
		||||
    "version": "v0.23.0",
 | 
			
		||||
    "date": "2025-09-17T10:15:51Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "semaphoreui/semaphore",
 | 
			
		||||
    "version": "v2.16.31",
 | 
			
		||||
    "date": "2025-09-17T09:57:55Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "WGDashboard/WGDashboard",
 | 
			
		||||
    "version": "v4.3.0.1",
 | 
			
		||||
@@ -854,16 +889,6 @@
 | 
			
		||||
    "version": "3.2.0",
 | 
			
		||||
    "date": "2025-09-15T18:03:08Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "ellite/Wallos",
 | 
			
		||||
    "version": "v4.3.0",
 | 
			
		||||
    "date": "2025-09-15T17:34:48Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Brandawg93/PeaNUT",
 | 
			
		||||
    "version": "v5.15.0",
 | 
			
		||||
    "date": "2025-09-15T17:25:58Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "linuxserver/Heimdall",
 | 
			
		||||
    "version": "v2.7.6",
 | 
			
		||||
@@ -939,11 +964,6 @@
 | 
			
		||||
    "version": "RELEASE.2025-09-07T16-13-09Z",
 | 
			
		||||
    "date": "2025-09-07T18:53:04Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Stirling-Tools/Stirling-PDF",
 | 
			
		||||
    "version": "v1.3.2",
 | 
			
		||||
    "date": "2025-09-05T18:44:15Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "CrazyWolf13/streamlink-webui",
 | 
			
		||||
    "version": "0.6",
 | 
			
		||||
@@ -1144,11 +1164,6 @@
 | 
			
		||||
    "version": "v0.58.0",
 | 
			
		||||
    "date": "2025-07-28T18:59:50Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "PrivateBin/PrivateBin",
 | 
			
		||||
    "version": "2.0.0",
 | 
			
		||||
    "date": "2025-07-28T07:48:40Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "umami-software/umami",
 | 
			
		||||
    "version": "v2.19.0",
 | 
			
		||||
@@ -1284,11 +1299,6 @@
 | 
			
		||||
    "version": "v1.13.0",
 | 
			
		||||
    "date": "2025-05-25T20:21:13Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "0xERR0R/blocky",
 | 
			
		||||
    "version": "v0.26.2",
 | 
			
		||||
    "date": "2025-05-22T05:24:42Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "hansmi/prometheus-paperless-exporter",
 | 
			
		||||
    "version": "v0.0.8",
 | 
			
		||||
@@ -1409,11 +1419,6 @@
 | 
			
		||||
    "version": "v2.4.2",
 | 
			
		||||
    "date": "2025-03-08T10:49:04Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "prometheus/alertmanager",
 | 
			
		||||
    "version": "v0.28.1",
 | 
			
		||||
    "date": "2025-03-07T15:41:35Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "toniebox-reverse-engineering/teddycloud",
 | 
			
		||||
    "version": "tc_v0.6.4",
 | 
			
		||||
@@ -1504,11 +1509,6 @@
 | 
			
		||||
    "version": "v1.4.0",
 | 
			
		||||
    "date": "2024-08-06T19:57:33Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "projectsend/projectsend",
 | 
			
		||||
    "version": "r1720",
 | 
			
		||||
    "date": "2024-08-03T04:07:20Z"
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "hywax/mafl",
 | 
			
		||||
    "version": "v0.15.4",
 | 
			
		||||
 
 | 
			
		||||
@@ -6,18 +6,18 @@ import React from "react";
 | 
			
		||||
 | 
			
		||||
import { ThemeProvider } from "@/components/theme-provider";
 | 
			
		||||
import { analytics, basePath } from "@/config/site-config";
 | 
			
		||||
import "@/styles/globals.css";
 | 
			
		||||
import QueryProvider from "@/components/query-provider";
 | 
			
		||||
import { Toaster } from "@/components/ui/sonner";
 | 
			
		||||
import Footer from "@/components/footer";
 | 
			
		||||
import Navbar from "@/components/navbar";
 | 
			
		||||
import "@/styles/globals.css";
 | 
			
		||||
 | 
			
		||||
const inter = Inter({ subsets: ["latin"] });
 | 
			
		||||
 | 
			
		||||
export const metadata: Metadata = {
 | 
			
		||||
  title: "Proxmox VE Helper-Scripts",
 | 
			
		||||
  description:
 | 
			
		||||
    "The official website for the Proxmox VE Helper-Scripts (Community) repository. Featuring over 300+ scripts to help you manage your Proxmox Virtual Environment.",
 | 
			
		||||
    "The official website for the Proxmox VE Helper-Scripts (Community) repository. Featuring over 400+ scripts to help you manage your Proxmox Virtual Environment.",
 | 
			
		||||
  applicationName: "Proxmox VE Helper-Scripts",
 | 
			
		||||
  generator: "Next.js",
 | 
			
		||||
  referrer: "origin-when-cross-origin",
 | 
			
		||||
@@ -57,7 +57,7 @@ export const metadata: Metadata = {
 | 
			
		||||
  openGraph: {
 | 
			
		||||
    title: "Proxmox VE Helper-Scripts",
 | 
			
		||||
    description:
 | 
			
		||||
      "The official website for the Proxmox VE Helper-Scripts (Community) repository. Featuring over 300+ scripts to help you manage your Proxmox Virtual Environment.",
 | 
			
		||||
      "The official website for the Proxmox VE Helper-Scripts (Community) repository. Featuring over 400+ scripts to help you manage your Proxmox Virtual Environment.",
 | 
			
		||||
    url: `https://community-scripts.github.io/${basePath}/`,
 | 
			
		||||
    siteName: "Proxmox VE Helper-Scripts",
 | 
			
		||||
    images: [
 | 
			
		||||
@@ -76,7 +76,7 @@ export const metadata: Metadata = {
 | 
			
		||||
    title: "Proxmox VE Helper-Scripts",
 | 
			
		||||
    creator: "@BramSuurdje",
 | 
			
		||||
    description:
 | 
			
		||||
      "The official website for the Proxmox VE Helper-Scripts (Community) repository. Featuring over 300+ scripts to help you manage your Proxmox Virtual Environment.",
 | 
			
		||||
      "The official website for the Proxmox VE Helper-Scripts (Community) repository. Featuring over 400+ scripts to help you manage your Proxmox Virtual Environment.",
 | 
			
		||||
    images: [`https://community-scripts.github.io/${basePath}/defaultimg.png`],
 | 
			
		||||
  },
 | 
			
		||||
  manifest: "/manifest.webmanifest",
 | 
			
		||||
@@ -105,7 +105,6 @@ export default function RootLayout({
 | 
			
		||||
          <div className="flex w-full flex-col justify-center">
 | 
			
		||||
            <NuqsAdapter>
 | 
			
		||||
              <QueryProvider>
 | 
			
		||||
 | 
			
		||||
                <Navbar />
 | 
			
		||||
                <div className="flex min-h-screen flex-col justify-center">
 | 
			
		||||
                  <div className="flex w-full justify-center">
 | 
			
		||||
@@ -117,7 +116,6 @@ export default function RootLayout({
 | 
			
		||||
                  <Footer />
 | 
			
		||||
                </div>
 | 
			
		||||
              </QueryProvider>
 | 
			
		||||
 | 
			
		||||
            </NuqsAdapter>
 | 
			
		||||
          </div>
 | 
			
		||||
        </ThemeProvider>
 | 
			
		||||
 
 | 
			
		||||
@@ -111,11 +111,11 @@ export default function Page() {
 | 
			
		||||
                  We are a community-driven initiative that simplifies the setup of Proxmox Virtual Environment (VE).
 | 
			
		||||
                </p>
 | 
			
		||||
                <p>
 | 
			
		||||
                  With 300+ scripts to help you manage your
 | 
			
		||||
                  With 400+ scripts to help you manage your
 | 
			
		||||
                  {" "}
 | 
			
		||||
                  <b>Proxmox VE</b>
 | 
			
		||||
                  , whether you're a seasoned
 | 
			
		||||
                  user or a newcomer, we've got you covered.
 | 
			
		||||
                  , whether you're a seasoned user or a
 | 
			
		||||
                  newcomer, we've got you covered.
 | 
			
		||||
                </p>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -14,16 +14,14 @@ network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Dependencies"
 | 
			
		||||
$STD apk add --no-cache curl openssl apache2-utils
 | 
			
		||||
$STD apk add --no-cache openssl apache2-utils
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Tinyauth"
 | 
			
		||||
mkdir -p /opt/tinyauth
 | 
			
		||||
 | 
			
		||||
RELEASE=$(curl -s https://api.github.com/repos/steveiliop56/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
curl -fsSL "https://github.com/steveiliop56/tinyauth/releases/download/v${RELEASE}/tinyauth-amd64" -o /opt/tinyauth/tinyauth
 | 
			
		||||
chmod +x /opt/tinyauth/tinyauth
 | 
			
		||||
 | 
			
		||||
PASS=$(openssl rand -base64 8 | tr -dc 'a-zA-Z0-9' | head -c 8)
 | 
			
		||||
USER=$(htpasswd -Bbn "tinyauth" "${PASS}")
 | 
			
		||||
 | 
			
		||||
@@ -32,24 +30,18 @@ Tinyauth Credentials
 | 
			
		||||
Username: tinyauth
 | 
			
		||||
Password: ${PASS}
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
echo "${RELEASE}" >/opt/tinyauth_version.txt
 | 
			
		||||
echo "${RELEASE}" >~/.tinyauth
 | 
			
		||||
msg_ok "Installed Tinyauth"
 | 
			
		||||
 | 
			
		||||
read -p "${TAB3}Enter your Tinyauth subdomain (e.g. https://tinyauth.example.com): " app_url
 | 
			
		||||
 | 
			
		||||
msg_info "Creating Tinyauth Service"
 | 
			
		||||
SECRET=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | head -c 32)
 | 
			
		||||
read -r -p "${TAB3}Enter your Tinyauth subdomain (e.g. https://tinyauth.example.com): " app_url
 | 
			
		||||
 | 
			
		||||
cat <<EOF >/opt/tinyauth/.env
 | 
			
		||||
DATABASE_PATH=/opt/tinyauth/database.db
 | 
			
		||||
SECRET=${SECRET}
 | 
			
		||||
USERS=${USER}
 | 
			
		||||
USERS='${USER}'
 | 
			
		||||
APP_URL=${app_url}
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
sed -i -e 's/\$/\$\$/g' /opt/tinyauth/.env
 | 
			
		||||
 | 
			
		||||
msg_info "Creating Service"
 | 
			
		||||
cat <<'EOF' >/etc/init.d/tinyauth
 | 
			
		||||
#!/sbin/openrc-run
 | 
			
		||||
description="Tinyauth Service"
 | 
			
		||||
@@ -69,7 +61,6 @@ depend() {
 | 
			
		||||
    use net
 | 
			
		||||
}
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
chmod +x /etc/init.d/tinyauth
 | 
			
		||||
$STD rc-update add tinyauth default
 | 
			
		||||
msg_ok "Enabled Tinyauth Service"
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,7 @@ $STD apt install -y \
 | 
			
		||||
  make
 | 
			
		||||
msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
HOST_IP=$(hostname -I | awk '{print $1}')
 | 
			
		||||
NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/docmost/docmost/main/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
 | 
			
		||||
PG_VERSION="16" setup_postgresql
 | 
			
		||||
fetch_and_deploy_gh_release "docmost" "docmost/docmost"
 | 
			
		||||
@@ -50,6 +51,7 @@ sed -i -e "s|APP_SECRET=.*|APP_SECRET=$(openssl rand -base64 32 | tr -dc 'a-zA-Z
 | 
			
		||||
  -e "s|FILE_UPLOAD_SIZE_LIMIT=.*|FILE_UPLOAD_SIZE_LIMIT=50mb|" \
 | 
			
		||||
  -e "s|DRAWIO_URL=.*|DRAWIO_URL=https://embed.diagrams.net|" \
 | 
			
		||||
  -e "s|DISABLE_TELEMETRY=.*|DISABLE_TELEMETRY=true|" \
 | 
			
		||||
  -e "s|APP_URL=.*|APP_URL=http://$HOST_IP:3000|" \
 | 
			
		||||
  /opt/docmost/.env
 | 
			
		||||
export NODE_OPTIONS="--max-old-space-size=2048"
 | 
			
		||||
$STD pnpm install
 | 
			
		||||
 
 | 
			
		||||
@@ -46,7 +46,6 @@ $STD apt-get install --no-install-recommends -y \
 | 
			
		||||
  libgomp1 \
 | 
			
		||||
  liblqr-1-0 \
 | 
			
		||||
  libltdl7 \
 | 
			
		||||
  libmimalloc3 \
 | 
			
		||||
  libopenjp2-7 \
 | 
			
		||||
  meson \
 | 
			
		||||
  ninja-build \
 | 
			
		||||
@@ -109,6 +108,23 @@ if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
 | 
			
		||||
  msg_ok "Installed OpenVINO dependencies"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
msg_info "Configuring Debian Testing Repo"
 | 
			
		||||
sed -i 's/ trixie-updates/ trixie-updates testing/g' /etc/apt/sources.list.d/debian.sources
 | 
			
		||||
cat <<EOF >/etc/apt/preferences.d/preferences
 | 
			
		||||
Package: *
 | 
			
		||||
Pin: release a=unstable
 | 
			
		||||
Pin-Priority: 450
 | 
			
		||||
 | 
			
		||||
Package: *
 | 
			
		||||
Pin:release a=testing
 | 
			
		||||
Pin-Priority: 450
 | 
			
		||||
EOF
 | 
			
		||||
$STD apt-get update
 | 
			
		||||
msg_ok "Configured Debian Testing repo"
 | 
			
		||||
msg_info "Installing libmimalloc3"
 | 
			
		||||
$STD apt-get install -t testing --no-install-recommends -yqq libmimalloc3
 | 
			
		||||
msg_ok "Installed libmimalloc3"
 | 
			
		||||
 | 
			
		||||
PNPM_VERSION="$(curl -fsSL "https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/package.json" | jq -r '.packageManager | split("@")[1]')"
 | 
			
		||||
NODE_VERSION="22" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
 | 
			
		||||
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,16 @@ setting_up_container
 | 
			
		||||
network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
JAVA_VERSION="21" setup_java
 | 
			
		||||
msg_info "Installing dependencies"
 | 
			
		||||
$STD apt -y install \
 | 
			
		||||
  libarchive-dev \
 | 
			
		||||
  libjxl-dev \
 | 
			
		||||
  libheif-dev \
 | 
			
		||||
  libwebp-dev
 | 
			
		||||
msg_ok "Installed dependencies"
 | 
			
		||||
 | 
			
		||||
JAVA_VERSION="23" setup_java
 | 
			
		||||
fetch_and_deploy_gh_release "kepubify" "pgaskin/kepubify" "singlefile" "latest" "/usr/bin" "kepubify-linux-64bit"
 | 
			
		||||
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "komga-org" "gotson/komga" "singlefile" "latest" "/opt/komga" "komga*.jar"
 | 
			
		||||
mv /opt/komga/komga-*.jar /opt/komga/komga.jar
 | 
			
		||||
 | 
			
		||||
@@ -26,7 +35,8 @@ After=syslog.target network.target
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
WorkingDirectory=/opt/komga/
 | 
			
		||||
ExecStart=/usr/bin/java -jar -Xmx2g komga.jar
 | 
			
		||||
Environment=LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
 | 
			
		||||
ExecStart=/usr/bin/java --enable-native-access=ALL-UNNAMED -jar -Xmx2g komga.jar
 | 
			
		||||
TimeoutStopSec=20
 | 
			
		||||
KillMode=process
 | 
			
		||||
Restart=on-failure
 | 
			
		||||
@@ -41,6 +51,7 @@ motd_ssh
 | 
			
		||||
customize
 | 
			
		||||
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
$STD apt-get -y autoremove
 | 
			
		||||
$STD apt-get -y autoclean
 | 
			
		||||
$STD apt -y autoremove
 | 
			
		||||
$STD apt -y autoclean
 | 
			
		||||
$STD apt -y clean
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										43
									
								
								install/prometheus-blackbox-exporter-install.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								install/prometheus-blackbox-exporter-install.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: Marfnl
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/prometheus/blackbox_exporter
 | 
			
		||||
 | 
			
		||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
 | 
			
		||||
color
 | 
			
		||||
verb_ip6
 | 
			
		||||
catch_errors
 | 
			
		||||
setting_up_container
 | 
			
		||||
network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
fetch_and_deploy_gh_release "blackbox-exporter" "prometheus/blackbox_exporter" "prebuild" "latest" "/opt/blackbox-exporter" "blackbox_exporter-*.linux-amd64.tar.gz"
 | 
			
		||||
 | 
			
		||||
msg_info "Creating Service"
 | 
			
		||||
cat <<EOF >/etc/systemd/system/blackbox-exporter.service
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Blackbox Exporter Service
 | 
			
		||||
After=network.target
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
WorkingDirectory=/opt/blackbox-exporter
 | 
			
		||||
ExecStart=/opt/blackbox-exporter/blackbox_exporter
 | 
			
		||||
Restart=on-failure
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
EOF
 | 
			
		||||
systemctl enable -q --now blackbox-exporter
 | 
			
		||||
msg_ok "Service Created"
 | 
			
		||||
 | 
			
		||||
motd_ssh
 | 
			
		||||
customize
 | 
			
		||||
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
$STD apt -y autoremove
 | 
			
		||||
$STD apt -y autoclean
 | 
			
		||||
$STD apt -y clean
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
@@ -14,7 +14,7 @@ network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
msg_info "Installing SearXNG dependencies"
 | 
			
		||||
echo "deb http://deb.debian.org/debian bookworm-backports main" > /etc/apt/sources.list.d/backports.list
 | 
			
		||||
echo "deb http://deb.debian.org/debian bookworm-backports main" >/etc/apt/sources.list.d/backports.list
 | 
			
		||||
$STD apt-get update
 | 
			
		||||
$STD apt-get install -y \
 | 
			
		||||
  python3-dev python3-babel python3-venv python-is-python3 \
 | 
			
		||||
@@ -36,7 +36,7 @@ msg_info "Creating Python virtual environment"
 | 
			
		||||
sudo -H -u searxng bash -c '
 | 
			
		||||
  python3 -m venv /usr/local/searxng/searx-pyenv &&
 | 
			
		||||
  . /usr/local/searxng/searx-pyenv/bin/activate &&
 | 
			
		||||
  pip install -U pip setuptools wheel pyyaml lxml &&
 | 
			
		||||
  pip install -U pip setuptools wheel pyyaml lxml msgspec &&
 | 
			
		||||
  pip install --use-pep517 --no-build-isolation -e /usr/local/searxng/searxng-src
 | 
			
		||||
'
 | 
			
		||||
msg_ok "Python environment ready"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										82
									
								
								install/sonarqube-install.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								install/sonarqube-install.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,82 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: prop4n
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://docs.sonarsource.com/sonarqube-server
 | 
			
		||||
 | 
			
		||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
 | 
			
		||||
color
 | 
			
		||||
verb_ip6
 | 
			
		||||
catch_errors
 | 
			
		||||
setting_up_container
 | 
			
		||||
network_check
 | 
			
		||||
update_os
 | 
			
		||||
 | 
			
		||||
JAVA_VERSION="21" setup_java
 | 
			
		||||
PG_VERSION="17" setup_postgresql
 | 
			
		||||
 | 
			
		||||
msg_info "Installing Postgresql"
 | 
			
		||||
DB_NAME="sonarqube"
 | 
			
		||||
DB_USER="sonarqube"
 | 
			
		||||
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
 | 
			
		||||
$STD sudo -u postgres psql -c "CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';"
 | 
			
		||||
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME OWNER $DB_USER;"
 | 
			
		||||
{
 | 
			
		||||
  echo "Application Credentials"
 | 
			
		||||
  echo "DB_NAME: $DB_NAME"
 | 
			
		||||
  echo "DB_USER: $DB_USER"
 | 
			
		||||
  echo "DB_PASS: $DB_PASS"
 | 
			
		||||
} >>~/sonarqube.creds
 | 
			
		||||
msg_ok "Installed PostgreSQL"
 | 
			
		||||
 | 
			
		||||
msg_info "Configuring SonarQube"
 | 
			
		||||
temp_file=$(mktemp)
 | 
			
		||||
RELEASE=$(curl -fsSL https://api.github.com/repos/SonarSource/sonarqube/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
curl -fsSL "https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-${RELEASE}.zip" -o $temp_file
 | 
			
		||||
unzip -q "$temp_file" -d /opt
 | 
			
		||||
mv /opt/sonarqube-* /opt/sonarqube
 | 
			
		||||
$STD useradd -r -m -U -d /opt/sonarqube -s /bin/bash sonarqube
 | 
			
		||||
chown -R sonarqube:sonarqube /opt/sonarqube
 | 
			
		||||
chmod -R 755 /opt/sonarqube
 | 
			
		||||
mkdir -p /opt/sonarqube/conf
 | 
			
		||||
cat <<EOF >/opt/sonarqube/conf/sonar.properties
 | 
			
		||||
sonar.jdbc.username=${DB_USER}
 | 
			
		||||
sonar.jdbc.password=${DB_PASS}
 | 
			
		||||
sonar.jdbc.url=jdbc:postgresql://localhost/${DB_NAME}
 | 
			
		||||
sonar.web.host=0.0.0.0
 | 
			
		||||
sonar.web.port=9000
 | 
			
		||||
EOF
 | 
			
		||||
chmod +x /opt/sonarqube/bin/linux-x86-64/sonar.sh
 | 
			
		||||
echo ${RELEASE} >>~/.sonarqube
 | 
			
		||||
msg_ok "Configured SonarQube"
 | 
			
		||||
 | 
			
		||||
msg_info "Creating Service"
 | 
			
		||||
cat <<EOF >/etc/systemd/system/sonarqube.service
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=SonarQube service
 | 
			
		||||
After=postgresql.service
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
Type=forking
 | 
			
		||||
ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start
 | 
			
		||||
ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop
 | 
			
		||||
User=sonarqube
 | 
			
		||||
Group=sonarqube
 | 
			
		||||
Restart=on-failure
 | 
			
		||||
LimitNOFILE=131072
 | 
			
		||||
LimitNPROC=8192
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
EOF
 | 
			
		||||
systemctl enable -q --now sonarqube
 | 
			
		||||
msg_ok "Service Created"
 | 
			
		||||
 | 
			
		||||
motd_ssh
 | 
			
		||||
customize
 | 
			
		||||
 | 
			
		||||
msg_info "Cleaning up"
 | 
			
		||||
$STD apt -y autoremove
 | 
			
		||||
$STD apt -y autoclean
 | 
			
		||||
$STD apt -y clean
 | 
			
		||||
msg_ok "Cleaned"
 | 
			
		||||
@@ -27,7 +27,7 @@ chmod +x Tdarr_Updater
 | 
			
		||||
$STD ./Tdarr_Updater
 | 
			
		||||
msg_ok "Installed Tdarr"
 | 
			
		||||
 | 
			
		||||
sg_info "Setting Up Hardware Acceleration"
 | 
			
		||||
msg_info "Setting Up Hardware Acceleration"
 | 
			
		||||
$STD apt -y install \
 | 
			
		||||
  va-driver-all \
 | 
			
		||||
  ocl-icd-libopencl1 \
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@ curl -fsSL "https://packages.adoptium.net/artifactory/api/gpg/key/public" | gpg
 | 
			
		||||
cat <<EOF | sudo tee /etc/apt/sources.list.d/adoptium.sources >/dev/null
 | 
			
		||||
Types: deb
 | 
			
		||||
URIs: https://packages.adoptium.net/artifactory/deb
 | 
			
		||||
Suites: trixie
 | 
			
		||||
Suites: bookworm
 | 
			
		||||
Components: main
 | 
			
		||||
Architectures: amd64
 | 
			
		||||
Signed-By: /usr/share/keyrings/adoptium.gpg
 | 
			
		||||
@@ -54,7 +54,7 @@ else
 | 
			
		||||
  cat <<EOF | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.sources >/dev/null
 | 
			
		||||
Types: deb
 | 
			
		||||
URIs: http://repo.mongodb.org/apt/debian
 | 
			
		||||
Suites: trixie/mongodb-org/7.0
 | 
			
		||||
Suites: bookworm/mongodb-org/7.0
 | 
			
		||||
Components: main
 | 
			
		||||
Signed-By: /usr/share/keyrings/mongodb-server-7.0.gpg
 | 
			
		||||
EOF
 | 
			
		||||
 
 | 
			
		||||
@@ -42,7 +42,7 @@ curl -fsSL "https://github.com/wger-project/wger/archive/refs/tags/$RELEASE.tar.
 | 
			
		||||
tar xzf "$RELEASE".tar.gz
 | 
			
		||||
mv wger-"$RELEASE" /home/wger/src
 | 
			
		||||
cd /home/wger/src || exit
 | 
			
		||||
$STD pip install -r requirements_prod.txt
 | 
			
		||||
$STD pip install -r requirements_prod.txt --ignore-installed
 | 
			
		||||
$STD pip install -e .
 | 
			
		||||
$STD wger create-settings --database-path /home/wger/db/database.sqlite
 | 
			
		||||
sed -i "s#home/wger/src/media#home/wger/media#g" /home/wger/src/settings.py
 | 
			
		||||
 
 | 
			
		||||
@@ -102,8 +102,14 @@ fi
 | 
			
		||||
msg_ok "Configured Fping"
 | 
			
		||||
 | 
			
		||||
msg_info "Starting Services"
 | 
			
		||||
systemctl restart zabbix-server zabbix-agent2 apache2
 | 
			
		||||
systemctl enable -q --now zabbix-server zabbix-agent2 apache2
 | 
			
		||||
if [ "$AGENT_PKG" = "zabbix-agent2" ]; then
 | 
			
		||||
  AGENT_SERVICE="zabbix-agent2"
 | 
			
		||||
else
 | 
			
		||||
  AGENT_SERVICE="zabbix-agent"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
systemctl restart zabbix-server
 | 
			
		||||
systemctl enable -q --now zabbix-server $AGENT_SERVICE apache2
 | 
			
		||||
msg_ok "Started Services"
 | 
			
		||||
 | 
			
		||||
motd_ssh
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,7 @@ curl -fsSL https://dl.packager.io/srv/zammad/zammad/key | gpg --dearmor | sudo t
 | 
			
		||||
cat <<EOF | sudo tee /etc/apt/sources.list.d/zammad.sources >/dev/null
 | 
			
		||||
Types: deb
 | 
			
		||||
URIs: https://dl.packager.io/srv/deb/zammad/zammad/stable/debian
 | 
			
		||||
Suites: 13
 | 
			
		||||
Suites: 12
 | 
			
		||||
Components: main
 | 
			
		||||
Signed-By: /etc/apt/keyrings/pkgr-zammad.gpg
 | 
			
		||||
EOF
 | 
			
		||||
 
 | 
			
		||||
@@ -41,6 +41,7 @@ function perform_backup {
 | 
			
		||||
 | 
			
		||||
  # Build a list of directories for backup
 | 
			
		||||
  local CTID_MENU=()
 | 
			
		||||
  CTID_MENU=("ALL" "Backup all folders" "OFF")
 | 
			
		||||
  while read -r dir; do
 | 
			
		||||
    CTID_MENU+=("$(basename "$dir")" "$dir " "OFF")
 | 
			
		||||
  done < <(ls -d "${DIR}"*)
 | 
			
		||||
@@ -52,7 +53,13 @@ function perform_backup {
 | 
			
		||||
      "\nSelect what files/directories to backup:\n" 16 $(((${#DIRNAME} + 2) + 88)) 6 "${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || return
 | 
			
		||||
 | 
			
		||||
    for selected_dir in ${HOST_BACKUP//\"/}; do
 | 
			
		||||
      if [[ "$selected_dir" == "ALL" ]]; then
 | 
			
		||||
        # if ALL was chosen, secure all folders
 | 
			
		||||
        selected_directories=("${DIR}"*/)
 | 
			
		||||
        break
 | 
			
		||||
      else
 | 
			
		||||
        selected_directories+=("${DIR}$selected_dir")
 | 
			
		||||
      fi
 | 
			
		||||
    done
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
@@ -62,7 +69,7 @@ function perform_backup {
 | 
			
		||||
  read -p "Press ENTER to continue..."
 | 
			
		||||
  header_info
 | 
			
		||||
  echo "Working..."
 | 
			
		||||
  tar -czf "$BACKUP_PATH$BACKUP_FILE-$(date +%Y_%m_%d).tar.gz" --absolute-names "${selected_directories[@]}"
 | 
			
		||||
  tar -czf "$BACKUP_PATH$BACKUP_FILE-$(date +%Y_%m_%dT%H_%M).tar.gz" --absolute-names "${selected_directories[@]}"
 | 
			
		||||
  header_info
 | 
			
		||||
  echo -e "\nFinished"
 | 
			
		||||
  echo -e "\e[1;33m \nA backup is rendered ineffective when it remains stored on the host.\n \e[0m"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user