mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 02:12:49 +00:00 
			
		
		
		
	Compare commits
	
		
			217 Commits
		
	
	
		
			2024-12-25
			...
			2025-01-09
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					749e487032 | ||
| 
						 | 
					be1821b16f | ||
| 
						 | 
					baa578c20a | ||
| 
						 | 
					d8f433c94a | ||
| 
						 | 
					3ad50eb427 | ||
| 
						 | 
					2c24952cd2 | ||
| 
						 | 
					9d2ba6739b | ||
| 
						 | 
					3a9d55abf4 | ||
| 
						 | 
					8a9e162e9b | ||
| 
						 | 
					0b85f26a4e | ||
| 
						 | 
					14e185af85 | ||
| 
						 | 
					5170056078 | ||
| 
						 | 
					9a7dcef25a | ||
| 
						 | 
					045ba81533 | ||
| 
						 | 
					4985fda206 | ||
| 
						 | 
					d8ad4545ad | ||
| 
						 | 
					179defdd88 | ||
| 
						 | 
					da071d800b | ||
| 
						 | 
					6653b92972 | ||
| 
						 | 
					bfd6b58406 | ||
| 
						 | 
					189dbf67b6 | ||
| 
						 | 
					b2ba72a906 | ||
| 
						 | 
					0ce45140c7 | ||
| 
						 | 
					c6efe42eee | ||
| 
						 | 
					5c1954c85d | ||
| 
						 | 
					e592b80716 | ||
| 
						 | 
					8dd43ddb81 | ||
| 
						 | 
					eb8ebfe7e4 | ||
| 
						 | 
					d56d8dd369 | ||
| 
						 | 
					5af9dd9e45 | ||
| 
						 | 
					ec1e5b3a4a | ||
| 
						 | 
					37f4a841a6 | ||
| 
						 | 
					02401aa35d | ||
| 
						 | 
					2646ea6317 | ||
| 
						 | 
					6b183c9e4e | ||
| 
						 | 
					19e7751fb9 | ||
| 
						 | 
					3bb26b7b41 | ||
| 
						 | 
					2d3506c7d3 | ||
| 
						 | 
					e70a3a4b4d | ||
| 
						 | 
					f428146c47 | ||
| 
						 | 
					0059adecf1 | ||
| 
						 | 
					e1daaa6409 | ||
| 
						 | 
					ff712bc36e | ||
| 
						 | 
					9330e9a640 | ||
| 
						 | 
					5fc783da67 | ||
| 
						 | 
					670d64ec43 | ||
| 
						 | 
					4da57bd76c | ||
| 
						 | 
					29b98b450b | ||
| 
						 | 
					c88d3a3883 | ||
| 
						 | 
					f5a54bc3ad | ||
| 
						 | 
					2078deca57 | ||
| 
						 | 
					bc702e2a6d | ||
| 
						 | 
					ab10013fbe | ||
| 
						 | 
					9abd8bf9aa | ||
| 
						 | 
					6a78564cc3 | ||
| 
						 | 
					0ec532a4e7 | ||
| 
						 | 
					d712be955c | ||
| 
						 | 
					701f7e9cba | ||
| 
						 | 
					5196539d1b | ||
| 
						 | 
					774cdcaf8d | ||
| 
						 | 
					784e109012 | ||
| 
						 | 
					5184f47eb6 | ||
| 
						 | 
					f7d37a8f3c | ||
| 
						 | 
					4888c33e4b | ||
| 
						 | 
					f98d81f5bf | ||
| 
						 | 
					d7518d8644 | ||
| 
						 | 
					599c462035 | ||
| 
						 | 
					0909132d5c | ||
| 
						 | 
					5123532729 | ||
| 
						 | 
					d814907f99 | ||
| 
						 | 
					32a99a44d4 | ||
| 
						 | 
					e94280f1a1 | ||
| 
						 | 
					b9ca4b7634 | ||
| 
						 | 
					8431931cc4 | ||
| 
						 | 
					8bf7f7a460 | ||
| 
						 | 
					6adf8e38b0 | ||
| 
						 | 
					817455360e | ||
| 
						 | 
					84d36eba84 | ||
| 
						 | 
					a0baf1cecc | ||
| 
						 | 
					144182d22c | ||
| 
						 | 
					81ffa34497 | ||
| 
						 | 
					abfd5e086d | ||
| 
						 | 
					0e84eba9d2 | ||
| 
						 | 
					d827d42968 | ||
| 
						 | 
					d3d6ec8b20 | ||
| 
						 | 
					314f932764 | ||
| 
						 | 
					e191b94151 | ||
| 
						 | 
					9cc4bda762 | ||
| 
						 | 
					32572c6072 | ||
| 
						 | 
					a1fe451fe2 | ||
| 
						 | 
					ba97af3b9f | ||
| 
						 | 
					859f3dffc3 | ||
| 
						 | 
					84b15641fb | ||
| 
						 | 
					a99bdb9e97 | ||
| 
						 | 
					6035469047 | ||
| 
						 | 
					982a19cf28 | ||
| 
						 | 
					e3299a67ec | ||
| 
						 | 
					6f557aa394 | ||
| 
						 | 
					38f4a98e4f | ||
| 
						 | 
					5967a7f496 | ||
| 
						 | 
					67cdc35d02 | ||
| 
						 | 
					71c04d9e12 | ||
| 
						 | 
					eee58b43db | ||
| 
						 | 
					8a35df4f59 | ||
| 
						 | 
					9fd4a13a8a | ||
| 
						 | 
					9f2ae06726 | ||
| 
						 | 
					a5adf44f39 | ||
| 
						 | 
					536de5d083 | ||
| 
						 | 
					dfa14693ee | ||
| 
						 | 
					b03e223e91 | ||
| 
						 | 
					036728df0d | ||
| 
						 | 
					682087c6ec | ||
| 
						 | 
					5338a6762a | ||
| 
						 | 
					3a52f8dbfb | ||
| 
						 | 
					8fd34ea277 | ||
| 
						 | 
					593669b960 | ||
| 
						 | 
					e165153dcb | ||
| 
						 | 
					ff8b060cad | ||
| 
						 | 
					6f51b0f5a2 | ||
| 
						 | 
					487f36fec6 | ||
| 
						 | 
					385b36d29e | ||
| 
						 | 
					3b8ff01385 | ||
| 
						 | 
					11de586c93 | ||
| 
						 | 
					eacaca938d | ||
| 
						 | 
					dc0cf2cb3b | ||
| 
						 | 
					585f9a2404 | ||
| 
						 | 
					c72eb13e74 | ||
| 
						 | 
					e356259785 | ||
| 
						 | 
					618445ec08 | ||
| 
						 | 
					3e5274a951 | ||
| 
						 | 
					2245479733 | ||
| 
						 | 
					99e06341b3 | ||
| 
						 | 
					ce27930f9d | ||
| 
						 | 
					b8671b97af | ||
| 
						 | 
					7c0f85d0b3 | ||
| 
						 | 
					ff660eaabb | ||
| 
						 | 
					15f04d525d | ||
| 
						 | 
					ccdb7007e7 | ||
| 
						 | 
					a119a27b4f | ||
| 
						 | 
					ac37d90403 | ||
| 
						 | 
					3c765790a3 | ||
| 
						 | 
					2f05dcbf87 | ||
| 
						 | 
					409af1b14a | ||
| 
						 | 
					50f7ae1237 | ||
| 
						 | 
					2af4978680 | ||
| 
						 | 
					a9df33c7cf | ||
| 
						 | 
					47377fdd26 | ||
| 
						 | 
					bf53f57e10 | ||
| 
						 | 
					70f2a50955 | ||
| 
						 | 
					10634a77c7 | ||
| 
						 | 
					0aeec14025 | ||
| 
						 | 
					19c3b1dee0 | ||
| 
						 | 
					af4b833aa4 | ||
| 
						 | 
					72f844ddc6 | ||
| 
						 | 
					68aad8e152 | ||
| 
						 | 
					4f517de2d1 | ||
| 
						 | 
					f2d11ea48c | ||
| 
						 | 
					a77ce0bad0 | ||
| 
						 | 
					2479ceeb99 | ||
| 
						 | 
					dc314990f8 | ||
| 
						 | 
					3543d10d35 | ||
| 
						 | 
					c9f4391df0 | ||
| 
						 | 
					69ae09346f | ||
| 
						 | 
					13175efbd8 | ||
| 
						 | 
					4a8239b2ce | ||
| 
						 | 
					e319355859 | ||
| 
						 | 
					21d857e7ad | ||
| 
						 | 
					df3919b904 | ||
| 
						 | 
					96f30bf51f | ||
| 
						 | 
					2832a1e2c4 | ||
| 
						 | 
					415f99e3eb | ||
| 
						 | 
					aa7e8e0810 | ||
| 
						 | 
					8717a0fcf1 | ||
| 
						 | 
					30bc16072e | ||
| 
						 | 
					464fa283ad | ||
| 
						 | 
					024480d0a4 | ||
| 
						 | 
					c754f4e243 | ||
| 
						 | 
					152eb6b2bb | ||
| 
						 | 
					3424e9a86e | ||
| 
						 | 
					13a52878ab | ||
| 
						 | 
					5f39bb66a5 | ||
| 
						 | 
					773b2fcc79 | ||
| 
						 | 
					938f0f76fa | ||
| 
						 | 
					611a14b55f | ||
| 
						 | 
					304db812a8 | ||
| 
						 | 
					678206768c | ||
| 
						 | 
					92d2e421ee | ||
| 
						 | 
					fe3ff916b6 | ||
| 
						 | 
					d4c95779bf | ||
| 
						 | 
					8c0794c2bb | ||
| 
						 | 
					cdb121a55f | ||
| 
						 | 
					b22d66da1b | ||
| 
						 | 
					87ff677ed7 | ||
| 
						 | 
					d3eaf6eaf5 | ||
| 
						 | 
					26e4017d76 | ||
| 
						 | 
					406bb57d74 | ||
| 
						 | 
					f97e932205 | ||
| 
						 | 
					395d1086ea | ||
| 
						 | 
					517b19a62b | ||
| 
						 | 
					ab292927e6 | ||
| 
						 | 
					6bae0d71ea | ||
| 
						 | 
					1378e9a2e9 | ||
| 
						 | 
					71d21f3bfe | ||
| 
						 | 
					12f087932f | ||
| 
						 | 
					8d96c5135d | ||
| 
						 | 
					0c31f43789 | ||
| 
						 | 
					943e6967f4 | ||
| 
						 | 
					e253fe6cee | ||
| 
						 | 
					4b0fff5a88 | ||
| 
						 | 
					ff3d2026a5 | ||
| 
						 | 
					1b57be94fd | ||
| 
						 | 
					b1dc0bc20f | ||
| 
						 | 
					8f243c74ff | ||
| 
						 | 
					b30e8c534f | ||
| 
						 | 
					9b07fe4178 | ||
| 
						 | 
					be66aefd9a | ||
| 
						 | 
					7aca36a3f0 | 
							
								
								
									
										16
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					; editorconfig.org
 | 
				
			||||||
 | 
					root = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[*]
 | 
				
			||||||
 | 
					charset                     = utf-8
 | 
				
			||||||
 | 
					continuation_indent_size    = 2
 | 
				
			||||||
 | 
					end_of_line                 = lf
 | 
				
			||||||
 | 
					indent_size                 = 2
 | 
				
			||||||
 | 
					indent_style                = space
 | 
				
			||||||
 | 
					insert_final_newline        = true
 | 
				
			||||||
 | 
					max_line_length             = 120
 | 
				
			||||||
 | 
					tab_width                   = 2
 | 
				
			||||||
 | 
					; trim_trailing_whitespace    = true ; disabled until files are cleaned up
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[*.md]
 | 
				
			||||||
 | 
					trim_trailing_whitespace    = false
 | 
				
			||||||
							
								
								
									
										54
									
								
								.github/check-script.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										54
									
								
								.github/check-script.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,54 +0,0 @@
 | 
				
			|||||||
name: Check Shell Scripts
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
on:
 | 
					 | 
				
			||||||
  pull_request:
 | 
					 | 
				
			||||||
    paths:
 | 
					 | 
				
			||||||
      - '**/*.sh'  # Führt den Check nur für Shell-Skripte aus
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
jobs:
 | 
					 | 
				
			||||||
  check-scripts:
 | 
					 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    steps:
 | 
					 | 
				
			||||||
    - name: Checkout Code
 | 
					 | 
				
			||||||
      uses: actions/checkout@v3
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    - name: Check `source` Line in Scripts
 | 
					 | 
				
			||||||
      shell: bash
 | 
					 | 
				
			||||||
      run: |
 | 
					 | 
				
			||||||
        set -e
 | 
					 | 
				
			||||||
        ERROR_COUNT=0
 | 
					 | 
				
			||||||
        FILES=$(find . -name "*.sh")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        for FILE in $FILES; do
 | 
					 | 
				
			||||||
          # Check for exact match of the source line in line 2
 | 
					 | 
				
			||||||
          if [[ $(sed -n '2p' "$FILE") =~ ^source[[:space:]]+<(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) ]]; then
 | 
					 | 
				
			||||||
            echo "Check passed for: $FILE"
 | 
					 | 
				
			||||||
          else
 | 
					 | 
				
			||||||
            echo "Error in $FILE: Line 2 must be exactly 'source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)' if a source line is used."
 | 
					 | 
				
			||||||
            ERROR_COUNT=$((ERROR_COUNT + 1))
 | 
					 | 
				
			||||||
          fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          # Check for shebang line at the top
 | 
					 | 
				
			||||||
          if [[ $(head -n 1 "$FILE") != "#!/usr/bin/env bash" ]]; then
 | 
					 | 
				
			||||||
            echo "Error in $FILE: The first line must be '#!/usr/bin/env bash'."
 | 
					 | 
				
			||||||
            ERROR_COUNT=$((ERROR_COUNT + 1))
 | 
					 | 
				
			||||||
          fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          # Check for executable permissions
 | 
					 | 
				
			||||||
          if [[ ! -x "$FILE" ]]; then
 | 
					 | 
				
			||||||
            echo "Warning in $FILE: This script is not executable. Consider running 'chmod +x $FILE'."
 | 
					 | 
				
			||||||
          fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          # Check for empty lines at the beginning of the script
 | 
					 | 
				
			||||||
          if [[ $(head -n 10 "$FILE" | grep -c '^$') -gt 0 ]]; then
 | 
					 | 
				
			||||||
            echo "Warning in $FILE: There are empty lines at the beginning of the script. Consider removing them."
 | 
					 | 
				
			||||||
          fi
 | 
					 | 
				
			||||||
        done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if [[ "$ERROR_COUNT" -gt 0 ]]; then
 | 
					 | 
				
			||||||
          echo "$ERROR_COUNT script(s) failed validation."
 | 
					 | 
				
			||||||
          exit 1
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
          echo "All scripts passed."
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
							
								
								
									
										19
									
								
								.github/workflows/changelog-pr.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								.github/workflows/changelog-pr.yml
									
									
									
									
										vendored
									
									
								
							@@ -71,7 +71,9 @@ jobs:
 | 
				
			|||||||
            });
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            pulls.filter((pr) => 
 | 
					            pulls.filter((pr) => 
 | 
				
			||||||
              pr.merged_at && new Date(pr.merged_at) > latestDateInChangelog
 | 
					              pr.merged_at && 
 | 
				
			||||||
 | 
					              new Date(pr.merged_at) > latestDateInChangelog && 
 | 
				
			||||||
 | 
					              !pr.labels.some((label) => ["invalid", "wontdo", process.env.AUTOMATED_PR_LABEL].includes(label.name.toLowerCase()))
 | 
				
			||||||
            ).forEach((pr) => {
 | 
					            ).forEach((pr) => {
 | 
				
			||||||
              const prLabels = pr.labels.map((label) => label.name.toLowerCase());
 | 
					              const prLabels = pr.labels.map((label) => label.name.toLowerCase());
 | 
				
			||||||
              const prNote = `- ${pr.title} [@${pr.user.login}](https://github.com/${pr.user.login}) ([#${pr.number}](${pr.html_url}))`;
 | 
					              const prNote = `- ${pr.title} [@${pr.user.login}](https://github.com/${pr.user.login}) ([#${pr.number}](${pr.html_url}))`;
 | 
				
			||||||
@@ -79,12 +81,11 @@ jobs:
 | 
				
			|||||||
              for (const { labels, notes } of categorizedPRs) {
 | 
					              for (const { labels, notes } of categorizedPRs) {
 | 
				
			||||||
                const prHasCategoryLabel = labels.some((label) => prLabels.includes(label));
 | 
					                const prHasCategoryLabel = labels.some((label) => prLabels.includes(label));
 | 
				
			||||||
                const isUnlabelledCategory = labels.length === 0;
 | 
					                const isUnlabelledCategory = labels.length === 0;
 | 
				
			||||||
                const prShouldBeExcluded = prLabels.includes(process.env.AUTOMATED_PR_LABEL);
 | 
					                if (prHasCategoryLabel || isUnlabelledCategory) {
 | 
				
			||||||
                if ((prHasCategoryLabel || isUnlabelledCategory) && !prShouldBeExcluded) {
 | 
					 | 
				
			||||||
                  notes.push(prNote);
 | 
					                  notes.push(prNote);
 | 
				
			||||||
                  break;
 | 
					                  break;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
              };
 | 
					              }
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return categorizedPRs;
 | 
					            return categorizedPRs;
 | 
				
			||||||
@@ -157,3 +158,13 @@ jobs:
 | 
				
			|||||||
          if [ -n "$PR_NUMBER" ]; then
 | 
					          if [ -n "$PR_NUMBER" ]; then
 | 
				
			||||||
            gh pr review $PR_NUMBER --approve
 | 
					            gh pr review $PR_NUMBER --approve
 | 
				
			||||||
          fi
 | 
					          fi
 | 
				
			||||||
 | 
					          
 | 
				
			||||||
 | 
					      - name: Re-approve pull request after update
 | 
				
			||||||
 | 
					        if: steps.verify-diff.outputs.changed == 'true'
 | 
				
			||||||
 | 
					        env:
 | 
				
			||||||
 | 
					          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number')
 | 
				
			||||||
 | 
					          if [ -n "$PR_NUMBER" ]; then
 | 
				
			||||||
 | 
					            gh pr review $PR_NUMBER --approve
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										32
									
								
								.github/workflows/shellcheck.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.github/workflows/shellcheck.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					name: Shellcheck
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches:
 | 
				
			||||||
 | 
					      - main
 | 
				
			||||||
 | 
					  pull_request:
 | 
				
			||||||
 | 
					  workflow_dispatch:
 | 
				
			||||||
 | 
					  schedule:
 | 
				
			||||||
 | 
					    - cron: "5 1 * * *"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  shellcheck:
 | 
				
			||||||
 | 
					    name: Shellcheck
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					    - uses: actions/checkout@v4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Get changed files
 | 
				
			||||||
 | 
					      id: changes
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        if ${{ github.event_name == 'pull_request' }}; then
 | 
				
			||||||
 | 
					          echo "files=$(git diff --name-only -r HEAD^1 HEAD | xargs)" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					          echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | xargs)" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: Run ShellCheck
 | 
				
			||||||
 | 
					      if: steps.changes.outputs.files != ''
 | 
				
			||||||
 | 
					      run: |
 | 
				
			||||||
 | 
					        echo "${{ steps.changes.outputs.files }}" | xargs shellcheck
 | 
				
			||||||
							
								
								
									
										157
									
								
								.github/workflows/validate-filenames.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										157
									
								
								.github/workflows/validate-filenames.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,157 @@
 | 
				
			|||||||
 | 
					name: Validate filenames
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  pull_request_target:
 | 
				
			||||||
 | 
					    paths:
 | 
				
			||||||
 | 
					      - "ct/*.sh"
 | 
				
			||||||
 | 
					      - "install/*.sh"
 | 
				
			||||||
 | 
					      - "json/*.json"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  check-files:
 | 
				
			||||||
 | 
					    name: Check changed files
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    permissions:
 | 
				
			||||||
 | 
					      pull-requests: write
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - name: Get pull request information
 | 
				
			||||||
 | 
					        if: github.event_name == 'pull_request_target'
 | 
				
			||||||
 | 
					        uses: actions/github-script@v7
 | 
				
			||||||
 | 
					        id: pr
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          script: |
 | 
				
			||||||
 | 
					            const { data: pullRequest } = await github.rest.pulls.get({
 | 
				
			||||||
 | 
					              ...context.repo,
 | 
				
			||||||
 | 
					              pull_number: context.payload.pull_request.number,
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					            return pullRequest;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Checkout code
 | 
				
			||||||
 | 
					        uses: actions/checkout@v4
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          fetch-depth: 0 # Ensure the full history is fetched for accurate diffing
 | 
				
			||||||
 | 
					          ref: ${{ github.event_name == 'pull_request_target' && fromJSON(steps.pr.outputs.result).merge_commit_sha || '' }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Get changed files
 | 
				
			||||||
 | 
					        id: changed-files
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          if ${{ github.event_name == 'pull_request_target' }}; then
 | 
				
			||||||
 | 
					              echo "files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ steps.pr.outputs.result && fromJSON(steps.pr.outputs.result).merge_commit_sha }} | xargs)" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					          else
 | 
				
			||||||
 | 
					              echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | xargs)" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: "Validate filenames in ct and install directory"
 | 
				
			||||||
 | 
					        if: always() && steps.changed-files.outputs.files != ''
 | 
				
			||||||
 | 
					        id: check-scripts
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          CHANGED_FILES=$(printf "%s\n" ${{ steps.changed-files.outputs.files }} | { grep -E '^(ct|install)/.*\.sh$' || true; })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          NON_COMPLIANT_FILES=""
 | 
				
			||||||
 | 
					          for FILE in $CHANGED_FILES; do
 | 
				
			||||||
 | 
					            BASENAME=$(echo "$(basename "${FILE%.*}")")
 | 
				
			||||||
 | 
					            if [[ ! "$BASENAME" =~ ^[a-z0-9-]+$ ]]; then
 | 
				
			||||||
 | 
					                    NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					          done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          if [ -n "$NON_COMPLIANT_FILES" ]; then
 | 
				
			||||||
 | 
					            echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					            echo "Non-compliant filenames found, change to lowercase:"
 | 
				
			||||||
 | 
					            for FILE in $NON_COMPLIANT_FILES; do
 | 
				
			||||||
 | 
					              echo "$FILE"
 | 
				
			||||||
 | 
					            done
 | 
				
			||||||
 | 
					            exit 1
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: "Validate filenames in json directory."
 | 
				
			||||||
 | 
					        if: always() && steps.changed-files.outputs.files != ''
 | 
				
			||||||
 | 
					        id: check-json
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          CHANGED_FILES=$(printf "%s\n" ${{ steps.changed-files.outputs.files }} | { grep -E '^json/.*\.json$' || true; })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          NON_COMPLIANT_FILES=""
 | 
				
			||||||
 | 
					          for FILE in $CHANGED_FILES; do
 | 
				
			||||||
 | 
					            BASENAME=$(echo "$(basename "${FILE%.*}")")
 | 
				
			||||||
 | 
					            if [[ ! "$BASENAME" =~ ^[a-z0-9-]+$ ]]; then
 | 
				
			||||||
 | 
					                    NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					          done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          if [ -n "$NON_COMPLIANT_FILES" ]; then
 | 
				
			||||||
 | 
					            echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					            echo "Non-compliant filenames found, change to lowercase:"
 | 
				
			||||||
 | 
					            for FILE in $NON_COMPLIANT_FILES; do
 | 
				
			||||||
 | 
					              echo "$FILE"
 | 
				
			||||||
 | 
					            done
 | 
				
			||||||
 | 
					            exit 1
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Post results and comment
 | 
				
			||||||
 | 
					        if: always() && steps.check-scripts.outputs.files != '' && steps.check-json.outputs.files != '' && github.event_name == 'pull_request_target'
 | 
				
			||||||
 | 
					        uses: actions/github-script@v7
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          script: |
 | 
				
			||||||
 | 
					            const result = "${{ job.status }}" === "success" ? "success" : "failure";
 | 
				
			||||||
 | 
					            const nonCompliantFiles = {
 | 
				
			||||||
 | 
					              script: "${{ steps.check-scripts.outputs.files }}",
 | 
				
			||||||
 | 
					              JSON: "${{ steps.check-json.outputs.files }}",
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            const issueNumber = context.payload.pull_request
 | 
				
			||||||
 | 
					              ? context.payload.pull_request.number
 | 
				
			||||||
 | 
					              : null;
 | 
				
			||||||
 | 
					            const commentIdentifier = "validate-filenames";
 | 
				
			||||||
 | 
					            let newCommentBody = `<!-- ${commentIdentifier}-start -->\n### Filename validation\n\n`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (result === "failure") {
 | 
				
			||||||
 | 
					              newCommentBody += ":x: We found issues in the following changed files:\n\n";
 | 
				
			||||||
 | 
					              for (const [check, files] of Object.entries(nonCompliantFiles)) {
 | 
				
			||||||
 | 
					                if (files) {
 | 
				
			||||||
 | 
					                  newCommentBody += `**${check.charAt(0).toUpperCase() + check.slice(1)} filename invalid:**\n${files
 | 
				
			||||||
 | 
					                    .trim()
 | 
				
			||||||
 | 
					                    .split(" ")
 | 
				
			||||||
 | 
					                    .map((file) => `- ${file}`)
 | 
				
			||||||
 | 
					                    .join("\n")}\n\n`;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					              newCommentBody +=
 | 
				
			||||||
 | 
					                "Please change the filenames to lowercase and use only alphanumeric characters and dashes.\n";
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					              newCommentBody += `:rocket: All files passed filename validation!\n`;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            newCommentBody += `\n\n<!-- ${commentIdentifier}-end -->`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (issueNumber) {
 | 
				
			||||||
 | 
					              const { data: comments } = await github.rest.issues.listComments({
 | 
				
			||||||
 | 
					                ...context.repo,
 | 
				
			||||||
 | 
					                issue_number: issueNumber,
 | 
				
			||||||
 | 
					              });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              const existingComment = comments.find(
 | 
				
			||||||
 | 
					                (comment) => comment.user.login === "github-actions[bot]",
 | 
				
			||||||
 | 
					              );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              if (existingComment) {
 | 
				
			||||||
 | 
					                if (existingComment.body.includes(commentIdentifier)) {
 | 
				
			||||||
 | 
					                  const re = new RegExp(String.raw`<!-- ${commentIdentifier}-start -->[\s\S]*?<!-- ${commentIdentifier}-end -->`, "");
 | 
				
			||||||
 | 
					                  newCommentBody = existingComment.body.replace(re, newCommentBody);
 | 
				
			||||||
 | 
					                } else {
 | 
				
			||||||
 | 
					                  newCommentBody = existingComment.body + '\n\n---\n\n' + newCommentBody;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                await github.rest.issues.updateComment({
 | 
				
			||||||
 | 
					                  ...context.repo,
 | 
				
			||||||
 | 
					                  comment_id: existingComment.id,
 | 
				
			||||||
 | 
					                  body: newCommentBody,
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					              } else {
 | 
				
			||||||
 | 
					                await github.rest.issues.createComment({
 | 
				
			||||||
 | 
					                  ...context.repo,
 | 
				
			||||||
 | 
					                  issue_number: issueNumber,
 | 
				
			||||||
 | 
					                  body: newCommentBody,
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
							
								
								
									
										133
									
								
								.github/workflows/validate-formatting.yaml.bak
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										133
									
								
								.github/workflows/validate-formatting.yaml.bak
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,133 @@
 | 
				
			|||||||
 | 
					name: Validate script formatting
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches:
 | 
				
			||||||
 | 
					      - main
 | 
				
			||||||
 | 
					  pull_request_target:
 | 
				
			||||||
 | 
					    paths:
 | 
				
			||||||
 | 
					      - "**/*.sh"
 | 
				
			||||||
 | 
					      - "**/*.func"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  shfmt:
 | 
				
			||||||
 | 
					    name: Check changed files
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    permissions:
 | 
				
			||||||
 | 
										 
 | 
				
			||||||
 | 
					      pull-requests: write
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - name: Get pull request information
 | 
				
			||||||
 | 
					        if: github.event_name == 'pull_request_target'
 | 
				
			||||||
 | 
					        uses: actions/github-script@v7
 | 
				
			||||||
 | 
					        id: pr
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          script: |
 | 
				
			||||||
 | 
					            const { data: pullRequest } = await github.rest.pulls.get({
 | 
				
			||||||
 | 
					              ...context.repo,
 | 
				
			||||||
 | 
					              pull_number: context.payload.pull_request.number,
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					            return pullRequest;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Checkout code
 | 
				
			||||||
 | 
					        uses: actions/checkout@v4
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          fetch-depth: 0 # Ensure the full history is fetched for accurate diffing
 | 
				
			||||||
 | 
					          ref: ${{ github.event_name == 'pull_request_target' && fromJSON(steps.pr.outputs.result).merge_commit_sha || '' }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Get changed files
 | 
				
			||||||
 | 
					        id: changed-files
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          if ${{ github.event_name == 'pull_request_target' }}; then
 | 
				
			||||||
 | 
					              echo "files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ steps.pr.outputs.result && fromJSON(steps.pr.outputs.result).merge_commit_sha }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					          else
 | 
				
			||||||
 | 
					              echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Set up Go
 | 
				
			||||||
 | 
					        if: steps.changed-files.outputs.files != ''
 | 
				
			||||||
 | 
					        uses: actions/setup-go@v5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Install shfmt
 | 
				
			||||||
 | 
					        if: steps.changed-files.outputs.files != ''
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          go install mvdan.cc/sh/v3/cmd/shfmt@latest
 | 
				
			||||||
 | 
					          echo "$GOPATH/bin" >> $GITHUB_PATH
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Run shfmt
 | 
				
			||||||
 | 
					        if: steps.changed-files.outputs.files != ''
 | 
				
			||||||
 | 
					        id: shfmt
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          set +e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
														 
 | 
				
			||||||
 | 
					          shfmt_output=$(shfmt -d ${{ steps.changed-files.outputs.files }})
 | 
				
			||||||
 | 
					          if [[ $? -eq 0 ]]; then
 | 
				
			||||||
 | 
					            exit 0
 | 
				
			||||||
 | 
					          else
 | 
				
			||||||
 | 
					            echo "diff=\"$(echo -n "$shfmt_output" | base64 -w 0)\"" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					            printf "%s" "$shfmt_output"
 | 
				
			||||||
 | 
					            exit 1
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Post comment with results
 | 
				
			||||||
 | 
					        if: always() && steps.changed-files.outputs.files != '' && github.event_name == 'pull_request_target'
 | 
				
			||||||
 | 
					        uses: actions/github-script@v7
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          script: |
 | 
				
			||||||
 | 
					            const result = "${{ job.status }}" === "success" ? "success" : "failure";
 | 
				
			||||||
 | 
					            const diff = Buffer.from(
 | 
				
			||||||
 | 
					              ${{ steps.shfmt.outputs.diff }},
 | 
				
			||||||
 | 
					              "base64",
 | 
				
			||||||
 | 
					            ).toString();
 | 
				
			||||||
 | 
					            const issueNumber = context.payload.pull_request
 | 
				
			||||||
 | 
					              ? context.payload.pull_request.number
 | 
				
			||||||
 | 
					              : null;
 | 
				
			||||||
 | 
					            const commentIdentifier = "validate-formatting";
 | 
				
			||||||
 | 
					            let newCommentBody = `<!-- ${commentIdentifier}-start -->\n### Script formatting\n\n`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (result === "failure") {
 | 
				
			||||||
 | 
					              newCommentBody +=
 | 
				
			||||||
 | 
					                `:x: We found issues in the formatting of the following changed files:\n\n\`\`\`diff\n${diff}\n\`\`\`\n`;
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					              newCommentBody += `:rocket: All changed shell scripts are formatted correctly!\n`;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            newCommentBody += `\n\n<!-- ${commentIdentifier}-end -->`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (issueNumber) {
 | 
				
			||||||
 | 
					              const { data: comments } = await github.rest.issues.listComments({
 | 
				
			||||||
 | 
					                ...context.repo,
 | 
				
			||||||
 | 
					                issue_number: issueNumber,
 | 
				
			||||||
 | 
					              });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              const existingComment = comments.find(
 | 
				
			||||||
 | 
					                (comment) => comment.user.login === "github-actions[bot]",
 | 
				
			||||||
 | 
																						 
 | 
				
			||||||
 | 
					              );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              if (existingComment) {
 | 
				
			||||||
 | 
					                if (existingComment.body.includes(commentIdentifier)) {
 | 
				
			||||||
 | 
					                  const re = new RegExp(
 | 
				
			||||||
 | 
					                    String.raw`<!-- ${commentIdentifier}-start -->[\s\S]*?<!-- ${commentIdentifier}-end -->`,
 | 
				
			||||||
 | 
					                    "",
 | 
				
			||||||
 | 
					                  );
 | 
				
			||||||
 | 
					                  newCommentBody = existingComment.body.replace(re, newCommentBody);
 | 
				
			||||||
 | 
					                } else {
 | 
				
			||||||
 | 
					                  newCommentBody = existingComment.body + "\n\n---\n\n" + newCommentBody;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                await github.rest.issues.updateComment({
 | 
				
			||||||
 | 
					                  ...context.repo,
 | 
				
			||||||
 | 
					                  comment_id: existingComment.id,
 | 
				
			||||||
 | 
					                  body: newCommentBody,
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					              } else {
 | 
				
			||||||
 | 
					                await github.rest.issues.createComment({
 | 
				
			||||||
 | 
					                  ...context.repo,
 | 
				
			||||||
 | 
					                  issue_number: issueNumber,
 | 
				
			||||||
 | 
					                  body: newCommentBody,
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
							
								
								
									
										234
									
								
								.github/workflows/validate-scripts.yml.bak
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										234
									
								
								.github/workflows/validate-scripts.yml.bak
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,234 @@
 | 
				
			|||||||
 | 
					name: Validate scripts
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    branches:
 | 
				
			||||||
 | 
					      - main
 | 
				
			||||||
 | 
					  pull_request_target:
 | 
				
			||||||
 | 
					    paths:
 | 
				
			||||||
 | 
					      - "ct/*.sh"
 | 
				
			||||||
 | 
					      - "install/*.sh"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  check-scripts:
 | 
				
			||||||
 | 
					    name: Check changed files
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    permissions:
 | 
				
			||||||
 | 
					      pull-requests: write
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - name: Debug event payload
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          echo "Event name: ${{ github.event_name }}"
 | 
				
			||||||
 | 
					          echo "Payload: $(cat $GITHUB_EVENT_PATH)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Get pull request information
 | 
				
			||||||
 | 
					        if: github.event_name == 'pull_request_target'
 | 
				
			||||||
 | 
					        uses: actions/github-script@v7
 | 
				
			||||||
 | 
					        id: pr
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          script: |
 | 
				
			||||||
 | 
					            const { data: pullRequest } = await github.rest.pulls.get({
 | 
				
			||||||
 | 
					              ...context.repo,
 | 
				
			||||||
 | 
					              pull_number: context.payload.pull_request.number,
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					            return pullRequest;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Checkout code
 | 
				
			||||||
 | 
					        uses: actions/checkout@v4
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          fetch-depth: 0
 | 
				
			||||||
 | 
					          ref: ${{ github.event_name == 'pull_request_target' && fromJSON(steps.pr.outputs.result).merge_commit_sha || '' }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Get changed files
 | 
				
			||||||
 | 
					        id: changed-files
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          if [ "${{ github.event_name }}" == "pull_request_target" ]; then
 | 
				
			||||||
 | 
					            echo "files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ steps.pr.outputs.result && fromJSON(steps.pr.outputs.result).merge_commit_sha }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					          else
 | 
				
			||||||
 | 
					            echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Check build.func line
 | 
				
			||||||
 | 
					        if: always() && steps.changed-files.outputs.files != ''
 | 
				
			||||||
 | 
					        id: build-func
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          NON_COMPLIANT_FILES=""
 | 
				
			||||||
 | 
					          for FILE in ${{ steps.changed-files.outputs.files }}; do
 | 
				
			||||||
 | 
					            if [[ "$FILE" == ct/* ]] && [[ $(sed -n '2p' "$FILE") != "source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)" ]]; then
 | 
				
			||||||
 | 
					              NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					          done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          if [ -n "$NON_COMPLIANT_FILES" ]; then
 | 
				
			||||||
 | 
					            echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					            echo "Build.func line missing or incorrect in files:"
 | 
				
			||||||
 | 
					            for FILE in $NON_COMPLIANT_FILES; do
 | 
				
			||||||
 | 
					              echo "$FILE"
 | 
				
			||||||
 | 
					            done
 | 
				
			||||||
 | 
					            exit 1
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Check executable permissions
 | 
				
			||||||
 | 
					        if: always() && steps.changed-files.outputs.files != ''
 | 
				
			||||||
 | 
					        id: check-executable
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          NON_COMPLIANT_FILES=""
 | 
				
			||||||
 | 
					          for FILE in ${{ steps.changed-files.outputs.files }}; do
 | 
				
			||||||
 | 
					            if [[ ! -x "$FILE" ]]; then
 | 
				
			||||||
 | 
					              NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					          done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          if [ -n "$NON_COMPLIANT_FILES" ]; then
 | 
				
			||||||
 | 
					            echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					            echo "Files not executable:"
 | 
				
			||||||
 | 
					            for FILE in $NON_COMPLIANT_FILES; do
 | 
				
			||||||
 | 
					              echo "$FILE"
 | 
				
			||||||
 | 
					            done
 | 
				
			||||||
 | 
					            exit 1
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Check copyright
 | 
				
			||||||
 | 
					        if: always() && steps.changed-files.outputs.files != ''
 | 
				
			||||||
 | 
					        id: check-copyright
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          NON_COMPLIANT_FILES=""
 | 
				
			||||||
 | 
					          for FILE in ${{ steps.changed-files.outputs.files }}; do
 | 
				
			||||||
 | 
					            if ! sed -n '3p' "$FILE" | grep -qE "^# Copyright \(c\) [0-9]{4}(-[0-9]{4})? (tteck \| community-scripts ORG|community-scripts ORG|tteck)$"; then
 | 
				
			||||||
 | 
					              NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					          done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          if [ -n "$NON_COMPLIANT_FILES" ]; then
 | 
				
			||||||
 | 
					            echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					            echo "Copyright header missing or not on line 3 in files:"
 | 
				
			||||||
 | 
					            for FILE in $NON_COMPLIANT_FILES; do
 | 
				
			||||||
 | 
					              echo "$FILE"
 | 
				
			||||||
 | 
					            done
 | 
				
			||||||
 | 
					            exit 1
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Check author
 | 
				
			||||||
 | 
					        if: always() && steps.changed-files.outputs.files != ''
 | 
				
			||||||
 | 
					        id: check-author
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          NON_COMPLIANT_FILES=""
 | 
				
			||||||
 | 
					          for FILE in ${{ steps.changed-files.outputs.files }}; do
 | 
				
			||||||
 | 
					            if ! sed -n '4p' "$FILE" | grep -qE "^# Author: .+"; then
 | 
				
			||||||
 | 
					              NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					          done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          if [ -n "$NON_COMPLIANT_FILES" ]; then
 | 
				
			||||||
 | 
					            echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					            echo "Author header missing or invalid on line 4 in files:"
 | 
				
			||||||
 | 
					            for FILE in $NON_COMPLIANT_FILES; do
 | 
				
			||||||
 | 
					              echo "$FILE"
 | 
				
			||||||
 | 
					            done
 | 
				
			||||||
 | 
					            exit 1
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Check license
 | 
				
			||||||
 | 
					        if: always() && steps.changed-files.outputs.files != ''
 | 
				
			||||||
 | 
					        id: check-license
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          NON_COMPLIANT_FILES=""
 | 
				
			||||||
 | 
					          for FILE in ${{ steps.changed-files.outputs.files }}; do
 | 
				
			||||||
 | 
					            if [[ "$(sed -n '5p' "$FILE")" != "# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE" ]]; then
 | 
				
			||||||
 | 
					              NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					          done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          if [ -n "$NON_COMPLIANT_FILES" ]; then
 | 
				
			||||||
 | 
					            echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					            echo "License header missing or not on line 5 in files:"
 | 
				
			||||||
 | 
					            for FILE in $NON_COMPLIANT_FILES; do
 | 
				
			||||||
 | 
					              echo "$FILE"
 | 
				
			||||||
 | 
					            done
 | 
				
			||||||
 | 
					            exit 1
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Check source
 | 
				
			||||||
 | 
					        if: always() && steps.changed-files.outputs.files != ''
 | 
				
			||||||
 | 
					        id: check-source
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          NON_COMPLIANT_FILES=""
 | 
				
			||||||
 | 
					          for FILE in ${{ steps.changed-files.outputs.files }}; do
 | 
				
			||||||
 | 
					            if ! sed -n '6p' "$FILE" | grep -qE "^# Source: .+"; then
 | 
				
			||||||
 | 
					              NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					          done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          if [ -n "$NON_COMPLIANT_FILES" ]; then
 | 
				
			||||||
 | 
					            echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					            echo "Source header missing or not on line 6 in files:"
 | 
				
			||||||
 | 
					            for FILE in $NON_COMPLIANT_FILES; do
 | 
				
			||||||
 | 
					              echo "$FILE"
 | 
				
			||||||
 | 
					            done
 | 
				
			||||||
 | 
					            exit 1
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Post results and comment
 | 
				
			||||||
 | 
					        if: always() && steps.changed-files.outputs.files != '' && github.event_name == 'pull_request_target'
 | 
				
			||||||
 | 
					        uses: actions/github-script@v7
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          script: |
 | 
				
			||||||
 | 
					            const result = '${{ job.status }}' === 'success' ? 'success' : 'failure';
 | 
				
			||||||
 | 
					            const nonCompliantFiles = {
 | 
				
			||||||
 | 
					              'Invalid build.func source': "${{ steps.build-func.outputs.files || '' }}",
 | 
				
			||||||
 | 
					              'Not executable': "${{ steps.check-executable.outputs.files || '' }}",
 | 
				
			||||||
 | 
					              'Copyright header line missing or invalid': "${{ steps.check-copyright.outputs.files || '' }}",
 | 
				
			||||||
 | 
					              'Author header line missing or invalid': "${{ steps.check-author.outputs.files || '' }}",
 | 
				
			||||||
 | 
					              'License header line missing or invalid': "${{ steps.check-license.outputs.files || '' }}",
 | 
				
			||||||
 | 
					              'Source header line missing or invalid': "${{ steps.check-source.outputs.files || '' }}"
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            const issueNumber = context.payload.pull_request ? context.payload.pull_request.number : null;
 | 
				
			||||||
 | 
					            const commentIdentifier = 'validate-scripts';
 | 
				
			||||||
 | 
					            let newCommentBody = `<!-- ${commentIdentifier}-start -->\n### Script validation\n\n`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (result === 'failure') {
 | 
				
			||||||
 | 
					              newCommentBody += ':x: We found issues in the following changed files:\n\n';
 | 
				
			||||||
 | 
					              for (const [check, files] of Object.entries(nonCompliantFiles)) {
 | 
				
			||||||
 | 
					                if (files) {
 | 
				
			||||||
 | 
					                  newCommentBody += `**${check}:**\n`;
 | 
				
			||||||
 | 
					                  files.trim().split(' ').forEach(file => {
 | 
				
			||||||
 | 
					                    newCommentBody += `- ${file}: ${check}\n`;
 | 
				
			||||||
 | 
					                  });
 | 
				
			||||||
 | 
					                  newCommentBody += `\n`;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					              newCommentBody += `:rocket: All changed shell scripts passed validation!\n`;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            newCommentBody += `\n\n<!-- ${commentIdentifier}-end -->`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (issueNumber) {
 | 
				
			||||||
 | 
					              const { data: comments } = await github.rest.issues.listComments({
 | 
				
			||||||
 | 
					                ...context.repo,
 | 
				
			||||||
 | 
					                issue_number: issueNumber
 | 
				
			||||||
 | 
					              });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              const existingComment = comments.find(comment =>
 | 
				
			||||||
 | 
					                comment.body.includes(`<!-- ${commentIdentifier}-start -->`) &&
 | 
				
			||||||
 | 
					                comment.user.login === 'github-actions[bot]'
 | 
				
			||||||
 | 
					              );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              if (existingComment) {
 | 
				
			||||||
 | 
					                const re = new RegExp(String.raw`<!-- ${commentIdentifier}-start -->[\\s\\S]*?<!-- ${commentIdentifier}-end -->`, "m");
 | 
				
			||||||
 | 
					                newCommentBody = existingComment.body.replace(re, newCommentBody);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                await github.rest.issues.updateComment({
 | 
				
			||||||
 | 
					                  ...context.repo,
 | 
				
			||||||
 | 
					                  comment_id: existingComment.id,
 | 
				
			||||||
 | 
					                  body: newCommentBody
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					              } else {
 | 
				
			||||||
 | 
					                await github.rest.issues.createComment({
 | 
				
			||||||
 | 
					                  ...context.repo,
 | 
				
			||||||
 | 
					                  issue_number: issueNumber,
 | 
				
			||||||
 | 
					                  body: newCommentBody
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
							
								
								
									
										273
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										273
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -16,6 +16,279 @@ All LXC instances created using this repository come pre-installed with Midnight
 | 
				
			|||||||
> [!IMPORTANT]
 | 
					> [!IMPORTANT]
 | 
				
			||||||
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
 | 
					Do not break established syntax in this file, as it is automatically updated by a Github Workflow
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-01-09
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 💥 Breaking Changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Removal calibre-server (no Headless Support) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1362](https://github.com/community-scripts/ProxmoxVE/pull/1362))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### ✨ New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- New Script: Prometheus Alertmanager [@andygrunwald](https://github.com/andygrunwald) ([#1272](https://github.com/community-scripts/ProxmoxVE/pull/1272))
 | 
				
			||||||
 | 
					- New script: ps5-mqtt [@liecno](https://github.com/liecno) ([#1198](https://github.com/community-scripts/ProxmoxVE/pull/1198))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Fix: AdventureLog: unzip to /opt/ [@JesperDramsch](https://github.com/JesperDramsch) ([#1370](https://github.com/community-scripts/ProxmoxVE/pull/1370))
 | 
				
			||||||
 | 
					- Fix: Stirling-PDF > LibreOffice/unoconv Integration Issues  [@m6urns](https://github.com/m6urns) ([#1322](https://github.com/community-scripts/ProxmoxVE/pull/1322))
 | 
				
			||||||
 | 
					- Fix: AdventureLog - update script bug [@JesperDramsch](https://github.com/JesperDramsch) ([#1334](https://github.com/community-scripts/ProxmoxVE/pull/1334))
 | 
				
			||||||
 | 
					- Install/update ActualBudget based on releases, not latest master [@SpyrosRoum](https://github.com/SpyrosRoum) ([#1254](https://github.com/community-scripts/ProxmoxVE/pull/1254))
 | 
				
			||||||
 | 
					- Fix Checkmk: Version grep broken [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1341](https://github.com/community-scripts/ProxmoxVE/pull/1341))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- fix: only validate scripts in validate-scripts workflow [@se-bastiaan](https://github.com/se-bastiaan) ([#1344](https://github.com/community-scripts/ProxmoxVE/pull/1344))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-01-08
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- update postgresql json to add post install password setup [@rdiazlugo](https://github.com/rdiazlugo) ([#1318](https://github.com/community-scripts/ProxmoxVE/pull/1318))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- fix(ci): formatting event & chmod +x [@se-bastiaan](https://github.com/se-bastiaan) ([#1335](https://github.com/community-scripts/ProxmoxVE/pull/1335))
 | 
				
			||||||
 | 
					- fix: correctly handle pull_request_target event [@se-bastiaan](https://github.com/se-bastiaan) ([#1327](https://github.com/community-scripts/ProxmoxVE/pull/1327))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-01-07
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Fix: Folder-Check for Updatescript Zammad [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1309](https://github.com/community-scripts/ProxmoxVE/pull/1309))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- fix: permissions of validate pipelines [@se-bastiaan](https://github.com/se-bastiaan) ([#1316](https://github.com/community-scripts/ProxmoxVE/pull/1316))
 | 
				
			||||||
 | 
					- Set Execution Rights for GH-Action: Validate Scripts [@MickLesk](https://github.com/MickLesk) ([#1312](https://github.com/community-scripts/ProxmoxVE/pull/1312))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-01-06
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### ✨ New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- New Script: Typesense [@tlissak](https://github.com/tlissak) ([#1291](https://github.com/community-scripts/ProxmoxVE/pull/1291))
 | 
				
			||||||
 | 
					- New script: GLPI [@opastorello](https://github.com/opastorello) ([#1201](https://github.com/community-scripts/ProxmoxVE/pull/1201))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Fix Tag in HyperHDR Script [@MickLesk](https://github.com/MickLesk) ([#1299](https://github.com/community-scripts/ProxmoxVE/pull/1299))
 | 
				
			||||||
 | 
					- [Fix]: Fixed rm Bug in pf2etools [@MickLesk](https://github.com/MickLesk) ([#1292](https://github.com/community-scripts/ProxmoxVE/pull/1292))
 | 
				
			||||||
 | 
					- Fix: Homebox Update Script  [@MickLesk](https://github.com/MickLesk) ([#1284](https://github.com/community-scripts/ProxmoxVE/pull/1284))
 | 
				
			||||||
 | 
					- Add ca-certificates for Install (Frigate) [@MickLesk](https://github.com/MickLesk) ([#1282](https://github.com/community-scripts/ProxmoxVE/pull/1282))
 | 
				
			||||||
 | 
					- fix: buffer from base64 in formatting pipeline [@se-bastiaan](https://github.com/se-bastiaan) ([#1285](https://github.com/community-scripts/ProxmoxVE/pull/1285))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Add reapproval of Changelog-PR [@MickLesk](https://github.com/MickLesk) ([#1279](https://github.com/community-scripts/ProxmoxVE/pull/1279))
 | 
				
			||||||
 | 
					- ci: combine header checks into workflow with PR comment [@se-bastiaan](https://github.com/se-bastiaan) ([#1257](https://github.com/community-scripts/ProxmoxVE/pull/1257))
 | 
				
			||||||
 | 
					- ci: change filename checks into steps with PR comment [@se-bastiaan](https://github.com/se-bastiaan) ([#1255](https://github.com/community-scripts/ProxmoxVE/pull/1255))
 | 
				
			||||||
 | 
					- ci: add pipeline for code formatting checks [@se-bastiaan](https://github.com/se-bastiaan) ([#1239](https://github.com/community-scripts/ProxmoxVE/pull/1239))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-01-05
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 💥 Breaking Changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [Breaking] Update Zigbee2mqtt to v.2.0.0 (Read PR Description) [@MickLesk](https://github.com/MickLesk) ([#1221](https://github.com/community-scripts/ProxmoxVE/pull/1221))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### ❔ Unlabelled
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Add RAM and Disk units [@oOStroudyOo](https://github.com/oOStroudyOo) ([#1261](https://github.com/community-scripts/ProxmoxVE/pull/1261))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-01-04
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Fix gpg key pf2tools & 5etools [@MickLesk](https://github.com/MickLesk) ([#1242](https://github.com/community-scripts/ProxmoxVE/pull/1242))
 | 
				
			||||||
 | 
					- Homarr: Fix missing curl dependency [@MickLesk](https://github.com/MickLesk) ([#1238](https://github.com/community-scripts/ProxmoxVE/pull/1238))
 | 
				
			||||||
 | 
					- Homeassistan Core: Fix Python3 and add missing dependencies [@MickLesk](https://github.com/MickLesk) ([#1236](https://github.com/community-scripts/ProxmoxVE/pull/1236))
 | 
				
			||||||
 | 
					- Fix: Update Python for HomeAssistant [@MickLesk](https://github.com/MickLesk) ([#1227](https://github.com/community-scripts/ProxmoxVE/pull/1227))
 | 
				
			||||||
 | 
					- OneDev: Add git-lfs [@MickLesk](https://github.com/MickLesk) ([#1225](https://github.com/community-scripts/ProxmoxVE/pull/1225))
 | 
				
			||||||
 | 
					- Pf2eTools & 5eTools: Fixing npm build [@TheRealVira](https://github.com/TheRealVira) ([#1213](https://github.com/community-scripts/ProxmoxVE/pull/1213))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Bump next from 15.0.2 to 15.1.3 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#1212](https://github.com/community-scripts/ProxmoxVE/pull/1212))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [GitHub Action] Add filename case check [@quantumryuu](https://github.com/quantumryuu) ([#1228](https://github.com/community-scripts/ProxmoxVE/pull/1228))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-01-03
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Improve Homarr Installation [@MickLesk](https://github.com/MickLesk) ([#1208](https://github.com/community-scripts/ProxmoxVE/pull/1208))
 | 
				
			||||||
 | 
					- Fix: Zabbix-Update Script [@MickLesk](https://github.com/MickLesk) ([#1205](https://github.com/community-scripts/ProxmoxVE/pull/1205))
 | 
				
			||||||
 | 
					- Update Script: Lazylibrarian [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1190](https://github.com/community-scripts/ProxmoxVE/pull/1190))
 | 
				
			||||||
 | 
					- Fix: Memos update function [@MickLesk](https://github.com/MickLesk) ([#1207](https://github.com/community-scripts/ProxmoxVE/pull/1207))
 | 
				
			||||||
 | 
					- Keep Lubelogger data after update to a new version [@JcMinarro](https://github.com/JcMinarro) ([#1200](https://github.com/community-scripts/ProxmoxVE/pull/1200))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Update Nextcloud-LXC JSON [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1191](https://github.com/community-scripts/ProxmoxVE/pull/1191))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Github action to check metadata lines in scripts. [@quantumryuu](https://github.com/quantumryuu) ([#1110](https://github.com/community-scripts/ProxmoxVE/pull/1110))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-01-02
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### ✨ New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- New Script: Pf2eTools [@TheRealVira](https://github.com/TheRealVira) ([#1162](https://github.com/community-scripts/ProxmoxVE/pull/1162))
 | 
				
			||||||
 | 
					- New Script: 5etools [@TheRealVira](https://github.com/TheRealVira) ([#1157](https://github.com/community-scripts/ProxmoxVE/pull/1157))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Update config template in blocky-install.sh [@xFichtl1](https://github.com/xFichtl1) ([#1059](https://github.com/community-scripts/ProxmoxVE/pull/1059))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-01-01
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### ✨ New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- New Script: Komodo [@MickLesk](https://github.com/MickLesk) ([#1167](https://github.com/community-scripts/ProxmoxVE/pull/1167))
 | 
				
			||||||
 | 
					- New Script: Firefly [@quantumryuu](https://github.com/quantumryuu) ([#616](https://github.com/community-scripts/ProxmoxVE/pull/616))
 | 
				
			||||||
 | 
					- New Script: Semaphore [@quantumryuu](https://github.com/quantumryuu) ([#596](https://github.com/community-scripts/ProxmoxVE/pull/596))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Fix Script Homepage: add version during build step [@se-bastiaan](https://github.com/se-bastiaan) ([#1155](https://github.com/community-scripts/ProxmoxVE/pull/1155))
 | 
				
			||||||
 | 
					- Happy new Year! Update Copyright to 2025 [@MickLesk](https://github.com/MickLesk) ([#1150](https://github.com/community-scripts/ProxmoxVE/pull/1150))
 | 
				
			||||||
 | 
					- Update Kernel-Clean to new Version & Bugfixing [@MickLesk](https://github.com/MickLesk) ([#1147](https://github.com/community-scripts/ProxmoxVE/pull/1147))
 | 
				
			||||||
 | 
					- Fix chromium installation for ArchiveBox  [@tkunzfeld](https://github.com/tkunzfeld) ([#1140](https://github.com/community-scripts/ProxmoxVE/pull/1140))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Fix Category of Semaphore [@MickLesk](https://github.com/MickLesk) ([#1148](https://github.com/community-scripts/ProxmoxVE/pull/1148))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Correctly check for changed files in Shellcheck workflow [@se-bastiaan](https://github.com/se-bastiaan) ([#1156](https://github.com/community-scripts/ProxmoxVE/pull/1156))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2024-12-31 - Happy new Year! 🎉✨
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 💥 Breaking Changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Add ExecReload to prometheus.service [@BasixKOR](https://github.com/BasixKOR) ([#1131](https://github.com/community-scripts/ProxmoxVE/pull/1131))
 | 
				
			||||||
 | 
					- Fix: Figlet Version & Font Check [@MickLesk](https://github.com/MickLesk) ([#1133](https://github.com/community-scripts/ProxmoxVE/pull/1133))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Fix: Copy issue after update in Bookstack LXC [@MickLesk](https://github.com/MickLesk) ([#1137](https://github.com/community-scripts/ProxmoxVE/pull/1137))
 | 
				
			||||||
 | 
					- Omada: Switch Base-URL to prevent issues [@MickLesk](https://github.com/MickLesk) ([#1135](https://github.com/community-scripts/ProxmoxVE/pull/1135))
 | 
				
			||||||
 | 
					- fix: guacd service not start during Apache-Guacamole script installation process [@PhoenixEmik](https://github.com/PhoenixEmik) ([#1122](https://github.com/community-scripts/ProxmoxVE/pull/1122))
 | 
				
			||||||
 | 
					- Fix Homepage-Script: Installation/Update [@MickLesk](https://github.com/MickLesk) ([#1129](https://github.com/community-scripts/ProxmoxVE/pull/1129))
 | 
				
			||||||
 | 
					- Netbox: Updating URL to https [@surajsbmn](https://github.com/surajsbmn) ([#1124](https://github.com/community-scripts/ProxmoxVE/pull/1124))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2024-12-30
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [Archivebox] Fix wrong port being printed post install. [@Strana-Mechty](https://github.com/Strana-Mechty) ([#1105](https://github.com/community-scripts/ProxmoxVE/pull/1105))
 | 
				
			||||||
 | 
					- fix: add homepage version during build step [@se-bastiaan](https://github.com/se-bastiaan) ([#1107](https://github.com/community-scripts/ProxmoxVE/pull/1107))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Fix Trilium Website to TriliumNext [@tmkis2](https://github.com/tmkis2) ([#1103](https://github.com/community-scripts/ProxmoxVE/pull/1103))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2024-12-29
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### ✨ New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- New Script: Grist [@cfurrow](https://github.com/cfurrow) ([#1076](https://github.com/community-scripts/ProxmoxVE/pull/1076))
 | 
				
			||||||
 | 
					- New Script: TeddyCloud Server [@dsiebel](https://github.com/dsiebel) ([#1064](https://github.com/community-scripts/ProxmoxVE/pull/1064))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Fix Install / Update on Grist Script [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1091](https://github.com/community-scripts/ProxmoxVE/pull/1091))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- fix: Update add-lxc-iptag.json warn to warning [@BramSuurdje](https://github.com/BramSuurdje) ([#1094](https://github.com/community-scripts/ProxmoxVE/pull/1094))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Introduce editorconfig for more consistent formatting [@dsiebel](https://github.com/dsiebel) ([#1073](https://github.com/community-scripts/ProxmoxVE/pull/1073))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2024-12-28
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 💥 Breaking Changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Add Figlet into Repo | Creation of local ASCII Header [@MickLesk](https://github.com/MickLesk) ([#1072](https://github.com/community-scripts/ProxmoxVE/pull/1072))
 | 
				
			||||||
 | 
					- Add an IP-Update for MOTD if IP Changed [@MickLesk](https://github.com/MickLesk) ([#1067](https://github.com/community-scripts/ProxmoxVE/pull/1067))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Zabbix: Fix SQL Path for 7.2 [@MickLesk](https://github.com/MickLesk) ([#1069](https://github.com/community-scripts/ProxmoxVE/pull/1069))
 | 
				
			||||||
 | 
					- Authentik: added missing port to access url [@TheRealVira](https://github.com/TheRealVira) ([#1065](https://github.com/community-scripts/ProxmoxVE/pull/1065))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2024-12-27
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### ✨ New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- new scripts for Authentik [@remz1337](https://github.com/remz1337) ([#291](https://github.com/community-scripts/ProxmoxVE/pull/291))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Add 8.0 for MongoDB Installation [@MickLesk](https://github.com/MickLesk) ([#1046](https://github.com/community-scripts/ProxmoxVE/pull/1046))
 | 
				
			||||||
 | 
					- Update Zabbix to 7.2. Release [@MickLesk](https://github.com/MickLesk) ([#1048](https://github.com/community-scripts/ProxmoxVE/pull/1048))
 | 
				
			||||||
 | 
					- Apache-Guacamole script bug fix [@sannier3](https://github.com/sannier3) ([#1039](https://github.com/community-scripts/ProxmoxVE/pull/1039))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Updated SAB documentation based on RAM increase [@TheRealVira](https://github.com/TheRealVira) ([#1035](https://github.com/community-scripts/ProxmoxVE/pull/1035))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### ❔ Unlabelled
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Patch Figlet Repo if missing [@MickLesk](https://github.com/MickLesk) ([#1044](https://github.com/community-scripts/ProxmoxVE/pull/1044))
 | 
				
			||||||
 | 
					- fix Tags for Advanced Settings [@MickLesk](https://github.com/MickLesk) ([#1042](https://github.com/community-scripts/ProxmoxVE/pull/1042))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2024-12-26
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Changed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### ✨ New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-  New Script: Jenkins [@quantumryuu](https://github.com/quantumryuu) ([#1019](https://github.com/community-scripts/ProxmoxVE/pull/1019))
 | 
				
			||||||
 | 
					- New Script: 2FAuth [@jkrgr0](https://github.com/jkrgr0) ([#943](https://github.com/community-scripts/ProxmoxVE/pull/943))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- ChangeDetection Update: Update also Browsers [@Niklas04](https://github.com/Niklas04) ([#1027](https://github.com/community-scripts/ProxmoxVE/pull/1027))
 | 
				
			||||||
 | 
					- ensure all RFC1918 local Ipv4 addresses are in iptag script [@AskAlice](https://github.com/AskAlice) ([#992](https://github.com/community-scripts/ProxmoxVE/pull/992))
 | 
				
			||||||
 | 
					- Fix Proxmox DataCenter: incorrect build.func url [@rbradley0](https://github.com/rbradley0) ([#1013](https://github.com/community-scripts/ProxmoxVE/pull/1013))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [GitHub Actions] Introduce Shellcheck to check bash code [@andygrunwald](https://github.com/andygrunwald) ([#1018](https://github.com/community-scripts/ProxmoxVE/pull/1018))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 2024-12-25
 | 
					## 2024-12-25
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Changed
 | 
					### Changed
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
MIT License
 | 
					MIT License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Copyright (c) 2021-2024 tteck | community-scripts ORG 
 | 
					Copyright (c) 2021-2025 tteck | community-scripts ORG 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
					Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
of this software and associated documentation files (the "Software"), to deal
 | 
					of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										90
									
								
								ct/2fauth.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								ct/2fauth.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,90 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: jkrgr0
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://docs.2fauth.app/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# App Default Values
 | 
				
			||||||
 | 
					APP="2FAuth"
 | 
				
			||||||
 | 
					TAGS="2fa;authenticator"
 | 
				
			||||||
 | 
					var_cpu="1"
 | 
				
			||||||
 | 
					var_ram="512"
 | 
				
			||||||
 | 
					var_disk="2"
 | 
				
			||||||
 | 
					var_os="debian"
 | 
				
			||||||
 | 
					var_version="12"
 | 
				
			||||||
 | 
					var_unprivileged="1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# App Output & Base Settings
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					base_settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Core
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					    header_info
 | 
				
			||||||
 | 
					    check_container_storage
 | 
				
			||||||
 | 
					    check_container_resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Check if installation is present | -f for file, -d for folder
 | 
				
			||||||
 | 
					    if [[ ! -d "/opt/2fauth" ]]; then
 | 
				
			||||||
 | 
					        msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					        exit
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Crawling the new version and checking whether an update is required
 | 
				
			||||||
 | 
					    RELEASE=$(curl -s https://api.github.com/repos/Bubka/2FAuth/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
				
			||||||
 | 
					    if [[ "${RELEASE}" != "$(cat /opt/2fauth_version.txt)" ]] || [[ ! -f /opt/2fauth_version.txt ]]; then
 | 
				
			||||||
 | 
					        msg_info "Updating $APP to ${RELEASE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        apt-get update &>/dev/null
 | 
				
			||||||
 | 
					        apt-get -y upgrade &>/dev/null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Creating Backup
 | 
				
			||||||
 | 
					        msg_info "Creating Backup"
 | 
				
			||||||
 | 
					        mv "/opt/2fauth" "/opt/2fauth-backup"
 | 
				
			||||||
 | 
					        msg_ok "Backup Created"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Execute Update
 | 
				
			||||||
 | 
					        wget -q "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip"
 | 
				
			||||||
 | 
					        unzip -q "${RELEASE}.zip"
 | 
				
			||||||
 | 
					        mv "2FAuth-${RELEASE//v}/" "/opt/2fauth"
 | 
				
			||||||
 | 
					        mv "/opt/2fauth-backup/.env" "/opt/2fauth/.env"
 | 
				
			||||||
 | 
					        mv "/opt/2fauth-backup/storage" "/opt/2fauth/storage"
 | 
				
			||||||
 | 
					        cd "/opt/2fauth" || return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        chown -R www-data: "/opt/2fauth"
 | 
				
			||||||
 | 
					        chmod -R 755 "/opt/2fauth"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        export COMPOSER_ALLOW_SUPERUSER=1
 | 
				
			||||||
 | 
					        composer install --no-dev --prefer-source &>/dev/null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        php artisan 2fauth:install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Cleaning up
 | 
				
			||||||
 | 
					        msg_info "Cleaning Up"
 | 
				
			||||||
 | 
					        rm -rf "v${RELEASE}.zip"
 | 
				
			||||||
 | 
					        $STD apt-get -y autoremove
 | 
				
			||||||
 | 
					        $STD apt-get -y autoclean
 | 
				
			||||||
 | 
					        msg_ok "Cleanup Completed"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Last Action
 | 
				
			||||||
 | 
					        echo "${RELEASE}" >/opt/2fauth_version.txt
 | 
				
			||||||
 | 
					        msg_ok "Updated $APP to ${RELEASE}"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
 | 
				
			||||||
							
								
								
									
										113
									
								
								ct/5etools.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								ct/5etools.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,113 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: TheRealVira
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://5e.tools/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# App Default Values
 | 
				
			||||||
 | 
					APP="5etools"
 | 
				
			||||||
 | 
					var_tags="wiki"
 | 
				
			||||||
 | 
					var_cpu="1"
 | 
				
			||||||
 | 
					var_ram="512"
 | 
				
			||||||
 | 
					var_disk="13"
 | 
				
			||||||
 | 
					var_os="debian"
 | 
				
			||||||
 | 
					var_version="12"
 | 
				
			||||||
 | 
					var_unprivileged="1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# App Output & Base Settings
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					base_settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Core
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					    header_info
 | 
				
			||||||
 | 
					    check_container_storage
 | 
				
			||||||
 | 
					    check_container_resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Check if installation is present | -f for file, -d for folder
 | 
				
			||||||
 | 
					    if [[ ! -d "/opt/${APP}" ]]; then
 | 
				
			||||||
 | 
					        msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					        exit
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    RELEASE=$(curl -s https://api.github.com/repos/5etools-mirror-3/5etools-src/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
				
			||||||
 | 
					    if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f "/opt/${APP}_version.txt" ]]; then
 | 
				
			||||||
 | 
					        # Crawling the new version and checking whether an update is required
 | 
				
			||||||
 | 
					        msg_info "Updating System"
 | 
				
			||||||
 | 
					        apt-get update &>/dev/null
 | 
				
			||||||
 | 
					        apt-get -y upgrade &>/dev/null
 | 
				
			||||||
 | 
					        msg_ok "Updated System"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Execute Update
 | 
				
			||||||
 | 
					        msg_info "Updating base 5etools"
 | 
				
			||||||
 | 
					        cd /opt
 | 
				
			||||||
 | 
					        wget -q "https://github.com/5etools-mirror-3/5etools-src/archive/refs/tags/${RELEASE}.zip"
 | 
				
			||||||
 | 
					        unzip -q "${RELEASE}.zip"
 | 
				
			||||||
 | 
					        mv "/opt/${APP}/img" "/opt/img-backup"
 | 
				
			||||||
 | 
					        rm -rf "/opt/${APP}"
 | 
				
			||||||
 | 
					        mv "${APP}-src-${RELEASE:1}" "/opt/${APP}"
 | 
				
			||||||
 | 
					        mv "/opt/img-backup" "/opt/${APP}/img"
 | 
				
			||||||
 | 
					        cd /opt/5etools
 | 
				
			||||||
 | 
					        $STD npm install
 | 
				
			||||||
 | 
					        $STD npm run build
 | 
				
			||||||
 | 
					        cd ~
 | 
				
			||||||
 | 
					        echo "${RELEASE}" >"/opt/${APP}_version.txt"
 | 
				
			||||||
 | 
					        chown -R www-data: "/opt/${APP}"
 | 
				
			||||||
 | 
					        chmod -R 755 "/opt/${APP}"
 | 
				
			||||||
 | 
					        msg_ok "Updated base 5etools"
 | 
				
			||||||
 | 
					        # Cleaning up
 | 
				
			||||||
 | 
					        msg_info "Cleaning Up"
 | 
				
			||||||
 | 
					        rm -rf /opt/${RELEASE}.zip
 | 
				
			||||||
 | 
					        $STD apt-get -y autoremove
 | 
				
			||||||
 | 
					        $STD apt-get -y autoclean
 | 
				
			||||||
 | 
					        msg_ok "Cleanup Completed"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        msg_ok "No update required. Base ${APP} is already at ${RELEASE}"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    IMG_RELEASE=$(curl -s https://api.github.com/repos/5etools-mirror-2/5etools-img/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
				
			||||||
 | 
					    if [[ "${IMG_RELEASE}" != "$(cat /opt/${APP}_IMG_version.txt)" ]] || [[ ! -f "/opt/${APP}_IMG_version.txt" ]]; then
 | 
				
			||||||
 | 
					        # Crawling the new version and checking whether an update is required
 | 
				
			||||||
 | 
					        msg_info "Updating System"
 | 
				
			||||||
 | 
					        apt-get update &>/dev/null
 | 
				
			||||||
 | 
					        apt-get -y upgrade &>/dev/null
 | 
				
			||||||
 | 
					        msg_ok "Updated System"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Execute Update
 | 
				
			||||||
 | 
					        msg_info "Updating 5etools images"
 | 
				
			||||||
 | 
					        curl -sSL "https://github.com/5etools-mirror-2/5etools-img/archive/refs/tags/${IMG_RELEASE}.zip" > "${IMG_RELEASE}.zip"
 | 
				
			||||||
 | 
					        unzip -q "${IMG_RELEASE}.zip"
 | 
				
			||||||
 | 
					        rm -rf "/opt/${APP}/img"
 | 
				
			||||||
 | 
					        mv "${APP}-img-${IMG_RELEASE:1}" "/opt/${APP}/img"
 | 
				
			||||||
 | 
					        echo "${IMG_RELEASE}" >"/opt/${APP}_IMG_version.txt"
 | 
				
			||||||
 | 
					        chown -R www-data: "/opt/${APP}"
 | 
				
			||||||
 | 
					        chmod -R 755 "/opt/${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        msg_ok "Updating 5etools images"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Cleaning up
 | 
				
			||||||
 | 
					        msg_info "Cleaning Up"
 | 
				
			||||||
 | 
					        rm -rf /opt/${RELEASE}.zip
 | 
				
			||||||
 | 
					        rm -rf ${IMG_RELEASE}.zip
 | 
				
			||||||
 | 
					        $STD apt-get -y autoremove
 | 
				
			||||||
 | 
					        $STD apt-get -y autoclean
 | 
				
			||||||
 | 
					        msg_ok "Cleanup Completed"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        msg_ok "No update required. ${APP} images are already at ${IMG_RELEASE}"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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}${CL}"
 | 
				
			||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://actualbudget.org/
 | 
					# Source: https://actualbudget.org/
 | 
				
			||||||
@@ -32,13 +32,26 @@ function update_script() {
 | 
				
			|||||||
        msg_error "No ${APP} Installation Found!"
 | 
					        msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
        exit
 | 
					        exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					    if ! command -v jq >/dev/null 2>&1; then
 | 
				
			||||||
 | 
					      echo "Installing jq..."
 | 
				
			||||||
 | 
					      apt-get install -y jq >/dev/null 2>&1
 | 
				
			||||||
 | 
					      echo "Installed jq..."
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    systemctl stop actualbudget.service
 | 
					    systemctl stop actualbudget
 | 
				
			||||||
 | 
					    RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name')
 | 
				
			||||||
 | 
					    TEMPD="$(mktemp -d)"
 | 
				
			||||||
 | 
					    cd "${TEMPD}"
 | 
				
			||||||
 | 
					    wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O - | tar -xz
 | 
				
			||||||
 | 
					    mv /opt/actualbudget /opt/actualbudget_bak
 | 
				
			||||||
 | 
					    mv actualbudget-actual-server-*/* /opt/actualbudget/
 | 
				
			||||||
    cd /opt/actualbudget
 | 
					    cd /opt/actualbudget
 | 
				
			||||||
    git pull &>/dev/null
 | 
					 | 
				
			||||||
    yarn install &>/dev/null
 | 
					    yarn install &>/dev/null
 | 
				
			||||||
    systemctl start actualbudget.service
 | 
					    systemctl start actualbudget
 | 
				
			||||||
    msg_ok "Successfully Updated ${APP}"
 | 
					    msg_ok "Successfully Updated ${APP} to ${RELEASE}"
 | 
				
			||||||
 | 
					    rm -rf "${TEMPD}"
 | 
				
			||||||
 | 
					    rm -rf /opt/actualbudget_bak
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -49,4 +62,4 @@ description
 | 
				
			|||||||
msg_ok "Completed Successfully!\n"
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5006${CL}"
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5006${CL}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://adguard.com/
 | 
					# Source: https://adguard.com/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: MickLesk (Canbiz)
 | 
					# Author: MickLesk (Canbiz)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://adventurelog.app/
 | 
					# Source: https://adventurelog.app/
 | 
				
			||||||
@@ -40,19 +40,20 @@ function update_script() {
 | 
				
			|||||||
    msg_ok "Services Stopped"
 | 
					    msg_ok "Services Stopped"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
					    msg_info "Updating ${APP} to ${RELEASE}"
 | 
				
			||||||
    cp /opt/adventurelog/backend/server/.env /opt/server.env
 | 
					    mv /opt/adventurelog/ /opt/adventurelog-backup/
 | 
				
			||||||
    cp /opt/adventurelog/frontend/.env /opt/frontend.env
 | 
					    wget -qO /opt/v${RELEASE}.zip "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
 | 
				
			||||||
    wget -q "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
 | 
					    unzip -q /opt/v${RELEASE}.zip -d /opt/
 | 
				
			||||||
    unzip -q v${RELEASE}.zip
 | 
					    mv /opt/AdventureLog-${RELEASE} /opt/adventurelog
 | 
				
			||||||
    mv AdventureLog-${RELEASE} /opt/adventurelog
 | 
					
 | 
				
			||||||
    mv /opt/server.env /opt/adventurelog/backend/server/.env
 | 
					    mv /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
 | 
				
			||||||
 | 
					    mv /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
 | 
				
			||||||
    cd /opt/adventurelog/backend/server
 | 
					    cd /opt/adventurelog/backend/server
 | 
				
			||||||
    pip install --upgrade pip &>/dev/null
 | 
					    pip install --upgrade pip &>/dev/null
 | 
				
			||||||
    pip install -r requirements.txt &>/dev/null
 | 
					    pip install -r requirements.txt &>/dev/null
 | 
				
			||||||
    python3 manage.py collectstatic --noinput &>/dev/null
 | 
					    python3 manage.py collectstatic --noinput &>/dev/null
 | 
				
			||||||
    python3 manage.py migrate &>/dev/null
 | 
					    python3 manage.py migrate &>/dev/null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    mv /opt/frontend.env /opt/adventurelog/frontend/.env
 | 
					    mv /opt/adventurelog-backup/frontend/.env /opt/adventurelog/frontend/.env
 | 
				
			||||||
    cd /opt/adventurelog/frontend
 | 
					    cd /opt/adventurelog/frontend
 | 
				
			||||||
    pnpm install &>/dev/null
 | 
					    pnpm install &>/dev/null
 | 
				
			||||||
    pnpm run build &>/dev/null
 | 
					    pnpm run build &>/dev/null
 | 
				
			||||||
@@ -65,7 +66,8 @@ function update_script() {
 | 
				
			|||||||
    msg_ok "Started Services"
 | 
					    msg_ok "Started Services"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Cleaning Up"
 | 
					    msg_info "Cleaning Up"
 | 
				
			||||||
    rm -rf v${RELEASE}.zip
 | 
					    rm -rf /opt/v${RELEASE}.zip
 | 
				
			||||||
 | 
					    rm -rf /opt/adventurelog-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
@@ -81,4 +83,4 @@ description
 | 
				
			|||||||
msg_ok "Completed Successfully!\n"
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.ispyconnect.com/
 | 
					# Source: https://www.ispyconnect.com/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://cassandra.apache.org/_/index.html
 | 
					# Source: https://cassandra.apache.org/_/index.html
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://couchdb.apache.org/
 | 
					# Source: https://couchdb.apache.org/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
# Author: Michel Roegl-Brunner (michelroegl-brunner)
 | 
					# Author: Michel Roegl-Brunner (michelroegl-brunner)
 | 
				
			||||||
# License: | MIT https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: | MIT https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://guacamole.apache.org/
 | 
					# Source: https://guacamole.apache.org/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://wiki.debian.org/AptCacherNg
 | 
					# Source: https://wiki.debian.org/AptCacherNg
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck
 | 
					# Author: tteck
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://archivebox.io/
 | 
					# Source: https://archivebox.io/
 | 
				
			||||||
@@ -57,4 +57,4 @@ description
 | 
				
			|||||||
msg_ok "Completed Successfully!\n"
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/admin/login${CL}"
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000/admin/login${CL}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://aria2.github.io/
 | 
					# Source: https://aria2.github.io/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.audiobookshelf.org/
 | 
					# Source: https://www.audiobookshelf.org/
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										85
									
								
								ct/authentik.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								ct/authentik.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: remz1337
 | 
				
			||||||
 | 
					# License: MIT
 | 
				
			||||||
 | 
					# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# App Default Values
 | 
				
			||||||
 | 
					APP="Authentik"
 | 
				
			||||||
 | 
					var_tags="identity-provider"
 | 
				
			||||||
 | 
					var_disk="15"
 | 
				
			||||||
 | 
					var_cpu="6"
 | 
				
			||||||
 | 
					var_ram="8192"
 | 
				
			||||||
 | 
					var_os="debian"
 | 
				
			||||||
 | 
					var_version="12"
 | 
				
			||||||
 | 
					var_unprivileged="1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# App Output & Base Settings
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					base_settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Core
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  header_info
 | 
				
			||||||
 | 
					  check_container_storage
 | 
				
			||||||
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					  if [[ ! -f /etc/systemd/system/authentik-server.service ]]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  RELEASE=$(curl -s https://api.github.com/repos/goauthentik/authentik/releases/latest | grep "tarball_url" | awk '{print substr($2, 2, length($2)-3)}')
 | 
				
			||||||
 | 
					  if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
				
			||||||
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
 | 
					    systemctl stop authentik-server
 | 
				
			||||||
 | 
					    systemctl stop authentik-worker
 | 
				
			||||||
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Building ${APP} website"
 | 
				
			||||||
 | 
					    mkdir -p /opt/authentik
 | 
				
			||||||
 | 
					    wget -qO authentik.tar.gz "${RELEASE}"
 | 
				
			||||||
 | 
					    tar -xzf authentik.tar.gz -C /opt/authentik --strip-components 1 --overwrite
 | 
				
			||||||
 | 
					    rm -rf authentik.tar.gz
 | 
				
			||||||
 | 
					    cd /opt/authentik/website
 | 
				
			||||||
 | 
					    npm install &>/dev/null
 | 
				
			||||||
 | 
					    npm run build-bundled &>/dev/null
 | 
				
			||||||
 | 
					    cd /opt/authentik/web
 | 
				
			||||||
 | 
					    npm install &>/dev/null
 | 
				
			||||||
 | 
					    npm run build &>/dev/null
 | 
				
			||||||
 | 
					    msg_ok "Built ${APP} website"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Installing Python Dependencies"
 | 
				
			||||||
 | 
					    cd /opt/authentik
 | 
				
			||||||
 | 
					    poetry install --only=main --no-ansi --no-interaction --no-root &>/dev/null
 | 
				
			||||||
 | 
					    poetry export --without-hashes --without-urls -f requirements.txt --output requirements.txt &>/dev/null
 | 
				
			||||||
 | 
					    pip install --no-cache-dir -r requirements.txt &>/dev/null
 | 
				
			||||||
 | 
					    pip install . &>/dev/null
 | 
				
			||||||
 | 
					    msg_ok "Installed Python Dependencies"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Updating ${APP} to v${RELEASE} (Patience)"
 | 
				
			||||||
 | 
					    cp -r /opt/authentik/authentik/blueprints /opt/authentik/blueprints
 | 
				
			||||||
 | 
					    bash /opt/authentik/lifecycle/ak migrate &>/dev/null
 | 
				
			||||||
 | 
					    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
				
			||||||
 | 
					    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
 | 
					    systemctl start authentik-server
 | 
				
			||||||
 | 
					    systemctl start authentik-worker
 | 
				
			||||||
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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/if/flow/initial-setup/${CL}"
 | 
				
			||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://autobrr.com/
 | 
					# Source: https://autobrr.com/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.bazarr.media/
 | 
					# Source: https://www.bazarr.media/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://0xerr0r.github.io/blocky/latest/
 | 
					# Source: https://0xerr0r.github.io/blocky/latest/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
# Author: MickLesk (Canbiz)
 | 
					# Author: MickLesk (Canbiz)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://github.com/BookStackApp/BookStack
 | 
					# Source: https://github.com/BookStackApp/BookStack
 | 
				
			||||||
@@ -44,9 +44,9 @@ function update_script() {
 | 
				
			|||||||
    unzip -q /opt/v${RELEASE}.zip -d /opt
 | 
					    unzip -q /opt/v${RELEASE}.zip -d /opt
 | 
				
			||||||
    mv /opt/BookStack-${RELEASE} /opt/bookstack
 | 
					    mv /opt/BookStack-${RELEASE} /opt/bookstack
 | 
				
			||||||
    cp /opt/bookstack-backup/.env /opt/bookstack/.env
 | 
					    cp /opt/bookstack-backup/.env /opt/bookstack/.env
 | 
				
			||||||
    cp -r /opt/bookstack-backup/public/uploads/ /opt/bookstack/public/uploads
 | 
					    cp -r /opt/bookstack-backup/public/uploads/* /opt/bookstack/public/uploads/
 | 
				
			||||||
    cp -r /opt/bookstack-backup/storage/uploads/ /opt/bookstack/storage/uploads
 | 
					    cp -r /opt/bookstack-backup/storage/uploads/* /opt/bookstack/storage/uploads/
 | 
				
			||||||
    cp -r /opt/bookstack-backup/themes/ /opt/bookstack/themes
 | 
					    cp -r /opt/bookstack-backup/themes/* /opt/bookstack/themes/
 | 
				
			||||||
    cd /opt/bookstack
 | 
					    cd /opt/bookstack
 | 
				
			||||||
    COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev &>/dev/null
 | 
					    COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev &>/dev/null
 | 
				
			||||||
    php artisan migrate --force &>/dev/null
 | 
					    php artisan migrate --force &>/dev/null
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.bunkerweb.io/
 | 
					# Source: https://www.bunkerweb.io/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://caddyserver.com/
 | 
					# Source: https://caddyserver.com/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster) | Co-Author: remz1337
 | 
					# Author: tteck (tteckster) | Co-Author: remz1337
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://github.com/janeczku/calibre-web
 | 
					# Source: https://github.com/janeczku/calibre-web
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://casaos.io/
 | 
					# Source: https://casaos.io/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://changedetection.io/
 | 
					# Source: https://changedetection.io/
 | 
				
			||||||
@@ -28,28 +28,45 @@ function update_script() {
 | 
				
			|||||||
  header_info
 | 
					  header_info
 | 
				
			||||||
  check_container_storage
 | 
					  check_container_storage
 | 
				
			||||||
  check_container_resources
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if [[ ! -f /etc/systemd/system/changedetection.service ]]; then
 | 
					  if [[ ! -f /etc/systemd/system/changedetection.service ]]; then
 | 
				
			||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  msg_info "Updating ${APP} LXC"
 | 
					
 | 
				
			||||||
  if ! dpkg -s libjpeg-dev >/dev/null 2>&1; then
 | 
					  if ! dpkg -s libjpeg-dev >/dev/null 2>&1; then
 | 
				
			||||||
 | 
					    msg_info "Installing Dependencies"
 | 
				
			||||||
    apt-get update
 | 
					    apt-get update
 | 
				
			||||||
    apt-get install -y libjpeg-dev
 | 
					    apt-get install -y libjpeg-dev
 | 
				
			||||||
 | 
					    msg_ok "Updated Dependencies"
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msg_info "Updating ${APP}"
 | 
				
			||||||
  pip3 install changedetection.io --upgrade &>/dev/null
 | 
					  pip3 install changedetection.io --upgrade &>/dev/null
 | 
				
			||||||
 | 
					  msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msg_info "Updating Playwright"
 | 
				
			||||||
  pip3 install playwright --upgrade &>/dev/null
 | 
					  pip3 install playwright --upgrade &>/dev/null
 | 
				
			||||||
 | 
					  msg_ok "Updated Playwright"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if [[ -f /etc/systemd/system/browserless.service ]]; then
 | 
					  if [[ -f /etc/systemd/system/browserless.service ]]; then
 | 
				
			||||||
 | 
					    msg_info "Updating Browserless (Patience)"
 | 
				
			||||||
    git -C /opt/browserless/ fetch --all &>/dev/null
 | 
					    git -C /opt/browserless/ fetch --all &>/dev/null
 | 
				
			||||||
    git -C /opt/browserless/ reset --hard origin/main &>/dev/null
 | 
					    git -C /opt/browserless/ reset --hard origin/main &>/dev/null
 | 
				
			||||||
    npm update --prefix /opt/browserless &>/dev/null
 | 
					    npm update --prefix /opt/browserless &>/dev/null
 | 
				
			||||||
 | 
					    /opt/browserless/node_modules/playwright-core/cli.js install --with-deps &>/dev/null
 | 
				
			||||||
 | 
					    # Update Chrome separately, as it has to be done with the force option. Otherwise the installation of other browsers will not be done if Chrome is already installed.
 | 
				
			||||||
 | 
					    /opt/browserless/node_modules/playwright-core/cli.js install --force chrome &>/dev/null
 | 
				
			||||||
 | 
					    /opt/browserless/node_modules/playwright-core/cli.js install chromium firefox webkit &>/dev/null
 | 
				
			||||||
    npm run build --prefix /opt/browserless &>/dev/null
 | 
					    npm run build --prefix /opt/browserless &>/dev/null
 | 
				
			||||||
    npm run build:function --prefix /opt/browserless &>/dev/null
 | 
					    npm run build:function --prefix /opt/browserless &>/dev/null
 | 
				
			||||||
    npm prune production --prefix /opt/browserless &>/dev/null
 | 
					    npm prune production --prefix /opt/browserless &>/dev/null
 | 
				
			||||||
    systemctl restart browserless
 | 
					    systemctl restart browserless
 | 
				
			||||||
 | 
					    msg_ok "Updated Browserless"
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    msg_error "No Browserless Installation Found!"
 | 
					    msg_error "No Browserless Installation Found!"
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  systemctl restart changedetection
 | 
					  systemctl restart changedetection
 | 
				
			||||||
  msg_ok "Updated Successfully"
 | 
					  msg_ok "Updated Successfully"
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
@@ -62,4 +79,4 @@ description
 | 
				
			|||||||
msg_ok "Completed Successfully!\n"
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://getchannels.com/dvr-server/
 | 
					# Source: https://getchannels.com/dvr-server/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
# Author: Michel Roegl-Brunner (michelroegl-brunner)
 | 
					# Author: Michel Roegl-Brunner (michelroegl-brunner)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://checkmk.com/
 | 
					# Source: https://checkmk.com/
 | 
				
			||||||
@@ -29,7 +29,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | grep -v "*-rc" | tail -n +2 | head -n 1)
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }') 
 | 
				
			||||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
					  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP} to v${RELEASE}"
 | 
				
			||||||
    omd stop monitoring &>/dev/null
 | 
					    omd stop monitoring &>/dev/null
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.cloudflare.com/
 | 
					# Source: https://www.cloudflare.com/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck | Co-Author: havardthom
 | 
					# Author: tteck | Co-Author: havardthom
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://cockpit-project.org/
 | 
					# Source: https://cockpit-project.org/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.commafeed.com/#/welcome
 | 
					# Source: https://www.commafeed.com/#/welcome
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# Co-Author: MickLesk
 | 
					# Co-Author: MickLesk
 | 
				
			||||||
# License: MIT
 | 
					# License: MIT
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://cronicle.net/
 | 
					# Source: https://cronicle.net/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://daemonsync.me/
 | 
					# Source: https://daemonsync.me/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://dashy.to/
 | 
					# Source: https://dashy.to/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.debian.org/
 | 
					# Source: https://www.debian.org/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.phoscon.de/en/conbee2/software#deconz
 | 
					# Source: https://www.phoscon.de/en/conbee2/software#deconz
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.deluge-torrent.org/
 | 
					# Source: https://www.deluge-torrent.org/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.docker.com/
 | 
					# Source: https://www.docker.com/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://dockge.kuma.pet/
 | 
					# Source: https://dockge.kuma.pet/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://emby.media/
 | 
					# Source: https://emby.media/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.emqx.com/en
 | 
					# Source: https://www.emqx.com/en
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: MickLesk (Canbiz)
 | 
					# Author: MickLesk (Canbiz)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://ersatztv.org/
 | 
					# Source: https://ersatztv.org/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://esphome.io/
 | 
					# Source: https://esphome.io/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: MickLesk (Canbiz)
 | 
					# Author: MickLesk (Canbiz)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://evcc.io/en/
 | 
					# Source: https://evcc.io/en/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster) | Co-Author: Scorpoon
 | 
					# Author: tteck (tteckster) | Co-Author: Scorpoon
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://github.com/revenz/Fenrus
 | 
					# Source: https://github.com/revenz/Fenrus
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://fhem.de/
 | 
					# Source: https://fhem.de/
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										85
									
								
								ct/firefly.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								ct/firefly.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,85 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: quantumryuu
 | 
				
			||||||
 | 
					# License: MIT
 | 
				
			||||||
 | 
					# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://firefly-iii.org/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# App Default Values
 | 
				
			||||||
 | 
					APP="Firefly"
 | 
				
			||||||
 | 
					var_tags="finance"
 | 
				
			||||||
 | 
					var_cpu="1"
 | 
				
			||||||
 | 
					var_ram="1024"
 | 
				
			||||||
 | 
					var_disk="2"
 | 
				
			||||||
 | 
					var_os="debian"
 | 
				
			||||||
 | 
					var_version="12"
 | 
				
			||||||
 | 
					var_unprivileged="1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# App Output & Base Settings
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					base_settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Core
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					header_info
 | 
				
			||||||
 | 
					check_container_storage
 | 
				
			||||||
 | 
					check_container_resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ ! -d /opt/firefly ]]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  RELEASE=$(curl -s https://api.github.com/repos/firefly-iii/firefly-iii/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 Apache2"
 | 
				
			||||||
 | 
					    systemctl stop apache2
 | 
				
			||||||
 | 
					    msg_ok "Stopped Apache2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Updating ${APP} to v${RELEASE}"
 | 
				
			||||||
 | 
					    cp /opt/firefly/.env /opt/.env
 | 
				
			||||||
 | 
					    cp -r /opt/firefly/storage /opt/storage
 | 
				
			||||||
 | 
					    rm -rf /opt/firefly/*
 | 
				
			||||||
 | 
					    cd /opt
 | 
				
			||||||
 | 
					    wget -q "https://github.com/firefly-iii/firefly-iii/releases/download/v${RELEASE}/FireflyIII-v${RELEASE}.tar.gz"
 | 
				
			||||||
 | 
					    tar -xzf FireflyIII-v${RELEASE}.tar.gz -C /opt/firefly --exclude='storage'
 | 
				
			||||||
 | 
					    cd /opt/firefly 
 | 
				
			||||||
 | 
					    composer install --no-dev --no-interaction &>/dev/null
 | 
				
			||||||
 | 
					    php artisan migrate --seed --force &>/dev/null
 | 
				
			||||||
 | 
					    php artisan firefly:decrypt-all &>/dev/null
 | 
				
			||||||
 | 
					    php artisan cache:clear &>/dev/null
 | 
				
			||||||
 | 
					    php artisan view:clear &>/dev/null
 | 
				
			||||||
 | 
					    php artisan firefly:upgrade-database &>/dev/null
 | 
				
			||||||
 | 
					    php artisan firefly:laravel-passport-keys &>/dev/null
 | 
				
			||||||
 | 
					    chown -R www-data:www-data /opt/firefly
 | 
				
			||||||
 | 
					    chmod -R 775 /opt/firefly/storage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    echo "${RELEASE}" >"/opt/${APP}_version.txt"
 | 
				
			||||||
 | 
					    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Starting Apache2"
 | 
				
			||||||
 | 
					    systemctl start apache2
 | 
				
			||||||
 | 
					    msg_ok "Started Apache2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Cleaning up"
 | 
				
			||||||
 | 
					    rm -rf /opt/FireflyIII-v${RELEASE}.tar.gz
 | 
				
			||||||
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
 | 
				
			||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster) | Co-Author: remz1337
 | 
					# Author: tteck (tteckster) | Co-Author: remz1337
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://github.com/FlareSolverr/FlareSolverr
 | 
					# Source: https://github.com/FlareSolverr/FlareSolverr
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://flowiseai.com/
 | 
					# Source: https://flowiseai.com/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://forgejo.org/
 | 
					# Source: https://forgejo.org/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Authors: tteck (tteckster)
 | 
					# Authors: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://frigate.video/
 | 
					# Source: https://frigate.video/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster) | Co-Author: Rogue-King
 | 
					# Author: tteck (tteckster) | Co-Author: Rogue-King
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://about.gitea.com/
 | 
					# Source: https://about.gitea.com/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
# Author: kristocopani
 | 
					# Author: kristocopani
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://github.com/glanceapp/glance
 | 
					# Source: https://github.com/glanceapp/glance
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										52
									
								
								ct/glpi.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								ct/glpi.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: Nícolas Pastorello (opastorello)
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# App Default Values
 | 
				
			||||||
 | 
					APP="GLPI"
 | 
				
			||||||
 | 
					var_tags="asset-management;foss"
 | 
				
			||||||
 | 
					var_cpu="2"
 | 
				
			||||||
 | 
					var_ram="2048"
 | 
				
			||||||
 | 
					var_disk="10"
 | 
				
			||||||
 | 
					var_os="debian"
 | 
				
			||||||
 | 
					var_version="12"
 | 
				
			||||||
 | 
					var_unprivileged="1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# App Output & Base Settings
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					base_settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Core
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  header_info
 | 
				
			||||||
 | 
					  check_container_storage
 | 
				
			||||||
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ ! -d /opt/glpi ]]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  RELEASE=$(curl -s https://api.github.com/repos/glpi-project/glpi/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
 | 
				
			||||||
 | 
					  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
				
			||||||
 | 
					    msg_error "Ther is currently no automatic update function for ${APP}."
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
 | 
				
			||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://github.com/AlexxIT/go2rtc
 | 
					# Source: https://github.com/AlexxIT/go2rtc
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://github.com/Forceu/Gokapi
 | 
					# Source: https://github.com/Forceu/Gokapi
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://gotify.net/
 | 
					# Source: https://gotify.net/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://grafana.com/
 | 
					# Source: https://grafana.com/
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										78
									
								
								ct/grist.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								ct/grist.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,78 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Source: https://github.com/gristlabs/grist-core
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# App Default Values
 | 
				
			||||||
 | 
					APP="Grist"
 | 
				
			||||||
 | 
					var_tags="database;spreadsheet"
 | 
				
			||||||
 | 
					var_cpu="1"
 | 
				
			||||||
 | 
					var_ram="2048"
 | 
				
			||||||
 | 
					var_disk="4"
 | 
				
			||||||
 | 
					var_os="debian"
 | 
				
			||||||
 | 
					var_version="12"
 | 
				
			||||||
 | 
					var_unprivileged="1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# App Output & Base Settings
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					base_settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Core
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  header_info
 | 
				
			||||||
 | 
					  check_container_storage
 | 
				
			||||||
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ ! -d /opt/grist ]]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  RELEASE=$(curl -s https://api.github.com/repos/gristlabs/grist-core/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} Service"
 | 
				
			||||||
 | 
					    systemctl stop grist
 | 
				
			||||||
 | 
					    msg_ok "Stopped ${APP} Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Updating ${APP} to v${RELEASE}"
 | 
				
			||||||
 | 
					    cd /opt
 | 
				
			||||||
 | 
					    rm -rf grist_bak
 | 
				
			||||||
 | 
					    mv grist grist_bak
 | 
				
			||||||
 | 
					    wget -q https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip
 | 
				
			||||||
 | 
					    unzip -q v$RELEASE.zip
 | 
				
			||||||
 | 
					    mv grist-core-${RELEASE} grist
 | 
				
			||||||
 | 
					    cp -n /opt/grist_bak/.env /opt/grist/.env
 | 
				
			||||||
 | 
					    cd grist
 | 
				
			||||||
 | 
					    yarn install >/dev/null 2>&1
 | 
				
			||||||
 | 
					    yarn run build:prod >/dev/null 2>&1
 | 
				
			||||||
 | 
					    yarn run install:python >/dev/null 2>&1
 | 
				
			||||||
 | 
					    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
				
			||||||
 | 
					    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Starting ${APP} Service"
 | 
				
			||||||
 | 
					    systemctl start grist
 | 
				
			||||||
 | 
					    msg_ok "Started ${APP} Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Cleaning up"
 | 
				
			||||||
 | 
					    rm -rf /opt/v$RELEASE.zip
 | 
				
			||||||
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully!\n"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}Grist: http://${IP}:8484${CL}"
 | 
				
			||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://grocy.info/
 | 
					# Source: https://grocy.info/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://github.com/juanfont/headscale
 | 
					# Source: https://github.com/juanfont/headscale
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://heimdall.site/
 | 
					# Source: https://heimdall.site/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.hivemq.com/
 | 
					# Source: https://www.hivemq.com/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: MickLesk (Canbiz) & vhsdream
 | 
					# Author: MickLesk (Canbiz) & vhsdream
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://hoarder.app/
 | 
					# Source: https://hoarder.app/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster) | Co-Author: MickLesk (Canbiz)
 | 
					# Author: tteck (tteckster) | Co-Author: MickLesk (Canbiz)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://homarr.dev/
 | 
					# Source: https://homarr.dev/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.home-assistant.io/
 | 
					# Source: https://www.home-assistant.io/
 | 
				
			||||||
@@ -51,7 +51,9 @@ function update_script() {
 | 
				
			|||||||
      echo -e "${GN}Updating to Stable Version${CL}"
 | 
					      echo -e "${GN}Updating to Stable Version${CL}"
 | 
				
			||||||
      BR=""
 | 
					      BR=""
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    if [[ "$PY" == "python3.11" ]]; then echo -e "⚠️  Home Assistant will soon require Python 3.12."; fi
 | 
					    if [[ "$PY" =~ ^python3\.(11|12)\.[0-9]+$ ]]; then
 | 
				
			||||||
 | 
					    echo -e "⚠️  Home Assistant will soon require Python 3.13.x";
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Stopping Home Assistant"
 | 
					    msg_info "Stopping Home Assistant"
 | 
				
			||||||
    systemctl stop homeassistant
 | 
					    systemctl stop homeassistant
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.home-assistant.io/
 | 
					# Source: https://www.home-assistant.io/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck | Co-Author: MickLesk (Canbiz)
 | 
					# Author: tteck | Co-Author: MickLesk (Canbiz)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://homebox.software/en/
 | 
					# Source: https://homebox.software/en/
 | 
				
			||||||
@@ -40,8 +40,10 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
					    msg_info "Updating ${APP} to ${RELEASE}"
 | 
				
			||||||
    cd /opt
 | 
					    cd /opt
 | 
				
			||||||
    rm -rf homebox_bak
 | 
					    rm -rf homebox_bak
 | 
				
			||||||
 | 
					    rm -rf /tmp/homebox.tar.gz
 | 
				
			||||||
    mv homebox homebox_bak
 | 
					    mv homebox homebox_bak
 | 
				
			||||||
    wget -qO- https://github.com/sysadminsmedia/homebox/releases/download/${RELEASE}/homebox_Linux_x86_64.tar.gz | tar -xzf - -C /opt
 | 
					    wget -qO /tmp/homebox.tar.gz https://github.com/sysadminsmedia/homebox/releases/download/${RELEASE}/homebox_Linux_x86_64.tar.gz
 | 
				
			||||||
 | 
					    tar -xzf /tmp/homebox.tar.gz -C /opt
 | 
				
			||||||
    chmod +x /opt/homebox
 | 
					    chmod +x /opt/homebox
 | 
				
			||||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
					    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
				
			||||||
    msg_ok "Updated Homebox"
 | 
					    msg_ok "Updated Homebox"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://homebridge.io/
 | 
					# Source: https://homebridge.io/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://gethomepage.dev/
 | 
					# Source: https://gethomepage.dev/
 | 
				
			||||||
@@ -50,14 +50,16 @@ function update_script() {
 | 
				
			|||||||
    cp -r homepage-${RELEASE}/* /opt/homepage/
 | 
					    cp -r homepage-${RELEASE}/* /opt/homepage/
 | 
				
			||||||
    rm -rf homepage-${RELEASE}
 | 
					    rm -rf homepage-${RELEASE}
 | 
				
			||||||
    cd /opt/homepage
 | 
					    cd /opt/homepage
 | 
				
			||||||
    npx update-browserslist-db@latest
 | 
					    npx --yes update-browserslist-db@latest >/dev/null 2>&1
 | 
				
			||||||
    pnpm install
 | 
					    pnpm install >/dev/null 2>&1
 | 
				
			||||||
    pnpm build
 | 
					    export NEXT_PUBLIC_VERSION="v$RELEASE"
 | 
				
			||||||
 | 
					    export NEXT_PUBLIC_REVISION="source"
 | 
				
			||||||
 | 
					    pnpm build >/dev/null 2>&1
 | 
				
			||||||
    systemctl start homepage
 | 
					    systemctl start homepage
 | 
				
			||||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
					    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
				
			||||||
    msg_ok "Updated Homepage to v${RELEASE}"
 | 
					    msg_ok "Updated Homepage to v${RELEASE}"
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -69,4 +71,4 @@ description
 | 
				
			|||||||
msg_ok "Completed Successfully!\n"
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://github.com/bastienwirtz/homer
 | 
					# Source: https://github.com/bastienwirtz/homer
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,13 +1,13 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.hyperhdr.eu/
 | 
					# Source: https://www.hyperhdr.eu/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# App Default Values
 | 
					# App Default Values
 | 
				
			||||||
APP="HyperHDR"
 | 
					APP="HyperHDR"
 | 
				
			||||||
var_tags="ambient lightning"
 | 
					var_tags="ambient-lightning"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="2"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="2048"
 | 
				
			||||||
var_disk="4"
 | 
					var_disk="4"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://hyperion-project.org/forum/
 | 
					# Source: https://hyperion-project.org/forum/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.influxdata.com/
 | 
					# Source: https://www.influxdata.com/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
# Author: kristocopani
 | 
					# Author: kristocopani
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.inspircd.org/
 | 
					# Source: https://www.inspircd.org/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.iobroker.net/#en/intro
 | 
					# Source: https://www.iobroker.net/#en/intro
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.iventoy.com/en/index.html
 | 
					# Source: https://www.iventoy.com/en/index.html
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://github.com/Jackett/Jackett
 | 
					# Source: https://github.com/Jackett/Jackett
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://jellyfin.org/
 | 
					# Source: https://jellyfin.org/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://docs.jellyseerr.dev/
 | 
					# Source: https://docs.jellyseerr.dev/
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										50
									
								
								ct/jenkins.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								ct/jenkins.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: kristocopani
 | 
				
			||||||
 | 
					# License: MIT
 | 
				
			||||||
 | 
					# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://www.jenkins.io/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# App Default Values
 | 
				
			||||||
 | 
					APP="Jenkins"
 | 
				
			||||||
 | 
					var_tags="automation"
 | 
				
			||||||
 | 
					var_cpu="2"
 | 
				
			||||||
 | 
					var_ram="1024"
 | 
				
			||||||
 | 
					var_disk="4"
 | 
				
			||||||
 | 
					var_os="debian"
 | 
				
			||||||
 | 
					var_version="12"
 | 
				
			||||||
 | 
					var_unprivileged="1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# App Output & Base Settings
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					base_settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Core
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					    header_info
 | 
				
			||||||
 | 
					    check_container_storage
 | 
				
			||||||
 | 
					    check_container_resources
 | 
				
			||||||
 | 
					    if [[ ! -d /var/lib/jenkins ]]; then
 | 
				
			||||||
 | 
					        msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					        exit
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    msg_info "Updating $APP LXC"
 | 
				
			||||||
 | 
					    apt-get update &>/dev/null
 | 
				
			||||||
 | 
					    apt-get -y upgrade &>/dev/null
 | 
				
			||||||
 | 
					    msg_ok "Updated $APP LXC"
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"
 | 
				
			||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.kavitareader.com/
 | 
					# Source: https://www.kavitareader.com/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.keycloak.org/
 | 
					# Source: https://www.keycloak.org/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
# Author: MickLesk (Canbiz)
 | 
					# Author: MickLesk (Canbiz)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://www.kimai.org/
 | 
					# Source: https://www.kimai.org/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 community-scripts ORG
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
# Author: madelyn (DysfunctionalProgramming)
 | 
					# Author: madelyn (DysfunctionalProgramming)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://komga.org/
 | 
					# Source: https://komga.org/
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										73
									
								
								ct/komodo.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								ct/komodo.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,73 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: MickLesk
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://komo.do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# App Default Values
 | 
				
			||||||
 | 
					APP="Komodo"
 | 
				
			||||||
 | 
					var_tags="docker"
 | 
				
			||||||
 | 
					var_cpu="2"
 | 
				
			||||||
 | 
					var_ram="2048"
 | 
				
			||||||
 | 
					var_disk="10"
 | 
				
			||||||
 | 
					var_os="debian"
 | 
				
			||||||
 | 
					var_version="12"
 | 
				
			||||||
 | 
					var_unprivileged="1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# App Output & Base Settings
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					base_settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Core
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					    header_info
 | 
				
			||||||
 | 
					    check_container_storage
 | 
				
			||||||
 | 
					    check_container_resources
 | 
				
			||||||
 | 
					    if [[ ! -d /opt/komodo ]]; then
 | 
				
			||||||
 | 
					        msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					        exit
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
 | 
					    COMPOSE_FILE=""
 | 
				
			||||||
 | 
					    for file in *.compose.yaml; do
 | 
				
			||||||
 | 
					        if [[ "$file" != "compose.env" ]]; then
 | 
				
			||||||
 | 
					            COMPOSE_FILE="$file"
 | 
				
			||||||
 | 
					            break
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [[ -z "$COMPOSE_FILE" ]]; then
 | 
				
			||||||
 | 
					        msg_error "No valid compose file found in /opt/komodo!"
 | 
				
			||||||
 | 
					        exit 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    BACKUP_FILE="${COMPOSE_FILE}.bak_$(date +%Y%m%d_%H%M%S)"
 | 
				
			||||||
 | 
					    mv "$COMPOSE_FILE" "$BACKUP_FILE" || {
 | 
				
			||||||
 | 
					        msg_error "Failed to create backup of $COMPOSE_FILE!"
 | 
				
			||||||
 | 
					        exit 1
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    GITHUB_URL="https://raw.githubusercontent.com/mbecker20/komodo/main/compose/$COMPOSE_FILE"
 | 
				
			||||||
 | 
					    wget -q -O "$COMPOSE_FILE" "$GITHUB_URL" || {
 | 
				
			||||||
 | 
					        msg_error "Failed to download $COMPOSE_FILE from GitHub!"
 | 
				
			||||||
 | 
					        mv "$BACKUP_FILE" "$COMPOSE_FILE" 
 | 
				
			||||||
 | 
					        exit 1
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    docker compose -p komodo -f "/opt/komodo/$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d &>/dev/null 
 | 
				
			||||||
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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}:9120${CL}"
 | 
				
			||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2024 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster) | Co-Author: ulmentflam
 | 
					# Author: tteck (tteckster) | Co-Author: ulmentflam
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://github.com/ipfs/kubo
 | 
					# Source: https://github.com/ipfs/kubo
 | 
				
			||||||
 
 | 
				
			|||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user