mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-06-16 20:41:19 +02:00
Compare commits
66 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 57c2c88c53 | |||
| 3b79629261 | |||
| f13782704e | |||
| 7ee47be436 | |||
| 868b256603 | |||
| 16bd4f473b | |||
| 77eb109927 | |||
| 55703ab0ec | |||
| 3c42589ff0 | |||
| 0d271f55a6 | |||
| 6762208d66 | |||
| dee66b996e | |||
| 4b20b8dab5 | |||
| a2f987f07b | |||
| 96d828f379 | |||
| 293d4b73a1 | |||
| cfb84ae12d | |||
| f37bf50a47 | |||
| 4a09cac506 | |||
| 5831cc246a | |||
| bcea631c30 | |||
| d9e6e6ea3d | |||
| c48ece67f0 | |||
| 46f163c50c | |||
| 7dbee6cd83 | |||
| 4f97ac2090 | |||
| 054dd68c15 | |||
| 6c1024776d | |||
| d214627ca9 | |||
| d9b7255a0b | |||
| 9c88ef84a0 | |||
| d4b9bc86e8 | |||
| 07ab5dc16e | |||
| 9020fa88b8 | |||
| a5208b5564 | |||
| 9b5aab46bd | |||
| f321651d6b | |||
| bcd9678548 | |||
| a38da170da | |||
| 4cdb2b88f5 | |||
| 94442524f6 | |||
| 07a5b039be | |||
| e3624ee162 | |||
| 8b9b2399ba | |||
| f252ac7427 | |||
| 10acc2f591 | |||
| a2fe78c463 | |||
| 52cf5167c9 | |||
| 39af3f3966 | |||
| 79d2b09f56 | |||
| cc5b052660 | |||
| 914451ba66 | |||
| 956a5cc197 | |||
| 425e6bfd69 | |||
| ccdc4605fa | |||
| 707ba77006 | |||
| 477bd98269 | |||
| 3c9e90fdff | |||
| 5e5b2f6514 | |||
| 49c7e229c3 | |||
| 3518637bc9 | |||
| 2b87a54afb | |||
| fa054db892 | |||
| e5283edead | |||
| 51e8cab5d3 | |||
| 5ede4495f9 |
+106
-37
@@ -1,39 +1,108 @@
|
|||||||
title: "[Script request]: "
|
title: "[Script request]: "
|
||||||
labels: ["enhancement"]
|
labels:
|
||||||
|
- enhancement
|
||||||
|
|
||||||
body:
|
body:
|
||||||
- type: input
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
label: Application Name
|
value: |
|
||||||
description: Enter the application name.
|
Thanks for suggesting a new script for Proxmox VE Helper-Scripts.
|
||||||
placeholder: "e.g., Home Assistant"
|
|
||||||
validations:
|
Please make sure the requested application fits the scope of this project.
|
||||||
required: true
|
Requests may be closed if the application is out of scope, abandoned, too new, not publicly verifiable, or not suitable for a reliable Proxmox VE Helper-Scripts integration.
|
||||||
- type: input
|
|
||||||
attributes:
|
General requirements:
|
||||||
label: Website
|
- The application should be self-hosted.
|
||||||
description: Official website or github page.
|
- The project should have an official public source repository.
|
||||||
placeholder: "e.g., https://www.home-assistant.io/"
|
- The project should provide official releases, tags, or release tarballs.
|
||||||
validations:
|
- The project should be actively maintained.
|
||||||
required: true
|
- The project should generally have at least 1,000 stars or a comparable public adoption signal.
|
||||||
- type: textarea
|
- The latest official release or tag should not be older than 6 months.
|
||||||
attributes:
|
- The project itself should be at least 6 months old.
|
||||||
label: Description
|
|
||||||
description: Explain what the application does and why it should be added to Proxmox VE Helper-Scripts.
|
- type: input
|
||||||
placeholder: "e.g., Home Assistant is a popular open-source platform that brings all your smart home devices together in one place. Adding it to Proxmox VE Helper-Scripts would make setup and management on Proxmox easy, letting users quickly get a powerful, self-hosted smart home system up and running."
|
id: application-name
|
||||||
validations:
|
attributes:
|
||||||
required: true
|
label: Application Name
|
||||||
- type: checkboxes
|
description: Enter the official application name.
|
||||||
attributes:
|
placeholder: "e.g., Home Assistant"
|
||||||
label: Due Diligence
|
validations:
|
||||||
options:
|
required: true
|
||||||
- label: "I have searched existing [scripts](https://community-scripts.github.io/Proxmox/scripts) and found no duplicates."
|
|
||||||
required: true
|
- type: input
|
||||||
- label: "I have searched existing [discussions](https://github.com/community-scripts/ProxmoxVE/discussions?discussions_q=) and found no duplicate requests."
|
id: official-website
|
||||||
required: true
|
attributes:
|
||||||
- label: "The application requested has 600+ stars on Github (if applicable), is older than 6 months, actively maintained and has release tarballs published."
|
label: Official Website
|
||||||
required: true
|
description: Enter the official website, documentation page, or project homepage.
|
||||||
- label: "I understand that not all applications will be accepted due to various reasons and criteria by the community-scripts ORG."
|
placeholder: "e.g., https://www.home-assistant.io/"
|
||||||
required: true
|
validations:
|
||||||
- type: markdown
|
required: true
|
||||||
attributes:
|
|
||||||
value: "Thanks for submitting your request! The team will review it and reach out if we need more information."
|
- type: input
|
||||||
|
id: source-repository
|
||||||
|
attributes:
|
||||||
|
label: Source Repository
|
||||||
|
description: Enter the official GitHub, GitLab, Forgejo, or other public source repository URL.
|
||||||
|
placeholder: "e.g., https://github.com/home-assistant/core"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: app-description
|
||||||
|
attributes:
|
||||||
|
label: Description
|
||||||
|
description: Explain what the application does.
|
||||||
|
placeholder: |
|
||||||
|
Example:
|
||||||
|
Home Assistant is an open-source platform for managing smart home devices.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: reason
|
||||||
|
attributes:
|
||||||
|
label: Why should this be added?
|
||||||
|
description: Explain why this application would be useful for Proxmox VE Helper-Scripts users.
|
||||||
|
placeholder: |
|
||||||
|
Example:
|
||||||
|
It is a popular self-hosted application and would be useful for users who want to run it easily in a Proxmox LXC or VM.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: installation-notes
|
||||||
|
attributes:
|
||||||
|
label: Installation Notes
|
||||||
|
description: Add any relevant installation details, dependencies, ports, databases, services, or known limitations.
|
||||||
|
placeholder: |
|
||||||
|
Example:
|
||||||
|
- Requires PostgreSQL
|
||||||
|
- Uses port 8123 by default
|
||||||
|
- Runs as a systemd service
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
|
||||||
|
- type: checkboxes
|
||||||
|
id: due-diligence
|
||||||
|
attributes:
|
||||||
|
label: Due Diligence
|
||||||
|
description: Please confirm the following before submitting your request.
|
||||||
|
options:
|
||||||
|
- label: I have searched existing scripts and found no duplicate.
|
||||||
|
required: true
|
||||||
|
- label: I have searched existing discussions and found no duplicate request.
|
||||||
|
required: true
|
||||||
|
- label: The application has an official public source repository.
|
||||||
|
required: true
|
||||||
|
- label: The application is self-hosted and suitable for Proxmox VE Helper-Scripts.
|
||||||
|
required: true
|
||||||
|
- label: The application appears to be actively maintained and provides official releases, tags, or release tarballs.
|
||||||
|
required: true
|
||||||
|
- label: I understand that requests outside the project scope may be closed without an extensive explanation.
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for submitting your request.
|
||||||
|
The team will review it and may ask for more information if needed.
|
||||||
|
|||||||
Generated
+127
@@ -1,3 +1,130 @@
|
|||||||
|
## 2026-06-13
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- BookOrbit ([#15080](https://github.com/community-scripts/ProxmoxVE/pull/15080))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Update authentik version to 2026.5.3 [@thieneret](https://github.com/thieneret) ([#15093](https://github.com/community-scripts/ProxmoxVE/pull/15093))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Immich: Update image-processing libraries [@vhsdream](https://github.com/vhsdream) ([#15082](https://github.com/community-scripts/ProxmoxVE/pull/15082))
|
||||||
|
- HomeBox: Support v0.26.0 [@tomfrenzel](https://github.com/tomfrenzel) ([#15086](https://github.com/community-scripts/ProxmoxVE/pull/15086))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Implement backup functions for scripts A-B [@tremor021](https://github.com/tremor021) ([#15075](https://github.com/community-scripts/ProxmoxVE/pull/15075))
|
||||||
|
|
||||||
|
## 2026-06-12
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Twenty ([#15047](https://github.com/community-scripts/ProxmoxVE/pull/15047))
|
||||||
|
- Alpine-Cinny ([#15044](https://github.com/community-scripts/ProxmoxVE/pull/15044))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- [core] Implement backup and restore functions [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#15067](https://github.com/community-scripts/ProxmoxVE/pull/15067))
|
||||||
|
|
||||||
|
## 2026-06-11
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Clickhouse ([#15045](https://github.com/community-scripts/ProxmoxVE/pull/15045))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Manyfold: add new dependency [@MickLesk](https://github.com/MickLesk) ([#15040](https://github.com/community-scripts/ProxmoxVE/pull/15040))
|
||||||
|
- OpenArchiver: switch Rebuild Function [@MickLesk](https://github.com/MickLesk) ([#15042](https://github.com/community-scripts/ProxmoxVE/pull/15042))
|
||||||
|
- CLIProxyAPI: Save management password to creds file [@tremor021](https://github.com/tremor021) ([#15051](https://github.com/community-scripts/ProxmoxVE/pull/15051))
|
||||||
|
- Jotty: Fix wrong path test in config restore [@vhsdream](https://github.com/vhsdream) ([#15038](https://github.com/community-scripts/ProxmoxVE/pull/15038))
|
||||||
|
- Fix for cross-seed after node upgrade [@TorinFrancis](https://github.com/TorinFrancis) ([#15025](https://github.com/community-scripts/ProxmoxVE/pull/15025))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Alpine-Nextcloud: Upgrade PHP and dependencies in installation script [@MickLesk](https://github.com/MickLesk) ([#15039](https://github.com/community-scripts/ProxmoxVE/pull/15039))
|
||||||
|
- [arm64] porting stage 1: set script arm64 statuses to yes [@asylumexp](https://github.com/asylumexp) ([#15052](https://github.com/community-scripts/ProxmoxVE/pull/15052))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- misc scripts: add support for arm64 [@asylumexp](https://github.com/asylumexp) ([#12639](https://github.com/community-scripts/ProxmoxVE/pull/12639))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- [arm64] remove logic for custom debian arm64 template [@asylumexp](https://github.com/asylumexp) ([#15050](https://github.com/community-scripts/ProxmoxVE/pull/15050))
|
||||||
|
|
||||||
|
### 📚 Documentation
|
||||||
|
|
||||||
|
- (github): Revise script request template [@MickLesk](https://github.com/MickLesk) ([#15058](https://github.com/community-scripts/ProxmoxVE/pull/15058))
|
||||||
|
|
||||||
|
## 2026-06-10
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Baserow ([#14968](https://github.com/community-scripts/ProxmoxVE/pull/14968))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Koillection: Fix update procedure [@tremor021](https://github.com/tremor021) ([#15033](https://github.com/community-scripts/ProxmoxVE/pull/15033))
|
||||||
|
|
||||||
|
## 2026-06-09
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- paperclip ([#14990](https://github.com/community-scripts/ProxmoxVE/pull/14990))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- endurain: Install pytz package during backend setup [@MickLesk](https://github.com/MickLesk) ([#15014](https://github.com/community-scripts/ProxmoxVE/pull/15014))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Proxmox Backup Server - use deb822 [@MickLesk](https://github.com/MickLesk) ([#15013](https://github.com/community-scripts/ProxmoxVE/pull/15013))
|
||||||
|
|
||||||
|
## 2026-06-08
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- security: Fix HTTP to HTTPS for all package and repository downloads [@MickLesk](https://github.com/MickLesk) ([#15009](https://github.com/community-scripts/ProxmoxVE/pull/15009))
|
||||||
|
- homelable: preserve MCP server config across updates [@ferr079](https://github.com/ferr079) ([#14996](https://github.com/community-scripts/ProxmoxVE/pull/14996))
|
||||||
|
- changedetection: migrate Python install to uv venv [@ferr079](https://github.com/ferr079) ([#14995](https://github.com/community-scripts/ProxmoxVE/pull/14995))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Update Flowwiseai to node 24 [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#14999](https://github.com/community-scripts/ProxmoxVE/pull/14999))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- security: Fix MITM RCE vulnerability in microcode scripts (CVE) [@MickLesk](https://github.com/MickLesk) ([#15007](https://github.com/community-scripts/ProxmoxVE/pull/15007))
|
||||||
|
|
||||||
|
## 2026-06-07
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Immich: use actual installed PostgreSQL version for vchord package [@MickLesk](https://github.com/MickLesk) ([#14989](https://github.com/community-scripts/ProxmoxVE/pull/14989))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Navidrome: remove genereic filebrowser addon setup [@MickLesk](https://github.com/MickLesk) ([#14991](https://github.com/community-scripts/ProxmoxVE/pull/14991))
|
||||||
|
|
||||||
## 2026-06-06
|
## 2026-06-06
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ jobs:
|
|||||||
BEFORE="${{ github.event.before }}"
|
BEFORE="${{ github.event.before }}"
|
||||||
AFTER="${{ github.event.after }}"
|
AFTER="${{ github.event.after }}"
|
||||||
slugs=""
|
slugs=""
|
||||||
|
ct_slugs=""
|
||||||
|
|
||||||
# Deleted JSON files: get slug from previous commit
|
# Deleted JSON files: get slug from previous commit
|
||||||
deleted_json=$(git diff --name-only --diff-filter=D "$BEFORE" "$AFTER" -- json/ | grep '\.json$' || true)
|
deleted_json=$(git diff --name-only --diff-filter=D "$BEFORE" "$AFTER" -- json/ | grep '\.json$' || true)
|
||||||
@@ -37,6 +38,14 @@ jobs:
|
|||||||
done
|
done
|
||||||
|
|
||||||
# Deleted script files: derive slug from path
|
# Deleted script files: derive slug from path
|
||||||
|
deleted_ct=$(git diff --name-only --diff-filter=D "$BEFORE" "$AFTER" -- ct/ | grep '\.sh$' || true)
|
||||||
|
for f in $deleted_ct; do
|
||||||
|
[[ -z "$f" ]] && continue
|
||||||
|
base="${f##*/}"
|
||||||
|
base="${base%.sh}"
|
||||||
|
[[ -n "$base" ]] && ct_slugs="$ct_slugs $base"
|
||||||
|
done
|
||||||
|
|
||||||
deleted_sh=$(git diff --name-only --diff-filter=D "$BEFORE" "$AFTER" -- ct/ install/ tools/ turnkey/ vm/ | grep '\.sh$' || true)
|
deleted_sh=$(git diff --name-only --diff-filter=D "$BEFORE" "$AFTER" -- ct/ install/ tools/ turnkey/ vm/ | grep '\.sh$' || true)
|
||||||
for f in $deleted_sh; do
|
for f in $deleted_sh; do
|
||||||
[[ -z "$f" ]] && continue
|
[[ -z "$f" ]] && continue
|
||||||
@@ -51,14 +60,17 @@ jobs:
|
|||||||
done
|
done
|
||||||
|
|
||||||
slugs=$(echo $slugs | xargs -n1 | sort -u | tr '\n' ' ')
|
slugs=$(echo $slugs | xargs -n1 | sort -u | tr '\n' ' ')
|
||||||
|
ct_slugs=$(echo $ct_slugs | xargs -n1 2>/dev/null | sort -u | tr '\n' ' ')
|
||||||
if [[ -z "$slugs" ]]; then
|
if [[ -z "$slugs" ]]; then
|
||||||
echo "No deleted JSON or script files to mark as deleted in PocketBase."
|
echo "No deleted JSON or script files to mark as deleted in PocketBase."
|
||||||
echo "count=0" >> "$GITHUB_OUTPUT"
|
echo "count=0" >> "$GITHUB_OUTPUT"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
echo "$slugs" > slugs_to_delete.txt
|
echo "$slugs" > slugs_to_delete.txt
|
||||||
|
echo "$ct_slugs" > ct_slugs_to_stub.txt
|
||||||
echo "count=$(echo $slugs | wc -w)" >> "$GITHUB_OUTPUT"
|
echo "count=$(echo $slugs | wc -w)" >> "$GITHUB_OUTPUT"
|
||||||
echo "Slugs to mark as deleted: $slugs"
|
echo "Slugs to mark as deleted: $slugs"
|
||||||
|
[[ -n "$ct_slugs" ]] && echo "CT stubs to generate: $ct_slugs"
|
||||||
|
|
||||||
- name: Mark as deleted in PocketBase
|
- name: Mark as deleted in PocketBase
|
||||||
if: steps.slugs.outputs.count != '0'
|
if: steps.slugs.outputs.count != '0'
|
||||||
@@ -159,3 +171,134 @@ jobs:
|
|||||||
})().catch(e => { console.error(e); process.exit(1); });
|
})().catch(e => { console.error(e); process.exit(1); });
|
||||||
ENDSCRIPT
|
ENDSCRIPT
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
|
- name: Generate CT stubs for deleted scripts
|
||||||
|
if: steps.slugs.outputs.count != '0'
|
||||||
|
env:
|
||||||
|
POCKETBASE_URL: ${{ secrets.POCKETBASE_URL }}
|
||||||
|
POCKETBASE_COLLECTION: ${{ secrets.POCKETBASE_COLLECTION }}
|
||||||
|
POCKETBASE_ADMIN_EMAIL: ${{ secrets.POCKETBASE_ADMIN_EMAIL }}
|
||||||
|
POCKETBASE_ADMIN_PASSWORD: ${{ secrets.POCKETBASE_ADMIN_PASSWORD }}
|
||||||
|
run: |
|
||||||
|
if [[ ! -s ct_slugs_to_stub.txt ]]; then
|
||||||
|
echo "No deleted ct/*.sh files; skipping stub generation."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
node << 'ENDSCRIPT'
|
||||||
|
(async function() {
|
||||||
|
const fs = require('fs');
|
||||||
|
const https = require('https');
|
||||||
|
const http = require('http');
|
||||||
|
const path = require('path');
|
||||||
|
const url = require('url');
|
||||||
|
|
||||||
|
function request(fullUrl, opts, redirectCount) {
|
||||||
|
redirectCount = redirectCount || 0;
|
||||||
|
return new Promise(function(resolve, reject) {
|
||||||
|
const u = url.parse(fullUrl);
|
||||||
|
const isHttps = u.protocol === 'https:';
|
||||||
|
const body = opts.body;
|
||||||
|
const options = {
|
||||||
|
hostname: u.hostname,
|
||||||
|
port: u.port || (isHttps ? 443 : 80),
|
||||||
|
path: u.path,
|
||||||
|
method: opts.method || 'GET',
|
||||||
|
headers: opts.headers || {}
|
||||||
|
};
|
||||||
|
if (body) options.headers['Content-Length'] = Buffer.byteLength(body);
|
||||||
|
const lib = isHttps ? https : http;
|
||||||
|
const req = lib.request(options, function(res) {
|
||||||
|
if (res.statusCode >= 300 && res.statusCode < 400 && res.headers.location) {
|
||||||
|
if (redirectCount >= 5) return reject(new Error('Too many redirects from ' + fullUrl));
|
||||||
|
const redirectUrl = url.resolve(fullUrl, res.headers.location);
|
||||||
|
res.resume();
|
||||||
|
resolve(request(redirectUrl, opts, redirectCount + 1));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let data = '';
|
||||||
|
res.on('data', function(chunk) { data += chunk; });
|
||||||
|
res.on('end', function() {
|
||||||
|
resolve({ ok: res.statusCode >= 200 && res.statusCode < 300, statusCode: res.statusCode, body: data });
|
||||||
|
});
|
||||||
|
});
|
||||||
|
req.on('error', reject);
|
||||||
|
if (body) req.write(body);
|
||||||
|
req.end();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const raw = process.env.POCKETBASE_URL.replace(/\/$/, '');
|
||||||
|
const apiBase = /\/api$/i.test(raw) ? raw : raw + '/api';
|
||||||
|
const coll = process.env.POCKETBASE_COLLECTION;
|
||||||
|
const ctSlugs = fs.readFileSync('ct_slugs_to_stub.txt', 'utf8').trim().split(/\s+/).filter(Boolean);
|
||||||
|
if (!ctSlugs.length) {
|
||||||
|
console.log('No ct slugs to process.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const authRes = await request(apiBase + '/collections/users/auth-with-password', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: { 'Content-Type': 'application/json' },
|
||||||
|
body: JSON.stringify({
|
||||||
|
identity: process.env.POCKETBASE_ADMIN_EMAIL,
|
||||||
|
password: process.env.POCKETBASE_ADMIN_PASSWORD
|
||||||
|
})
|
||||||
|
});
|
||||||
|
if (!authRes.ok) throw new Error('Auth failed: ' + authRes.body);
|
||||||
|
const token = JSON.parse(authRes.body).token;
|
||||||
|
const recordsUrl = apiBase + '/collections/' + encodeURIComponent(coll) + '/records';
|
||||||
|
|
||||||
|
for (const slug of ctSlugs) {
|
||||||
|
const filter = "(slug='" + slug + "')";
|
||||||
|
const listRes = await request(recordsUrl + '?filter=' + encodeURIComponent(filter) + '&perPage=1&fields=slug,name,deleted_message', {
|
||||||
|
headers: { 'Authorization': token }
|
||||||
|
});
|
||||||
|
if (!listRes.ok) {
|
||||||
|
console.warn('Failed to fetch record for slug "' + slug + '"');
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
const list = JSON.parse(listRes.body);
|
||||||
|
const rec = list.items && list.items[0];
|
||||||
|
const appName = (rec && rec.name) ? rec.name : slug;
|
||||||
|
const deletedMessage = (rec && rec.deleted_message && rec.deleted_message.trim())
|
||||||
|
? rec.deleted_message.trim()
|
||||||
|
: 'This script was removed and cannot be installed or updated.';
|
||||||
|
|
||||||
|
const stubPath = path.join('ct', slug + '.sh');
|
||||||
|
const content =
|
||||||
|
`#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
|
||||||
|
APP="${appName.replace(/"/g, '\\"')}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
|
||||||
|
msg_error "This script is no longer available in community-scripts."
|
||||||
|
msg_error "${deletedMessage.replace(/"/g, '\\"')}"
|
||||||
|
msg_warn "More info: https://community-scripts.org/scripts/${slug}"
|
||||||
|
exit 1
|
||||||
|
`;
|
||||||
|
fs.writeFileSync(stubPath, content);
|
||||||
|
console.log('Generated stub: ' + stubPath);
|
||||||
|
}
|
||||||
|
})().catch(e => { console.error(e); process.exit(1); });
|
||||||
|
ENDSCRIPT
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
- name: Commit generated stubs
|
||||||
|
if: steps.slugs.outputs.count != '0'
|
||||||
|
run: |
|
||||||
|
if git diff --quiet -- ct; then
|
||||||
|
echo "No generated ct stubs to commit."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
git config user.name "github-actions[bot]"
|
||||||
|
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||||
|
git add ct/*.sh
|
||||||
|
git commit -m "chore: add deleted script stubs"
|
||||||
|
git push
|
||||||
|
shell: bash
|
||||||
|
|||||||
+102
-123
@@ -62,6 +62,9 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -75,7 +78,7 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><h4>June (6 entries)</h4></summary>
|
<summary><h4>June (13 entries)</h4></summary>
|
||||||
|
|
||||||
[View June 2026 Changelog](.github/changelogs/2026/06.md)
|
[View June 2026 Changelog](.github/changelogs/2026/06.md)
|
||||||
|
|
||||||
@@ -480,20 +483,116 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## 2026-06-11
|
## 2026-06-16
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Add runtime status guard and deleted script stubs [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#15125](https://github.com/community-scripts/ProxmoxVE/pull/15125))
|
||||||
|
|
||||||
|
## 2026-06-15
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Watcharr: Clean install on update [@tremor021](https://github.com/tremor021) ([#15119](https://github.com/community-scripts/ProxmoxVE/pull/15119))
|
||||||
|
- Vaultwarden: extend version check for VaultWarden update [@MickLesk](https://github.com/MickLesk) ([#15105](https://github.com/community-scripts/ProxmoxVE/pull/15105))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- degoog: add curl-impersonate to script [@MickLesk](https://github.com/MickLesk) ([#15117](https://github.com/community-scripts/ProxmoxVE/pull/15117))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- tools.func: extend mesa-vulkan-drivers and vulkan-tools to installation for ARC GPU's [@MickLesk](https://github.com/MickLesk) ([#15106](https://github.com/community-scripts/ProxmoxVE/pull/15106))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- core: improve mirror selection and error handling [@MickLesk](https://github.com/MickLesk) ([#15108](https://github.com/community-scripts/ProxmoxVE/pull/15108))
|
||||||
|
- core: implement gateway validation for DHCP and static networks [@MickLesk](https://github.com/MickLesk) ([#15107](https://github.com/community-scripts/ProxmoxVE/pull/15107))
|
||||||
|
|
||||||
|
## 2026-06-14
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Iinvoiceninja: fix nginx setup assets port [@MickLesk](https://github.com/MickLesk) ([#15090](https://github.com/community-scripts/ProxmoxVE/pull/15090))
|
||||||
|
- CheckMK: remove stale backup site before creating new backup during update [@MickLesk](https://github.com/MickLesk) ([#15088](https://github.com/community-scripts/ProxmoxVE/pull/15088))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Implement backup functions for scripts C-D [@tremor021](https://github.com/tremor021) ([#15096](https://github.com/community-scripts/ProxmoxVE/pull/15096))
|
||||||
|
|
||||||
|
## 2026-06-13
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- BookOrbit ([#15080](https://github.com/community-scripts/ProxmoxVE/pull/15080))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Update authentik version to 2026.5.3 [@thieneret](https://github.com/thieneret) ([#15093](https://github.com/community-scripts/ProxmoxVE/pull/15093))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Immich: Update image-processing libraries [@vhsdream](https://github.com/vhsdream) ([#15082](https://github.com/community-scripts/ProxmoxVE/pull/15082))
|
||||||
|
- HomeBox: Support v0.26.0 [@tomfrenzel](https://github.com/tomfrenzel) ([#15086](https://github.com/community-scripts/ProxmoxVE/pull/15086))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Implement backup functions for scripts A-B [@tremor021](https://github.com/tremor021) ([#15075](https://github.com/community-scripts/ProxmoxVE/pull/15075))
|
||||||
|
|
||||||
|
## 2026-06-12
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Twenty ([#15047](https://github.com/community-scripts/ProxmoxVE/pull/15047))
|
||||||
|
- Alpine-Cinny ([#15044](https://github.com/community-scripts/ProxmoxVE/pull/15044))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- [core] Implement backup and restore functions [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#15067](https://github.com/community-scripts/ProxmoxVE/pull/15067))
|
||||||
|
|
||||||
|
## 2026-06-11
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Clickhouse ([#15045](https://github.com/community-scripts/ProxmoxVE/pull/15045))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Manyfold: add new dependency [@MickLesk](https://github.com/MickLesk) ([#15040](https://github.com/community-scripts/ProxmoxVE/pull/15040))
|
||||||
|
- OpenArchiver: switch Rebuild Function [@MickLesk](https://github.com/MickLesk) ([#15042](https://github.com/community-scripts/ProxmoxVE/pull/15042))
|
||||||
|
- CLIProxyAPI: Save management password to creds file [@tremor021](https://github.com/tremor021) ([#15051](https://github.com/community-scripts/ProxmoxVE/pull/15051))
|
||||||
|
- Jotty: Fix wrong path test in config restore [@vhsdream](https://github.com/vhsdream) ([#15038](https://github.com/community-scripts/ProxmoxVE/pull/15038))
|
||||||
- Fix for cross-seed after node upgrade [@TorinFrancis](https://github.com/TorinFrancis) ([#15025](https://github.com/community-scripts/ProxmoxVE/pull/15025))
|
- Fix for cross-seed after node upgrade [@TorinFrancis](https://github.com/TorinFrancis) ([#15025](https://github.com/community-scripts/ProxmoxVE/pull/15025))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Alpine-Nextcloud: Upgrade PHP and dependencies in installation script [@MickLesk](https://github.com/MickLesk) ([#15039](https://github.com/community-scripts/ProxmoxVE/pull/15039))
|
||||||
|
- [arm64] porting stage 1: set script arm64 statuses to yes [@asylumexp](https://github.com/asylumexp) ([#15052](https://github.com/community-scripts/ProxmoxVE/pull/15052))
|
||||||
|
|
||||||
### 💾 Core
|
### 💾 Core
|
||||||
|
|
||||||
- #### ✨ New Features
|
- #### ✨ New Features
|
||||||
|
|
||||||
- misc scripts: add support for arm64 [@asylumexp](https://github.com/asylumexp) ([#12639](https://github.com/community-scripts/ProxmoxVE/pull/12639))
|
- misc scripts: add support for arm64 [@asylumexp](https://github.com/asylumexp) ([#12639](https://github.com/community-scripts/ProxmoxVE/pull/12639))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- [arm64] remove logic for custom debian arm64 template [@asylumexp](https://github.com/asylumexp) ([#15050](https://github.com/community-scripts/ProxmoxVE/pull/15050))
|
||||||
|
|
||||||
|
### 📚 Documentation
|
||||||
|
|
||||||
|
- (github): Revise script request template [@MickLesk](https://github.com/MickLesk) ([#15058](https://github.com/community-scripts/ProxmoxVE/pull/15058))
|
||||||
|
|
||||||
## 2026-06-10
|
## 2026-06-10
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
@@ -996,124 +1095,4 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
- core: fall back to silent mode when no TTY or whiptail unavailable [@MickLesk](https://github.com/MickLesk) ([#14497](https://github.com/community-scripts/ProxmoxVE/pull/14497))
|
- core: fall back to silent mode when no TTY or whiptail unavailable [@MickLesk](https://github.com/MickLesk) ([#14497](https://github.com/community-scripts/ProxmoxVE/pull/14497))
|
||||||
|
|
||||||
## 2026-05-14
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- CLIProxyAPI ([#14443](https://github.com/community-scripts/ProxmoxVE/pull/14443))
|
|
||||||
|
|
||||||
## 2026-05-13
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Fix: Broken Manifold update [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#14468](https://github.com/community-scripts/ProxmoxVE/pull/14468))
|
|
||||||
- SoulSync: Fix update function [@tremor021](https://github.com/tremor021) ([#14465](https://github.com/community-scripts/ProxmoxVE/pull/14465))
|
|
||||||
- Reactive-Resume: fix PDF generation timeout in LXC containers [@MickLesk](https://github.com/MickLesk) ([#14416](https://github.com/community-scripts/ProxmoxVE/pull/14416))
|
|
||||||
- (calibre-web) Add --no-sandbox for PDF conversion [@jamesmyatt](https://github.com/jamesmyatt) ([#14461](https://github.com/community-scripts/ProxmoxVE/pull/14461))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- tools.func: encode GitHub tag, refine pin logic, add Codeberg [@MickLesk](https://github.com/MickLesk) ([#14473](https://github.com/community-scripts/ProxmoxVE/pull/14473))
|
|
||||||
|
|
||||||
## 2026-05-12
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- DocuSeal ([#14445](https://github.com/community-scripts/ProxmoxVE/pull/14445))
|
|
||||||
- Authentik ([#14440](https://github.com/community-scripts/ProxmoxVE/pull/14440))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Save Omada version [@lucacome](https://github.com/lucacome) ([#14433](https://github.com/community-scripts/ProxmoxVE/pull/14433))
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- OpenCloud: bump version to 6.2.0 [@vhsdream](https://github.com/vhsdream) ([#14451](https://github.com/community-scripts/ProxmoxVE/pull/14451))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- misc: bump node versions [@CrazyWolf13](https://github.com/CrazyWolf13) ([#14447](https://github.com/community-scripts/ProxmoxVE/pull/14447))
|
|
||||||
|
|
||||||
## 2026-05-11
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- Lychee ([#14424](https://github.com/community-scripts/ProxmoxVE/pull/14424))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Termix: fix nginx pid path and log paths on update (#) [@MickLesk](https://github.com/MickLesk) ([#14419](https://github.com/community-scripts/ProxmoxVE/pull/14419))
|
|
||||||
- Nginxproxymanager: restore NPM nginx.conf after OpenResty rebuid [@MickLesk](https://github.com/MickLesk) ([#14421](https://github.com/community-scripts/ProxmoxVE/pull/14421))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- InvestBrain: add commented reverse proxy config hints to .env [@MickLesk](https://github.com/MickLesk) ([#14422](https://github.com/community-scripts/ProxmoxVE/pull/14422))
|
|
||||||
|
|
||||||
### 🧰 Tools
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Cronmaster: fix unexpected EOF in update_cronmaster script [@MickLesk](https://github.com/MickLesk) ([#14420](https://github.com/community-scripts/ProxmoxVE/pull/14420))
|
|
||||||
|
|
||||||
## 2026-05-10
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Save Beszel version [@lucacome](https://github.com/lucacome) ([#14389](https://github.com/community-scripts/ProxmoxVE/pull/14389))
|
|
||||||
- karakeep: Fix SERVER_VERSION update [@MickLesk](https://github.com/MickLesk) ([#14378](https://github.com/community-scripts/ProxmoxVE/pull/14378))
|
|
||||||
- inspIRCd: Fix service not autostarting [@tremor021](https://github.com/tremor021) ([#14368](https://github.com/community-scripts/ProxmoxVE/pull/14368))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- refactor: webcheck [@CrazyWolf13](https://github.com/CrazyWolf13) ([#14391](https://github.com/community-scripts/ProxmoxVE/pull/14391))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- [tools.func]: Pin `pnpm` version [@tremor021](https://github.com/tremor021) ([#14386](https://github.com/community-scripts/ProxmoxVE/pull/14386))
|
|
||||||
|
|
||||||
## 2026-05-09
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- FlowiseAI: Migrate to pnpm [@MickLesk](https://github.com/MickLesk) ([#14344](https://github.com/community-scripts/ProxmoxVE/pull/14344))
|
|
||||||
- Purge openresty [@lucacome](https://github.com/lucacome) ([#14353](https://github.com/community-scripts/ProxmoxVE/pull/14353))
|
|
||||||
- Check for release for Sonarr [@lucacome](https://github.com/lucacome) ([#14354](https://github.com/community-scripts/ProxmoxVE/pull/14354))
|
|
||||||
- fix(termix-install.sh): add tmpfiles.d persistence and systemd PIDFile path [@runnylogan](https://github.com/runnylogan) ([#14350](https://github.com/community-scripts/ProxmoxVE/pull/14350))
|
|
||||||
- ERPNext: start bench Redis services before bench new-site [@MickLesk](https://github.com/MickLesk) ([#14343](https://github.com/community-scripts/ProxmoxVE/pull/14343))
|
|
||||||
- [Hotfix]Jotty: use absolute path when creating data dir [@vhsdream](https://github.com/vhsdream) ([#14355](https://github.com/community-scripts/ProxmoxVE/pull/14355))
|
|
||||||
|
|
||||||
## 2026-05-08
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- wishlist: pin pnpm to v10 to match engine requirements [@MickLesk](https://github.com/MickLesk) ([#14342](https://github.com/community-scripts/ProxmoxVE/pull/14342))
|
|
||||||
- [pelican] fix env copy regression [@LetterN](https://github.com/LetterN) ([#14328](https://github.com/community-scripts/ProxmoxVE/pull/14328))
|
|
||||||
- fix(homepage): fix ERR_PNPM_IGNORED_BUILDS error [@Sergih28](https://github.com/Sergih28) ([#14315](https://github.com/community-scripts/ProxmoxVE/pull/14315))
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- tools.func: add setup_nltk as new function [@MickLesk](https://github.com/MickLesk) ([#14314](https://github.com/community-scripts/ProxmoxVE/pull/14314))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- tools.func: fix meilisearch import-dump background process handling [@MickLesk](https://github.com/MickLesk) ([#14341](https://github.com/community-scripts/ProxmoxVE/pull/14341))
|
|
||||||
+11
-7
@@ -12,7 +12,7 @@ var_ram="${var_ram:-512}"
|
|||||||
var_disk="${var_disk:-2}"
|
var_disk="${var_disk:-2}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
@@ -35,8 +35,10 @@ function update_script() {
|
|||||||
$STD apt -y upgrade
|
$STD apt -y upgrade
|
||||||
|
|
||||||
msg_info "Creating Backup"
|
msg_info "Creating Backup"
|
||||||
rm -rf /opt/2fauth-backup
|
create_backup \
|
||||||
mv /opt/2fauth /opt/2fauth-backup
|
/opt/2fauth/.env \
|
||||||
|
/opt/2fauth/storage
|
||||||
|
|
||||||
if ! dpkg -l | grep -q 'php8.4'; then
|
if ! dpkg -l | grep -q 'php8.4'; then
|
||||||
cp /etc/nginx/conf.d/2fauth.conf /etc/nginx/conf.d/2fauth.conf.bak
|
cp /etc/nginx/conf.d/2fauth.conf /etc/nginx/conf.d/2fauth.conf.bak
|
||||||
fi
|
fi
|
||||||
@@ -46,11 +48,13 @@ function update_script() {
|
|||||||
PHP_VERSION="8.4" PHP_FPM="YES" setup_php
|
PHP_VERSION="8.4" PHP_FPM="YES" setup_php
|
||||||
sed -i 's/php8\.[0-9]/php8.4/g' /etc/nginx/conf.d/2fauth.conf
|
sed -i 's/php8\.[0-9]/php8.4/g' /etc/nginx/conf.d/2fauth.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "2fauth" "Bubka/2FAuth" "tarball"
|
fetch_and_deploy_gh_release "2fauth" "Bubka/2FAuth" "tarball"
|
||||||
setup_composer
|
setup_composer
|
||||||
cp /opt/2fauth-backup/.env /opt/2fauth/.env
|
restore_backup
|
||||||
cp -r /opt/2fauth-backup/storage /opt/2fauth/storage
|
|
||||||
cd /opt/2fauth || return
|
msg_info "Configuring 2FAuth"
|
||||||
|
cd /opt/2fauth
|
||||||
export COMPOSER_ALLOW_SUPERUSER=1
|
export COMPOSER_ALLOW_SUPERUSER=1
|
||||||
$STD composer install --no-dev --prefer-dist
|
$STD composer install --no-dev --prefer-dist
|
||||||
php artisan 2fauth:install
|
php artisan 2fauth:install
|
||||||
@@ -58,7 +62,7 @@ function update_script() {
|
|||||||
chmod -R 755 /opt/2fauth
|
chmod -R 755 /opt/2fauth
|
||||||
$STD systemctl restart php8.4-fpm
|
$STD systemctl restart php8.4-fpm
|
||||||
$STD systemctl restart nginx
|
$STD systemctl restart nginx
|
||||||
rm -rf /opt/2fauth-backup
|
msg_ok "Configured 2FAuth"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+6
-10
@@ -35,10 +35,8 @@ function update_script() {
|
|||||||
systemctl stop adventurelog-frontend
|
systemctl stop adventurelog-frontend
|
||||||
msg_ok "Services Stopped"
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
msg_info "Backup Old Installation"
|
create_backup /opt/adventurelog/backend/server/.env \
|
||||||
cp -r /opt/adventurelog /opt/adventurelog-backup
|
/opt/adventurelog/backend/server/media
|
||||||
rm -rf /opt/adventurelog
|
|
||||||
msg_ok "Backup done"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog" "tarball"
|
fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog" "tarball"
|
||||||
PYTHON_VERSION="3.13" setup_uv
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
@@ -47,9 +45,9 @@ function update_script() {
|
|||||||
$STD sudo -u postgres psql -d adventurelog_db -c "CREATE EXTENSION IF NOT EXISTS postgis;"
|
$STD sudo -u postgres psql -d adventurelog_db -c "CREATE EXTENSION IF NOT EXISTS postgis;"
|
||||||
msg_ok "PostgreSQL Extensions Ready"
|
msg_ok "PostgreSQL Extensions Ready"
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
restore_backup
|
||||||
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
|
msg_info "Updating AdventureLog"
|
||||||
cd /opt/adventurelog/backend/server
|
cd /opt/adventurelog/backend/server
|
||||||
if [[ ! -x .venv/bin/python ]]; then
|
if [[ ! -x .venv/bin/python ]]; then
|
||||||
$STD uv venv --clear .venv
|
$STD uv venv --clear .venv
|
||||||
@@ -61,12 +59,10 @@ function update_script() {
|
|||||||
$STD .venv/bin/python -m manage collectstatic --noinput
|
$STD .venv/bin/python -m manage collectstatic --noinput
|
||||||
$STD .venv/bin/python -m manage migrate
|
$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
|
||||||
$STD pnpm i
|
$STD pnpm i
|
||||||
$STD pnpm build
|
$STD pnpm build
|
||||||
rm -rf /opt/adventurelog-backup
|
msg_ok "Updated AdventureLog"
|
||||||
msg_ok "Updated ${APP}"
|
|
||||||
|
|
||||||
msg_info "Starting Services"
|
msg_info "Starting Services"
|
||||||
systemctl daemon-reexec
|
systemctl daemon-reexec
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# Author: Tobias Salzmann (Eun)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/cinnyapp/cinny
|
||||||
|
|
||||||
|
APP="Alpine-Cinny"
|
||||||
|
var_tags="${var_tags:-alpine;matrix}"
|
||||||
|
var_cpu="${var_cpu:-1}"
|
||||||
|
var_ram="${var_ram:-256}"
|
||||||
|
var_disk="${var_disk:-1}"
|
||||||
|
var_os="${var_os:-alpine}"
|
||||||
|
var_version="${var_version:-3.23}"
|
||||||
|
var_arm64="${var_arm64:-no}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
var_nesting="${var_nesting:-0}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
|
||||||
|
if [[ ! -d /opt/cinny ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "cinny" "cinnyapp/cinny"; then
|
||||||
|
msg_info "Backing up Configuration"
|
||||||
|
cp /opt/cinny/config.json /opt/cinny_config.json.bak
|
||||||
|
msg_ok "Backed up Configuration"
|
||||||
|
|
||||||
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "cinny" "cinnyapp/cinny" "prebuild" "latest" "/opt/cinny" "cinny-*.tar.gz"
|
||||||
|
|
||||||
|
msg_info "Restoring Configuration"
|
||||||
|
cp /opt/cinny_config.json.bak /opt/cinny/config.json
|
||||||
|
rm -f /opt/cinny_config.json.bak
|
||||||
|
msg_ok "Restored Configuration"
|
||||||
|
|
||||||
|
msg_info "Restarting nginx"
|
||||||
|
$STD rc-service nginx restart
|
||||||
|
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 IP:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"
|
||||||
@@ -12,7 +12,7 @@ var_ram="${var_ram:-256}"
|
|||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.23}"
|
var_version="${var_version:-3.23}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-512}"
|
|||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-1}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.23}"
|
var_version="${var_version:-3.23}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+5
-13
@@ -34,24 +34,16 @@ function update_script() {
|
|||||||
systemctl stop apache2
|
systemctl stop apache2
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Creating Backup"
|
create_backup /opt/ampache/config/ampache.cfg.php \
|
||||||
cp /opt/ampache/config/ampache.cfg.php /tmp/ampache.cfg.php.backup
|
/opt/ampache/public/rest/.htaccess \
|
||||||
cp /opt/ampache/public/rest/.htaccess /tmp/ampache_rest.htaccess.backup
|
/opt/ampache/public/play/.htaccess \
|
||||||
cp /opt/ampache/public/play/.htaccess /tmp/ampache_play.htaccess.backup
|
/opt/ampache/advanced-config
|
||||||
rm -rf /opt/ampache_backup
|
|
||||||
mv /opt/ampache /opt/ampache_backup
|
|
||||||
msg_ok "Created Backup"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "Ampache" "ampache/ampache" "prebuild" "latest" "/opt/ampache" "ampache-*_all_php8.4.zip"
|
fetch_and_deploy_gh_release "Ampache" "ampache/ampache" "prebuild" "latest" "/opt/ampache" "ampache-*_all_php8.4.zip"
|
||||||
|
|
||||||
msg_info "Restoring Backup"
|
restore_backup
|
||||||
cp /tmp/ampache.cfg.php.backup /opt/ampache/config/ampache.cfg.php
|
|
||||||
cp /tmp/ampache_rest.htaccess.backup /opt/ampache/public/rest/.htaccess
|
|
||||||
cp /tmp/ampache_play.htaccess.backup /opt/ampache/public/play/.htaccess
|
|
||||||
chmod 664 /opt/ampache/public/rest/.htaccess /opt/ampache/public/play/.htaccess
|
chmod 664 /opt/ampache/public/rest/.htaccess /opt/ampache/public/play/.htaccess
|
||||||
chown -R www-data:www-data /opt/ampache
|
chown -R www-data:www-data /opt/ampache
|
||||||
rm -f /tmp/ampache*.backup
|
|
||||||
msg_ok "Restored Configuration"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start apache2
|
systemctl start apache2
|
||||||
|
|||||||
+2
-5
@@ -35,9 +35,7 @@ function update_script() {
|
|||||||
systemctl stop anchor-web anchor-server
|
systemctl stop anchor-web anchor-server
|
||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
msg_info "Backing up Configuration"
|
create_backup /opt/anchor/.env
|
||||||
cp /opt/anchor/.env /opt/anchor.env.bak
|
|
||||||
msg_ok "Backed up Configuration"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "anchor" "ZhFahim/anchor" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "anchor" "ZhFahim/anchor" "tarball"
|
||||||
|
|
||||||
@@ -57,8 +55,7 @@ function update_script() {
|
|||||||
cp -r public .next/standalone/public
|
cp -r public .next/standalone/public
|
||||||
msg_ok "Built Web Interface"
|
msg_ok "Built Web Interface"
|
||||||
|
|
||||||
cp /opt/anchor.env.bak /opt/anchor/.env
|
restore_backup
|
||||||
rm -f /opt/anchor.env.bak
|
|
||||||
|
|
||||||
msg_info "Running Database Migrations"
|
msg_info "Running Database Migrations"
|
||||||
cd /opt/anchor/server
|
cd /opt/anchor/server
|
||||||
|
|||||||
@@ -36,17 +36,12 @@ function update_script() {
|
|||||||
systemctl stop anytype
|
systemctl stop anytype
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/anytype/data
|
||||||
cp -r /opt/anytype/data /opt/anytype_data_backup
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "anytype" "grishy/any-sync-bundle" "prebuild" "latest" "/opt/anytype" "any-sync-bundle_*_linux_amd64.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "anytype" "grishy/any-sync-bundle" "prebuild" "latest" "/opt/anytype" "any-sync-bundle_*_linux_amd64.tar.gz"
|
||||||
chmod +x /opt/anytype/any-sync-bundle
|
chmod +x /opt/anytype/any-sync-bundle
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
cp -r /opt/anytype_data_backup/. /opt/anytype/data
|
|
||||||
rm -rf /opt/anytype_data_backup
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start anytype
|
systemctl start anytype
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ var_ram="${var_ram:-4096}"
|
|||||||
var_disk="${var_disk:-10}"
|
var_disk="${var_disk:-10}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-2048}"
|
var_ram="${var_ram:-2048}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+8
-12
@@ -26,26 +26,26 @@ function update_script() {
|
|||||||
check_container_resources
|
check_container_resources
|
||||||
|
|
||||||
TOMCAT_DIR=$(ls -d /opt/tomcat-* 2>/dev/null | head -n1)
|
TOMCAT_DIR=$(ls -d /opt/tomcat-* 2>/dev/null | head -n1)
|
||||||
if [[ -z "$TOMCAT_DIR" || ! -d "$TOMCAT_DIR" ]]; then
|
if [[ -z $TOMCAT_DIR || ! -d $TOMCAT_DIR ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Detect major version and current version from install path (e.g., /opt/tomcat-11 -> 11)
|
# Detect major version and current version from install path (e.g., /opt/tomcat-11 -> 11)
|
||||||
TOMCAT_MAJOR=$(basename "$TOMCAT_DIR" | grep -oP 'tomcat-\K[0-9]+')
|
TOMCAT_MAJOR=$(basename "$TOMCAT_DIR" | grep -oP 'tomcat-\K[0-9]+')
|
||||||
if [[ -z "$TOMCAT_MAJOR" ]]; then
|
if [[ -z $TOMCAT_MAJOR ]]; then
|
||||||
msg_error "Cannot determine Tomcat major version from path: $TOMCAT_DIR"
|
msg_error "Cannot determine Tomcat major version from path: $TOMCAT_DIR"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
CURRENT_VERSION=$(grep -oP 'Apache Tomcat Version \K[0-9.]+' "$TOMCAT_DIR/RELEASE-NOTES" 2>/dev/null || echo "unknown")
|
CURRENT_VERSION=$(grep -oP 'Apache Tomcat Version \K[0-9.]+' "$TOMCAT_DIR/RELEASE-NOTES" 2>/dev/null || echo "unknown")
|
||||||
LATEST_VERSION=$(curl -fsSL "https://dlcdn.apache.org/tomcat/tomcat-${TOMCAT_MAJOR}/" | grep -oP 'v[0-9]+\.[0-9]+\.[0-9]+(-M[0-9]+)?/' | sort -V | tail -n1 | sed 's/\/$//; s/v//')
|
LATEST_VERSION=$(curl -fsSL "https://dlcdn.apache.org/tomcat/tomcat-${TOMCAT_MAJOR}/" | grep -oP 'v[0-9]+\.[0-9]+\.[0-9]+(-M[0-9]+)?/' | sort -V | tail -n1 | sed 's/\/$//; s/v//')
|
||||||
|
|
||||||
if [[ -z "$LATEST_VERSION" ]]; then
|
if [[ -z $LATEST_VERSION ]]; then
|
||||||
msg_error "Failed to fetch latest version for Tomcat ${TOMCAT_MAJOR}"
|
msg_error "Failed to fetch latest version for Tomcat ${TOMCAT_MAJOR}"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$CURRENT_VERSION" == "$LATEST_VERSION" ]]; then
|
if [[ $CURRENT_VERSION == "$LATEST_VERSION" ]]; then
|
||||||
msg_ok "${APP} ${CURRENT_VERSION} is already up to date"
|
msg_ok "${APP} ${CURRENT_VERSION} is already up to date"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
@@ -54,13 +54,9 @@ function update_script() {
|
|||||||
systemctl stop tomcat
|
systemctl stop tomcat
|
||||||
msg_ok "Stopped Tomcat service"
|
msg_ok "Stopped Tomcat service"
|
||||||
|
|
||||||
msg_info "Backing up configuration and applications"
|
create_backup $TOMCAT_DIR/conf
|
||||||
BACKUP_DIR="/tmp/tomcat-backup-$$"
|
[[ -d $TOMCAT_DIR/webapps ]] && create_backup $TOMCAT_DIR/webapps
|
||||||
mkdir -p "$BACKUP_DIR"
|
[[ -d $TOMCAT_DIR/lib ]] && create_backup $TOMCAT_DIR/lib
|
||||||
cp -a "$TOMCAT_DIR/conf" "$BACKUP_DIR/conf"
|
|
||||||
cp -a "$TOMCAT_DIR/webapps" "$BACKUP_DIR/webapps"
|
|
||||||
[[ -d "$TOMCAT_DIR/lib" ]] && cp -a "$TOMCAT_DIR/lib" "$BACKUP_DIR/lib"
|
|
||||||
msg_ok "Backed up configuration and applications"
|
|
||||||
|
|
||||||
msg_info "Downloading Tomcat ${LATEST_VERSION}"
|
msg_info "Downloading Tomcat ${LATEST_VERSION}"
|
||||||
TOMCAT_URL="https://dlcdn.apache.org/tomcat/tomcat-${TOMCAT_MAJOR}/v${LATEST_VERSION}/bin/apache-tomcat-${LATEST_VERSION}.tar.gz"
|
TOMCAT_URL="https://dlcdn.apache.org/tomcat/tomcat-${TOMCAT_MAJOR}/v${LATEST_VERSION}/bin/apache-tomcat-${LATEST_VERSION}.tar.gz"
|
||||||
@@ -78,7 +74,7 @@ function update_script() {
|
|||||||
cp -a "$BACKUP_DIR/webapps"/* "$TOMCAT_DIR/webapps/" 2>/dev/null || true
|
cp -a "$BACKUP_DIR/webapps"/* "$TOMCAT_DIR/webapps/" 2>/dev/null || true
|
||||||
if [[ -d "$BACKUP_DIR/lib" ]]; then
|
if [[ -d "$BACKUP_DIR/lib" ]]; then
|
||||||
for jar in "$BACKUP_DIR/lib"/*.jar; do
|
for jar in "$BACKUP_DIR/lib"/*.jar; do
|
||||||
[[ -f "$jar" ]] || continue
|
[[ -f $jar ]] || continue
|
||||||
jar_name=$(basename "$jar")
|
jar_name=$(basename "$jar")
|
||||||
if [[ ! -f "$TOMCAT_DIR/lib/$jar_name" ]]; then
|
if [[ ! -f "$TOMCAT_DIR/lib/$jar_name" ]]; then
|
||||||
cp "$jar" "$TOMCAT_DIR/lib/"
|
cp "$jar" "$TOMCAT_DIR/lib/"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-512}"
|
|||||||
var_disk="${var_disk:-10}"
|
var_disk="${var_disk:-10}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-512}"
|
|||||||
var_disk="${var_disk:-2}"
|
var_disk="${var_disk:-2}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -42,7 +42,7 @@ function update_script() {
|
|||||||
RUST_PROFILE="minimal" RUST_TOOLCHAIN="stable" setup_rust
|
RUST_PROFILE="minimal" RUST_TOOLCHAIN="stable" setup_rust
|
||||||
setup_yq
|
setup_yq
|
||||||
|
|
||||||
AUTHENTIK_VERSION="version/2026.5.2"
|
AUTHENTIK_VERSION="version/2026.5.3"
|
||||||
# Source: https://github.com/goauthentik/fips/blob/main/Makefile#L26
|
# Source: https://github.com/goauthentik/fips/blob/main/Makefile#L26
|
||||||
XMLSEC_VERSION="1.3.11"
|
XMLSEC_VERSION="1.3.11"
|
||||||
|
|
||||||
|
|||||||
+4
-3
@@ -12,7 +12,7 @@ var_cpu="${var_cpu:-2}"
|
|||||||
var_ram="${var_ram:-2048}"
|
var_ram="${var_ram:-2048}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-12}"
|
var_version="${var_version:-12}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
@@ -37,16 +37,17 @@ function update_script() {
|
|||||||
systemctl stop uwsgi
|
systemctl stop uwsgi
|
||||||
msg_ok "Services Stopped"
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
|
create_backup /opt/babybuddy/babybuddy/settings/production.py
|
||||||
|
|
||||||
msg_info "Cleaning old files"
|
msg_info "Cleaning old files"
|
||||||
cp /opt/babybuddy/babybuddy/settings/production.py /tmp/production.py.bak
|
|
||||||
find . -mindepth 1 -maxdepth 1 ! -name '.venv' -exec rm -rf {} +
|
find . -mindepth 1 -maxdepth 1 ! -name '.venv' -exec rm -rf {} +
|
||||||
msg_ok "Cleaned old files"
|
msg_ok "Cleaned old files"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "babybuddy" "babybuddy/babybuddy" "tarball"
|
fetch_and_deploy_gh_release "babybuddy" "babybuddy/babybuddy" "tarball"
|
||||||
|
restore_backup
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
msg_info "Updating ${APP}"
|
||||||
cd /opt/babybuddy
|
cd /opt/babybuddy
|
||||||
mv /tmp/production.py.bak /opt/babybuddy/babybuddy/settings/production.py
|
|
||||||
source .venv/bin/activate
|
source .venv/bin/activate
|
||||||
$STD uv pip install -r requirements.txt
|
$STD uv pip install -r requirements.txt
|
||||||
export DJANGO_SETTINGS_MODULE=babybuddy.settings.production
|
export DJANGO_SETTINGS_MODULE=babybuddy.settings.production
|
||||||
|
|||||||
+6
-9
@@ -12,7 +12,7 @@ var_ram="${var_ram:-512}"
|
|||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
@@ -34,22 +34,19 @@ function update_script() {
|
|||||||
systemctl stop apache2
|
systemctl stop apache2
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up data"
|
create_backup /opt/baikal/config/baikal.yaml \
|
||||||
mv /opt/baikal /opt/baikal-backup
|
/opt/baikal/Specific/
|
||||||
msg_ok "Backed up data"
|
|
||||||
|
|
||||||
PHP_APACHE="YES" PHP_VERSION="8.3" setup_php
|
PHP_APACHE="YES" PHP_VERSION="8.3" setup_php
|
||||||
setup_composer
|
setup_composer
|
||||||
fetch_and_deploy_gh_release "baikal" "sabre-io/Baikal" "tarball"
|
fetch_and_deploy_gh_release "baikal" "sabre-io/Baikal" "tarball"
|
||||||
|
restore_backup
|
||||||
msg_info "Configuring Baikal"
|
|
||||||
cp -r /opt/baikal-backup/config/baikal.yaml /opt/baikal/config/
|
|
||||||
cp -r /opt/baikal-backup/Specific/ /opt/baikal/
|
|
||||||
chown -R www-data:www-data /opt/baikal/
|
chown -R www-data:www-data /opt/baikal/
|
||||||
chmod -R 755 /opt/baikal/
|
chmod -R 755 /opt/baikal/
|
||||||
|
|
||||||
|
msg_info "Configuring Baikal"
|
||||||
cd /opt/baikal
|
cd /opt/baikal
|
||||||
$STD composer install
|
$STD composer install
|
||||||
rm -rf /opt/baikal-backup
|
|
||||||
msg_ok "Configured Baikal"
|
msg_ok "Configured Baikal"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
|
|||||||
+6
-18
@@ -38,11 +38,11 @@ function update_script() {
|
|||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Configuration and Data"
|
msg_info "Backing up Configuration and Data"
|
||||||
cp /opt/bambuddy/.env /opt/bambuddy.env.bak
|
create_backup /opt/bambuddy/.env \
|
||||||
cp -r /opt/bambuddy/data /opt/bambuddy_data_bak
|
/opt/bambuddy/data \
|
||||||
[[ -f /opt/bambuddy/bambuddy.db ]] && cp /opt/bambuddy/bambuddy.db /opt/bambuddy.db.bak
|
/opt/bambuddy/bambuddy.db \
|
||||||
[[ -f /opt/bambuddy/bambutrack.db ]] && cp /opt/bambuddy/bambutrack.db /opt/bambutrack.db.bak
|
/opt/bambuddy/bambutrack.db \
|
||||||
[[ -d /opt/bambuddy/archive ]] && cp -r /opt/bambuddy/archive /opt/bambuddy_archive_bak
|
/opt/bambuddy/archive
|
||||||
msg_ok "Backed up Configuration and Data"
|
msg_ok "Backed up Configuration and Data"
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bambuddy" "maziggy/bambuddy" "tarball" "latest" "/opt/bambuddy"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bambuddy" "maziggy/bambuddy" "tarball" "latest" "/opt/bambuddy"
|
||||||
@@ -59,19 +59,7 @@ function update_script() {
|
|||||||
$STD npm run build
|
$STD npm run build
|
||||||
msg_ok "Rebuilt Frontend"
|
msg_ok "Rebuilt Frontend"
|
||||||
|
|
||||||
msg_info "Restoring Configuration and Data"
|
restore_backup
|
||||||
mkdir -p /opt/bambuddy/data
|
|
||||||
cp /opt/bambuddy.env.bak /opt/bambuddy/.env
|
|
||||||
cp -r /opt/bambuddy_data_bak/. /opt/bambuddy/data/
|
|
||||||
[[ -f /opt/bambuddy.db.bak ]] && cp /opt/bambuddy.db.bak /opt/bambuddy/bambuddy.db
|
|
||||||
[[ -f /opt/bambutrack.db.bak ]] && cp /opt/bambutrack.db.bak /opt/bambuddy/bambutrack.db
|
|
||||||
if [[ -d /opt/bambuddy_archive_bak ]]; then
|
|
||||||
mkdir -p /opt/bambuddy/archive
|
|
||||||
cp -r /opt/bambuddy_archive_bak/. /opt/bambuddy/archive/
|
|
||||||
fi
|
|
||||||
rm -f /opt/bambuddy.env.bak /opt/bambuddy.db.bak /opt/bambutrack.db.bak
|
|
||||||
rm -rf /opt/bambuddy_data_bak /opt/bambuddy_archive_bak
|
|
||||||
msg_ok "Restored Configuration and Data"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start bambuddy
|
systemctl start bambuddy
|
||||||
|
|||||||
+12
-16
@@ -14,7 +14,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
@@ -37,16 +37,15 @@ function update_script() {
|
|||||||
|
|
||||||
PHP_VERSION="8.4" PHP_FPM="YES" PHP_MODULE="pdo-sqlite" setup_php
|
PHP_VERSION="8.4" PHP_FPM="YES" PHP_MODULE="pdo-sqlite" setup_php
|
||||||
|
|
||||||
msg_info "Backing up Bar Assistant"
|
create_backup /opt/bar-assistant/.env \
|
||||||
mv /opt/bar-assistant /opt/bar-assistant-backup
|
/opt/bar-assistant/storage/bar-assistant
|
||||||
msg_ok "Backed up Bar Assistant"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "bar-assistant" "karlomikus/bar-assistant" "tarball" "latest" "/opt/bar-assistant"
|
fetch_and_deploy_gh_release "bar-assistant" "karlomikus/bar-assistant" "tarball" "latest" "/opt/bar-assistant"
|
||||||
setup_composer
|
setup_composer
|
||||||
|
|
||||||
msg_info "Updating Bar-Assistant"
|
restore_backup
|
||||||
cp -r /opt/bar-assistant-backup/.env /opt/bar-assistant/.env
|
|
||||||
cp -r /opt/bar-assistant-backup/storage/bar-assistant /opt/bar-assistant/storage/bar-assistant
|
msg_info "Configuring Bar-Assistant"
|
||||||
cd /opt/bar-assistant
|
cd /opt/bar-assistant
|
||||||
$STD composer install --no-interaction
|
$STD composer install --no-interaction
|
||||||
$STD php artisan migrate --force
|
$STD php artisan migrate --force
|
||||||
@@ -57,8 +56,7 @@ function update_script() {
|
|||||||
$STD php artisan route:cache
|
$STD php artisan route:cache
|
||||||
$STD php artisan event:cache
|
$STD php artisan event:cache
|
||||||
chown -R www-data:www-data /opt/bar-assistant
|
chown -R www-data:www-data /opt/bar-assistant
|
||||||
rm -rf /opt/bar-assistant-backup
|
msg_ok "Configured Bar-Assistant"
|
||||||
msg_ok "Updated Bar-Assistant"
|
|
||||||
|
|
||||||
msg_info "Starting nginx"
|
msg_info "Starting nginx"
|
||||||
systemctl start nginx
|
systemctl start nginx
|
||||||
@@ -66,23 +64,21 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim"; then
|
if check_for_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim"; then
|
||||||
msg_info "Backing up Vue Salt Rim"
|
|
||||||
mv /opt/vue-salt-rim /opt/vue-salt-rim-backup
|
create_backup /opt/vue-salt-rim/public/config.js
|
||||||
msg_ok "Backed up Vue Salt Rim"
|
|
||||||
|
|
||||||
msg_info "Stopping nginx"
|
msg_info "Stopping nginx"
|
||||||
systemctl stop nginx
|
systemctl stop nginx
|
||||||
msg_ok "Stopped nginx"
|
msg_ok "Stopped nginx"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim" "tarball" "latest" "/opt/vue-salt-rim"
|
fetch_and_deploy_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim" "tarball" "latest" "/opt/vue-salt-rim"
|
||||||
|
restore_backup
|
||||||
|
|
||||||
msg_info "Updating Vue Salt Rim"
|
msg_info "Configuring Vue Salt Rim"
|
||||||
cp /opt/vue-salt-rim-backup/public/config.js /opt/vue-salt-rim/public/config.js
|
|
||||||
cd /opt/vue-salt-rim
|
cd /opt/vue-salt-rim
|
||||||
$STD npm install
|
$STD npm install
|
||||||
$STD npm run build
|
$STD npm run build
|
||||||
rm -rf /opt/vue-salt-rim-backup
|
msg_ok "Configured Vue Salt Rim"
|
||||||
msg_ok "Updated Vue Salt Rim"
|
|
||||||
|
|
||||||
msg_info "Starting nginx"
|
msg_info "Starting nginx"
|
||||||
systemctl start nginx
|
systemctl start nginx
|
||||||
|
|||||||
+6
-13
@@ -35,27 +35,20 @@ function update_script() {
|
|||||||
systemctl stop baserow-backend baserow-celery baserow-celery-beat baserow-celery-export baserow-frontend
|
systemctl stop baserow-backend baserow-celery baserow-celery-beat baserow-celery-export baserow-frontend
|
||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/baserow/.env
|
||||||
cp /opt/baserow/.env /opt/baserow.env.bak
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "baserow" "baserow/baserow" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "baserow" "baserow/baserow" "tarball"
|
||||||
|
restore_backup
|
||||||
|
|
||||||
msg_info "Restoring Configuration"
|
msg_info "Configuring Baserow"
|
||||||
cp /opt/baserow.env.bak /opt/baserow/.env
|
|
||||||
rm -f /opt/baserow.env.bak
|
|
||||||
msg_ok "Restored Configuration"
|
|
||||||
|
|
||||||
msg_info "Updating Backend Dependencies"
|
|
||||||
cd /opt/baserow/backend
|
cd /opt/baserow/backend
|
||||||
$STD uv sync --frozen --no-dev
|
$STD uv sync --frozen --no-dev
|
||||||
msg_ok "Updated Backend Dependencies"
|
msg_ok "Configured Baserow"
|
||||||
|
|
||||||
msg_info "Updating Frontend"
|
msg_info "Rebuilding Frontend"
|
||||||
cd /opt/baserow/web-frontend
|
cd /opt/baserow/web-frontend
|
||||||
$STD npm install
|
$STD npm install
|
||||||
$STD npm run build
|
$STD npm run build
|
||||||
msg_ok "Updated Frontend"
|
msg_ok "Rebuilt Frontend"
|
||||||
|
|
||||||
msg_info "Running Migrations"
|
msg_info "Running Migrations"
|
||||||
cd /opt/baserow/backend
|
cd /opt/baserow/backend
|
||||||
|
|||||||
+6
-11
@@ -36,18 +36,13 @@ function update_script() {
|
|||||||
systemctl stop bentopdf
|
systemctl stop bentopdf
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
[[ -f /opt/bentopdf/.env.production ]] && cp /opt/bentopdf/.env.production /opt/production.env
|
create_backup /opt/bentopdf/.env.production
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bentopdf" "alam00000/bentopdf" "tarball" "latest" "/opt/bentopdf"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bentopdf" "alam00000/bentopdf" "tarball" "latest" "/opt/bentopdf"
|
||||||
|
restore_backup
|
||||||
|
|
||||||
msg_info "Updating BentoPDF"
|
msg_info "Configuring BentoPDF"
|
||||||
cd /opt/bentopdf
|
cd /opt/bentopdf
|
||||||
$STD npm ci --no-audit --no-fund
|
$STD npm ci --no-audit --no-fund
|
||||||
if [[ -f /opt/production.env ]]; then
|
|
||||||
mv /opt/production.env ./.env.production
|
|
||||||
else
|
|
||||||
cp ./.env.example ./.env.production
|
|
||||||
fi
|
|
||||||
export NODE_OPTIONS="--max-old-space-size=3072"
|
export NODE_OPTIONS="--max-old-space-size=3072"
|
||||||
export SIMPLE_MODE=true
|
export SIMPLE_MODE=true
|
||||||
export VITE_USE_CDN=true
|
export VITE_USE_CDN=true
|
||||||
@@ -64,9 +59,9 @@ EOF
|
|||||||
if [[ ! -f /etc/ssl/private/bentopdf-selfsigned.key || ! -f /etc/ssl/certs/bentopdf-selfsigned.crt ]]; then
|
if [[ ! -f /etc/ssl/private/bentopdf-selfsigned.key || ! -f /etc/ssl/certs/bentopdf-selfsigned.crt ]]; then
|
||||||
CERT_CN="$(hostname -I | awk '{print $1}')"
|
CERT_CN="$(hostname -I | awk '{print $1}')"
|
||||||
$STD openssl req -x509 -nodes -newkey rsa:2048 -days 3650 \
|
$STD openssl req -x509 -nodes -newkey rsa:2048 -days 3650 \
|
||||||
-keyout /etc/ssl/private/bentopdf-selfsigned.key \
|
-keyout /etc/ssl/private/bentopdf-selfsigned.key \
|
||||||
-out /etc/ssl/certs/bentopdf-selfsigned.crt \
|
-out /etc/ssl/certs/bentopdf-selfsigned.crt \
|
||||||
-subj "/CN=${CERT_CN}"
|
-subj "/CN=${CERT_CN}"
|
||||||
fi
|
fi
|
||||||
cat <<'EOF' >/etc/nginx/sites-available/bentopdf
|
cat <<'EOF' >/etc/nginx/sites-available/bentopdf
|
||||||
server {
|
server {
|
||||||
|
|||||||
+7
-7
@@ -35,14 +35,14 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
MIGRATE_V1=0
|
MIGRATE_V1=0
|
||||||
if [[ "$CURRENT_VERSION" == 0.* ]]; then
|
if [[ $CURRENT_VERSION == 0.* ]]; then
|
||||||
MIGRATE_V1=1
|
MIGRATE_V1=1
|
||||||
DISK_USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
|
DISK_USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
|
||||||
if [ "$DISK_USAGE" -gt 50 ]; then
|
if [ "$DISK_USAGE" -gt 50 ]; then
|
||||||
echo -e "\n${RD}Warning: Less than 50% free storage remaining on the root disk.${CL}"
|
echo -e "\n${RD}Warning: Less than 50% free storage remaining on the root disk.${CL}"
|
||||||
echo -e "${RD}Bichon v1 data migration temporarily duplicates data and requires free space for it.${CL}"
|
echo -e "${RD}Bichon v1 data migration temporarily duplicates data and requires free space for it.${CL}"
|
||||||
read -r -p "Are you sure you want to proceed with the update? (y/N): " proceed
|
read -r -p "Are you sure you want to proceed with the update? (y/N): " proceed
|
||||||
if [[ ! "$proceed" =~ ^[Yy]$ ]]; then
|
if [[ ! $proceed =~ ^[Yy]$ ]]; then
|
||||||
msg_error "Update cancelled by user."
|
msg_error "Update cancelled by user."
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
@@ -53,7 +53,7 @@ function update_script() {
|
|||||||
echo -e "\n${RD}Warning: LXC has less than 2GB of RAM allocated (${RAM_TOTAL}MB).${CL}"
|
echo -e "\n${RD}Warning: LXC has less than 2GB of RAM allocated (${RAM_TOTAL}MB).${CL}"
|
||||||
echo -e "${RD}Bichon v1 data migration consumes significant memory and may crash if insufficient.${CL}"
|
echo -e "${RD}Bichon v1 data migration consumes significant memory and may crash if insufficient.${CL}"
|
||||||
read -r -p "Are you sure you want to proceed with the update? (y/N): " proceed_ram
|
read -r -p "Are you sure you want to proceed with the update? (y/N): " proceed_ram
|
||||||
if [[ ! "$proceed_ram" =~ ^[Yy]$ ]]; then
|
if [[ ! $proceed_ram =~ ^[Yy]$ ]]; then
|
||||||
msg_error "Update cancelled by user."
|
msg_error "Update cancelled by user."
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
@@ -65,12 +65,12 @@ function update_script() {
|
|||||||
systemctl stop bichon
|
systemctl stop bichon
|
||||||
msg_ok "Stopped service"
|
msg_ok "Stopped service"
|
||||||
|
|
||||||
cp /opt/bichon/bichon.env /tmp/bichon.env.backup
|
create_backup /opt/bichon/bichon.env
|
||||||
|
|
||||||
if [ "$MIGRATE_V1" -eq 1 ] && [ "$CURRENT_VERSION" != "0.3.7" ]; then
|
if [ "$MIGRATE_V1" -eq 1 ] && [ "$CURRENT_VERSION" != "0.3.7" ]; then
|
||||||
msg_info "Updating to intermediate version v0.3.7"
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "v0.3.7" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "v0.3.7" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz"
|
||||||
cp /tmp/bichon.env.backup /opt/bichon/bichon.env
|
restore_backup
|
||||||
|
msg_info "Updating to intermediate version v0.3.7"
|
||||||
systemctl start bichon
|
systemctl start bichon
|
||||||
sleep 30
|
sleep 30
|
||||||
systemctl stop bichon
|
systemctl stop bichon
|
||||||
@@ -78,7 +78,7 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "latest" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "latest" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz"
|
||||||
cp /tmp/bichon.env.backup /opt/bichon/bichon.env
|
restore_backup
|
||||||
|
|
||||||
if [ "$MIGRATE_V1" -eq 1 ]; then
|
if [ "$MIGRATE_V1" -eq 1 ]; then
|
||||||
msg_info "Running Bichon v1 Data Migration (patience)"
|
msg_info "Running Bichon v1 Data Migration (patience)"
|
||||||
|
|||||||
+7
-9
@@ -12,7 +12,7 @@ var_ram="${var_ram:-1024}"
|
|||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
@@ -56,21 +56,19 @@ function update_script() {
|
|||||||
bitmagnet \
|
bitmagnet \
|
||||||
>/tmp/backup.sql
|
>/tmp/backup.sql
|
||||||
mv /tmp/backup.sql /opt/
|
mv /tmp/backup.sql /opt/
|
||||||
[ -f /opt/bitmagnet/.env ] && cp /opt/bitmagnet/.env /opt/
|
create_backup /opt/bitmagnet/.env \
|
||||||
[ -f /opt/bitmagnet/config.yml ] && cp /opt/bitmagnet/config.yml /opt/
|
/opt/bitmagnet/config.yml
|
||||||
msg_ok "Data backed up"
|
msg_ok "Data backed up"
|
||||||
|
|
||||||
rm -rf /opt/bitmagnet
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet" "tarball"
|
||||||
fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet" "tarball"
|
restore_backup
|
||||||
|
|
||||||
msg_info "Updating Bitmagnet"
|
msg_info "Configuring Bitmagnet"
|
||||||
cd /opt/bitmagnet
|
cd /opt/bitmagnet
|
||||||
VREL=v$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
VREL=v$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
|
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
|
||||||
chmod +x bitmagnet
|
chmod +x bitmagnet
|
||||||
[ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
|
msg_ok "Configured Bitmagnet"
|
||||||
[ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
|
|
||||||
msg_ok "Updated Bitmagnet"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start bitmagnet-web
|
systemctl start bitmagnet-web
|
||||||
|
|||||||
+2
-8
@@ -33,15 +33,9 @@ function update_script() {
|
|||||||
systemctl stop blocky
|
systemctl stop blocky
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backup Config"
|
create_backup /opt/blocky/config.yml
|
||||||
mv /opt/blocky/config.yml /opt/config.yml
|
|
||||||
msg_ok "Backed Up Config"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_x86_64.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_x86_64.tar.gz"
|
||||||
|
restore_backup
|
||||||
msg_info "Restore Config"
|
|
||||||
mv /opt/config.yml /opt/blocky/config.yml
|
|
||||||
msg_ok "Restored Config"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start blocky
|
systemctl start blocky
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
|
||||||
|
APP="BookLore"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
|
||||||
|
msg_error "This script is no longer available in community-scripts."
|
||||||
|
msg_error "The Booklore or the Grimmory Fork will for now not return to community-scripts. Due to the unstable nature of these projects we decided to remove them and will decide at later point if they come back, which will most likley not happen. Plese do not create Issues for this."
|
||||||
|
msg_warn "More info: https://community-scripts.org/scripts/booklore"
|
||||||
|
exit 1
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/bookorbit/bookorbit
|
||||||
|
|
||||||
|
APP="BookOrbit"
|
||||||
|
var_tags="${var_tags:-books;library;reading}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-2048}"
|
||||||
|
var_disk="${var_disk:-10}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-13}"
|
||||||
|
var_arm64="${var_arm64:-no}"
|
||||||
|
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/bookorbit ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "bookorbit" "bookorbit/bookorbit"; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop bookorbit
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
create_backup /opt/bookorbit/.env
|
||||||
|
|
||||||
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bookorbit" "bookorbit/bookorbit" "tarball"
|
||||||
|
|
||||||
|
msg_info "Rebuilding Application"
|
||||||
|
cd /opt/bookorbit
|
||||||
|
PNPM_VERSION=$(jq -r '.packageManager | ltrimstr("pnpm@")' /opt/bookorbit/package.json)
|
||||||
|
$STD corepack enable
|
||||||
|
$STD corepack prepare "pnpm@${PNPM_VERSION}" --activate
|
||||||
|
$STD pnpm install --frozen-lockfile
|
||||||
|
$STD pnpm --filter client run build-only
|
||||||
|
$STD pnpm --filter server run build
|
||||||
|
cp -r /opt/bookorbit/client/dist /opt/bookorbit/server/public
|
||||||
|
mkdir -p /opt/bookorbit/server/migrations
|
||||||
|
cp -r /opt/bookorbit/server/src/db/migrations/. /opt/bookorbit/server/migrations/
|
||||||
|
chmod +x /opt/bookorbit/server/bin/kepubify/*
|
||||||
|
APP_VER=$(cat ~/.bookorbit)
|
||||||
|
sed -i "s/^APP_VERSION=.*/APP_VERSION=v$APP_VER/" /opt/bookorbit/.env
|
||||||
|
msg_ok "Rebuilt Application"
|
||||||
|
|
||||||
|
msg_info "Updating Kobo Python Runtime"
|
||||||
|
$STD uv pip install --python /opt/bookorbit-python/bin/python -r /opt/bookorbit/server/requirements/kobo-cloudscraper.txt
|
||||||
|
msg_ok "Updated Kobo Python Runtime"
|
||||||
|
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start bookorbit
|
||||||
|
msg_ok "Started Service"
|
||||||
|
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}"
|
||||||
+6
-13
@@ -12,7 +12,7 @@ var_ram="${var_ram:-1024}"
|
|||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
@@ -36,20 +36,14 @@ function update_script() {
|
|||||||
systemctl stop apache2
|
systemctl stop apache2
|
||||||
msg_ok "Services Stopped"
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
msg_info "Backing up data"
|
create_backup /opt/bookstack/.env \
|
||||||
mv /opt/bookstack /opt/bookstack-backup
|
/opt/bookstack/public/uploads \
|
||||||
msg_ok "Backup finished"
|
/opt/bookstack/storage/uploads \
|
||||||
|
/opt/bookstack/themes
|
||||||
fetch_and_deploy_gh_release "bookstack" "BookStackApp/BookStack" "tarball"
|
fetch_and_deploy_gh_release "bookstack" "BookStackApp/BookStack" "tarball"
|
||||||
PHP_VERSION="8.3" PHP_APACHE="YES" PHP_FPM="YES" PHP_MODULE="ldap,tidy,mysqli" setup_php
|
PHP_VERSION="8.3" PHP_APACHE="YES" PHP_FPM="YES" PHP_MODULE="ldap,tidy,mysqli" setup_php
|
||||||
setup_composer
|
setup_composer
|
||||||
|
restore_backup
|
||||||
msg_info "Restoring backup"
|
|
||||||
cp /opt/bookstack-backup/.env /opt/bookstack/.env
|
|
||||||
[[ -d /opt/bookstack-backup/public/uploads ]] && cp -a /opt/bookstack-backup/public/uploads/. /opt/bookstack/public/uploads/
|
|
||||||
[[ -d /opt/bookstack-backup/storage/uploads ]] && cp -a /opt/bookstack-backup/storage/uploads/. /opt/bookstack/storage/uploads/
|
|
||||||
[[ -d /opt/bookstack-backup/themes ]] && cp -a /opt/bookstack-backup/themes/. /opt/bookstack/themes/
|
|
||||||
msg_ok "Backup restored"
|
|
||||||
|
|
||||||
msg_info "Configuring BookStack"
|
msg_info "Configuring BookStack"
|
||||||
cd /opt/bookstack
|
cd /opt/bookstack
|
||||||
@@ -60,7 +54,6 @@ function update_script() {
|
|||||||
chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
|
chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
|
||||||
chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
|
chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
|
||||||
chmod -R 640 /opt/bookstack/.env
|
chmod -R 640 /opt/bookstack/.env
|
||||||
rm -rf /opt/bookstack-backup
|
|
||||||
msg_ok "Configured BookStack"
|
msg_ok "Configured BookStack"
|
||||||
|
|
||||||
msg_info "Starting Apache2"
|
msg_info "Starting Apache2"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-8192}"
|
|||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+4
-19
@@ -12,7 +12,7 @@ var_cpu="${var_cpu:-1}"
|
|||||||
var_ram="${var_ram:-1024}"
|
var_ram="${var_ram:-1024}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
@@ -34,25 +34,10 @@ function update_script() {
|
|||||||
systemctl stop bytestash-backend bytestash-frontend
|
systemctl stop bytestash-backend bytestash-frontend
|
||||||
msg_ok "Services Stopped"
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
msg_info "Backing up data"
|
[[ -d /opt/bytestash/data ]] && create_backup /opt/bytestash/data
|
||||||
tmp_dir="/opt/bytestash-data-backup"
|
[[ -d /opt/data ]] && create_backup /opt/data
|
||||||
mkdir -p "$tmp_dir"
|
|
||||||
if [[ -d /opt/bytestash/data ]]; then
|
|
||||||
cp -r /opt/bytestash/data "$tmp_dir"/data
|
|
||||||
elif [[ -d /opt/data ]]; then
|
|
||||||
cp -r /opt/data "$tmp_dir"/data
|
|
||||||
fi
|
|
||||||
msg_ok "Data backed up"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bytestash" "jordan-dalby/ByteStash" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bytestash" "jordan-dalby/ByteStash" "tarball"
|
||||||
|
restore_backup
|
||||||
msg_info "Restoring data"
|
|
||||||
if [[ -d "$tmp_dir"/data ]]; then
|
|
||||||
mkdir -p /opt/bytestash/data
|
|
||||||
cp -r "$tmp_dir"/data/* /opt/bytestash/data/
|
|
||||||
rm -rf "$tmp_dir"
|
|
||||||
fi
|
|
||||||
msg_ok "Data restored"
|
|
||||||
|
|
||||||
msg_info "Configuring ByteStash"
|
msg_info "Configuring ByteStash"
|
||||||
cd /opt/bytestash/server
|
cd /opt/bytestash/server
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-512}"
|
|||||||
var_disk="${var_disk:-6}"
|
var_disk="${var_disk:-6}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+3
-9
@@ -35,10 +35,8 @@ function update_script() {
|
|||||||
systemctl stop calibre-web
|
systemctl stop calibre-web
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/calibre-web/app.db \
|
||||||
cp -r /opt/calibre-web/app.db /opt/app.db_backup
|
/opt/calibre-web/data
|
||||||
cp -r /opt/calibre-web/data /opt/data_backup
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Calibre-Web" "janeczku/calibre-web" "prebuild" "latest" "/opt/calibre-web" "calibre-web*.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Calibre-Web" "janeczku/calibre-web" "prebuild" "latest" "/opt/calibre-web" "calibre-web*.tar.gz"
|
||||||
setup_uv
|
setup_uv
|
||||||
@@ -50,11 +48,7 @@ function update_script() {
|
|||||||
$STD uv pip install --python /opt/calibre-web/.venv/bin/python --no-cache-dir -r requirements.txt
|
$STD uv pip install --python /opt/calibre-web/.venv/bin/python --no-cache-dir -r requirements.txt
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
cp /opt/app.db_backup /opt/calibre-web/app.db 2>/dev/null
|
|
||||||
cp -r /opt/data_backup /opt/calibre-web/data 2>/dev/null
|
|
||||||
rm -rf /opt/app.db_backup /opt/data_backup
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start calibre-web
|
systemctl start calibre-web
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-12}"
|
var_version="${var_version:-12}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+2
-7
@@ -35,16 +35,11 @@ function update_script() {
|
|||||||
systemctl stop certimate
|
systemctl stop certimate
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/certimate/pb_data
|
||||||
cp -r /opt/certimate/pb_data /opt/certimate_pb_data_backup
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "certimate" "certimate-go/certimate" "prebuild" "latest" "/opt/certimate" "certimate_*_linux_amd64.zip"
|
fetch_and_deploy_gh_release "certimate" "certimate-go/certimate" "prebuild" "latest" "/opt/certimate" "certimate_*_linux_amd64.zip"
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
cp -r /opt/certimate_pb_data_backup/. /opt/certimate/pb_data
|
|
||||||
rm -rf /opt/certimate_pb_data_backup
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start certimate
|
systemctl start certimate
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ var_ram="${var_ram:-4096}"
|
|||||||
var_disk="${var_disk:-10}"
|
var_disk="${var_disk:-10}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-12}"
|
var_version="${var_version:-12}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-1024}"
|
|||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-0}"
|
var_unprivileged="${var_unprivileged:-0}"
|
||||||
var_gpu="${var_gpu:-yes}"
|
var_gpu="${var_gpu:-yes}"
|
||||||
|
|
||||||
|
|||||||
+3
-8
@@ -35,10 +35,8 @@ function update_script() {
|
|||||||
systemctl stop checkmate-server checkmate-client nginx
|
systemctl stop checkmate-server checkmate-client nginx
|
||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/checkmate/server/.env \
|
||||||
cp /opt/checkmate/server/.env /opt/checkmate_server.env.bak
|
/opt/checkmate/client/.env.local
|
||||||
[ -f /opt/checkmate/client/.env.local ] && cp /opt/checkmate/client/.env.local /opt/checkmate_client.env.local.bak
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "checkmate" "bluewave-labs/Checkmate" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "checkmate" "bluewave-labs/Checkmate" "tarball"
|
||||||
|
|
||||||
@@ -56,10 +54,7 @@ function update_script() {
|
|||||||
VITE_APP_API_BASE_URL="/api/v1" UPTIME_APP_API_BASE_URL="/api/v1" VITE_APP_LOG_LEVEL="warn" $STD npm run build
|
VITE_APP_API_BASE_URL="/api/v1" UPTIME_APP_API_BASE_URL="/api/v1" VITE_APP_LOG_LEVEL="warn" $STD npm run build
|
||||||
msg_ok "Updated Checkmate Client"
|
msg_ok "Updated Checkmate Client"
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
mv /opt/checkmate_server.env.bak /opt/checkmate/server/.env
|
|
||||||
[ -f /opt/checkmate_client.env.local.bak ] && mv /opt/checkmate_client.env.local.bak /opt/checkmate/client/.env.local
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Starting Services"
|
msg_info "Starting Services"
|
||||||
systemctl start checkmate-server checkmate-client nginx
|
systemctl start checkmate-server checkmate-client nginx
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ function update_script() {
|
|||||||
RELEASE="${RELEASE%%+*}"
|
RELEASE="${RELEASE%%+*}"
|
||||||
msg_info "Updating checkmk"
|
msg_info "Updating checkmk"
|
||||||
$STD omd stop monitoring
|
$STD omd stop monitoring
|
||||||
|
$STD omd -f rm monitoringbackup 2>/dev/null || true
|
||||||
$STD omd cp monitoring monitoringbackup
|
$STD omd cp monitoring monitoringbackup
|
||||||
curl_download "/opt/checkmk.deb" "https://download.checkmk.com/checkmk/${RELEASE}/check-mk-community-${RELEASE}_0.$(get_os_info codename)_amd64.deb"
|
curl_download "/opt/checkmk.deb" "https://download.checkmk.com/checkmk/${RELEASE}/check-mk-community-${RELEASE}_0.$(get_os_info codename)_amd64.deb"
|
||||||
$STD apt install -y /opt/checkmk.deb
|
$STD apt install -y /opt/checkmk.deb
|
||||||
|
|||||||
+2
-7
@@ -33,16 +33,11 @@ function update_script() {
|
|||||||
systemctl stop cleanuparr
|
systemctl stop cleanuparr
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up config"
|
create_backup /opt/cleanuparr/config
|
||||||
cp -r /opt/cleanuparr/config /opt/cleanuparr_config_backup
|
|
||||||
msg_ok "Backed up config"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
|
||||||
|
|
||||||
msg_info "Restoring config"
|
restore_backup
|
||||||
[[ -d /opt/cleanuparr/config ]] && rm -rf /opt/cleanuparr/config
|
|
||||||
mv /opt/cleanuparr_config_backup /opt/cleanuparr/config
|
|
||||||
msg_ok "Restored config"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start cleanuparr
|
systemctl start cleanuparr
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://clickhouse.com
|
||||||
|
|
||||||
|
APP="ClickHouse"
|
||||||
|
var_tags="${var_tags:-database;analytics;observability}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-4096}"
|
||||||
|
var_disk="${var_disk:-10}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-13}"
|
||||||
|
var_arm64="${var_arm64:-no}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if ! command -v clickhouse-server &>/dev/null; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
setup_clickhouse
|
||||||
|
msg_ok "Updated successfully!"
|
||||||
|
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}:8123${CL}"
|
||||||
@@ -12,7 +12,7 @@ var_ram="${var_ram:-1024}"
|
|||||||
var_disk="${var_disk:-3}"
|
var_disk="${var_disk:-3}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-12}"
|
var_version="${var_version:-12}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-512}"
|
|||||||
var_disk="${var_disk:-2}"
|
var_disk="${var_disk:-2}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+3
-12
@@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
@@ -36,20 +36,11 @@ function update_script() {
|
|||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
ensure_dependencies rsync
|
ensure_dependencies rsync
|
||||||
|
create_backup /opt/commafeed/data
|
||||||
if [ -d /opt/commafeed/data ] && [ "$(ls -A /opt/commafeed/data)" ]; then
|
|
||||||
msg_info "Backing up existing data"
|
|
||||||
mv /opt/commafeed/data /opt/data.bak
|
|
||||||
msg_ok "Backed up existing data"
|
|
||||||
fi
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "commafeed" "Athou/commafeed" "prebuild" "latest" "/opt/commafeed" "commafeed-*-h2-jvm.zip"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "commafeed" "Athou/commafeed" "prebuild" "latest" "/opt/commafeed" "commafeed-*-h2-jvm.zip"
|
||||||
|
|
||||||
if [ -d /opt/data.bak ] && [ "$(ls -A /opt/data.bak)" ]; then
|
restore_backup
|
||||||
msg_info "Restoring data"
|
|
||||||
mv /opt/data.bak /opt/commafeed/data
|
|
||||||
msg_ok "Restored data"
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start commafeed
|
systemctl start commafeed
|
||||||
|
|||||||
+6
-4
@@ -33,11 +33,13 @@ function update_script() {
|
|||||||
systemctl stop configarr-task.timer
|
systemctl stop configarr-task.timer
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
mkdir -p /opt/backup/
|
create_backup /opt/configarr/config.yml \
|
||||||
mv /opt/configarr/{config.yml,secrets.yml,.env} /opt/backup/
|
/opt/configarr/secrets.yml \
|
||||||
|
/opt/configarr/.env
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "configarr" "raydak-labs/configarr" "prebuild" "latest" "/opt/configarr" "configarr-linux-x64.tar.xz"
|
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
|
restore_backup
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start configarr-task.timer
|
systemctl start configarr-task.timer
|
||||||
|
|||||||
+5
-10
@@ -12,7 +12,7 @@ var_ram="${var_ram:-4096}"
|
|||||||
var_disk="${var_disk:-20}"
|
var_disk="${var_disk:-20}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
var_gpu="${var_gpu:-yes}"
|
var_gpu="${var_gpu:-yes}"
|
||||||
|
|
||||||
@@ -36,19 +36,14 @@ function update_script() {
|
|||||||
|
|
||||||
ensure_dependencies libreoffice-writer
|
ensure_dependencies libreoffice-writer
|
||||||
|
|
||||||
msg_info "Move data-Folder"
|
create_backup /opt/convertx/data
|
||||||
if [[ -d /opt/convertx/data ]]; then
|
|
||||||
mv /opt/convertx/data /opt/data
|
|
||||||
fi
|
|
||||||
msg_ok "Moved data-Folder"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "ConvertX" "C4illin/ConvertX" "tarball" "latest" "/opt/convertx"
|
fetch_and_deploy_gh_release "ConvertX" "C4illin/ConvertX" "tarball" "latest" "/opt/convertx"
|
||||||
|
|
||||||
|
restore_backup
|
||||||
|
|
||||||
msg_info "Updating ConvertX"
|
msg_info "Updating ConvertX"
|
||||||
if [[ -d /opt/data ]]; then
|
cd /opt/convertx
|
||||||
mv /opt/data /opt/convertx/data
|
|
||||||
fi
|
|
||||||
cd /opt/convertx
|
|
||||||
$STD bun install
|
$STD bun install
|
||||||
msg_ok "Updated ConvertX"
|
msg_ok "Updated ConvertX"
|
||||||
|
|
||||||
|
|||||||
+7
-13
@@ -30,20 +30,17 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL "https://gitlab.com/api/v4/projects/20430749/releases" | grep -o '"tag_name":"v[^"]*"' | head -n 1 | sed 's/"tag_name":"v//;s/"//')
|
RELEASE=$(curl -fsSL "https://gitlab.com/api/v4/projects/20430749/releases" | grep -o '"tag_name":"v[^"]*"' | head -n 1 | sed 's/"tag_name":"v//;s/"//')
|
||||||
if [[ ! -f /opt/crafty-controller_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/crafty-controller_version.txt)" ]]; then
|
if [[ ! -f /opt/crafty-controller_version.txt ]] || [[ ${RELEASE} != "$(cat /opt/crafty-controller_version.txt)" ]]; then
|
||||||
|
|
||||||
msg_info "Stopping Crafty-Controller"
|
msg_info "Stopping Crafty-Controller"
|
||||||
systemctl stop crafty-controller
|
systemctl stop crafty-controller
|
||||||
msg_ok "Stopped Crafty-Controller"
|
msg_ok "Stopped Crafty-Controller"
|
||||||
|
|
||||||
msg_info "Creating Backup of config"
|
create_backup /opt/crafty-controller/crafty/crafty-4/app/config/version.json \
|
||||||
cp -a /opt/crafty-controller/crafty/crafty-4/app/config/. /opt/crafty-controller/backup
|
/opt/crafty-controller/crafty/crafty-4/app/config/credits.json \
|
||||||
rm /opt/crafty-controller/backup/version.json
|
/opt/crafty-controller/crafty/crafty-4/app/config/logging.json \
|
||||||
rm /opt/crafty-controller/backup/credits.json
|
/opt/crafty-controller/crafty/crafty-4/app/config/default.json.example \
|
||||||
rm /opt/crafty-controller/backup/logging.json
|
/opt/crafty-controller/crafty/crafty-4/app/config/motd_format.json
|
||||||
rm /opt/crafty-controller/backup/default.json.example
|
|
||||||
rm /opt/crafty-controller/backup/motd_format.json
|
|
||||||
msg_ok "Backup Created"
|
|
||||||
|
|
||||||
msg_info "Updating Crafty-Controller to v${RELEASE}"
|
msg_info "Updating Crafty-Controller to v${RELEASE}"
|
||||||
curl -fsSL "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip" -o $(basename "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip")
|
curl -fsSL "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip" -o $(basename "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip")
|
||||||
@@ -58,11 +55,8 @@ function update_script() {
|
|||||||
echo "${RELEASE}" >"/opt/crafty-controller_version.txt"
|
echo "${RELEASE}" >"/opt/crafty-controller_version.txt"
|
||||||
msg_ok "Updated Crafty-Controller to v${RELEASE}"
|
msg_ok "Updated Crafty-Controller to v${RELEASE}"
|
||||||
|
|
||||||
msg_info "Restoring Backup of config"
|
restore_backup
|
||||||
cp -a /opt/crafty-controller/backup/. /opt/crafty-controller/crafty/crafty-4/app/config
|
|
||||||
rm -rf /opt/crafty-controller/backup
|
|
||||||
chown -R crafty:crafty /opt/crafty-controller/
|
chown -R crafty:crafty /opt/crafty-controller/
|
||||||
msg_ok "Backup Restored"
|
|
||||||
|
|
||||||
msg_info "Starting Crafty-Controller"
|
msg_info "Starting Crafty-Controller"
|
||||||
systemctl start crafty-controller
|
systemctl start crafty-controller
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-512}"
|
|||||||
var_disk="${var_disk:-2}"
|
var_disk="${var_disk:-2}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-1024}"
|
|||||||
var_disk="${var_disk:-2}"
|
var_disk="${var_disk:-2}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+10
-13
@@ -12,7 +12,7 @@ var_ram="${var_ram:-1024}"
|
|||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
@@ -34,21 +34,18 @@ function update_script() {
|
|||||||
systemctl stop cryptpad
|
systemctl stop cryptpad
|
||||||
msg_info "Stopped Service"
|
msg_info "Stopped Service"
|
||||||
|
|
||||||
msg_info "Creating backup"
|
create_backup /opt/cryptpad/config/config.js \
|
||||||
[ -f /opt/cryptpad/config/config.js ] && mv /opt/cryptpad/config/config.js /opt/
|
/opt/cryptpad/blob \
|
||||||
for dir in blob block customize data datastore www/common/onlyoffice/dist onlyoffice-conf; do
|
/opt/cryptpad/block \
|
||||||
[ -d "/opt/cryptpad/${dir}" ] && mv "/opt/cryptpad/${dir}" "/tmp/cryptpad_${dir//\//_}"
|
/opt/cryptpad/customize \
|
||||||
done
|
/opt/cryptpad/data \
|
||||||
msg_ok "Created backup"
|
/opt/cryptpad/datastore \
|
||||||
|
/opt/cryptpad/www/common/onlyoffice/dist \
|
||||||
|
/opt/cryptpad/onlyoffice-conf
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad" "tarball"
|
||||||
|
|
||||||
msg_info "Restoring backup"
|
restore_backup
|
||||||
mv /opt/config.js /opt/cryptpad/config/
|
|
||||||
for dir in blob block customize data datastore www/common/onlyoffice/dist onlyoffice-conf; do
|
|
||||||
[ -d "/tmp/cryptpad_${dir//\//_}" ] && mv "/tmp/cryptpad_${dir//\//_}" "/opt/cryptpad/${dir}"
|
|
||||||
done
|
|
||||||
msg_ok "Restored backup"
|
|
||||||
|
|
||||||
msg_info "Updating CryptPad"
|
msg_info "Updating CryptPad"
|
||||||
cd /opt/cryptpad
|
cd /opt/cryptpad
|
||||||
|
|||||||
+2
-8
@@ -35,17 +35,11 @@ function update_script() {
|
|||||||
systemctl stop dagu
|
systemctl stop dagu
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/dagu/data
|
||||||
cp -r /opt/dagu/data /opt/dagu_data_backup
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "dagu" "dagucloud/dagu" "prebuild" "latest" "/opt/dagu" "dagu_*_linux_amd64.tar.gz"
|
fetch_and_deploy_gh_release "dagu" "dagucloud/dagu" "prebuild" "latest" "/opt/dagu" "dagu_*_linux_amd64.tar.gz"
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
mkdir -p /opt/dagu/data
|
|
||||||
cp -r /opt/dagu_data_backup/. /opt/dagu/data
|
|
||||||
rm -rf /opt/dagu_data_backup
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start dagu
|
systemctl start dagu
|
||||||
|
|||||||
+2
-8
@@ -36,10 +36,7 @@ function update_script() {
|
|||||||
systemctl stop dashy
|
systemctl stop dashy
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up user-data"
|
create_backup /opt/dashy/user-data
|
||||||
rm -rf /opt/dashy_user_data_backup
|
|
||||||
cp -r /opt/dashy/user-data /opt/dashy_user_data_backup
|
|
||||||
msg_ok "Backed up user-data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dashy" "lissy93/dashy" "prebuild" "latest" "/opt/dashy" "dashy-*.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dashy" "lissy93/dashy" "prebuild" "latest" "/opt/dashy" "dashy-*.tar.gz"
|
||||||
|
|
||||||
@@ -48,10 +45,7 @@ function update_script() {
|
|||||||
$STD yarn install --ignore-engines --network-timeout 300000
|
$STD yarn install --ignore-engines --network-timeout 300000
|
||||||
msg_ok "Updated Dashy"
|
msg_ok "Updated Dashy"
|
||||||
|
|
||||||
msg_info "Restoring user-data"
|
restore_backup
|
||||||
cp -r /opt/dashy_user_data_backup/. /opt/dashy/user-data/
|
|
||||||
rm -rf /opt/dashy_user_data_backup
|
|
||||||
msg_ok "Restored user-data"
|
|
||||||
|
|
||||||
msg_info "Starting Dashy"
|
msg_info "Starting Dashy"
|
||||||
systemctl start dashy
|
systemctl start dashy
|
||||||
|
|||||||
+2
-11
@@ -35,12 +35,7 @@ function update_script() {
|
|||||||
$STD systemctl stop databasus
|
$STD systemctl stop databasus
|
||||||
msg_ok "Stopped Databasus"
|
msg_ok "Stopped Databasus"
|
||||||
|
|
||||||
msg_info "Backing up Configuration"
|
create_backup /opt/databasus/.env
|
||||||
[[ ! -f /.env && -f /opt/databasus/.env ]] && cp /opt/databasus/.env /.env
|
|
||||||
chmod 600 /.env
|
|
||||||
cp /.env /opt/databasus.env.bak
|
|
||||||
chmod 600 /opt/databasus.env.bak
|
|
||||||
msg_ok "Backed up Configuration"
|
|
||||||
|
|
||||||
msg_info "Ensuring Database Clients"
|
msg_info "Ensuring Database Clients"
|
||||||
# Create PostgreSQL version symlinks for compatibility
|
# Create PostgreSQL version symlinks for compatibility
|
||||||
@@ -87,11 +82,7 @@ function update_script() {
|
|||||||
chown -R postgres:postgres /opt/databasus
|
chown -R postgres:postgres /opt/databasus
|
||||||
msg_ok "Updated Databasus"
|
msg_ok "Updated Databasus"
|
||||||
|
|
||||||
msg_info "Restoring Configuration"
|
restore_backup
|
||||||
cp /opt/databasus.env.bak /.env
|
|
||||||
rm -f /opt/databasus.env.bak
|
|
||||||
chmod 600 /.env
|
|
||||||
msg_ok "Restored Configuration"
|
|
||||||
|
|
||||||
if ! grep -q "EnvironmentFile=/.env" /etc/systemd/system/databasus.service; then
|
if ! grep -q "EnvironmentFile=/.env" /etc/systemd/system/databasus.service; then
|
||||||
msg_info "Updating Service"
|
msg_info "Updating Service"
|
||||||
|
|||||||
+4
-11
@@ -37,11 +37,9 @@ function update_script() {
|
|||||||
systemctl stop dawarich-web dawarich-worker
|
systemctl stop dawarich-web dawarich-worker
|
||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/dawarich/app/storage \
|
||||||
cp -r /opt/dawarich/app/storage /opt/dawarich_storage_backup 2>/dev/null || true
|
/opt/dawarich/app/config/master.key \
|
||||||
cp /opt/dawarich/app/config/master.key /opt/dawarich_master.key 2>/dev/null || true
|
/opt/dawarich/app/config/credentials.yml.enc
|
||||||
cp /opt/dawarich/app/config/credentials.yml.enc /opt/dawarich_credentials.yml.enc 2>/dev/null || true
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dawarich" "Freika/dawarich" "tarball" "latest" "/opt/dawarich/app"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dawarich" "Freika/dawarich" "tarball" "latest" "/opt/dawarich/app"
|
||||||
|
|
||||||
@@ -85,12 +83,7 @@ function update_script() {
|
|||||||
$STD bundle exec rake data:migrate
|
$STD bundle exec rake data:migrate
|
||||||
msg_ok "Ran Migrations"
|
msg_ok "Ran Migrations"
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
cp -r /opt/dawarich_storage_backup/. /opt/dawarich/app/storage/ 2>/dev/null || true
|
|
||||||
cp /opt/dawarich_master.key /opt/dawarich/app/config/master.key 2>/dev/null || true
|
|
||||||
cp /opt/dawarich_credentials.yml.enc /opt/dawarich/app/config/credentials.yml.enc 2>/dev/null || true
|
|
||||||
rm -rf /opt/dawarich_storage_backup /opt/dawarich_master.key /opt/dawarich_credentials.yml.enc
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Starting Services"
|
msg_info "Starting Services"
|
||||||
systemctl start dawarich-web dawarich-worker
|
systemctl start dawarich-web dawarich-worker
|
||||||
|
|||||||
+2
-7
@@ -33,16 +33,11 @@ function update_script() {
|
|||||||
systemctl stop ddns-updater
|
systemctl stop ddns-updater
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/ddns-updater/data
|
||||||
cp -r /opt/ddns-updater/data /opt/ddns-updater_data_backup
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ddns-updater" "qdm12/ddns-updater" "singlefile" "latest" "/opt/ddns-updater" "ddns-updater_*_linux_amd64"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ddns-updater" "qdm12/ddns-updater" "singlefile" "latest" "/opt/ddns-updater" "ddns-updater_*_linux_amd64"
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
cp -r /opt/ddns-updater_data_backup/. /opt/ddns-updater/data/
|
|
||||||
rm -rf /opt/ddns-updater_data_backup
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start ddns-updater
|
systemctl start ddns-updater
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-512}"
|
|||||||
var_disk="${var_disk:-2}"
|
var_disk="${var_disk:-2}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+4
-7
@@ -35,10 +35,8 @@ function update_script() {
|
|||||||
systemctl stop degoog
|
systemctl stop degoog
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Configuration & Data"
|
create_backup /opt/degoog/.env \
|
||||||
[[ -f /opt/degoog/.env ]] && cp /opt/degoog/.env /opt/degoog.env.bak
|
/opt/degoog/data
|
||||||
[[ -d /opt/degoog/data ]] && mv /opt/degoog/data /opt/degoog_data_backup
|
|
||||||
msg_ok "Backed up Configuration & Data"
|
|
||||||
|
|
||||||
if ! command -v bun >/dev/null 2>&1; then
|
if ! command -v bun >/dev/null 2>&1; then
|
||||||
msg_info "Installing Bun"
|
msg_info "Installing Bun"
|
||||||
@@ -54,10 +52,9 @@ function update_script() {
|
|||||||
msg_ok "Updated Valkey"
|
msg_ok "Updated Valkey"
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "degoog" "fccview/degoog" "prebuild" "latest" "/opt/degoog" "degoog_*_prebuild.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "degoog" "fccview/degoog" "prebuild" "latest" "/opt/degoog" "degoog_*_prebuild.tar.gz"
|
||||||
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "curl-impersonate" "lexiforest/curl-impersonate" "prebuild" "latest" "/usr/local/bin" "curl-impersonate-v*.$(uname -m)-linux-gnu.tar.gz"
|
||||||
|
|
||||||
msg_info "Restoring Configuration & Data"
|
restore_backup
|
||||||
[[ -f /opt/degoog.env.bak ]] && mv /opt/degoog.env.bak /opt/degoog/.env
|
|
||||||
[[ -d /opt/degoog_data_backup ]] && mv /opt/degoog_data_backup /opt/degoog/data
|
|
||||||
|
|
||||||
if [[ -f /opt/degoog/.env ]]; then
|
if [[ -f /opt/degoog/.env ]]; then
|
||||||
grep -q "^DEGOOG_VALKEY_URL=" /opt/degoog/.env && sed -i "s|^DEGOOG_VALKEY_URL=.*|DEGOOG_VALKEY_URL=redis://valkey:6379|" /opt/degoog/.env || echo "DEGOOG_VALKEY_URL=redis://valkey:6379" >>/opt/degoog/.env
|
grep -q "^DEGOOG_VALKEY_URL=" /opt/degoog/.env && sed -i "s|^DEGOOG_VALKEY_URL=.*|DEGOOG_VALKEY_URL=redis://valkey:6379|" /opt/degoog/.env || echo "DEGOOG_VALKEY_URL=redis://valkey:6379" >>/opt/degoog/.env
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+2
-9
@@ -37,19 +37,12 @@ function update_script() {
|
|||||||
systemctl stop discopanel
|
systemctl stop discopanel
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Creating Backup"
|
create_backup /opt/discopanel/data/discopanel.db
|
||||||
mkdir -p /opt/discopanel_backup_temp
|
|
||||||
cp /opt/discopanel/data/discopanel.db /opt/discopanel_backup_temp/discopanel.db
|
|
||||||
msg_ok "Created Backup"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "discopanel" "nickheyer/discopanel" "prebuild" "latest" "/opt/discopanel" "discopanel-linux-amd64.tar.gz"
|
fetch_and_deploy_gh_release "discopanel" "nickheyer/discopanel" "prebuild" "latest" "/opt/discopanel" "discopanel-linux-amd64.tar.gz"
|
||||||
ln -sf /opt/discopanel/discopanel-linux-amd64 /opt/discopanel/discopanel
|
ln -sf /opt/discopanel/discopanel-linux-amd64 /opt/discopanel/discopanel
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
mkdir -p /opt/discopanel/data
|
|
||||||
mv /opt/discopanel_backup_temp/discopanel.db /opt/discopanel/data/discopanel.db
|
|
||||||
rm -rf /opt/discopanel_backup_temp
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start discopanel
|
systemctl start discopanel
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
var_gpu="${var_gpu:-yes}"
|
var_gpu="${var_gpu:-yes}"
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-18}"
|
var_disk="${var_disk:-18}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+6
-12
@@ -12,7 +12,7 @@ var_ram="${var_ram:-4096}"
|
|||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
variables
|
variables
|
||||||
@@ -37,25 +37,19 @@ function update_script() {
|
|||||||
systemctl stop docmost
|
systemctl stop docmost
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up data"
|
create_backup /opt/docmost/.env \
|
||||||
cp /opt/docmost/.env /opt/
|
/opt/docmost/data
|
||||||
cp -r /opt/docmost/data /opt/
|
|
||||||
rm -rf /opt/docmost
|
|
||||||
msg_ok "Data backed up"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "docmost" "docmost/docmost" "tarball"
|
fetch_and_deploy_gh_release "docmost" "docmost/docmost" "tarball"
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
restore_backup
|
||||||
cd /opt/docmost
|
|
||||||
mv /opt/.env /opt/docmost/.env
|
|
||||||
mv /opt/data /opt/docmost/data
|
|
||||||
|
|
||||||
# Fix: Docmost EE (audit logs etc.) lives in a git submodule that is NOT
|
# Fix: Docmost EE (audit logs etc.) lives in a git submodule that is NOT
|
||||||
# included in GitHub tarballs. The community NoopAuditService exists but
|
# included in GitHub tarballs. The community NoopAuditService exists but
|
||||||
# is only exported by CoreModule – child modules such as UserModule cannot
|
# is only exported by CoreModule – child modules such as UserModule cannot
|
||||||
# resolve it. Making CoreModule @Global() exposes the token app-wide.
|
# resolve it. Making CoreModule @Global() exposes the token app-wide.
|
||||||
if [[ ! -f /opt/docmost/apps/server/src/ee/ee.module.ts ]] \
|
if [[ ! -f /opt/docmost/apps/server/src/ee/ee.module.ts ]] &&
|
||||||
&& ! grep -q '@Global()' /opt/docmost/apps/server/src/core/core.module.ts 2>/dev/null; then
|
! grep -q '@Global()' /opt/docmost/apps/server/src/core/core.module.ts 2>/dev/null; then
|
||||||
sed -i '/^ Module,$/a\ Global,' /opt/docmost/apps/server/src/core/core.module.ts
|
sed -i '/^ Module,$/a\ Global,' /opt/docmost/apps/server/src/core/core.module.ts
|
||||||
sed -i '/^@Module({$/i @Global()' /opt/docmost/apps/server/src/core/core.module.ts
|
sed -i '/^@Module({$/i @Global()' /opt/docmost/apps/server/src/core/core.module.ts
|
||||||
fi
|
fi
|
||||||
|
|||||||
+4
-9
@@ -35,24 +35,19 @@ function update_script() {
|
|||||||
systemctl stop docuseal docuseal-sidekiq
|
systemctl stop docuseal docuseal-sidekiq
|
||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/docuseal/.env \
|
||||||
cp /opt/docuseal/.env /opt/docuseal.env.bak
|
/opt/docuseal/data
|
||||||
[[ -d /opt/docuseal/data ]] && mv /opt/docuseal/data /opt/docuseal_data.bak
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "docuseal" "docusealco/docuseal" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "docuseal" "docusealco/docuseal" "tarball"
|
||||||
|
|
||||||
local required_ruby current_ruby
|
local required_ruby current_ruby
|
||||||
required_ruby=$(grep -m1 '^ruby ' /opt/docuseal/Gemfile | grep -oP '[0-9]+\.[0-9]+\.[0-9]+')
|
required_ruby=$(grep -m1 '^ruby ' /opt/docuseal/Gemfile | grep -oP '[0-9]+\.[0-9]+\.[0-9]+')
|
||||||
current_ruby=$(PATH="/root/.rbenv/bin:/root/.rbenv/shims:${PATH}" rbenv global 2>/dev/null || true)
|
current_ruby=$(PATH="/root/.rbenv/bin:/root/.rbenv/shims:${PATH}" rbenv global 2>/dev/null || true)
|
||||||
if [[ -n "$required_ruby" && "$required_ruby" != "$current_ruby" ]]; then
|
if [[ -n $required_ruby && $required_ruby != "$current_ruby" ]]; then
|
||||||
RUBY_VERSION="${required_ruby}" RUBY_INSTALL_RAILS="false" HOME=/root setup_ruby
|
RUBY_VERSION="${required_ruby}" RUBY_INSTALL_RAILS="false" HOME=/root setup_ruby
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
mv /opt/docuseal.env.bak /opt/docuseal/.env
|
|
||||||
[[ -d /opt/docuseal_data.bak ]] && mv /opt/docuseal_data.bak /opt/docuseal/data
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Building Application"
|
msg_info "Building Application"
|
||||||
cd /opt/docuseal
|
cd /opt/docuseal
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-6}"
|
var_disk="${var_disk:-6}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-12}"
|
var_version="${var_version:-12}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ var_ram="${var_ram:-512}"
|
|||||||
var_disk="${var_disk:-2}"
|
var_disk="${var_disk:-2}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
@@ -43,9 +43,7 @@ function update_script() {
|
|||||||
systemctl stop apache2
|
systemctl stop apache2
|
||||||
msg_info "Service stopped"
|
msg_info "Service stopped"
|
||||||
|
|
||||||
msg_info "Creating backup"
|
create_backup /opt/domain-monitor/.env
|
||||||
mv /opt/domain-monitor/.env /opt
|
|
||||||
msg_ok "Created backup"
|
|
||||||
|
|
||||||
setup_composer
|
setup_composer
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "domain-monitor" "Hosteroid/domain-monitor" "prebuild" "latest" "/opt/domain-monitor" "domain-monitor-v*.zip"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "domain-monitor" "Hosteroid/domain-monitor" "prebuild" "latest" "/opt/domain-monitor" "domain-monitor-v*.zip"
|
||||||
@@ -56,9 +54,7 @@ function update_script() {
|
|||||||
chown -R www-data:www-data /opt/domain-monitor
|
chown -R www-data:www-data /opt/domain-monitor
|
||||||
msg_ok "Updated Domain Monitor"
|
msg_ok "Updated Domain Monitor"
|
||||||
|
|
||||||
msg_info "Restoring backup"
|
restore_backup
|
||||||
mv /opt/.env /opt/domain-monitor
|
|
||||||
msg_ok "Restored backup"
|
|
||||||
|
|
||||||
msg_info "Restarting Services"
|
msg_info "Restarting Services"
|
||||||
systemctl start apache2
|
systemctl start apache2
|
||||||
|
|||||||
+3
-7
@@ -35,18 +35,14 @@ function update_script() {
|
|||||||
systemctl stop donetick
|
systemctl stop donetick
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing Up Configurations"
|
create_backup /opt/donetick/config/selfhosted.yaml \
|
||||||
mv /opt/donetick/config/selfhosted.yaml /opt/donetick/donetick.db /opt
|
/opt/donetick/donetick.db
|
||||||
msg_ok "Backed Up Configurations"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "donetick" "donetick/donetick" "prebuild" "latest" "/opt/donetick" "donetick_Linux_x86_64.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "donetick" "donetick/donetick" "prebuild" "latest" "/opt/donetick" "donetick_Linux_x86_64.tar.gz"
|
||||||
|
|
||||||
msg_info "Restoring Configurations"
|
restore_backup
|
||||||
mv /opt/selfhosted.yaml /opt/donetick/config
|
|
||||||
grep -q 'http://localhost"$' /opt/donetick/config/selfhosted.yaml || sed -i '/https:\/\/localhost"$/a\ - "http://localhost"' /opt/donetick/config/selfhosted.yaml
|
grep -q 'http://localhost"$' /opt/donetick/config/selfhosted.yaml || sed -i '/https:\/\/localhost"$/a\ - "http://localhost"' /opt/donetick/config/selfhosted.yaml
|
||||||
grep -q 'capacitor://localhost' /opt/donetick/config/selfhosted.yaml || sed -i '/http:\/\/localhost"$/a\ - "capacitor://localhost"' /opt/donetick/config/selfhosted.yaml
|
grep -q 'capacitor://localhost' /opt/donetick/config/selfhosted.yaml || sed -i '/http:\/\/localhost"$/a\ - "capacitor://localhost"' /opt/donetick/config/selfhosted.yaml
|
||||||
mv /opt/donetick.db /opt/donetick
|
|
||||||
msg_ok "Restored Configurations"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start donetick
|
systemctl start donetick
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ var_ram="${var_ram:-1024}"
|
|||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-ubuntu}"
|
var_os="${var_os:-ubuntu}"
|
||||||
var_version="${var_version:-24.04}"
|
var_version="${var_version:-24.04}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-0}"
|
var_unprivileged="${var_unprivileged:-0}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+4
-10
@@ -35,19 +35,13 @@ function update_script() {
|
|||||||
systemctl stop dynacat
|
systemctl stop dynacat
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/dynacat/config \
|
||||||
cp -r /opt/dynacat/config /opt/dynacat_config_backup
|
/opt/dynacat/assets \
|
||||||
cp -r /opt/dynacat/assets /opt/dynacat_assets_backup
|
/opt/dynacat/data
|
||||||
cp -r /opt/dynacat/data /opt/dynacat_data_backup
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dynacat" "Panonim/dynacat" "prebuild" "latest" "/opt/dynacat" "dynacat-linux-amd64.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dynacat" "Panonim/dynacat" "prebuild" "latest" "/opt/dynacat" "dynacat-linux-amd64.tar.gz"
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
cp -r /opt/dynacat_config_backup/. /opt/dynacat/config
|
|
||||||
cp -r /opt/dynacat_assets_backup/. /opt/dynacat/assets
|
|
||||||
cp -r /opt/dynacat_data_backup/. /opt/dynacat/data
|
|
||||||
rm -rf /opt/dynacat_config_backup /opt/dynacat_assets_backup /opt/dynacat_data_backup
|
|
||||||
chmod +x /opt/dynacat/dynacat
|
chmod +x /opt/dynacat/dynacat
|
||||||
msg_ok "Restored Data"
|
msg_ok "Restored Data"
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-ubuntu}"
|
var_os="${var_os:-ubuntu}"
|
||||||
var_version="${var_version:-24.04}"
|
var_version="${var_version:-24.04}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
var_gpu="${var_gpu:-yes}"
|
var_gpu="${var_gpu:-yes}"
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-4096}"
|
|||||||
var_disk="${var_disk:-5}"
|
var_disk="${var_disk:-5}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
|
||||||
|
APP="Ente"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
|
||||||
|
msg_error "This script is no longer available in community-scripts."
|
||||||
|
msg_error "This script was removed and cannot be installed or updated."
|
||||||
|
msg_warn "More info: https://community-scripts.org/scripts/ente"
|
||||||
|
exit 1
|
||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-1024}"
|
|||||||
var_disk="${var_disk:-10}"
|
var_disk="${var_disk:-10}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-1024}"
|
|||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-3072}"
|
|||||||
var_disk="${var_disk:-10}"
|
var_disk="${var_disk:-10}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-1024}"
|
|||||||
var_disk="${var_disk:-2}"
|
var_disk="${var_disk:-2}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_cpu="${var_cpu:-4}"
|
|||||||
var_ram="${var_ram:-4096}"
|
var_ram="${var_ram:-4096}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ var_ram="${var_ram:-4096}"
|
|||||||
var_disk="${var_disk:-7}"
|
var_disk="${var_disk:-7}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-1024}"
|
|||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-5}"
|
var_disk="${var_disk:-5}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-1024}"
|
|||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-1024}"
|
|||||||
var_disk="${var_disk:-5}"
|
var_disk="${var_disk:-5}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-4096}"
|
|||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-6}"
|
var_disk="${var_disk:-6}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_cpu="${var_cpu:-2}"
|
|||||||
var_ram="${var_ram:-2048}"
|
var_ram="${var_ram:-2048}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
variables
|
variables
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-10}"
|
var_disk="${var_disk:-10}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-512}"
|
|||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-8192}"
|
|||||||
var_disk="${var_disk:-30}"
|
var_disk="${var_disk:-30}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-3072}"
|
|||||||
var_disk="${var_disk:-6}"
|
var_disk="${var_disk:-6}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-512}"
|
|||||||
var_disk="${var_disk:-2}"
|
var_disk="${var_disk:-2}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ var_ram="${var_ram:-2048}"
|
|||||||
var_disk="${var_disk:-6}"
|
var_disk="${var_disk:-6}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_arm64="${var_arm64:-no}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
___ __ _ _______
|
||||||
|
/ | / /___ (_)___ ___ / ____(_)___ ____ __ __
|
||||||
|
/ /| | / / __ \/ / __ \/ _ \______/ / / / __ \/ __ \/ / / /
|
||||||
|
/ ___ |/ / /_/ / / / / / __/_____/ /___/ / / / / / / / /_/ /
|
||||||
|
/_/ |_/_/ .___/_/_/ /_/\___/ \____/_/_/ /_/_/ /_/\__, /
|
||||||
|
/_/ /____/
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
____ __ ____ __ _ __
|
||||||
|
/ __ )____ ____ / /__/ __ \_____/ /_ (_) /_
|
||||||
|
/ __ / __ \/ __ \/ //_/ / / / ___/ __ \/ / __/
|
||||||
|
/ /_/ / /_/ / /_/ / ,< / /_/ / / / /_/ / / /_
|
||||||
|
/_____/\____/\____/_/|_|\____/_/ /_.___/_/\__/
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
_________ __ __ __
|
||||||
|
/ ____/ (_)____/ /__/ / / /___ __ __________
|
||||||
|
/ / / / / ___/ //_/ /_/ / __ \/ / / / ___/ _ \
|
||||||
|
/ /___/ / / /__/ ,< / __ / /_/ / /_/ (__ ) __/
|
||||||
|
\____/_/_/\___/_/|_/_/ /_/\____/\__,_/____/\___/
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
______ __
|
||||||
|
/_ __/ _____ ____ / /___ __
|
||||||
|
/ / | | /| / / _ \/ __ \/ __/ / / /
|
||||||
|
/ / | |/ |/ / __/ / / / /_/ /_/ /
|
||||||
|
/_/ |__/|__/\___/_/ /_/\__/\__, /
|
||||||
|
/____/
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user