mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 02:12:49 +00:00 
			
		
		
		
	Compare commits
	
		
			277 Commits
		
	
	
		
			2025-09-23
			...
			2025-10-14
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					7c2bfc7c38 | ||
| 
						 | 
					67445bd9ed | ||
| 
						 | 
					0303e93c40 | ||
| 
						 | 
					53f397512a | ||
| 
						 | 
					f303b5e3ef | ||
| 
						 | 
					13098ec5b7 | ||
| 
						 | 
					36726e2263 | ||
| 
						 | 
					d4dd02c115 | ||
| 
						 | 
					dbeb56afe9 | ||
| 
						 | 
					4da1be45b5 | ||
| 
						 | 
					d32f0653fb | ||
| 
						 | 
					e4179ddafe | ||
| 
						 | 
					e4ec0e4032 | ||
| 
						 | 
					1fd132e6d3 | ||
| 
						 | 
					7a6f6631b2 | ||
| 
						 | 
					c9f031f8af | ||
| 
						 | 
					9ba1e00de6 | ||
| 
						 | 
					fd32db9157 | ||
| 
						 | 
					bd7aef10cc | ||
| 
						 | 
					21bb9c618b | ||
| 
						 | 
					68924a2fc2 | ||
| 
						 | 
					fce7c8a100 | ||
| 
						 | 
					e0ffcb4160 | ||
| 
						 | 
					f0fa24e1a5 | ||
| 
						 | 
					a015537d0b | ||
| 
						 | 
					2244676cee | ||
| 
						 | 
					b4f0fcb3d3 | ||
| 
						 | 
					b39672f92e | ||
| 
						 | 
					45e1e490aa | ||
| 
						 | 
					bda3f22016 | ||
| 
						 | 
					03af580449 | ||
| 
						 | 
					a43f97df92 | ||
| 
						 | 
					d53a249bbf | ||
| 
						 | 
					1bdd93a137 | ||
| 
						 | 
					e2e63cf319 | ||
| 
						 | 
					4a7648da94 | ||
| 
						 | 
					86a1aadfda | ||
| 
						 | 
					2fefd45b2f | ||
| 
						 | 
					220196309b | ||
| 
						 | 
					984d722563 | ||
| 
						 | 
					f81e50c430 | ||
| 
						 | 
					9b4812df33 | ||
| 
						 | 
					0ba2abc53d | ||
| 
						 | 
					a733c85293 | ||
| 
						 | 
					8199c77708 | ||
| 
						 | 
					58f56851f2 | ||
| 
						 | 
					ab6974186c | ||
| 
						 | 
					578b9fc7de | ||
| 
						 | 
					67c7c32b7b | ||
| 
						 | 
					ca6bcfc087 | ||
| 
						 | 
					fc644d8434 | ||
| 
						 | 
					3e0ffc193b | ||
| 
						 | 
					21513cffbc | ||
| 
						 | 
					2d838629eb | ||
| 
						 | 
					a672b22650 | ||
| 
						 | 
					3f02934bf5 | ||
| 
						 | 
					162ac5b066 | ||
| 
						 | 
					f58b58806b | ||
| 
						 | 
					e12b9383a9 | ||
| 
						 | 
					62feaf76f4 | ||
| 
						 | 
					5aeb235768 | ||
| 
						 | 
					1ae9543eec | ||
| 
						 | 
					efecfdfb2d | ||
| 
						 | 
					4b5fc75ee1 | ||
| 
						 | 
					f39b17ad7a | ||
| 
						 | 
					1f5a83732e | ||
| 
						 | 
					8d058f78d5 | ||
| 
						 | 
					4515070a97 | ||
| 
						 | 
					8c6b5c3534 | ||
| 
						 | 
					d07affa368 | ||
| 
						 | 
					b7511fa41f | ||
| 
						 | 
					0f11893fd2 | ||
| 
						 | 
					1045d75f3e | ||
| 
						 | 
					23b9f54f0f | ||
| 
						 | 
					9884f2a9f9 | ||
| 
						 | 
					e7b2b86648 | ||
| 
						 | 
					ec1391c233 | ||
| 
						 | 
					32230b4b0e | ||
| 
						 | 
					10673493c0 | ||
| 
						 | 
					dccf2f78e2 | ||
| 
						 | 
					77188d25c9 | ||
| 
						 | 
					de47dfe287 | ||
| 
						 | 
					5716eb3086 | ||
| 
						 | 
					05c7b84a2f | ||
| 
						 | 
					2681528ec6 | ||
| 
						 | 
					3be6e206b5 | ||
| 
						 | 
					264ff2b602 | ||
| 
						 | 
					ab38031a32 | ||
| 
						 | 
					5b23ef6bb0 | ||
| 
						 | 
					659ea81740 | ||
| 
						 | 
					a127124080 | ||
| 
						 | 
					cce58c281d | ||
| 
						 | 
					888dbd6061 | ||
| 
						 | 
					bfcda5d07a | ||
| 
						 | 
					2e4ea927ea | ||
| 
						 | 
					78a66c3612 | ||
| 
						 | 
					86e67fc5cf | ||
| 
						 | 
					c75be209e2 | ||
| 
						 | 
					ad1650ddc2 | ||
| 
						 | 
					637e66d79d | ||
| 
						 | 
					a2774ea013 | ||
| 
						 | 
					6027811e4a | ||
| 
						 | 
					2e42b6d752 | ||
| 
						 | 
					71a40f17ea | ||
| 
						 | 
					f2b98890d6 | ||
| 
						 | 
					b9d4fa6bb4 | ||
| 
						 | 
					beeed04666 | ||
| 
						 | 
					f618e207c1 | ||
| 
						 | 
					7670c7402c | ||
| 
						 | 
					ecef9a346e | ||
| 
						 | 
					dcb3bfe763 | ||
| 
						 | 
					1bd231752e | ||
| 
						 | 
					abc95db08a | ||
| 
						 | 
					a475eff11e | ||
| 
						 | 
					7245af7208 | ||
| 
						 | 
					c3a75d8a5d | ||
| 
						 | 
					3b81c36e75 | ||
| 
						 | 
					588cebad26 | ||
| 
						 | 
					830b2d9e37 | ||
| 
						 | 
					2092c5bdce | ||
| 
						 | 
					e87dc5dbbc | ||
| 
						 | 
					479ce977e6 | ||
| 
						 | 
					a2057d4302 | ||
| 
						 | 
					bbe509c334 | ||
| 
						 | 
					563a69e68b | ||
| 
						 | 
					7ab2bcbb40 | ||
| 
						 | 
					57031bdaad | ||
| 
						 | 
					833a369f61 | ||
| 
						 | 
					8f8eb7aba5 | ||
| 
						 | 
					942ff02d37 | ||
| 
						 | 
					3e1753b3c7 | ||
| 
						 | 
					6863c774fa | ||
| 
						 | 
					965b8cb33e | ||
| 
						 | 
					0768456b2c | ||
| 
						 | 
					9f531ef4a7 | ||
| 
						 | 
					6491ec3f09 | ||
| 
						 | 
					9b5fa050c7 | ||
| 
						 | 
					efb8e0f2f3 | ||
| 
						 | 
					07eda340ea | ||
| 
						 | 
					1a37c759c3 | ||
| 
						 | 
					e39dd5ffa3 | ||
| 
						 | 
					aded2cbd56 | ||
| 
						 | 
					2c791b9e41 | ||
| 
						 | 
					d1786241ec | ||
| 
						 | 
					73cf6c66e3 | ||
| 
						 | 
					efc9153926 | ||
| 
						 | 
					1f4b446788 | ||
| 
						 | 
					aeafbb1047 | ||
| 
						 | 
					938609d5eb | ||
| 
						 | 
					ae6ca4de23 | ||
| 
						 | 
					dfdf8c0ddb | ||
| 
						 | 
					4136f5e7e3 | ||
| 
						 | 
					51302d516e | ||
| 
						 | 
					ab995bd493 | ||
| 
						 | 
					ac12051057 | ||
| 
						 | 
					c3cca616a4 | ||
| 
						 | 
					b1bca924b9 | ||
| 
						 | 
					1909e35e62 | ||
| 
						 | 
					237349ef47 | ||
| 
						 | 
					e4cf50dfcd | ||
| 
						 | 
					0c30d8e3e7 | ||
| 
						 | 
					92999b4db3 | ||
| 
						 | 
					4a02986de1 | ||
| 
						 | 
					d06299685f | ||
| 
						 | 
					71f71fbca9 | ||
| 
						 | 
					938fb6dc58 | ||
| 
						 | 
					03d36a6c10 | ||
| 
						 | 
					8e25b70a25 | ||
| 
						 | 
					1840cce15f | ||
| 
						 | 
					1d0ac4ca10 | ||
| 
						 | 
					deb85bd264 | ||
| 
						 | 
					348f8863a8 | ||
| 
						 | 
					74b332b7ec | ||
| 
						 | 
					2fe3ee667b | ||
| 
						 | 
					48e3b66342 | ||
| 
						 | 
					e93dccb0d5 | ||
| 
						 | 
					168e7b7c2b | ||
| 
						 | 
					3f54d0d7f4 | ||
| 
						 | 
					9477677385 | ||
| 
						 | 
					e58d1dc3d2 | ||
| 
						 | 
					2a765f58f0 | ||
| 
						 | 
					8dfb632a4d | ||
| 
						 | 
					42ae2a4cdc | ||
| 
						 | 
					36e41aca22 | ||
| 
						 | 
					6b1141f9de | ||
| 
						 | 
					97f891d53b | ||
| 
						 | 
					0c63e64662 | ||
| 
						 | 
					d83a378af4 | ||
| 
						 | 
					6820bdcade | ||
| 
						 | 
					8ff82d0c3c | ||
| 
						 | 
					9e39c6cd2b | ||
| 
						 | 
					0bea24888e | ||
| 
						 | 
					70d2be62e9 | ||
| 
						 | 
					fe30e06a48 | ||
| 
						 | 
					193a2ea2df | ||
| 
						 | 
					ffbe0feee1 | ||
| 
						 | 
					107865b06d | ||
| 
						 | 
					0d33b38e29 | ||
| 
						 | 
					11ae7450c7 | ||
| 
						 | 
					598bfd291f | ||
| 
						 | 
					1a38df4c12 | ||
| 
						 | 
					cfc85c1b79 | ||
| 
						 | 
					e7d41fecdc | ||
| 
						 | 
					34ef80ac87 | ||
| 
						 | 
					b18d45631f | ||
| 
						 | 
					efe1e1edb5 | ||
| 
						 | 
					4567505c55 | ||
| 
						 | 
					42c87ba0d4 | ||
| 
						 | 
					b52c252553 | ||
| 
						 | 
					be5ac7153e | ||
| 
						 | 
					07f2849722 | ||
| 
						 | 
					760299283a | ||
| 
						 | 
					0bd2dd7a65 | ||
| 
						 | 
					6591c30e66 | ||
| 
						 | 
					780e5c114c | ||
| 
						 | 
					ba10ec721b | ||
| 
						 | 
					f66dc834bd | ||
| 
						 | 
					be36fc6a94 | ||
| 
						 | 
					65ada6e6f3 | ||
| 
						 | 
					853eb40bba | ||
| 
						 | 
					ace6265895 | ||
| 
						 | 
					639d4f2d53 | ||
| 
						 | 
					d7e77e232c | ||
| 
						 | 
					b850d3f79e | ||
| 
						 | 
					72e5ac5c80 | ||
| 
						 | 
					587579b3a1 | ||
| 
						 | 
					9b4e996d93 | ||
| 
						 | 
					e6f317ede9 | ||
| 
						 | 
					3e4420e357 | ||
| 
						 | 
					38f7e81d8b | ||
| 
						 | 
					8f5d50a9fa | ||
| 
						 | 
					32048cff2d | ||
| 
						 | 
					5775f7cf33 | ||
| 
						 | 
					4d7c004810 | ||
| 
						 | 
					d74131fe6f | ||
| 
						 | 
					87b30f67fa | ||
| 
						 | 
					7ddc50bfe7 | ||
| 
						 | 
					484a46beb1 | ||
| 
						 | 
					b85d1e5062 | ||
| 
						 | 
					05e41f67e1 | ||
| 
						 | 
					bfe6445c64 | ||
| 
						 | 
					ffde3a731c | ||
| 
						 | 
					d5b9da8f5f | ||
| 
						 | 
					1b8d790a14 | ||
| 
						 | 
					175b925ae4 | ||
| 
						 | 
					38a8773d2f | ||
| 
						 | 
					e7dafcbf3e | ||
| 
						 | 
					380fb1cfb7 | ||
| 
						 | 
					10cd6c3f0b | ||
| 
						 | 
					710bd7f4e7 | ||
| 
						 | 
					4d72852e53 | ||
| 
						 | 
					9ad538c2d2 | ||
| 
						 | 
					ee3872e7e1 | ||
| 
						 | 
					f6ca81833e | ||
| 
						 | 
					c41b18f083 | ||
| 
						 | 
					f983f75b30 | ||
| 
						 | 
					137dd647dd | ||
| 
						 | 
					2f5c608f45 | ||
| 
						 | 
					b8e06c05d0 | ||
| 
						 | 
					2beb89055c | ||
| 
						 | 
					308897fdc7 | ||
| 
						 | 
					5b73367c80 | ||
| 
						 | 
					5c0eefa652 | ||
| 
						 | 
					7c5c654dbe | ||
| 
						 | 
					984eeedf31 | ||
| 
						 | 
					7fd08cbe69 | ||
| 
						 | 
					285447b67f | ||
| 
						 | 
					b394cdf6e0 | ||
| 
						 | 
					ab2a6ed38e | ||
| 
						 | 
					f8e109c529 | ||
| 
						 | 
					46e4bc3a04 | ||
| 
						 | 
					d0a1f305c7 | ||
| 
						 | 
					6948e1f695 | ||
| 
						 | 
					8c860da4ed | ||
| 
						 | 
					d32e9fad59 | ||
| 
						 | 
					9096a388c7 | ||
| 
						 | 
					9f0efc27df | 
							
								
								
									
										59
									
								
								.github/workflows/close_template_issue.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								.github/workflows/close_template_issue.yml
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
name: Auto-Close Wrong Template Issues
 | 
			
		||||
on:
 | 
			
		||||
  issues:
 | 
			
		||||
    types: [opened]
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  close_tteck_issues:
 | 
			
		||||
    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Auto-close if wrong Template issue detected
 | 
			
		||||
        uses: actions/github-script@v7
 | 
			
		||||
        with:
 | 
			
		||||
          script: |
 | 
			
		||||
            const issue = context.payload.issue;
 | 
			
		||||
            const content = `${issue.title}\n${issue.body}`;
 | 
			
		||||
            const issueNumber = issue.number;
 | 
			
		||||
 | 
			
		||||
            // Regex patterns (case-insensitive, flexible versioning)
 | 
			
		||||
            const patterns = [
 | 
			
		||||
              /Template\s+debian-13-standard_[\d.]+-[\d]+_amd64\.tar\.zst\s*\[(online|local)\]/i,
 | 
			
		||||
              /Template\s+debian-13-standard_[\d.]+-[\d]+_amd64\.tar\.zst\s+is\s+missing\s+or\s+corrupted/i,
 | 
			
		||||
              /Container\s+creation\s+failed\.?\s+Checking\s+if\s+template\s+is\s+corrupted\s+or\s+incomplete/i,
 | 
			
		||||
              /Template\s+is\s+valid,\s+but\s+container\s+creation\s+still\s+failed/i,
 | 
			
		||||
              /exit\s+code\s+0:\s+while\s+executing\s+command\s+bash\s+-c\s+"\$?\(curl\s+-fsSL\s+https:\/\/raw\.githubusercontent\.com\/[\w/-]+\/create_lxc\.sh\)"/i
 | 
			
		||||
            ];
 | 
			
		||||
 | 
			
		||||
            const matched = patterns.some((regex) => regex.test(content));
 | 
			
		||||
 | 
			
		||||
            if (matched) {
 | 
			
		||||
              const message = `👋 Hello!
 | 
			
		||||
 | 
			
		||||
It looks like you are referencing a **container creation issue with a Debian 13 template** (e.g. \`debian-13-standard_13.x-x_amd64.tar.zst\`).
 | 
			
		||||
 | 
			
		||||
We receive many similar reports about this, and it’s not related to the scripts themselves but to **a Proxmox base template bug**.
 | 
			
		||||
 | 
			
		||||
Please refer to [discussion #8126](https://github.com/community-scripts/ProxmoxVE/discussions/8126) for details.  
 | 
			
		||||
If your issue persists after following the guidance there, feel free to reopen this issue.
 | 
			
		||||
 | 
			
		||||
_This issue was automatically closed by a bot._`;
 | 
			
		||||
 | 
			
		||||
              await github.rest.issues.createComment({
 | 
			
		||||
                ...context.repo,
 | 
			
		||||
                issue_number: issueNumber,
 | 
			
		||||
                body: message
 | 
			
		||||
              });
 | 
			
		||||
 | 
			
		||||
              await github.rest.issues.addLabels({
 | 
			
		||||
                ...context.repo,
 | 
			
		||||
                issue_number: issueNumber,
 | 
			
		||||
                labels: ["not planned"]
 | 
			
		||||
              });
 | 
			
		||||
 | 
			
		||||
              await github.rest.issues.update({
 | 
			
		||||
                ...context.repo,
 | 
			
		||||
                issue_number: issueNumber,
 | 
			
		||||
                state: "closed"
 | 
			
		||||
              });
 | 
			
		||||
            }
 | 
			
		||||
							
								
								
									
										14
									
								
								.github/workflows/frontend-cicd.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.github/workflows/frontend-cicd.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -97,7 +97,7 @@ jobs:
 | 
			
		||||
              success = test_json_files()
 | 
			
		||||
              sys.exit(0 if success else 1)
 | 
			
		||||
          EOF
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  build:
 | 
			
		||||
    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
			
		||||
    needs: test-json-files
 | 
			
		||||
@@ -109,15 +109,13 @@ jobs:
 | 
			
		||||
      - name: Checkout
 | 
			
		||||
        uses: actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Setup Node
 | 
			
		||||
        uses: actions/setup-node@v4
 | 
			
		||||
      - name: Setup Bun
 | 
			
		||||
        uses: oven-sh/setup-bun@v2
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: "20"
 | 
			
		||||
          cache: npm
 | 
			
		||||
          cache-dependency-path: frontend/package-lock.json
 | 
			
		||||
          bun-version: latest
 | 
			
		||||
 | 
			
		||||
      - name: Install dependencies
 | 
			
		||||
        run: npm ci --prefer-offline --legacy-peer-deps
 | 
			
		||||
        run: bun install --frozen-lockfile
 | 
			
		||||
 | 
			
		||||
      - name: Configure Next.js for pages
 | 
			
		||||
        uses: actions/configure-pages@v5
 | 
			
		||||
@@ -125,7 +123,7 @@ jobs:
 | 
			
		||||
          static_site_generator: next
 | 
			
		||||
 | 
			
		||||
      - name: Build with Next.js
 | 
			
		||||
        run: npm run build
 | 
			
		||||
        run: bun run build
 | 
			
		||||
 | 
			
		||||
      - name: Upload artifact
 | 
			
		||||
        if: github.ref == 'refs/heads/main'
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										332
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										332
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -10,8 +10,340 @@
 | 
			
		||||
> [!CAUTION]
 | 
			
		||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
 | 
			
		||||
 | 
			
		||||
## 2025-10-15
 | 
			
		||||
 | 
			
		||||
## 2025-10-14
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - MediaManager: Use managed Python 3.13 [@vhsdream](https://github.com/vhsdream) ([#8343](https://github.com/community-scripts/ProxmoxVE/pull/8343))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Update cockpit installation/update [@burgerga](https://github.com/burgerga) ([#8346](https://github.com/community-scripts/ProxmoxVE/pull/8346))
 | 
			
		||||
 | 
			
		||||
## 2025-10-13
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - GLPI: fix version 11 [@opastorello](https://github.com/opastorello) ([#8238](https://github.com/community-scripts/ProxmoxVE/pull/8238))
 | 
			
		||||
    - Keycloak: Fix typo in update function [@tremor021](https://github.com/tremor021) ([#8316](https://github.com/community-scripts/ProxmoxVE/pull/8316))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - fix: adjust configarr to use binaries [@BlackDark](https://github.com/BlackDark) ([#8254](https://github.com/community-scripts/ProxmoxVE/pull/8254))
 | 
			
		||||
 | 
			
		||||
## 2025-10-12
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Immich: add Debian Testing repo [@vhsdream](https://github.com/vhsdream) ([#8310](https://github.com/community-scripts/ProxmoxVE/pull/8310))
 | 
			
		||||
    - Tinyauth: Fix install issues for v4 [@tremor021](https://github.com/tremor021) ([#8309](https://github.com/community-scripts/ProxmoxVE/pull/8309))
 | 
			
		||||
 | 
			
		||||
## 2025-10-11
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Zabbix: various bugfixes agent1/agent2 [@MickLesk](https://github.com/MickLesk) ([#8294](https://github.com/community-scripts/ProxmoxVE/pull/8294))
 | 
			
		||||
    - wger: fix python and pip install [@MickLesk](https://github.com/MickLesk) ([#8295](https://github.com/community-scripts/ProxmoxVE/pull/8295))
 | 
			
		||||
    - searxng: add msgspec as dependency [@MickLesk](https://github.com/MickLesk) ([#8293](https://github.com/community-scripts/ProxmoxVE/pull/8293))
 | 
			
		||||
    - keycloak: fix update check [@MickLesk](https://github.com/MickLesk) ([#8275](https://github.com/community-scripts/ProxmoxVE/pull/8275))
 | 
			
		||||
    - komga: fix update check [@MickLesk](https://github.com/MickLesk) ([#8285](https://github.com/community-scripts/ProxmoxVE/pull/8285))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - host-backup.sh: Added "ALL" option and include timestamp in backup filename [@stumpyofpain](https://github.com/stumpyofpain) ([#8276](https://github.com/community-scripts/ProxmoxVE/pull/8276))
 | 
			
		||||
    - Komga: Update dependencies and enable RAR5 support [@tremor021](https://github.com/tremor021) ([#8257](https://github.com/community-scripts/ProxmoxVE/pull/8257))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - Update script count in metadata and page content from 300+ to 400+ [@BramSuurdje](https://github.com/BramSuurdje) ([#8279](https://github.com/community-scripts/ProxmoxVE/pull/8279))
 | 
			
		||||
- Refactor CI workflow to use Bun instead of Node.js. [@BramSuurdje](https://github.com/BramSuurdje) ([#8277](https://github.com/community-scripts/ProxmoxVE/pull/8277))
 | 
			
		||||
 | 
			
		||||
## 2025-10-10
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - Prometheus-Blackbox-Exporter ([#8255](https://github.com/community-scripts/ProxmoxVE/pull/8255))
 | 
			
		||||
- SonarQube ([#8256](https://github.com/community-scripts/ProxmoxVE/pull/8256))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - Unifi installation script fix [@knightfall](https://github.com/knightfall) ([#8242](https://github.com/community-scripts/ProxmoxVE/pull/8242))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Docmost: Fix env variables [@tremor021](https://github.com/tremor021) ([#8244](https://github.com/community-scripts/ProxmoxVE/pull/8244))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Harmonize Service MSG-Blocks [@MickLesk](https://github.com/MickLesk) ([#8233](https://github.com/community-scripts/ProxmoxVE/pull/8233))
 | 
			
		||||
 | 
			
		||||
## 2025-10-09
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - New Script: rwMarkable ([#8215](https://github.com/community-scripts/ProxmoxVE/pull/8215))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Alpine-Tinyauth: Fixes for v4 release [@tremor021](https://github.com/tremor021) ([#8225](https://github.com/community-scripts/ProxmoxVE/pull/8225))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Bump U-T Scripts to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#8227](https://github.com/community-scripts/ProxmoxVE/pull/8227))
 | 
			
		||||
 | 
			
		||||
## 2025-10-08
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - MyIP: Increase resources [@tremor021](https://github.com/tremor021) ([#8199](https://github.com/community-scripts/ProxmoxVE/pull/8199))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Wireguard: Fix sysctl for Trixie [@tremor021](https://github.com/tremor021) ([#8209](https://github.com/community-scripts/ProxmoxVE/pull/8209))
 | 
			
		||||
    - Update prompt for Stirling-PDF login option [@EarMaster](https://github.com/EarMaster) ([#8196](https://github.com/community-scripts/ProxmoxVE/pull/8196))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Refactor: Fixed incorrect tag variables in several scripts [@tremor021](https://github.com/tremor021) ([#8182](https://github.com/community-scripts/ProxmoxVE/pull/8182))
 | 
			
		||||
    - ZeroTier One: Fix install output [@tremor021](https://github.com/tremor021) ([#8179](https://github.com/community-scripts/ProxmoxVE/pull/8179))
 | 
			
		||||
 | 
			
		||||
## 2025-10-07
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Alpine-Caddy: remove functions [@MickLesk](https://github.com/MickLesk) ([#8177](https://github.com/community-scripts/ProxmoxVE/pull/8177))
 | 
			
		||||
    - Palmr: Fix NodeJS setup [@tremor021](https://github.com/tremor021) ([#8173](https://github.com/community-scripts/ProxmoxVE/pull/8173))
 | 
			
		||||
    - GLPI: Fix UNBOUND variable [@tremor021](https://github.com/tremor021) ([#8167](https://github.com/community-scripts/ProxmoxVE/pull/8167))
 | 
			
		||||
    - BookLore: upgrade to Java 25/Gradle 9 [@vhsdream](https://github.com/vhsdream) ([#8165](https://github.com/community-scripts/ProxmoxVE/pull/8165))
 | 
			
		||||
    - Alpine-Wireguard: Fix for update failing in normal mode [@tremor021](https://github.com/tremor021) ([#8160](https://github.com/community-scripts/ProxmoxVE/pull/8160))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Bump W-V Scripts to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#8176](https://github.com/community-scripts/ProxmoxVE/pull/8176))
 | 
			
		||||
    - Bump Z-Y Scripts to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#8174](https://github.com/community-scripts/ProxmoxVE/pull/8174))
 | 
			
		||||
    - Docmost: Fixes and updates [@tremor021](https://github.com/tremor021) ([#8158](https://github.com/community-scripts/ProxmoxVE/pull/8158))
 | 
			
		||||
 | 
			
		||||
## 2025-10-06
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - GLPI: Revert fix for v11 [@tremor021](https://github.com/tremor021) ([#8148](https://github.com/community-scripts/ProxmoxVE/pull/8148))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Node-Red: bump to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#8141](https://github.com/community-scripts/ProxmoxVE/pull/8141))
 | 
			
		||||
    - NocoDB: bump to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#8140](https://github.com/community-scripts/ProxmoxVE/pull/8140))
 | 
			
		||||
    - Navidrome: bump to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#8139](https://github.com/community-scripts/ProxmoxVE/pull/8139))
 | 
			
		||||
    - pve-scripts-local: add update function [@MickLesk](https://github.com/MickLesk) ([#8138](https://github.com/community-scripts/ProxmoxVE/pull/8138))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - Update config_path for Zigbee2MQTT configuration [@MickLesk](https://github.com/MickLesk) ([#8153](https://github.com/community-scripts/ProxmoxVE/pull/8153))
 | 
			
		||||
 | 
			
		||||
## 2025-10-05
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - ActualBudget: bump to debian 13 [@MickLesk](https://github.com/MickLesk) ([#8124](https://github.com/community-scripts/ProxmoxVE/pull/8124))
 | 
			
		||||
    - 2fauth: bump to debian 13 [@MickLesk](https://github.com/MickLesk) ([#8123](https://github.com/community-scripts/ProxmoxVE/pull/8123))
 | 
			
		||||
    - AdventureLog: bump to debian 13 [@MickLesk](https://github.com/MickLesk) ([#8125](https://github.com/community-scripts/ProxmoxVE/pull/8125))
 | 
			
		||||
    - Update cockpit to Debian 13 [@burgerga](https://github.com/burgerga) ([#8119](https://github.com/community-scripts/ProxmoxVE/pull/8119))
 | 
			
		||||
 | 
			
		||||
## 2025-10-04
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - immich: guard /dev/dri permissions so CPU-only installs don’t fail [@mlongwell](https://github.com/mlongwell) ([#8094](https://github.com/community-scripts/ProxmoxVE/pull/8094))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - PosgreSQL: Add version choice [@tremor021](https://github.com/tremor021) ([#8103](https://github.com/community-scripts/ProxmoxVE/pull/8103))
 | 
			
		||||
 | 
			
		||||
## 2025-10-03
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - pve-scripts-local ([#8083](https://github.com/community-scripts/ProxmoxVE/pull/8083))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - GLPI: Pin version to v10.0.20 [@tremor021](https://github.com/tremor021) ([#8092](https://github.com/community-scripts/ProxmoxVE/pull/8092))
 | 
			
		||||
    - GLPI: Fix database setup [@tremor021](https://github.com/tremor021) ([#8074](https://github.com/community-scripts/ProxmoxVE/pull/8074))
 | 
			
		||||
    - Overseerr: Increase resources [@tremor021](https://github.com/tremor021) ([#8086](https://github.com/community-scripts/ProxmoxVE/pull/8086))
 | 
			
		||||
    - FIX: post-pve-install.sh just quitting [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#8070](https://github.com/community-scripts/ProxmoxVE/pull/8070))
 | 
			
		||||
    - fix: ensure /etc/pulse exists before chown in update script [@rcourtman](https://github.com/rcourtman) ([#8068](https://github.com/community-scripts/ProxmoxVE/pull/8068))
 | 
			
		||||
    - grist: remove unneeded var [@MickLesk](https://github.com/MickLesk) ([#8060](https://github.com/community-scripts/ProxmoxVE/pull/8060))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Immich: bump version to 2.0.1 [@vhsdream](https://github.com/vhsdream) ([#8090](https://github.com/community-scripts/ProxmoxVE/pull/8090))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Adjust navbar layout for large screen [@BramSuurdje](https://github.com/BramSuurdje) ([#8087](https://github.com/community-scripts/ProxmoxVE/pull/8087))
 | 
			
		||||
 | 
			
		||||
## 2025-10-02
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - EMQX: removal logic in emqx update [@MickLesk](https://github.com/MickLesk) ([#8050](https://github.com/community-scripts/ProxmoxVE/pull/8050))
 | 
			
		||||
    - fix FlareSolverr version check to v3.3.25 [@MickLesk](https://github.com/MickLesk) ([#8051](https://github.com/community-scripts/ProxmoxVE/pull/8051))
 | 
			
		||||
 | 
			
		||||
## 2025-10-01
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - New Script: PhpMyAdmin (Addon) [@MickLesk](https://github.com/MickLesk) ([#8030](https://github.com/community-scripts/ProxmoxVE/pull/8030))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - openwrt: Add conditional logic for EFI disk allocation [@MickLesk](https://github.com/MickLesk) ([#8024](https://github.com/community-scripts/ProxmoxVE/pull/8024))
 | 
			
		||||
    - Plant-IT: Pin version to v0.10.0 [@tremor021](https://github.com/tremor021) ([#8023](https://github.com/community-scripts/ProxmoxVE/pull/8023))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Immich: bump version to 2.0.0 stable [@vhsdream](https://github.com/vhsdream) ([#8041](https://github.com/community-scripts/ProxmoxVE/pull/8041))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Immich: bump version to 1.144.1 [@vhsdream](https://github.com/vhsdream) ([#7994](https://github.com/community-scripts/ProxmoxVE/pull/7994))
 | 
			
		||||
 | 
			
		||||
## 2025-09-30
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - caddy: fix typo for setup_go [@MickLesk](https://github.com/MickLesk) ([#8017](https://github.com/community-scripts/ProxmoxVE/pull/8017))
 | 
			
		||||
    - Changedetection: Fix Browserless installation and update process [@h-stoyanov](https://github.com/h-stoyanov) ([#8011](https://github.com/community-scripts/ProxmoxVE/pull/8011))
 | 
			
		||||
    - n8n: Update procedure workaround [@tremor021](https://github.com/tremor021) ([#8004](https://github.com/community-scripts/ProxmoxVE/pull/8004))
 | 
			
		||||
    - Changedetection: Bump nodejs to 24 [@MickLesk](https://github.com/MickLesk) ([#8002](https://github.com/community-scripts/ProxmoxVE/pull/8002))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Bump Guacamole to Debian 13 [@burgerga](https://github.com/burgerga) ([#8010](https://github.com/community-scripts/ProxmoxVE/pull/8010))
 | 
			
		||||
 | 
			
		||||
## 2025-09-29
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - Ghostfolio ([#7982](https://github.com/community-scripts/ProxmoxVE/pull/7982))
 | 
			
		||||
- Warracker ([#7977](https://github.com/community-scripts/ProxmoxVE/pull/7977))
 | 
			
		||||
- MyIP ([#7974](https://github.com/community-scripts/ProxmoxVE/pull/7974))
 | 
			
		||||
- Verdaccio ([#7967](https://github.com/community-scripts/ProxmoxVE/pull/7967))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - fix sidebar loading issues and navbar on mobile [@BramSuurdje](https://github.com/BramSuurdje) ([#7991](https://github.com/community-scripts/ProxmoxVE/pull/7991))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Improve mobile ui: added a hamburger navigation to the mobile view. [@BramSuurdje](https://github.com/BramSuurdje) ([#7987](https://github.com/community-scripts/ProxmoxVE/pull/7987))
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - Remove Frigate from Website [@MickLesk](https://github.com/MickLesk) ([#7972](https://github.com/community-scripts/ProxmoxVE/pull/7972))
 | 
			
		||||
 | 
			
		||||
## 2025-09-28
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Metube: remove uv flags [@vhsdream](https://github.com/vhsdream) ([#7962](https://github.com/community-scripts/ProxmoxVE/pull/7962))
 | 
			
		||||
    - freshrss: fix for broken permissions after update [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7953](https://github.com/community-scripts/ProxmoxVE/pull/7953))
 | 
			
		||||
 | 
			
		||||
## 2025-09-27
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - GoAway: Make admin password aquisition more reliable [@tremor021](https://github.com/tremor021) ([#7946](https://github.com/community-scripts/ProxmoxVE/pull/7946))
 | 
			
		||||
    - MeTube: Various fixes [@vhsdream](https://github.com/vhsdream) ([#7936](https://github.com/community-scripts/ProxmoxVE/pull/7936))
 | 
			
		||||
    - Oddo: Fix typo in update procedure [@tremor021](https://github.com/tremor021) ([#7941](https://github.com/community-scripts/ProxmoxVE/pull/7941))
 | 
			
		||||
 | 
			
		||||
## 2025-09-26
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Odoo: Fix missing dependencies [@tremor021](https://github.com/tremor021) ([#7931](https://github.com/community-scripts/ProxmoxVE/pull/7931))
 | 
			
		||||
    - OpenWebUI: Update NODE_OPTIONS to increase memory limit [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#7919](https://github.com/community-scripts/ProxmoxVE/pull/7919))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - Clarify descriptions of update scripts [@tremor021](https://github.com/tremor021) ([#7929](https://github.com/community-scripts/ProxmoxVE/pull/7929))
 | 
			
		||||
 | 
			
		||||
## 2025-09-25
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - GoAway ([#7900](https://github.com/community-scripts/ProxmoxVE/pull/7900))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - ntfy: bump to debian 13 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7895](https://github.com/community-scripts/ProxmoxVE/pull/7895))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - feat: add menu icons to website [@BramSuurdje](https://github.com/BramSuurdje) ([#7894](https://github.com/community-scripts/ProxmoxVE/pull/7894))
 | 
			
		||||
 | 
			
		||||
## 2025-09-24
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - Add Script: Joplin Server ([#7879](https://github.com/community-scripts/ProxmoxVE/pull/7879))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Monica: Fix dependencies [@tremor021](https://github.com/tremor021) ([#7877](https://github.com/community-scripts/ProxmoxVE/pull/7877))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - Update name in lxc-delete.json to 'PVE LXC Deletion' [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#7872](https://github.com/community-scripts/ProxmoxVE/pull/7872))
 | 
			
		||||
 | 
			
		||||
## 2025-09-23
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								ct/2fauth.sh
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								ct/2fauth.sh
									
									
									
									
									
								
							@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-2}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -29,8 +29,8 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "2fauth" "Bubka/2FAuth"; then
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get -y upgrade
 | 
			
		||||
    $STD apt update
 | 
			
		||||
    $STD apt -y upgrade
 | 
			
		||||
 | 
			
		||||
    msg_info "Creating Backup"
 | 
			
		||||
    mv "/opt/2fauth" "/opt/2fauth-backup"
 | 
			
		||||
@@ -60,10 +60,11 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    if dpkg -l | grep -q 'php8.2'; then
 | 
			
		||||
      $STD apt-get remove --purge -y php8.2*
 | 
			
		||||
      $STD apt remove --purge -y php8.2*
 | 
			
		||||
    fi
 | 
			
		||||
    $STD apt-get -y autoremove
 | 
			
		||||
    $STD apt-get -y autoclean
 | 
			
		||||
    $STD apt -y autoremove
 | 
			
		||||
    $STD apt -y autoclean
 | 
			
		||||
    $STD apt -y clean
 | 
			
		||||
    msg_ok "Cleanup Completed"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -28,23 +28,22 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  NODE_VERSION="22"
 | 
			
		||||
  setup_nodejs
 | 
			
		||||
  NODE_VERSION="22" setup_nodejs
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ -f /opt/actualbudget-data/config.json ]]; then
 | 
			
		||||
    if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then
 | 
			
		||||
      msg_info "Stopping ${APP}"
 | 
			
		||||
      msg_info "Stopping Service"
 | 
			
		||||
      systemctl stop actualbudget
 | 
			
		||||
      msg_ok "${APP} Stopped"
 | 
			
		||||
      msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
      msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
      $STD npm update -g @actual-app/sync-server
 | 
			
		||||
      echo "${RELEASE}" >/opt/actualbudget_version.txt
 | 
			
		||||
      msg_ok "Updated ${APP} to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
      msg_info "Starting ${APP}"
 | 
			
		||||
      msg_info "Starting Service"
 | 
			
		||||
      systemctl start actualbudget
 | 
			
		||||
      msg_ok "Restarted ${APP}"
 | 
			
		||||
      msg_ok "Started Service"
 | 
			
		||||
    else
 | 
			
		||||
      msg_info "${APP} is already up to date"
 | 
			
		||||
    fi
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_disk="${var_disk:-7}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -28,8 +28,8 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if ! command -v memcached >/dev/null 2>&1; then
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get install -y memcached libmemcached-tools
 | 
			
		||||
    $STD apt update
 | 
			
		||||
    $STD apt install -y memcached libmemcached-tools
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "adventurelog" "seanmorley15/adventurelog"; then
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
@@ -43,12 +43,12 @@ function update_script() {
 | 
			
		||||
    msg_ok "Backup done"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog"
 | 
			
		||||
    PYTHON_VERSION="3.12" setup_uv
 | 
			
		||||
    PYTHON_VERSION="3.13" setup_uv
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    cp /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
 | 
			
		||||
    cp -r /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
 | 
			
		||||
    cd /opt/adventurelog/backend/server
 | 
			
		||||
    cd /opt/adventurelog/backend/server || exit
 | 
			
		||||
    if [[ ! -x .venv/bin/python ]]; then
 | 
			
		||||
      $STD uv venv .venv
 | 
			
		||||
      $STD .venv/bin/python -m ensurepip --upgrade
 | 
			
		||||
@@ -59,7 +59,7 @@ function update_script() {
 | 
			
		||||
    $STD .venv/bin/python -m manage migrate
 | 
			
		||||
 | 
			
		||||
    cp /opt/adventurelog-backup/frontend/.env /opt/adventurelog/frontend/.env
 | 
			
		||||
    cd /opt/adventurelog/frontend
 | 
			
		||||
    cd /opt/adventurelog/frontend || exit
 | 
			
		||||
    $STD pnpm i
 | 
			
		||||
    $STD pnpm build
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 
 | 
			
		||||
@@ -21,8 +21,6 @@ catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /etc/caddy ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
 
 | 
			
		||||
@@ -24,23 +24,23 @@ function update_script() {
 | 
			
		||||
  check_container_resources
 | 
			
		||||
 | 
			
		||||
  if [[ ! -d /opt/redlib ]]; then
 | 
			
		||||
      msg_error "No ${APP} Installation Found!"
 | 
			
		||||
      exit
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating Alpine Packages"
 | 
			
		||||
  $STD apk -U upgrade
 | 
			
		||||
  msg_ok "Updated Alpine Packages"
 | 
			
		||||
 | 
			
		||||
  msg_info "Stopping ${APP} Service"
 | 
			
		||||
  msg_info "Stopping Service"
 | 
			
		||||
  $STD rc-service redlib stop
 | 
			
		||||
  msg_ok "Stopped ${APP} Service"
 | 
			
		||||
  msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  fetch_and_deploy_gh_release "redlib" "redlib-org/redlib" "prebuild" "latest" "/opt/redlib" "redlib-x86_64-unknown-linux-musl.tar.gz"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP} Service"
 | 
			
		||||
  msg_info "Starting Service"
 | 
			
		||||
  $STD rc-service redlib start
 | 
			
		||||
  msg_ok "Started ${APP} Service"
 | 
			
		||||
  msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
  msg_ok "Update Successful"
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -29,15 +29,19 @@ function update_script() {
 | 
			
		||||
  $STD apk -U upgrade
 | 
			
		||||
  msg_ok "Updated packages"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating Tinyauth"
 | 
			
		||||
  RELEASE=$(curl -s https://api.github.com/repos/steveiliop56/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
 | 
			
		||||
  if [ "${RELEASE}" != "$(cat /opt/tinyauth_version.txt)" ] || [ ! -f /opt/tinyauth_version.txt ]; then
 | 
			
		||||
  if [ "${RELEASE}" != "$(cat ~/.tinyauth 2>/dev/null)" ] || [ ! -f ~/.tinyauth ]; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    $STD service tinyauth stop
 | 
			
		||||
    msg_ok "Service Stopped"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating Tinyauth"
 | 
			
		||||
    rm -f /opt/tinyauth/tinyauth
 | 
			
		||||
    curl -fsSL "https://github.com/steveiliop56/tinyauth/releases/download/v${RELEASE}/tinyauth-amd64" -o /opt/tinyauth/tinyauth
 | 
			
		||||
    chmod +x /opt/tinyauth/tinyauth
 | 
			
		||||
    echo "${RELEASE}" >/opt/tinyauth_version.txt
 | 
			
		||||
    echo "${RELEASE}" >~/.tinyauth
 | 
			
		||||
    msg_ok "Updated Tinyauth"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restarting Tinyauth"
 | 
			
		||||
    $STD service tinyauth start
 | 
			
		||||
    msg_ok "Restarted Tinyauth"
 | 
			
		||||
 
 | 
			
		||||
@@ -32,7 +32,7 @@ function update_script() {
 | 
			
		||||
  if [[ -d /etc/wgdashboard/src ]]; then
 | 
			
		||||
    msg_info "update WGDashboard"
 | 
			
		||||
    cd /etc/wgdashboard/src
 | 
			
		||||
    $STD echo "y" | ./wgd.sh update
 | 
			
		||||
    echo "y" | ./wgd.sh update >/dev/null 2>&1
 | 
			
		||||
    $STD ./wgd.sh start
 | 
			
		||||
    msg_ok "WGDashboard updated"
 | 
			
		||||
  fi
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_disk="${var_disk:-4}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -38,4 +38,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/guacamole${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/guacamole${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -29,9 +29,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE="$(curl -fsSL https://dlcdn.apache.org/tika/ | grep -oP '(?<=href=")[0-9]+\.[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1)"
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop apache-tika
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    cd /opt/apache-tika
 | 
			
		||||
@@ -41,9 +41,9 @@ function update_script() {
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start apache-tika
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf /opt/apache-tika/tika-server-standard-prev-version.jar
 | 
			
		||||
    msg_ok "Cleanup Completed"
 | 
			
		||||
@@ -61,4 +61,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9998${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9998${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
			
		||||
# Source: https://www.authelia.com/
 | 
			
		||||
 | 
			
		||||
APP="Authelia"
 | 
			
		||||
TAGS=""
 | 
			
		||||
var_tags="${var_tags:-authenticator}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-2}"
 | 
			
		||||
@@ -25,7 +25,7 @@ function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d "/etc/authelia/" ]]; then
 | 
			
		||||
  if [[ ! -d /etc/authelia/ ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 
 | 
			
		||||
@@ -29,15 +29,15 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "autobrr" "autobrr/autobrr"; then
 | 
			
		||||
    msg_info "Stopping ${APP} LXC"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop autobrr
 | 
			
		||||
    msg_ok "Stopped ${APP} LXC"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "autobrr" "autobrr/autobrr" "prebuild" "latest" "/usr/local/bin" "autobrr_*_linux_x86_64.tar.gz"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP} LXC"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start autobrr
 | 
			
		||||
    msg_ok "Started ${APP} LXC"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -29,9 +29,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/garethgeorge/backrest/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop backrest
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    temp_file=$(mktemp)
 | 
			
		||||
@@ -42,9 +42,9 @@ function update_script() {
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start backrest
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -f "$temp_file"
 | 
			
		||||
 
 | 
			
		||||
@@ -45,6 +45,8 @@ function update_script() {
 | 
			
		||||
    $STD npm run build --configuration=production
 | 
			
		||||
    msg_ok "Built Frontend"
 | 
			
		||||
 | 
			
		||||
    JAVA_VERSION="25" setup_java
 | 
			
		||||
 | 
			
		||||
    msg_info "Building Backend"
 | 
			
		||||
    cd /opt/booklore/booklore-api
 | 
			
		||||
    APP_VERSION=$(curl -fsSL https://api.github.com/repos/booklore-app/BookLore/releases/latest | yq '.tag_name' | sed 's/^v//')
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,7 @@ function update_script() {
 | 
			
		||||
   msg_ok "Updated $APP LXC"
 | 
			
		||||
 | 
			
		||||
    if command -v xcaddy >/dev/null 2>&1; then
 | 
			
		||||
      install_go
 | 
			
		||||
      setup_go
 | 
			
		||||
      msg_info "Updating xCaddy"
 | 
			
		||||
      cd /opt
 | 
			
		||||
      RELEASE=$(curl -fsSL https://api.github.com/repos/caddyserver/xcaddy/releases/latest | grep "tag_name" | awk -F '"' '{print $4}')
 | 
			
		||||
 
 | 
			
		||||
@@ -27,9 +27,9 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Stopping ${APP}"
 | 
			
		||||
  msg_info "Stopping Service"
 | 
			
		||||
  systemctl stop cps
 | 
			
		||||
  msg_ok "Stopped ${APP}"
 | 
			
		||||
  msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP}"
 | 
			
		||||
  cd /opt/kepubify
 | 
			
		||||
@@ -121,9 +121,9 @@ function update_script() {
 | 
			
		||||
    $STD pip install --upgrade calibreweb
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP}"
 | 
			
		||||
  msg_info "Starting Service"
 | 
			
		||||
  systemctl start cps
 | 
			
		||||
  msg_ok "Started ${APP}"
 | 
			
		||||
  msg_ok "Started Service"
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
@@ -135,4 +135,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8083${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8083${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,8 @@ function update_script() {
 | 
			
		||||
    msg_ok "Updated Dependencies"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  NODE_VERSION="24" setup_nodejs
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP}"
 | 
			
		||||
  $STD pip3 install changedetection.io --upgrade
 | 
			
		||||
  msg_ok "Updated ${APP}"
 | 
			
		||||
@@ -49,6 +51,7 @@ function update_script() {
 | 
			
		||||
    $STD git -C /opt/browserless/ fetch --all
 | 
			
		||||
    $STD git -C /opt/browserless/ reset --hard origin/main
 | 
			
		||||
    $STD npm update --prefix /opt/browserless
 | 
			
		||||
    $STD npm ci --include=optional --include=dev --prefix /opt/browserless
 | 
			
		||||
    $STD /opt/browserless/node_modules/playwright-core/cli.js install --with-deps
 | 
			
		||||
    # 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.
 | 
			
		||||
    $STD /opt/browserless/node_modules/playwright-core/cli.js install --force chrome
 | 
			
		||||
 
 | 
			
		||||
@@ -28,15 +28,15 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "cleanuparr" "Cleanuparr/Cleanuparr"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop cleanuparr
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start cleanuparr
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -27,73 +27,12 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \
 | 
			
		||||
    "1" "Update LXC" ON \
 | 
			
		||||
    "2" "Install cockpit-file-sharing" OFF \
 | 
			
		||||
    "3" "Install cockpit-identities" OFF \
 | 
			
		||||
    "4" "Install cockpit-navigator" OFF \
 | 
			
		||||
    3>&1 1>&2 2>&3)
 | 
			
		||||
 | 
			
		||||
  if [ "$UPD" == "1" ]; then
 | 
			
		||||
    msg_info "Updating ${APP} LXC"
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get -y upgrade
 | 
			
		||||
    msg_ok "Updated ${APP} LXC"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if [ "$UPD" == "2" ]; then
 | 
			
		||||
    msg_info "Installing dependencies (patience)"
 | 
			
		||||
    $STD apt-get install -y \
 | 
			
		||||
      attr \
 | 
			
		||||
      nfs-kernel-server \
 | 
			
		||||
      samba \
 | 
			
		||||
      samba-common-bin \
 | 
			
		||||
      winbind \
 | 
			
		||||
      gawk
 | 
			
		||||
    msg_ok "Installed dependencies"
 | 
			
		||||
    msg_info "Installing Cockpit file sharing"
 | 
			
		||||
    URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
 | 
			
		||||
    FILE=$(basename "$URL")
 | 
			
		||||
    curl -fsSL "$URL" -o "$FILE"
 | 
			
		||||
    $STD dpkg -i "$FILE" || $STD apt-get install -f -y
 | 
			
		||||
    rm -f "$FILE"
 | 
			
		||||
    msg_ok "Installed Cockpit file sharing"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if [ "$UPD" == "3" ]; then
 | 
			
		||||
    msg_info "Installing dependencies (patience)"
 | 
			
		||||
    $STD apt-get install -y \
 | 
			
		||||
      psmisc \
 | 
			
		||||
      samba \
 | 
			
		||||
      samba-common-bin
 | 
			
		||||
    msg_ok "Installed dependencies"
 | 
			
		||||
    msg_info "Installing Cockpit identities"
 | 
			
		||||
    URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
 | 
			
		||||
    FILE=$(basename "$URL")
 | 
			
		||||
    curl -fsSL "$URL" -o "$FILE"
 | 
			
		||||
    $STD dpkg -i "$FILE" || $STD apt-get install -f -y
 | 
			
		||||
    rm -f "$FILE"
 | 
			
		||||
    msg_ok "Installed Cockpit identities"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if [ "$UPD" == "4" ]; then
 | 
			
		||||
    msg_info "Installing dependencies"
 | 
			
		||||
    $STD apt-get install -y \
 | 
			
		||||
      rsync \
 | 
			
		||||
      zip
 | 
			
		||||
    msg_ok "Installed dependencies"
 | 
			
		||||
    msg_info "Installing Cockpit navigator"
 | 
			
		||||
    URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
 | 
			
		||||
    FILE=$(basename "$URL")
 | 
			
		||||
    curl -fsSL "$URL" -o "$FILE"
 | 
			
		||||
    $STD dpkg -i "$FILE" || $STD apt-get install -f -y
 | 
			
		||||
    rm -f "$FILE"
 | 
			
		||||
    msg_ok "Installed Cockpit navigator"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  
 | 
			
		||||
  msg_info "Updating ${APP} LXC"
 | 
			
		||||
  $STD apt update
 | 
			
		||||
  $STD apt -y upgrade
 | 
			
		||||
  msg_ok "Updated ${APP} LXC"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
 
 | 
			
		||||
@@ -29,9 +29,9 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "commafeed" "Athou/commafeed"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop commafeed
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    if ! [[ $(dpkg -s rsync 2>/dev/null) ]]; then
 | 
			
		||||
      msg_info "Installing Dependencies"
 | 
			
		||||
@@ -54,9 +54,9 @@ function update_script() {
 | 
			
		||||
      msg_ok "Restored data"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start commafeed
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@ var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -28,27 +28,20 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "configarr" "raydak-labs/configarr"; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop configarr-task.timer
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP"
 | 
			
		||||
    mkdir -p /opt/backup/
 | 
			
		||||
    mv /opt/configarr/{config.yml,secrets.yml,.env} "/opt/backup/"
 | 
			
		||||
    rm -rf /opt/configarr
 | 
			
		||||
    fetch_and_deploy_gh_release "configarr" "raydak-labs/configarr"
 | 
			
		||||
    mv /opt/backup/{config.yml,secrets.yml,.env} "/opt/configarr/"
 | 
			
		||||
    cd /opt/configarr
 | 
			
		||||
    $STD pnpm install
 | 
			
		||||
    $STD pnpm run build
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start configarr-task.timer
 | 
			
		||||
    msg_ok "Started configarr"
 | 
			
		||||
 | 
			
		||||
    mv /opt/configarr/{config.yml,secrets.yml,.env} /opt/backup/
 | 
			
		||||
    CLEAN_INSTALL=1 fetch_and_deploy_gh_release "configarr" "raydak-labs/configarr" "prebuild" "latest" "/opt/configarr" "configarr-linux-x64.tar.xz"
 | 
			
		||||
    mv /opt/backup/{config.yml,secrets.yml,.env} /opt/configarr/
 | 
			
		||||
    rm -rf /opt/backup
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start configarr-task.timer
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully!"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -28,9 +28,9 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "dashy" "Lissy93/dashy"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop dashy
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Backing up conf.yml"
 | 
			
		||||
    cd ~
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-3}"
 | 
			
		||||
var_ram="${var_ram:-4096}"
 | 
			
		||||
var_disk="${var_disk:-8}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
@@ -32,9 +32,9 @@ function update_script() {
 | 
			
		||||
  export NODE_OPTIONS="--max_old_space_size=4096"
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "docmost" "docmost/docmost"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop docmost
 | 
			
		||||
    msg_ok "${APP} Stopped"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Backing up data"
 | 
			
		||||
    cp /opt/docmost/.env /opt/
 | 
			
		||||
@@ -52,9 +52,9 @@ function update_script() {
 | 
			
		||||
    $STD pnpm build
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start docmost
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -29,9 +29,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/documenso/documenso/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop documenso
 | 
			
		||||
    msg_ok "${APP} Stopped"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    cp /opt/documenso/.env /opt/
 | 
			
		||||
@@ -53,9 +53,9 @@ function update_script() {
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start documenso
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf /opt/v${RELEASE}.zip
 | 
			
		||||
 
 | 
			
		||||
@@ -29,15 +29,15 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "emby" "MediaBrowser/Emby.Releases"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop emby-server
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "emby" "MediaBrowser/Emby.Releases" "binary"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start emby-server
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -31,7 +31,13 @@ function update_script() {
 | 
			
		||||
    msg_ok "Stopped EMQX"
 | 
			
		||||
 | 
			
		||||
    msg_info "Removing old EMQX"
 | 
			
		||||
    $STD apt-get remove --purge -y emqx
 | 
			
		||||
    if dpkg -l | grep -q "^ii\s\+emqx\s"; then
 | 
			
		||||
      $STD apt-get remove --purge -y emqx
 | 
			
		||||
    elif dpkg -l | grep -q "^ii\s\+emqx-enterprise\s"; then
 | 
			
		||||
      $STD apt-get remove --purge -y emqx-enterprise
 | 
			
		||||
    else
 | 
			
		||||
      msg_ok "No old EMQX package found"
 | 
			
		||||
    fi
 | 
			
		||||
    msg_ok "Removed old EMQX"
 | 
			
		||||
 | 
			
		||||
    msg_info "Downloading EMQX v${RELEASE}"
 | 
			
		||||
 
 | 
			
		||||
@@ -28,9 +28,9 @@ function update_script() {
 | 
			
		||||
    exit 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Stopping ${APP}"
 | 
			
		||||
  msg_info "Stopping Service"
 | 
			
		||||
  systemctl stop esphomeDashboard
 | 
			
		||||
  msg_ok "Stopped ${APP}"
 | 
			
		||||
  msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  VENV_PATH="/opt/esphome/.venv"
 | 
			
		||||
  ESPHOME_BIN="${VENV_PATH}/bin/esphome"
 | 
			
		||||
@@ -78,9 +78,9 @@ EOF
 | 
			
		||||
  ln -s /opt/esphome/.venv/bin/esphome /usr/local/bin/esphome
 | 
			
		||||
  msg_ok "Linked esphome binary"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP}"
 | 
			
		||||
  msg_info "Starting Service"
 | 
			
		||||
  systemctl start esphomeDashboard
 | 
			
		||||
  msg_ok "Started ${APP}"
 | 
			
		||||
  msg_ok "Started Service"
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
			
		||||
# Source: https://github.com/excalidraw/excalidraw
 | 
			
		||||
 | 
			
		||||
APP="Excalidraw"
 | 
			
		||||
TAGS="diagrams"
 | 
			
		||||
var_tags="${var_tags:-diagrams}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-3072}"
 | 
			
		||||
var_disk="${var_disk:-10}"
 | 
			
		||||
 
 | 
			
		||||
@@ -28,7 +28,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "flaresolverr" "FlareSolverr/FlareSolverr" "3.3.5"; then
 | 
			
		||||
  if check_for_gh_release "flaresolverr" "FlareSolverr/FlareSolverr" "3.3.25"; then
 | 
			
		||||
    msg_info "Stopping service"
 | 
			
		||||
    systemctl stop flaresolverr
 | 
			
		||||
    msg_ok "Stopped service"
 | 
			
		||||
 
 | 
			
		||||
@@ -27,13 +27,13 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Stopping ${APP}"
 | 
			
		||||
  msg_info "Stopping Service"
 | 
			
		||||
  systemctl stop forgejo
 | 
			
		||||
  msg_ok "Stopped ${APP}"
 | 
			
		||||
  msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP}"
 | 
			
		||||
  RELEASE=$(curl -fsSL https://codeberg.org/api/v1/repos/forgejo/forgejo/releases/latest | grep -oP '"tag_name":\s*"\K[^"]+' | sed 's/^v//')
 | 
			
		||||
curl -fsSL "https://codeberg.org/forgejo/forgejo/releases/download/v${RELEASE}/forgejo-${RELEASE}-linux-amd64" -o "forgejo-$RELEASE-linux-amd64"
 | 
			
		||||
  curl -fsSL "https://codeberg.org/forgejo/forgejo/releases/download/v${RELEASE}/forgejo-${RELEASE}-linux-amd64" -o "forgejo-$RELEASE-linux-amd64"
 | 
			
		||||
  rm -rf /opt/forgejo/*
 | 
			
		||||
  cp -r forgejo-$RELEASE-linux-amd64 /opt/forgejo/forgejo-$RELEASE-linux-amd64
 | 
			
		||||
  chmod +x /opt/forgejo/forgejo-$RELEASE-linux-amd64
 | 
			
		||||
@@ -44,9 +44,9 @@ curl -fsSL "https://codeberg.org/forgejo/forgejo/releases/download/v${RELEASE}/f
 | 
			
		||||
  rm -rf forgejo-$RELEASE-linux-amd64
 | 
			
		||||
  msg_ok "Cleaned"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP}"
 | 
			
		||||
  msg_info "Starting Service"
 | 
			
		||||
  systemctl start forgejo
 | 
			
		||||
  msg_ok "Started ${APP}"
 | 
			
		||||
  msg_ok "Started Service"
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
@@ -58,4 +58,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -27,8 +27,16 @@ function update_script() {
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_error "FreshRSS should be updated via the user interface."
 | 
			
		||||
    exit
 | 
			
		||||
 | 
			
		||||
    if [ ! -x /opt/freshrss/cli/sensitive-log.sh ]; then
 | 
			
		||||
        msg_info "Fixing wrong permissions"
 | 
			
		||||
        chmod +x /opt/freshrss/cli/sensitive-log.sh
 | 
			
		||||
        systemctl restart apache2
 | 
			
		||||
        msg_ok "Fixed wrong permissions"
 | 
			
		||||
    else
 | 
			
		||||
        msg_error "FreshRSS should be updated via the user interface."
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
@@ -38,4 +46,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										75
									
								
								ct/ghostfolio.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								ct/ghostfolio.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,75 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: lucasfell
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://ghostfol.io/
 | 
			
		||||
 | 
			
		||||
APP="Ghostfolio"
 | 
			
		||||
var_tags="${var_tags:-finance;investment}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-4096}"
 | 
			
		||||
var_disk="${var_disk:-8}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
 | 
			
		||||
    if [[ ! -f /opt/ghostfolio/dist/apps/api/main.js ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if check_for_gh_release "ghostfolio" "ghostfolio/ghostfolio"; then
 | 
			
		||||
      msg_info "Stopping Service"
 | 
			
		||||
      systemctl stop ghostfolio
 | 
			
		||||
      msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
      msg_info "Creating Backup"
 | 
			
		||||
      tar -czf "/opt/ghostfolio_backup_$(date +%F).tar.gz" \
 | 
			
		||||
        -C /opt \
 | 
			
		||||
        --exclude="ghostfolio/node_modules" \
 | 
			
		||||
        --exclude="ghostfolio/dist" \
 | 
			
		||||
        ghostfolio
 | 
			
		||||
      mv /opt/ghostfolio/.env /opt/env.backup
 | 
			
		||||
      msg_ok "Backup Created"
 | 
			
		||||
 | 
			
		||||
      CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ghostfolio" "ghostfolio/ghostfolio" "tarball" "latest" "/opt/ghostfolio"
 | 
			
		||||
 | 
			
		||||
      msg_info "Updating Ghostfolio"
 | 
			
		||||
      mv /opt/env.backup /opt/ghostfolio/.env
 | 
			
		||||
      cd /opt/ghostfolio
 | 
			
		||||
      $STD npm ci
 | 
			
		||||
      $STD npm run build:production
 | 
			
		||||
      $STD npx prisma migrate deploy
 | 
			
		||||
      msg_ok "Updated Ghostfolio"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start ghostfolio
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    $STD npm cache clean --force
 | 
			
		||||
    msg_ok "Cleanup Completed"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
    fi
 | 
			
		||||
    exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3333${CL}"
 | 
			
		||||
							
								
								
									
										54
									
								
								ct/goaway.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								ct/goaway.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: Slaviša Arežina (tremor021)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/pommee/goaway
 | 
			
		||||
 | 
			
		||||
APP="GoAway"
 | 
			
		||||
var_tags="${var_tags:-network}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/goaway ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "goaway" "pommee/goaway"; then
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
    systemctl stop goaway
 | 
			
		||||
    msg_ok "Stopped Services"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "goaway" "pommee/goaway" "prebuild" "latest" "/opt/goaway" "goaway_*_linux_amd64.tar.gz"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Services"
 | 
			
		||||
    systemctl start goaway
 | 
			
		||||
    msg_ok "Started Services"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"
 | 
			
		||||
@@ -28,15 +28,15 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "gokapi" "Forceu/Gokapi"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop gokapi
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "gokapi" "Forceu/Gokapi" "prebuild" "latest" "/opt/gokapi" "gokapi-linux_amd64.zip"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start gokapi
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -28,16 +28,16 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "gotify" "gotify/server"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop gotify
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "gotify" "gotify/server" "prebuild" "latest" "/opt/gotify" "gotify-linux-amd64.zip"
 | 
			
		||||
    chmod +x /opt/gotify/gotify-linux-amd64
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start gotify
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
			
		||||
# Source: https://graylog.org/
 | 
			
		||||
 | 
			
		||||
APP="Graylog"
 | 
			
		||||
TAGS="logging"
 | 
			
		||||
var_tags="${var_tags:-logging}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-8192}"
 | 
			
		||||
var_disk="${var_disk:-30}"
 | 
			
		||||
@@ -54,4 +54,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9000${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9000${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -30,9 +30,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "grist" "gristlabs/grist-core"; then
 | 
			
		||||
    msg_info "Stopping ${APP} Service"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop grist
 | 
			
		||||
    msg_ok "Stopped ${APP} Service"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Creating backup"
 | 
			
		||||
    rm -rf /opt/grist_bak
 | 
			
		||||
@@ -52,9 +52,9 @@ function update_script() {
 | 
			
		||||
    $STD yarn run install:python
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP} Service"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start grist
 | 
			
		||||
    msg_ok "Started ${APP} Service"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/ghostfolio
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/ghostfolio
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   ________               __  ____      ___     
 | 
			
		||||
  / ____/ /_  ____  _____/ /_/ __/___  / (_)___ 
 | 
			
		||||
 / / __/ __ \/ __ \/ ___/ __/ /_/ __ \/ / / __ \
 | 
			
		||||
/ /_/ / / / / /_/ (__  ) /_/ __/ /_/ / / / /_/ /
 | 
			
		||||
\____/_/ /_/\____/____/\__/_/  \____/_/_/\____/ 
 | 
			
		||||
                                                
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/goaway
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/goaway
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   ______      ___                      
 | 
			
		||||
  / ____/___  /   |_      ______ ___  __
 | 
			
		||||
 / / __/ __ \/ /| | | /| / / __ `/ / / /
 | 
			
		||||
/ /_/ / /_/ / ___ | |/ |/ / /_/ / /_/ / 
 | 
			
		||||
\____/\____/_/  |_|__/|__/\__,_/\__, /  
 | 
			
		||||
                               /____/   
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/joplin-server
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/joplin-server
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
       __            ___            _____                          
 | 
			
		||||
      / /___  ____  / (_)___       / ___/___  ______   _____  _____
 | 
			
		||||
 __  / / __ \/ __ \/ / / __ \______\__ \/ _ \/ ___/ | / / _ \/ ___/
 | 
			
		||||
/ /_/ / /_/ / /_/ / / / / / /_____/__/ /  __/ /   | |/ /  __/ /    
 | 
			
		||||
\____/\____/ .___/_/_/_/ /_/     /____/\___/_/    |___/\___/_/     
 | 
			
		||||
          /_/                                                      
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/myip
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/myip
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    __  ___      ________ 
 | 
			
		||||
   /  |/  /_  __/  _/ __ \
 | 
			
		||||
  / /|_/ / / / // // /_/ /
 | 
			
		||||
 / /  / / /_/ // // ____/ 
 | 
			
		||||
/_/  /_/\__, /___/_/      
 | 
			
		||||
       /____/             
 | 
			
		||||
@@ -1,6 +0,0 @@
 | 
			
		||||
    ____       __  _     
 | 
			
		||||
   / __ \___  / /_(_)___ 
 | 
			
		||||
  / /_/ / _ \/ __/ / __ \
 | 
			
		||||
 / ____/  __/ /_/ / /_/ /
 | 
			
		||||
/_/    \___/\__/_/\____/ 
 | 
			
		||||
                         
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/prometheus-blackbox-exporter
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/prometheus-blackbox-exporter
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ____                            __  __                          ____  __           __   __                     ______                      __           
 | 
			
		||||
   / __ \_________  ____ ___  ___  / /_/ /_  ___  __  _______      / __ )/ /___ ______/ /__/ /_  ____  _  __      / ____/  ______  ____  _____/ /____  _____
 | 
			
		||||
  / /_/ / ___/ __ \/ __ `__ \/ _ \/ __/ __ \/ _ \/ / / / ___/_____/ __  / / __ `/ ___/ //_/ __ \/ __ \| |/_/_____/ __/ | |/_/ __ \/ __ \/ ___/ __/ _ \/ ___/
 | 
			
		||||
 / ____/ /  / /_/ / / / / / /  __/ /_/ / / /  __/ /_/ (__  )_____/ /_/ / / /_/ / /__/ ,< / /_/ / /_/ />  </_____/ /____>  </ /_/ / /_/ / /  / /_/  __/ /    
 | 
			
		||||
/_/   /_/   \____/_/ /_/ /_/\___/\__/_/ /_/\___/\__,_/____/     /_____/_/\__,_/\___/_/|_/_.___/\____/_/|_|     /_____/_/|_/ .___/\____/_/   \__/\___/_/     
 | 
			
		||||
                                                                                                                         /_/                                
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/pve-scripts-local
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/pve-scripts-local
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ____ _    ________    _____           _       __             __                     __
 | 
			
		||||
   / __ \ |  / / ____/   / ___/__________(_)___  / /______      / /   ____  _________ _/ /
 | 
			
		||||
  / /_/ / | / / __/______\__ \/ ___/ ___/ / __ \/ __/ ___/_____/ /   / __ \/ ___/ __ `/ / 
 | 
			
		||||
 / ____/| |/ / /__/_____/__/ / /__/ /  / / /_/ / /_(__  )_____/ /___/ /_/ / /__/ /_/ / /  
 | 
			
		||||
/_/     |___/_____/    /____/\___/_/  /_/ .___/\__/____/     /_____/\____/\___/\__,_/_/   
 | 
			
		||||
                                       /_/                                                
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/rwmarkable
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/rwmarkable
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
                  __  ___           __         __    __   
 | 
			
		||||
   ______      __/  |/  /___ ______/ /______ _/ /_  / /__ 
 | 
			
		||||
  / ___/ | /| / / /|_/ / __ `/ ___/ //_/ __ `/ __ \/ / _ \
 | 
			
		||||
 / /   | |/ |/ / /  / / /_/ / /  / ,< / /_/ / /_/ / /  __/
 | 
			
		||||
/_/    |__/|__/_/  /_/\__,_/_/  /_/|_|\__,_/_.___/_/\___/ 
 | 
			
		||||
                                                          
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/sonarqube
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/sonarqube
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   _____                        ____        __       
 | 
			
		||||
  / ___/____  ____  ____ ______/ __ \__  __/ /_  ___ 
 | 
			
		||||
  \__ \/ __ \/ __ \/ __ `/ ___/ / / / / / / __ \/ _ \
 | 
			
		||||
 ___/ / /_/ / / / / /_/ / /  / /_/ / /_/ / /_/ /  __/
 | 
			
		||||
/____/\____/_/ /_/\__,_/_/   \___\_\__,_/_.___/\___/ 
 | 
			
		||||
                                                     
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/verdaccio
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/verdaccio
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
 _    __              __                _     
 | 
			
		||||
| |  / /__  _________/ /___ ___________(_)___ 
 | 
			
		||||
| | / / _ \/ ___/ __  / __ `/ ___/ ___/ / __ \
 | 
			
		||||
| |/ /  __/ /  / /_/ / /_/ / /__/ /__/ / /_/ /
 | 
			
		||||
|___/\___/_/   \__,_/\__,_/\___/\___/_/\____/ 
 | 
			
		||||
                                              
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/warracker
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/warracker
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
 _       __                           __            
 | 
			
		||||
| |     / /___ _______________ ______/ /_____  _____
 | 
			
		||||
| | /| / / __ `/ ___/ ___/ __ `/ ___/ //_/ _ \/ ___/
 | 
			
		||||
| |/ |/ / /_/ / /  / /  / /_/ / /__/ ,< /  __/ /    
 | 
			
		||||
|__/|__/\__,_/_/  /_/   \__,_/\___/_/|_|\___/_/     
 | 
			
		||||
                                                    
 | 
			
		||||
@@ -32,16 +32,16 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "headscale" "juanfont/headscale"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop headscale
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "headscale" "juanfont/headscale" "binary"
 | 
			
		||||
    fetch_and_deploy_gh_release "headscale-admin" "GoodiesHQ/headscale-admin" "prebuild" "latest" "/opt/headscale-admin" "admin.zip"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl enable -q --now headscale
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -29,10 +29,10 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" | awk '/tag_name/{print $4;exit}' FS='[""]')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop heimdall
 | 
			
		||||
    sleep 1
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
    msg_info "Backing up Data"
 | 
			
		||||
    cp -R /opt/Heimdall/database database-backup
 | 
			
		||||
    cp -R /opt/Heimdall/public public-backup
 | 
			
		||||
@@ -59,10 +59,10 @@ function update_script() {
 | 
			
		||||
    rm -rf {"${RELEASE}".tar.gz,Heimdall-"${VER}",public-backup,database-backup,Heimdall}
 | 
			
		||||
    sleep 1
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start heimdall.service
 | 
			
		||||
    sleep 2
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required.  ${APP} is already at ${RELEASE}."
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
			
		||||
# Source: https://github.com/heiher/hev-socks5-server
 | 
			
		||||
 | 
			
		||||
APP="hev-socks5-server"
 | 
			
		||||
TAGS="proxy,socks5"
 | 
			
		||||
var_tags="${var_tags:-proxy;socks5}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-2}"
 | 
			
		||||
@@ -61,4 +61,4 @@ msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it with a SOCKS5 client using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}${IP}:1080${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} and the credentials stored at /root/hev.creds${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} and the credentials stored at /root/hev.creds${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -34,9 +34,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "homebox" "sysadminsmedia/homebox"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop homebox
 | 
			
		||||
    msg_ok "${APP} Stopped"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    if [ -f /opt/homebox ] && [ -x /opt/homebox ]; then
 | 
			
		||||
      rm -f /opt/homebox
 | 
			
		||||
@@ -46,9 +46,9 @@ function update_script() {
 | 
			
		||||
    [ -f /opt/.env ] && mv /opt/.env /opt/homebox/.env
 | 
			
		||||
    [ -d /opt/.data ] && mv /opt/.data /opt/homebox/.data
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start homebox
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -27,9 +27,9 @@ function update_script() {
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop homer
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Backing up assets directory"
 | 
			
		||||
    cd ~
 | 
			
		||||
@@ -53,9 +53,9 @@ function update_script() {
 | 
			
		||||
    rm -rf assets-backup /opt/homer/homer.zip
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start homer
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
    exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								ct/immich.sh
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								ct/immich.sh
									
									
									
									
									
								
							@@ -39,8 +39,26 @@ function update_script() {
 | 
			
		||||
  PNPM_VERSION="$(curl -fsSL "https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/package.json" | jq -r '.packageManager | split("@")[1]')"
 | 
			
		||||
  NODE_VERSION="22" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
 | 
			
		||||
 | 
			
		||||
  if dpkg -l | grep -q "libmimalloc2.0"; then
 | 
			
		||||
    $STD apt-get update && $STD apt-get install -y libmimalloc3
 | 
			
		||||
  if [[ ! -f /etc/apt/preferences.d/preferences ]]; then
 | 
			
		||||
    msg_info "Adding Debian Testing repo"
 | 
			
		||||
    sed -i 's/ trixie-updates/ trixie-updates testing/g' /etc/apt/sources.list.d/debian.sources
 | 
			
		||||
    cat <<EOF >/etc/apt/preferences.d/preferences
 | 
			
		||||
Package: *
 | 
			
		||||
Pin: release a=unstable
 | 
			
		||||
Pin-Priority: 450
 | 
			
		||||
 | 
			
		||||
Package: *
 | 
			
		||||
Pin:release a=testing
 | 
			
		||||
Pin-Priority: 450
 | 
			
		||||
EOF
 | 
			
		||||
    if [[ -f /etc/apt/preferences.d/immich ]]; then
 | 
			
		||||
      rm /etc/apt/preferences.d/immich
 | 
			
		||||
    fi
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    msg_ok "Added Debian Testing repo"
 | 
			
		||||
    msg_info "Installing libmimalloc3"
 | 
			
		||||
    $STD apt-get install -t testing --no-install-recommends libmimalloc3
 | 
			
		||||
    msg_ok "Installed libmimalloc3"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  STAGING_DIR=/opt/staging
 | 
			
		||||
@@ -74,12 +92,12 @@ function update_script() {
 | 
			
		||||
    done
 | 
			
		||||
    msg_ok "Image-processing libraries up to date"
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE="1.143.1"
 | 
			
		||||
  RELEASE="2.0.1"
 | 
			
		||||
  if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
    systemctl stop immich-web
 | 
			
		||||
    systemctl stop immich-ml
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
    INSTALL_DIR="/opt/${APP}"
 | 
			
		||||
    UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
 | 
			
		||||
    SRC_DIR="${INSTALL_DIR}/source"
 | 
			
		||||
@@ -158,6 +176,7 @@ EOF
 | 
			
		||||
 | 
			
		||||
    cd "$SRC_DIR"/machine-learning
 | 
			
		||||
    mkdir -p "$ML_DIR" && chown -R immich:immich "$ML_DIR"
 | 
			
		||||
    chown immich:immich ./uv.lock
 | 
			
		||||
    export VIRTUAL_ENV="${ML_DIR}"/ml-venv
 | 
			
		||||
    if [[ -f ~/.openvino ]]; then
 | 
			
		||||
      msg_info "Updating HW-accelerated machine-learning"
 | 
			
		||||
@@ -190,6 +209,7 @@ EOF
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    $STD apt-get -y autoremove
 | 
			
		||||
    $STD apt-get -y autoclean
 | 
			
		||||
    $STD apt clean -y
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    systemctl restart immich-ml immich-web
 | 
			
		||||
  fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										62
									
								
								ct/joplin-server.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								ct/joplin-server.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: Slaviša Arežina (tremor021)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://joplinapp.org/
 | 
			
		||||
 | 
			
		||||
APP="Joplin-Server"
 | 
			
		||||
var_tags="${var_tags:-notes}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-4096}"
 | 
			
		||||
var_disk="${var_disk:-20}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/joplin-server ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "joplin-server" "laurent22/joplin"; then
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
    systemctl stop joplin-server
 | 
			
		||||
    msg_ok "Stopped Services"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "joplin-server" "laurent22/joplin" "tarball" "latest"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    cd /opt/joplin-server
 | 
			
		||||
    sed -i "/onenote-converter/d" packages/lib/package.json
 | 
			
		||||
    $STD yarn config set --home enableTelemetry 0
 | 
			
		||||
    export BUILD_SEQUENCIAL=1
 | 
			
		||||
    $STD yarn install --inline-builds
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Services"
 | 
			
		||||
    systemctl start joplin-server
 | 
			
		||||
    msg_ok "Started Services"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:22300${CL}"
 | 
			
		||||
@@ -27,7 +27,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "keycloak" "keycloak/keycloak"; then
 | 
			
		||||
  if check_for_gh_release "keycloak_app" "keycloak/keycloak"; then
 | 
			
		||||
    msg_info "Stopping Keycloak"
 | 
			
		||||
    systemctl stop keycloak
 | 
			
		||||
    msg_ok "Stopped Keycloak"
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
			
		||||
# Source: https://github.com/Kometa-Team/Kometa
 | 
			
		||||
 | 
			
		||||
APP="Kometa"
 | 
			
		||||
TAGS="media;streaming"
 | 
			
		||||
var_tags="${var_tags:-media;streaming}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-4096}"
 | 
			
		||||
var_disk="${var_disk:-8}"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								ct/komga.sh
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								ct/komga.sh
									
									
									
									
									
								
							@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -27,18 +27,18 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "komga" "gotson/komga"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
  if check_for_gh_release "komga-org" "gotson/komga"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop komga
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    rm -f /opt/komga/komga.jar
 | 
			
		||||
    USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "komga-org" "gotson/komga" "singlefile" "latest" "/opt/komga" "komga*.jar"
 | 
			
		||||
    mv /opt/komga/komga-*.jar /opt/komga/komga.jar
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start komga
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -28,9 +28,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "linkwarden" "linkwarden/linkwarden"; then
 | 
			
		||||
    NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop linkwarden
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    RUST_CRATES="monolith" setup_rust
 | 
			
		||||
 | 
			
		||||
@@ -54,9 +54,9 @@ function update_script() {
 | 
			
		||||
    [ -d /opt/data.bak ] && mv /opt/data.bak /opt/linkwarden/data
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start linkwarden
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -rf ~/.cargo/registry ~/.cargo/git ~/.cargo/.package-cache ~/.rustup
 | 
			
		||||
 
 | 
			
		||||
@@ -28,9 +28,9 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "listmonk" "knadh/listmonk"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop listmonk
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Backing up data"
 | 
			
		||||
    mv /opt/listmonk/ /opt/listmonk-backup
 | 
			
		||||
@@ -44,9 +44,9 @@ function update_script() {
 | 
			
		||||
    $STD /opt/listmonk/listmonk --upgrade --yes --config /opt/listmonk/config.toml
 | 
			
		||||
    msg_ok "Configured listmonk"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start listmonk
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -rf /opt/listmonk-backup/
 | 
			
		||||
 
 | 
			
		||||
@@ -54,7 +54,7 @@ function update_script() {
 | 
			
		||||
    cd /opt/mediamanager
 | 
			
		||||
    rm -rf "$MM_DIR"/{media_manager,alembic*}
 | 
			
		||||
    cp -r {media_manager,alembic*} "$MM_DIR"
 | 
			
		||||
    $STD /usr/local/bin/uv sync --locked --active
 | 
			
		||||
    $STD /usr/local/bin/uv sync --locked --active -n -p cpython3.13 --managed-python
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								ct/medusa.sh
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								ct/medusa.sh
									
									
									
									
									
								
							@@ -27,9 +27,9 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Stopping ${APP}"
 | 
			
		||||
  msg_info "Stopping Service"
 | 
			
		||||
  systemctl stop medusa
 | 
			
		||||
  msg_ok "Stopped ${APP}"
 | 
			
		||||
  msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP}"
 | 
			
		||||
  cd /opt/medusa
 | 
			
		||||
@@ -40,9 +40,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP}"
 | 
			
		||||
  msg_info "Starting Service"
 | 
			
		||||
  systemctl start medusa
 | 
			
		||||
  msg_ok "Started ${APP}"
 | 
			
		||||
  msg_ok "Started Service"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -53,4 +53,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8081${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8081${CL}"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										119
									
								
								ct/metube.sh
									
									
									
									
									
								
							
							
						
						
									
										119
									
								
								ct/metube.sh
									
									
									
									
									
								
							@@ -29,59 +29,53 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Stopping ${APP} Service"
 | 
			
		||||
  systemctl stop metube
 | 
			
		||||
  msg_ok "Stopped ${APP} Service"
 | 
			
		||||
 | 
			
		||||
  msg_info "Backing up Old Installation"
 | 
			
		||||
  if [[ -d /opt/metube_bak ]]; then
 | 
			
		||||
    rm -rf /opt/metube_bak
 | 
			
		||||
  if [[ $(echo ":$PATH:" != *":/usr/local/bin:"*) ]]; then
 | 
			
		||||
    echo 'export PATH="/usr/local/bin:$PATH"' >>~/.bashrc
 | 
			
		||||
    source ~/.bashrc
 | 
			
		||||
    if ! command -v deno &>/dev/null; then
 | 
			
		||||
      export DENO_INSTALL="/usr/local"
 | 
			
		||||
      curl -fsSL https://deno.land/install.sh | $STD sh -s -- -y
 | 
			
		||||
    else
 | 
			
		||||
      $STD deno upgrade
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
  mv /opt/metube /opt/metube_bak
 | 
			
		||||
  msg_ok "Backup created"
 | 
			
		||||
 | 
			
		||||
  msg_info "Cloning Latest ${APP} Release"
 | 
			
		||||
  $STD git clone https://github.com/alexta69/metube /opt/metube
 | 
			
		||||
  msg_ok "Cloned ${APP}"
 | 
			
		||||
  if check_for_gh_release "metube" "alexta69/metube"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop metube
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  msg_info "Building Frontend"
 | 
			
		||||
  cd /opt/metube/ui
 | 
			
		||||
  $STD npm install
 | 
			
		||||
  $STD node_modules/.bin/ng build
 | 
			
		||||
  msg_ok "Built Frontend"
 | 
			
		||||
    msg_info "Backing up Old Installation"
 | 
			
		||||
    if [[ -d /opt/metube_bak ]]; then
 | 
			
		||||
      rm -rf /opt/metube_bak
 | 
			
		||||
    fi
 | 
			
		||||
    mv /opt/metube /opt/metube_bak
 | 
			
		||||
    msg_ok "Backup created"
 | 
			
		||||
 | 
			
		||||
  PYTHON_VERSION="3.13" setup_uv
 | 
			
		||||
    fetch_and_deploy_gh_release "metube" "alexta69/metube" "tarball" "latest"
 | 
			
		||||
 | 
			
		||||
  msg_info "Setting up Python Environment (uv)"
 | 
			
		||||
  $STD uv venv /opt/metube/.venv
 | 
			
		||||
  $STD /opt/metube/.venv/bin/python -m ensurepip --upgrade
 | 
			
		||||
  $STD /opt/metube/.venv/bin/python -m pip install --upgrade pip
 | 
			
		||||
  $STD /opt/metube/.venv/bin/python -m pip install pipenv
 | 
			
		||||
  msg_ok "Python Environment Ready"
 | 
			
		||||
    msg_info "Building Frontend"
 | 
			
		||||
    cd /opt/metube/ui
 | 
			
		||||
    $STD npm install
 | 
			
		||||
    $STD node_modules/.bin/ng build
 | 
			
		||||
    msg_ok "Built Frontend"
 | 
			
		||||
 | 
			
		||||
  msg_info "Installing Backend Requirements"
 | 
			
		||||
  cd /opt/metube
 | 
			
		||||
  $STD /opt/metube/.venv/bin/pipenv install
 | 
			
		||||
  msg_ok "Installed Backend"
 | 
			
		||||
 | 
			
		||||
  msg_info "Restoring Environment File"
 | 
			
		||||
  if [[ -f /opt/metube_bak/.env ]]; then
 | 
			
		||||
    cp /opt/metube_bak/.env /opt/metube/.env
 | 
			
		||||
  fi
 | 
			
		||||
  msg_ok "Restored .env"
 | 
			
		||||
 | 
			
		||||
  if [[ ! -d /opt/metube/.venv ]]; then
 | 
			
		||||
    msg_info "Migrating to uv-based environment"
 | 
			
		||||
    PYTHON_VERSION="3.13" setup_uv
 | 
			
		||||
    $STD uv venv /opt/metube/.venv
 | 
			
		||||
    $STD /opt/metube/.venv/bin/python -m ensurepip --upgrade
 | 
			
		||||
    $STD /opt/metube/.venv/bin/python -m pip install --upgrade pip
 | 
			
		||||
    $STD /opt/metube/.venv/bin/python -m pip install pipenv
 | 
			
		||||
    $STD /opt/metube/.venv/bin/pipenv install
 | 
			
		||||
    $STD /opt/metube/.venv/bin/pipenv update yt-dlp
 | 
			
		||||
 | 
			
		||||
    msg_info "Patching systemd Service"
 | 
			
		||||
    cat <<EOF >/etc/systemd/system/metube.service
 | 
			
		||||
    msg_info "Installing Backend Requirements"
 | 
			
		||||
    cd /opt/metube
 | 
			
		||||
    $STD uv sync
 | 
			
		||||
    msg_ok "Installed Backend"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restoring Environment File"
 | 
			
		||||
    if [[ -f /opt/metube_bak/.env ]]; then
 | 
			
		||||
      cp /opt/metube_bak/.env /opt/metube/.env
 | 
			
		||||
    fi
 | 
			
		||||
    msg_ok "Restored .env"
 | 
			
		||||
 | 
			
		||||
    if grep -q 'pipenv' /etc/systemd/system/metube.service; then
 | 
			
		||||
      msg_info "Patching systemd Service"
 | 
			
		||||
      cat <<EOF >/etc/systemd/system/metube.service
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Metube - YouTube Downloader
 | 
			
		||||
After=network.target
 | 
			
		||||
@@ -90,30 +84,31 @@ After=network.target
 | 
			
		||||
Type=simple
 | 
			
		||||
WorkingDirectory=/opt/metube
 | 
			
		||||
EnvironmentFile=/opt/metube/.env
 | 
			
		||||
ExecStart=/opt/metube/.venv/bin/pipenv run python3 app/main.py
 | 
			
		||||
ExecStart=/opt/metube/.venv/bin/python3 app/main.py
 | 
			
		||||
Restart=always
 | 
			
		||||
User=root
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
EOF
 | 
			
		||||
    msg_ok "Patched systemd Service"
 | 
			
		||||
      msg_ok "Patched systemd Service"
 | 
			
		||||
    fi
 | 
			
		||||
    $STD systemctl daemon-reload
 | 
			
		||||
    msg_ok "Service Updated"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -rf /opt/metube_bak
 | 
			
		||||
    $STD apt-get -y autoremove
 | 
			
		||||
    $STD apt-get -y autoclean
 | 
			
		||||
    msg_ok "Cleaned Up"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start metube
 | 
			
		||||
    sleep 1
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully!"
 | 
			
		||||
  fi
 | 
			
		||||
  $STD systemctl daemon-reload
 | 
			
		||||
  msg_ok "Service Updated"
 | 
			
		||||
 | 
			
		||||
  msg_info "Cleaning up"
 | 
			
		||||
  rm -rf /opt/metube_bak
 | 
			
		||||
  $STD apt-get -y autoremove
 | 
			
		||||
  $STD apt-get -y autoclean
 | 
			
		||||
  msg_ok "Cleaned Up"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP} Service"
 | 
			
		||||
  systemctl enable -q --now metube
 | 
			
		||||
  sleep 1
 | 
			
		||||
  msg_ok "Started ${APP} Service"
 | 
			
		||||
 | 
			
		||||
  msg_ok "Updated Successfully!"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
 
 | 
			
		||||
@@ -29,18 +29,18 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Stopping ${APP}"
 | 
			
		||||
  msg_info "Stopping Service"
 | 
			
		||||
  systemctl stop minarca-server
 | 
			
		||||
  msg_ok "${APP} Stopped"
 | 
			
		||||
  msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP} LXC"
 | 
			
		||||
  $STD apt-get update
 | 
			
		||||
  $STD apt-get upgrade -y
 | 
			
		||||
  msg_ok "Updated ${APP} LXC"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP}"
 | 
			
		||||
  msg_info "Starting Service"
 | 
			
		||||
  systemctl start minarca-server
 | 
			
		||||
  msg_ok "Restarted ${APP}"
 | 
			
		||||
  msg_ok "Started Service"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -47,9 +47,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if [[ "${CURRENT_VERSION}" != "${RELEASE}" ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop minio
 | 
			
		||||
    msg_ok "${APP} Stopped"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    mv /usr/local/bin/minio /usr/local/bin/minio_bak
 | 
			
		||||
@@ -58,9 +58,9 @@ function update_script() {
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start minio
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -f /usr/local/bin/minio_bak
 | 
			
		||||
 
 | 
			
		||||
@@ -46,6 +46,7 @@ function update_script() {
 | 
			
		||||
    cp -r /opt/monica-backup/.env /opt/monica
 | 
			
		||||
    cp -r /opt/monica-backup/storage/* /opt/monica/storage/
 | 
			
		||||
    $STD composer install --no-interaction --no-dev
 | 
			
		||||
    $STD yarn config set ignore-engines true
 | 
			
		||||
    $STD yarn install
 | 
			
		||||
    $STD yarn run production
 | 
			
		||||
    $STD php artisan monica:update --force
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										55
									
								
								ct/myip.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								ct/myip.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: Slaviša Arežina (tremor021)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://ipcheck.ing/
 | 
			
		||||
 | 
			
		||||
APP="MyIP"
 | 
			
		||||
var_tags="${var_tags:-network}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/myip ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "myip" "jason5ng32/MyIP"; then
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
    systemctl stop myip
 | 
			
		||||
    msg_ok "Stopped Services"
 | 
			
		||||
 | 
			
		||||
    cp /opt/myip/.env /opt
 | 
			
		||||
    CLEAN_INSTALL=1 fetch_and_deploy_gh_release "myip" "jason5ng32/MyIP" "tarball"
 | 
			
		||||
    mv /opt/.env /opt/myip
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Services"
 | 
			
		||||
    systemctl start myip
 | 
			
		||||
    msg_ok "Started Services"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:18966${CL}"
 | 
			
		||||
@@ -41,7 +41,8 @@ EOF
 | 
			
		||||
  NODE_VERSION="22" setup_nodejs
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP} LXC"
 | 
			
		||||
  $STD npm update -g n8n
 | 
			
		||||
  rm -rf /usr/lib/node_modules/.n8n-* /usr/lib/node_modules/n8n
 | 
			
		||||
  $STD npm install -g n8n --force
 | 
			
		||||
  systemctl restart n8n
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
 
 | 
			
		||||
@@ -31,9 +31,9 @@ function update_script() {
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/netbox-community/netbox/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop netbox netbox-rq
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
    mv /opt/netbox/ /opt/netbox-backup
 | 
			
		||||
@@ -60,9 +60,9 @@ function update_script() {
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start netbox netbox-rq
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -r "/opt/v${RELEASE}.zip"
 | 
			
		||||
 
 | 
			
		||||
@@ -28,9 +28,9 @@ function update_script() {
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop nextpvr-server
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating LXC packages"
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
@@ -43,9 +43,9 @@ function update_script() {
 | 
			
		||||
    $STD dpkg -i nextpvr-helper.deb
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start nextpvr-server
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf /opt/nextpvr-helper.deb
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -32,25 +32,20 @@ function update_script() {
 | 
			
		||||
    "2" "Install Themes" OFF \
 | 
			
		||||
    3>&1 1>&2 2>&3)
 | 
			
		||||
  if [ "$UPD" == "1" ]; then
 | 
			
		||||
    if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
 | 
			
		||||
      if ! command -v npm >/dev/null 2>&1; then
 | 
			
		||||
        msg_info "Installing NPM"
 | 
			
		||||
        $STD apt-get install -y npm
 | 
			
		||||
        msg_ok "Installed NPM"
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    NODE_VERSION="22" setup_nodejs
 | 
			
		||||
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop nodered
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    msg_info "Updating Node-Red"
 | 
			
		||||
    $STD npm install -g --unsafe-perm node-red
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
    msg_ok "Updated Node-Red"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start nodered
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Update Successfully!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if [ "$UPD" == "2" ]; then
 | 
			
		||||
@@ -99,4 +94,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:1880${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:1880${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -31,9 +31,9 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "nodebb" "NodeBB/NodeBB"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop nodebb
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    cd /opt/nodebb
 | 
			
		||||
@@ -41,9 +41,9 @@ function update_script() {
 | 
			
		||||
    echo "${CHECK_UPDATE_RELEASE}" >~/.nodebb
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start nodebb
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully\n"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										32
									
								
								ct/ntfy.sh
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								ct/ntfy.sh
									
									
									
									
									
								
							@@ -1,7 +1,7 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 tteck
 | 
			
		||||
# Author: tteck (tteckster)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: CrazyWolf13
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://ntfy.sh/
 | 
			
		||||
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-2}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -23,13 +23,31 @@ function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /var ]]; then
 | 
			
		||||
    if [[ ! -d /etc/ntfy ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [ -f /etc/apt/keyrings/archive.heckel.io.gpg ]; then
 | 
			
		||||
        msg_info "Correcting old Ntfy Repository"
 | 
			
		||||
        rm -f /etc/apt/keyrings/archive.heckel.io.gpg
 | 
			
		||||
        rm -f /etc/apt/sources.list.d/archive.heckel.io.list
 | 
			
		||||
        rm -f /etc/apt/sources.list.d/archive.heckel.io.list.bak
 | 
			
		||||
        rm -f /etc/apt/sources.list.d/archive.heckel.io.sources
 | 
			
		||||
        curl -fsSL -o /etc/apt/keyrings/ntfy.gpg https://archive.ntfy.sh/apt/keyring.gpg
 | 
			
		||||
        cat <<'EOF' >/etc/apt/sources.list.d/ntfy.sources 
 | 
			
		||||
Types: deb
 | 
			
		||||
URIs: https://archive.ntfy.sh/apt/
 | 
			
		||||
Suites: stable
 | 
			
		||||
Components: main
 | 
			
		||||
Signed-By: /etc/apt/keyrings/ntfy.gpg
 | 
			
		||||
EOF
 | 
			
		||||
        msg_ok "Corrected old Ntfy Repository"
 | 
			
		||||
    fi
 | 
			
		||||
    
 | 
			
		||||
    msg_info "Updating $APP LXC"
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get -y upgrade
 | 
			
		||||
    $STD apt update
 | 
			
		||||
    $STD apt -y upgrade
 | 
			
		||||
    msg_ok "Updated $APP LXC"
 | 
			
		||||
    exit
 | 
			
		||||
}
 | 
			
		||||
@@ -41,4 +59,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -32,22 +32,22 @@ function update_script() {
 | 
			
		||||
  DETAIL_PAGE=$(curl -fsSL "$BASE_URL#note_$RELEASE")
 | 
			
		||||
  DOWNLOAD_URL=$(echo "$DETAIL_PAGE" | grep -oP "https://updates.networkoptix.com/default/$RELEASE/linux/nxwitness-server-[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+-linux_x64\.deb" | head -n 1)
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop networkoptix-root-tool networkoptix-mediaserver
 | 
			
		||||
    msg_ok "${APP} Stopped"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    cd /tmp
 | 
			
		||||
curl -fsSL "$DOWNLOAD_URL" -o ""nxwitness-server-$RELEASE-linux_x64.deb""
 | 
			
		||||
    curl -fsSL "$DOWNLOAD_URL" -o ""nxwitness-server-$RELEASE-linux_x64.deb""
 | 
			
		||||
    export DEBIAN_FRONTEND=noninteractive
 | 
			
		||||
    export DEBCONF_NOWARNINGS=yes
 | 
			
		||||
    $STD dpkg -i nxwitness-server-$RELEASE-linux_x64.deb
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start networkoptix-root-tool networkoptix-mediaserver
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -f /tmp/nxwitness-server-$RELEASE-linux_x64.deb
 | 
			
		||||
@@ -67,4 +67,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7001/${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7001/${CL}"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								ct/odoo.sh
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								ct/odoo.sh
									
									
									
									
									
								
							@@ -28,6 +28,13 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit 1
 | 
			
		||||
  fi
 | 
			
		||||
  if ! [[ $(dpkg -s python3-lxml-html-clean 2>/dev/null) ]]; then
 | 
			
		||||
    $STD apt-get install python3-lxml
 | 
			
		||||
    curl -fsSL "http://archive.ubuntu.com/ubuntu/pool/universe/l/lxml-html-clean/python3-lxml-html-clean_0.1.1-1_all.deb" -o /opt/python3-lxml-html-clean.deb
 | 
			
		||||
    $STD dpkg -i /opt/python3-lxml-html-clean.deb
 | 
			
		||||
    rm -f /opt/python3-lxml-html-clean.deb
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://nightly.odoo.com/ | grep -oE 'href="[0-9]+\.[0-9]+/nightly"' | head -n1 | cut -d'"' -f2 | cut -d/ -f1)
 | 
			
		||||
  LATEST_VERSION=$(curl -fsSL "https://nightly.odoo.com/${RELEASE}/nightly/deb/" |
 | 
			
		||||
    grep -oP "odoo_${RELEASE}\.\d+_all\.deb" |
 | 
			
		||||
@@ -38,7 +45,7 @@ function update_script() {
 | 
			
		||||
  if [[ "${LATEST_VERSION}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
			
		||||
    msg_info "Stopping ${APP} service"
 | 
			
		||||
    systemctl stop odoo
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${LATEST_VERSION}"
 | 
			
		||||
    curl -fsSL https://nightly.odoo.com/${RELEASE}/nightly/deb/odoo_${RELEASE}.latest_all.deb -o /opt/odoo.deb
 | 
			
		||||
@@ -48,7 +55,7 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP} service"
 | 
			
		||||
    systemctl start odoo
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -f /opt/odoo.deb
 | 
			
		||||
 
 | 
			
		||||
@@ -64,7 +64,7 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
  systemctl stop open-webui.service
 | 
			
		||||
  $STD npm install --force
 | 
			
		||||
  export NODE_OPTIONS="--max-old-space-size=3584"
 | 
			
		||||
  export NODE_OPTIONS="--max-old-space-size=6000"
 | 
			
		||||
  $STD npm run build
 | 
			
		||||
  cd ./backend
 | 
			
		||||
  $STD pip install -r requirements.txt -U
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
			
		||||
APP="Overseerr"
 | 
			
		||||
var_tags="${var_tags:-media}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_ram="${var_ram:-4096}"
 | 
			
		||||
var_disk="${var_disk:-8}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										45
									
								
								ct/petio.sh
									
									
									
									
									
								
							
							
						
						
									
										45
									
								
								ct/petio.sh
									
									
									
									
									
								
							@@ -1,45 +0,0 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 tteck
 | 
			
		||||
# Author: tteck (tteckster)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://petio.tv/
 | 
			
		||||
 | 
			
		||||
APP="Petio"
 | 
			
		||||
var_tags="${var_tags:-media}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-ubuntu}"
 | 
			
		||||
var_version="${var_version:-20.04}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/Petio ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating $APP"
 | 
			
		||||
  systemctl stop petio.service
 | 
			
		||||
  curl -fsSL https://petio.tv/releases/latest -o petio-latest.zip
 | 
			
		||||
  $STD unzip petio-latest.zip -d /opt/Petio
 | 
			
		||||
  systemctl start petio.service
 | 
			
		||||
  msg_ok "Updated $APP"
 | 
			
		||||
  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}:7777${CL}"
 | 
			
		||||
@@ -32,8 +32,10 @@ function update_script() {
 | 
			
		||||
    systemctl stop plant-it
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
    USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "plant-it" "MDeLuise/plant-it" "singlefile" "latest" "/opt/plant-it/backend" "server.jar"
 | 
			
		||||
    fetch_and_deploy_gh_release "plant-it-front" "MDeLuise/plant-it" "prebuild" "latest" "/opt/plant-it/frontend" "client.tar.gz"
 | 
			
		||||
    USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "plant-it" "MDeLuise/plant-it" "singlefile" "0.10.0" "/opt/plant-it/backend" "server.jar"
 | 
			
		||||
    fetch_and_deploy_gh_release "plant-it-front" "MDeLuise/plant-it" "prebuild" "0.10.0" "/opt/plant-it/frontend" "client.tar.gz"
 | 
			
		||||
    msg_warn "Application is updated to latest Web version (v0.10.0). There will be no more updates available."
 | 
			
		||||
    msg_warn "Please read: https://github.com/MDeLuise/plant-it/releases/tag/1.0.0"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start plant-it
 | 
			
		||||
 
 | 
			
		||||
@@ -28,18 +28,18 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "pocketbase" "pocketbase/pocketbase"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop pocketbase
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    /opt/pocketbase/pocketbase update
 | 
			
		||||
    echo "${CHECK_UPDATE_RELEASE}" >~/.pocketbase
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start pocketbase
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
@@ -30,8 +30,8 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "pocket-id" "pocket-id/pocket-id"; then
 | 
			
		||||
    if [ "$(printf '%s\n%s' "$(cat ~/.pocket-id 2>/dev/null || echo 0.0.0)" "1.0.0" | sort -V | head -n1)" = "$(cat ~/.pocket-id 2>/dev/null || echo 0.0.0)" ] \
 | 
			
		||||
      && [ "$(cat ~/.pocket-id 2>/dev/null || echo 0.0.0)" != "1.0.0" ]; then      
 | 
			
		||||
    if [ "$(printf '%s\n%s' "$(cat ~/.pocket-id 2>/dev/null || echo 0.0.0)" "1.0.0" | sort -V | head -n1)" = "$(cat ~/.pocket-id 2>/dev/null || echo 0.0.0)" ] &&
 | 
			
		||||
      [ "$(cat ~/.pocket-id 2>/dev/null || echo 0.0.0)" != "1.0.0" ]; then
 | 
			
		||||
      msg_info "Migrating ${APP}"
 | 
			
		||||
      systemctl -q disable --now pocketid-backend pocketid-frontend caddy
 | 
			
		||||
      mv /etc/caddy/Caddyfile ~/Caddyfile.bak
 | 
			
		||||
@@ -58,9 +58,9 @@ function update_script() {
 | 
			
		||||
      mv /opt/data /opt/pocket-id
 | 
			
		||||
      msg_ok "Migration complete. The reverse proxy port has been changed to 1411."
 | 
			
		||||
    else
 | 
			
		||||
      msg_info "Stopping ${APP}"
 | 
			
		||||
      msg_info "Stopping Service"
 | 
			
		||||
      systemctl stop pocketid
 | 
			
		||||
      msg_ok "Stopped ${APP}"
 | 
			
		||||
      msg_ok "Stopped Service"
 | 
			
		||||
      cp /opt/pocket-id/.env /opt/env
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										62
									
								
								ct/prometheus-blackbox-exporter.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								ct/prometheus-blackbox-exporter.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: Marfnl
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/prometheus/blackbox_exporter
 | 
			
		||||
 | 
			
		||||
APP="Prometheus-Blackbox-Exporter"
 | 
			
		||||
var_tags="${var_tags:-monitoring;prometheus}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/blackbox-exporter ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "blackbox-exporter" "prometheus/blackbox_exporter"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop blackbox-exporter
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Creating backup"
 | 
			
		||||
    mv /opt/blackbox-exporter/blackbox.yml /opt
 | 
			
		||||
    msg_ok "Backup created"
 | 
			
		||||
 | 
			
		||||
    CLEAN_INSTALL=1 fetch_and_deploy_gh_release "blackbox-exporter" "prometheus/blackbox_exporter" "prebuild" "latest" "/opt/blackbox-exporter" "blackbox_exporter-*.linux-amd64.tar.gz"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restoring backup"
 | 
			
		||||
    cp -r /opt/blackbox.yml /opt/blackbox-exporter
 | 
			
		||||
    rm -f /opt/blackbox.yml
 | 
			
		||||
    msg_ok "Backup restored"
 | 
			
		||||
    
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start blackbox-exporter
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Update Successfully!"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9115${CL}"
 | 
			
		||||
@@ -28,9 +28,9 @@ function update_script() {
 | 
			
		||||
    exit 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Stopping ${APP}"
 | 
			
		||||
  msg_info "Stopping Service"
 | 
			
		||||
  systemctl stop prometheus-pve-exporter
 | 
			
		||||
  msg_ok "Stopped ${APP}"
 | 
			
		||||
  msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  export PVE_VENV_PATH="/opt/prometheus-pve-exporter/.venv"
 | 
			
		||||
  export PVE_EXPORTER_BIN="${PVE_VENV_PATH}/bin/pve_exporter"
 | 
			
		||||
@@ -77,9 +77,9 @@ EOF
 | 
			
		||||
    msg_ok "Updated systemd service"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP}"
 | 
			
		||||
  msg_info "Starting Service"
 | 
			
		||||
  systemctl start prometheus-pve-exporter
 | 
			
		||||
  msg_ok "Started ${APP}"
 | 
			
		||||
  msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit 0
 | 
			
		||||
 
 | 
			
		||||
@@ -40,7 +40,10 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
 | 
			
		||||
    ln -sf /opt/pulse/bin/pulse /usr/local/bin/pulse
 | 
			
		||||
    chown -R pulse:pulse /etc/pulse /opt/pulse
 | 
			
		||||
    mkdir -p /etc/pulse
 | 
			
		||||
    chown pulse:pulse /etc/pulse
 | 
			
		||||
    chown -R pulse:pulse /opt/pulse
 | 
			
		||||
    chmod 700 /etc/pulse
 | 
			
		||||
    if [[ -f "$SERVICE_PATH"/pulse-backend.service ]]; then
 | 
			
		||||
      mv "$SERVICE_PATH"/pulse-backend.service "$SERVICE_PATH"/pulse.service
 | 
			
		||||
    fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										75
									
								
								ct/pve-scripts-local.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								ct/pve-scripts-local.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,75 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: michelroegl-brunner
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://www.debian.org/
 | 
			
		||||
 | 
			
		||||
APP="PVE-Scripts-Local"
 | 
			
		||||
var_tags="${var_tags:-pve-scripts-local}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-4096}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/ProxmoxVE-Local ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "ProxmoxVE-Local" "community-scripts/ProxmoxVE-Local"; then
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
    systemctl stop pvescriptslocal
 | 
			
		||||
    msg_ok "Stopped Services"
 | 
			
		||||
 | 
			
		||||
    msg_info "Backup Data"
 | 
			
		||||
    cp /opt/ProxmoxVE-Local/.env /opt/.env.bak
 | 
			
		||||
    cp -r /opt/ProxmoxVE-Local/data /opt/data.bak
 | 
			
		||||
    msg_ok "Backed up Data"
 | 
			
		||||
 | 
			
		||||
    CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ProxmoxVE-Local" "community-scripts/ProxmoxVE-Local"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restoring Data"
 | 
			
		||||
    if [[ -f /opt/.env.bak ]]; then
 | 
			
		||||
      mv /opt/.env.bak /opt/ProxmoxVE-Local/.env
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ -d /opt/data.bak ]]; then
 | 
			
		||||
      rm -rf /opt/ProxmoxVE-Local/data
 | 
			
		||||
      mv /opt/data.bak /opt/ProxmoxVE-Local/data
 | 
			
		||||
    fi
 | 
			
		||||
    msg_ok "Restored Data"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating PVE Scripts local"
 | 
			
		||||
    cd /opt/ProxmoxVE-Local
 | 
			
		||||
    chmod 755 data
 | 
			
		||||
    $STD npm install
 | 
			
		||||
    $STD npm run build
 | 
			
		||||
    msg_ok "Updated PVE Scripts local"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Services"
 | 
			
		||||
    systemctl start pvescriptslocal
 | 
			
		||||
    msg_ok "Started Services"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
			
		||||
@@ -41,17 +41,17 @@ EOF
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Stopping ${APP} Service"
 | 
			
		||||
  msg_info "Stopping Service"
 | 
			
		||||
  systemctl stop rabbitmq-server
 | 
			
		||||
  msg_ok "Stopped ${APP} Service"
 | 
			
		||||
  msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating..."
 | 
			
		||||
  $STD apt install --only-upgrade rabbitmq-server
 | 
			
		||||
  msg_ok "Update Successfully"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP}"
 | 
			
		||||
  msg_info "Starting Service"
 | 
			
		||||
  systemctl start rabbitmq-server
 | 
			
		||||
  msg_ok "Started ${APP}"
 | 
			
		||||
  msg_ok "Started Service"
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
			
		||||
# Source: https://github.com/rustdesk/rustdesk-server
 | 
			
		||||
 | 
			
		||||
APP="RustDesk Server"
 | 
			
		||||
TAGS="remote-desktop"
 | 
			
		||||
var_tags="${var_tags:-remote-desktop}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-2}"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										74
									
								
								ct/rwmarkable.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								ct/rwmarkable.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,74 @@
 | 
			
		||||
#!/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: vhsdream
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/fccview/rwMarkable
 | 
			
		||||
 | 
			
		||||
APP="rwMarkable"
 | 
			
		||||
var_tags="${var_tags:-tasks;notes}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-6}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
 | 
			
		||||
  if [[ ! -d /opt/rwmarkable ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "rwMarkable" "fccview/rwMarkable"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop rwmarkable
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Backing up configuration & data"
 | 
			
		||||
    cd /opt/rwmarkable
 | 
			
		||||
    cp ./.env /opt/app.env
 | 
			
		||||
    $STD tar -cf /opt/data_config.tar ./data ./config
 | 
			
		||||
    msg_ok "Backed up configuration & data"
 | 
			
		||||
 | 
			
		||||
    NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
 | 
			
		||||
    CLEAN_INSTALL=1 fetch_and_deploy_gh_release "rwMarkable" "fccview/rwMarkable" "tarball" "latest" "/opt/rwmarkable"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating app"
 | 
			
		||||
    cd /opt/rwmarkable
 | 
			
		||||
    $STD yarn --frozen-lockfile
 | 
			
		||||
    $STD yarn next telemetry disable
 | 
			
		||||
    $STD yarn build
 | 
			
		||||
    msg_ok "Updated app"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restoring configuration & data"
 | 
			
		||||
    mv /opt/app.env /opt/rwmarkable/.env
 | 
			
		||||
    $STD tar -xf /opt/data_config.tar
 | 
			
		||||
    msg_ok "Restored configuration & data"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restarting ${APP} service"
 | 
			
		||||
    systemctl start rwmarkable
 | 
			
		||||
    msg_ok "Restarted ${APP} service"
 | 
			
		||||
    rm /opt/data_config.tar
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
			
		||||
@@ -28,15 +28,15 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "silverbullet" "silverbulletmd/silverbullet"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop silverbullet
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "silverbullet" "silverbulletmd/silverbullet" "prebuild" "latest" "/opt/silverbullet/bin" "silverbullet-server-linux-x86_64.zip"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start silverbullet
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										71
									
								
								ct/sonarqube.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								ct/sonarqube.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: prop4n
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://docs.sonarsource.com/sonarqube-server
 | 
			
		||||
 | 
			
		||||
APP="SonarQube"
 | 
			
		||||
var_tags="${var_tags:-automation}"
 | 
			
		||||
var_cpu="${var_cpu:-4}"
 | 
			
		||||
var_ram="${var_ram:-6144}"
 | 
			
		||||
var_disk="${var_disk:-25}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/sonarqube ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "sonarqube" "SonarSource/sonarqube"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop sonarqube
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Creating backup"
 | 
			
		||||
    BACKUP_DIR="/opt/sonarqube-backup"
 | 
			
		||||
    mv /opt/sonarqube ${BACKUP_DIR}
 | 
			
		||||
    msg_ok "Backup created"
 | 
			
		||||
 | 
			
		||||
    msg_info "Installing sonarqube"
 | 
			
		||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/SonarSource/sonarqube/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
    curl -fsSL "https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-${RELEASE}.zip" -o $temp_file
 | 
			
		||||
    unzip -q "$temp_file" -d /opt
 | 
			
		||||
    mv /opt/sonarqube-* /opt/sonarqube
 | 
			
		||||
    msg_ok "Installed sonarqube"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restoring backup"
 | 
			
		||||
    cp -rp ${BACKUP_DIR}/data/ /opt/sonarqube/data/
 | 
			
		||||
    cp -rp ${BACKUP_DIR}/extensions/ /opt/sonarqube/extensions/
 | 
			
		||||
    cp -p ${BACKUP_DIR}/conf/sonar.properties /opt/sonarqube/conf/sonar.properties
 | 
			
		||||
    rm -rf ${BACKUP_DIR}
 | 
			
		||||
    chown -R sonarqube:sonarqube /opt/sonarqube
 | 
			
		||||
    msg_ok "Backup restored"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start sonarqube
 | 
			
		||||
    msg_ok "Service started"
 | 
			
		||||
    msg_ok "Updated Successfully!"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9000${CL}"
 | 
			
		||||
@@ -30,9 +30,9 @@ function update_script() {
 | 
			
		||||
  RELEASE=$(curl -fsSL https://github.com/Donkie/Spoolman/releases/latest | grep "title>Release" | cut -d " " -f 4)
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
 | 
			
		||||
    msg_info "Stopping ${APP} Service"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop spoolman
 | 
			
		||||
    msg_ok "Stopped ${APP} Service"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    cd /opt
 | 
			
		||||
@@ -46,9 +46,9 @@ function update_script() {
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP} Service"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start spoolman
 | 
			
		||||
    msg_ok "Started ${APP} Service"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -rf /opt/spoolman.zip
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-4}"
 | 
			
		||||
var_ram="${var_ram:-4096}"
 | 
			
		||||
var_disk="${var_disk:-10}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -34,9 +34,9 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "tandoor" "TandoorRecipes/recipes"; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop tandoor
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Creating Backup"
 | 
			
		||||
    mv /opt/tandoor /opt/tandoor.bak
 | 
			
		||||
@@ -46,7 +46,7 @@ function update_script() {
 | 
			
		||||
    PYTHON_VERSION="3.13" setup_uv
 | 
			
		||||
    fetch_and_deploy_gh_release "tandoor" "TandoorRecipes/recipes" "tarball" "latest" "/opt/tandoor"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP"
 | 
			
		||||
    msg_info "Updating Tandoor"
 | 
			
		||||
    cp -r /opt/tandoor.bak/{config,api,mediafiles,staticfiles} /opt/tandoor/
 | 
			
		||||
    mv /opt/tandoor.bak/.env /opt/tandoor/.env
 | 
			
		||||
    cd /opt/tandoor
 | 
			
		||||
@@ -64,17 +64,17 @@ EOF
 | 
			
		||||
    cd /opt/tandoor
 | 
			
		||||
    $STD /opt/tandoor/.venv/bin/python manage.py migrate
 | 
			
		||||
    $STD /opt/tandoor/.venv/bin/python manage.py collectstatic --no-input
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
    msg_ok "Updated Trandoor"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start tandoor
 | 
			
		||||
    systemctl reload nginx
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf /opt/tandoor.bak
 | 
			
		||||
    msg_ok "Cleanup Completed"
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
    msg_ok "Update Successfully!"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-2}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -20,18 +20,18 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /var ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Updating $APP LXC"
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get -y upgrade
 | 
			
		||||
    msg_ok "Updated $APP LXC"
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /var ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating TasmoAdmin"
 | 
			
		||||
  $STD apt update
 | 
			
		||||
  $STD apt -y upgrade
 | 
			
		||||
  msg_ok "Updated TasmoAdmin"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
@@ -41,4 +41,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9999${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9999${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-10}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -20,43 +20,46 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /opt/tasmocompiler ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/benzino77/tasmocompiler/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"
 | 
			
		||||
        systemctl stop tasmocompiler
 | 
			
		||||
        msg_ok "Stopped $APP"
 | 
			
		||||
        msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
        cd /opt
 | 
			
		||||
        rm -rf /opt/tasmocompiler
 | 
			
		||||
        RELEASE=$(curl -fsSL https://api.github.com/repos/benzino77/tasmocompiler/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
        curl -fsSL "https://github.com/benzino77/tasmocompiler/archive/refs/tags/v${RELEASE}.tar.gz" -o $(basename "https://github.com/benzino77/tasmocompiler/archive/refs/tags/v${RELEASE}.tar.gz")
 | 
			
		||||
        tar xzf v${RELEASE}.tar.gz
 | 
			
		||||
        mv tasmocompiler-${RELEASE}/ /opt/tasmocompiler/
 | 
			
		||||
        cd /opt/tasmocompiler
 | 
			
		||||
        $STD yarn install
 | 
			
		||||
        export NODE_OPTIONS=--openssl-legacy-provider
 | 
			
		||||
        $STD npm i
 | 
			
		||||
        $STD yarn build
 | 
			
		||||
        msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
        msg_info "Starting $APP"
 | 
			
		||||
        systemctl start tasmocompiler
 | 
			
		||||
        msg_ok "Started $APP"
 | 
			
		||||
        echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
        msg_info "Cleaning up"
 | 
			
		||||
        rm -r "/opt/v${RELEASE}.tar.gz"
 | 
			
		||||
        msg_ok "Cleaned"
 | 
			
		||||
        msg_ok "Update Successful"
 | 
			
		||||
    else
 | 
			
		||||
        msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
    fi
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/tasmocompiler ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/benzino77/tasmocompiler/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 Service"
 | 
			
		||||
    systemctl stop tasmocompiler
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating TasmoCompiler"
 | 
			
		||||
    cd /opt
 | 
			
		||||
    rm -rf /opt/tasmocompiler
 | 
			
		||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/benzino77/tasmocompiler/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
    curl -fsSL "https://github.com/benzino77/tasmocompiler/archive/refs/tags/v${RELEASE}.tar.gz" -o $(basename "https://github.com/benzino77/tasmocompiler/archive/refs/tags/v${RELEASE}.tar.gz")
 | 
			
		||||
    tar xzf v${RELEASE}.tar.gz
 | 
			
		||||
    mv tasmocompiler-${RELEASE}/ /opt/tasmocompiler/
 | 
			
		||||
    cd /opt/tasmocompiler
 | 
			
		||||
    $STD yarn install
 | 
			
		||||
    export NODE_OPTIONS=--openssl-legacy-provider
 | 
			
		||||
    $STD npm i
 | 
			
		||||
    $STD yarn build
 | 
			
		||||
    msg_ok "Updated TasmoCompiler"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start tasmocompiler
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -r "/opt/v${RELEASE}.tar.gz"
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Update Successfully!"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -20,18 +20,19 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /opt/Tautulli/ ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Updating $APP LXC"
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get -y upgrade
 | 
			
		||||
    msg_ok "Updated $APP LXC"
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/Tautulli/ ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating Tautulli"
 | 
			
		||||
  $STD apt update
 | 
			
		||||
  $STD apt upgrade -y
 | 
			
		||||
  msg_ok "Updated Tautulli"
 | 
			
		||||
  msg_ok "Updated Successfully!"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
@@ -41,4 +42,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8181${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8181${CL}"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								ct/tdarr.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ct/tdarr.sh
									
									
									
									
									
								
							@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -27,9 +27,9 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating $APP LXC"
 | 
			
		||||
  $STD apt-get update
 | 
			
		||||
  $STD apt-get -y upgrade
 | 
			
		||||
  msg_info "Updating Tdarr"
 | 
			
		||||
  $STD apt update
 | 
			
		||||
  $STD apt upgrade -y
 | 
			
		||||
  rm -rf /opt/tdarr/Tdarr_Updater
 | 
			
		||||
  cd /opt/tdarr
 | 
			
		||||
  RELEASE=$(curl -fsSL https://f000.backblazeb2.com/file/tdarrs/versions.json | grep -oP '(?<="Tdarr_Updater": ")[^"]+' | grep linux_x64 | head -n 1)
 | 
			
		||||
@@ -37,12 +37,12 @@ function update_script() {
 | 
			
		||||
  $STD unzip Tdarr_Updater.zip
 | 
			
		||||
  chmod +x Tdarr_Updater
 | 
			
		||||
  $STD ./Tdarr_Updater
 | 
			
		||||
  msg_ok "Updated $APP LXC"
 | 
			
		||||
  msg_ok "Updated Tdarr"
 | 
			
		||||
 | 
			
		||||
  msg_info "Cleaning up"
 | 
			
		||||
  rm -rf /opt/tdarr/Tdarr_Updater.zip
 | 
			
		||||
  msg_ok "Cleaned"
 | 
			
		||||
  msg_ok "$APP has been successfully updated!"
 | 
			
		||||
  msg_ok "Cleaned up"
 | 
			
		||||
  msg_ok "Updated Successfully!"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user