mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-10-05 07:06:19 -04:00
Compare commits
59 Commits
refactor/p
...
github-act
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cef7bd1b96 | ||
|
|
8ae3b842e4 | ||
|
|
7d9648dc90 | ||
|
|
9d0b1e0354 | ||
|
|
231b2fb1b7 | ||
|
|
e49cff4d54 | ||
|
|
1c1295a9fd | ||
|
|
ca6e8f407e | ||
|
|
e8a575dff4 | ||
|
|
5b5e8dc4f3 | ||
|
|
bcbe464ff9 | ||
|
|
7bde0ac8d9 | ||
|
|
c225acc722 | ||
|
|
aaa341b6b2 | ||
|
|
1142165f73 | ||
|
|
63e2ce0849 | ||
|
|
2c33ecf7cf | ||
|
|
22a5672945 | ||
|
|
bee57cc60f | ||
|
|
5ae725fb1b | ||
|
|
5ef159a377 | ||
|
|
086ce89fc0 | ||
|
|
713382315d | ||
|
|
ca2bbb9b76 | ||
|
|
99746e749c | ||
|
|
65ec2b6667 | ||
|
|
a74f683fab | ||
|
|
336b234951 | ||
|
|
01906fe930 | ||
|
|
7a9fd31696 | ||
|
|
fa4e227f7b | ||
|
|
075769abdc | ||
|
|
7f57d0998c | ||
|
|
45599d63ec | ||
|
|
924aa58d4a | ||
|
|
eead382524 | ||
|
|
a0a28d9a48 | ||
|
|
4277a26af6 | ||
|
|
826a5d9612 | ||
|
|
435aaaa299 | ||
|
|
b4bf7aacf3 | ||
|
|
94cdc531ca | ||
|
|
f86db843e2 | ||
|
|
a311805a36 | ||
|
|
e91f2abe21 | ||
|
|
a07bfae545 | ||
|
|
6a2cc03645 | ||
|
|
21e8abf269 | ||
|
|
de68ca7400 | ||
|
|
823e026952 | ||
|
|
3707e64a9a | ||
|
|
2a144e070f | ||
|
|
2497c18bee | ||
|
|
e773412791 | ||
|
|
7cd2b1d9d2 | ||
|
|
50e5c6982b | ||
|
|
6af075102c | ||
|
|
d8ff895925 | ||
|
|
97c95f81d4 |
5
.gitattributes
vendored
5
.gitattributes
vendored
@@ -7,11 +7,6 @@
|
|||||||
*.func linguist-detectable=true
|
*.func linguist-detectable=true
|
||||||
*.install linguist-language=Shell
|
*.install linguist-language=Shell
|
||||||
|
|
||||||
# ---------------------------------------
|
|
||||||
# Exclude header art from stats
|
|
||||||
# ---------------------------------------
|
|
||||||
ct/headers/* linguist-documentation
|
|
||||||
|
|
||||||
# ---------------------------------------
|
# ---------------------------------------
|
||||||
# Exclude documentation from stats
|
# Exclude documentation from stats
|
||||||
# ---------------------------------------
|
# ---------------------------------------
|
||||||
|
|||||||
8
.github/autolabeler-config.json
generated
vendored
8
.github/autolabeler-config.json
generated
vendored
@@ -10,9 +10,7 @@
|
|||||||
],
|
],
|
||||||
"excludeGlobs": [
|
"excludeGlobs": [
|
||||||
"**/headers/**",
|
"**/headers/**",
|
||||||
"ct/headers/**",
|
"tools/headers/**"
|
||||||
"tools/headers/**",
|
|
||||||
"vm/headers/**"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -48,9 +46,7 @@
|
|||||||
],
|
],
|
||||||
"excludeGlobs": [
|
"excludeGlobs": [
|
||||||
"**/headers/**",
|
"**/headers/**",
|
||||||
"ct/headers/**",
|
"tools/headers/**"
|
||||||
"tools/headers/**",
|
|
||||||
"vm/headers/**"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
84
.github/changelogs/2026/09.md
generated
vendored
84
.github/changelogs/2026/09.md
generated
vendored
@@ -1,3 +1,87 @@
|
|||||||
|
## 2026-09-30
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Shoko ([#17617](https://github.com/community-scripts/ProxmoxVE/pull/17617))
|
||||||
|
- SIlo ([#17614](https://github.com/community-scripts/ProxmoxVE/pull/17614))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- fix(blocky): restart on failure and wait for network-online [@haplo](https://github.com/haplo) ([#17601](https://github.com/community-scripts/ProxmoxVE/pull/17601))
|
||||||
|
- SparkyFitness: update sed replacement [@tomfrenzel](https://github.com/tomfrenzel) ([#17604](https://github.com/community-scripts/ProxmoxVE/pull/17604))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- vm: autologin on the serial console for images without cloud-init [@MickLesk](https://github.com/MickLesk) ([core#80](https://github.com/community-scripts/core/pull/80))
|
||||||
|
- download_gpg_key: make dearmored keyrings world-readable [@MickLesk](https://github.com/MickLesk) ([core#79](https://github.com/community-scripts/core/pull/79))
|
||||||
|
|
||||||
|
## 2026-09-29
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Anki Sync Server ([#17416](https://github.com/community-scripts/ProxmoxVE/pull/17416))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- fix(kaneo): build with Vite+ instead of Turbo [@tinsever](https://github.com/tinsever) ([#17599](https://github.com/community-scripts/ProxmoxVE/pull/17599))
|
||||||
|
- tianji: raise the Node heap for the static build on install [@MickLesk](https://github.com/MickLesk) ([#17582](https://github.com/community-scripts/ProxmoxVE/pull/17582))
|
||||||
|
- fix(romm): snapshot Redis hourly like the upstream image [@DenislavDenev](https://github.com/DenislavDenev) ([#17562](https://github.com/community-scripts/ProxmoxVE/pull/17562))
|
||||||
|
- checkmate: bump Node.js from 22 to 24 [@github-actions[bot]](https://github.com/github-actions[bot]) ([#17554](https://github.com/community-scripts/ProxmoxVE/pull/17554))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Drop the scripts base pin from every ct/ script [@MickLesk](https://github.com/MickLesk) ([#17585](https://github.com/community-scripts/ProxmoxVE/pull/17585))
|
||||||
|
- odoo: move to Debian 13 and stay on the installed major on update [@MickLesk](https://github.com/MickLesk) ([#17581](https://github.com/community-scripts/ProxmoxVE/pull/17581))
|
||||||
|
- manyfold: use upstream f3d for headless renders on amd64 [@MickLesk](https://github.com/MickLesk) ([#17583](https://github.com/community-scripts/ProxmoxVE/pull/17583))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- Default the scripts base to ProxmoxVE [@MickLesk](https://github.com/MickLesk) ([core#76](https://github.com/community-scripts/core/pull/76))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- all-templates: handle the arch column of pveam available [@MickLesk](https://github.com/MickLesk) ([#17579](https://github.com/community-scripts/ProxmoxVE/pull/17579))
|
||||||
|
|
||||||
|
### 📂 Github
|
||||||
|
|
||||||
|
- Skip automated core pull requests in the changelog [@MickLesk](https://github.com/MickLesk) ([#17589](https://github.com/community-scripts/ProxmoxVE/pull/17589))
|
||||||
|
- Post a test command for vm/, tools/ and turnkey/ changes too [@MickLesk](https://github.com/MickLesk) ([#17587](https://github.com/community-scripts/ProxmoxVE/pull/17587))
|
||||||
|
- Remove the PocketBase AI bot [@MickLesk](https://github.com/MickLesk) ([#17591](https://github.com/community-scripts/ProxmoxVE/pull/17591))
|
||||||
|
|
||||||
|
## 2026-09-28
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Immich: Pin version to 3.2.4 [@vhsdream](https://github.com/vhsdream) ([#17564](https://github.com/community-scripts/ProxmoxVE/pull/17564))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- fix(autocaliweb): wire .env into all service units, not just autocali… [@bobartlett](https://github.com/bobartlett) ([#17561](https://github.com/community-scripts/ProxmoxVE/pull/17561))
|
||||||
|
- Zipline: Change cp command [@Mraedis](https://github.com/Mraedis) ([#17559](https://github.com/community-scripts/ProxmoxVE/pull/17559))
|
||||||
|
- Borg-UI: start through upstream's start.sh so migrations run [@MickLesk](https://github.com/MickLesk) ([#17563](https://github.com/community-scripts/ProxmoxVE/pull/17563))
|
||||||
|
- linkding: serve favicons and preview images [@MickLesk](https://github.com/MickLesk) ([#17557](https://github.com/community-scripts/ProxmoxVE/pull/17557))
|
||||||
|
- SparkyFitness: Fill in the nginx resolver 1.7.3 added [@MickLesk](https://github.com/MickLesk) ([#17556](https://github.com/community-scripts/ProxmoxVE/pull/17556))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Plane: Replace MinIO installation with Silo [@MickLesk](https://github.com/MickLesk) ([#17347](https://github.com/community-scripts/ProxmoxVE/pull/17347))
|
||||||
|
|
||||||
|
## 2026-09-27
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- fix(aurral): bump to Node 26 and bypass strict engine pin [@JodyVanden](https://github.com/JodyVanden) ([#17543](https://github.com/community-scripts/ProxmoxVE/pull/17543))
|
||||||
|
- Tracearr: fetch map tiles on install/update [@durzo](https://github.com/durzo) ([#17544](https://github.com/community-scripts/ProxmoxVE/pull/17544))
|
||||||
|
- fix(autocaliweb): define INSTALL_DIR before first use [@bobartlett](https://github.com/bobartlett) ([#17545](https://github.com/community-scripts/ProxmoxVE/pull/17545))
|
||||||
|
|
||||||
## 2026-09-26
|
## 2026-09-26
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
|||||||
74
.github/changelogs/2026/10.md
generated
vendored
Normal file
74
.github/changelogs/2026/10.md
generated
vendored
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
## 2026-10-03
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Keeper.sh ([#17659](https://github.com/community-scripts/ProxmoxVE/pull/17659))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- hermesagent: download the installer before running it [@MickLesk](https://github.com/MickLesk) ([#17666](https://github.com/community-scripts/ProxmoxVE/pull/17666))
|
||||||
|
- frigate: raise the Node heap for the web build [@MickLesk](https://github.com/MickLesk) ([#17667](https://github.com/community-scripts/ProxmoxVE/pull/17667))
|
||||||
|
- Tracearr: workaround for failing map tiles download and data preservation [@durzo](https://github.com/durzo) ([#17661](https://github.com/community-scripts/ProxmoxVE/pull/17661))
|
||||||
|
- fix(nginxproxymanager): clean yarn cache after builds to prevent disk growth [@PsycoStea](https://github.com/PsycoStea) ([#17653](https://github.com/community-scripts/ProxmoxVE/pull/17653))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Several Scripts: refactor msg_ blocks, generate passwords with helper, add CLEAN_INSTALL_KEEP [@MickLesk](https://github.com/MickLesk) ([#17655](https://github.com/community-scripts/ProxmoxVE/pull/17655))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- detect_repo_source: read the license header and fall back to ProxmoxVE [@MickLesk](https://github.com/MickLesk) ([core#85](https://github.com/community-scripts/core/pull/85))
|
||||||
|
|
||||||
|
## 2026-10-02
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- zerobyte: upgrade Bun on update [@MickLesk](https://github.com/MickLesk) ([#17646](https://github.com/community-scripts/ProxmoxVE/pull/17646))
|
||||||
|
- sure: keep Active Storage uploads across updates [@MickLesk](https://github.com/MickLesk) ([#17648](https://github.com/community-scripts/ProxmoxVE/pull/17648))
|
||||||
|
- twenty: run upstreams upgrade command instead of the removed setup-db.ts [@MickLesk](https://github.com/MickLesk) ([#17647](https://github.com/community-scripts/ProxmoxVE/pull/17647))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- NPM: Refactor / Fix npm openresty user and certbot version [@MickLesk](https://github.com/MickLesk) ([#17649](https://github.com/community-scripts/ProxmoxVE/pull/17649))
|
||||||
|
- several scripts: use the release helpers instead of hand-rolled version checks and downloads [@MickLesk](https://github.com/MickLesk) ([#17625](https://github.com/community-scripts/ProxmoxVE/pull/17625))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- QoL: message blocks, clean-install keep list, password helper, network limits [@MickLesk](https://github.com/MickLesk) ([core#61](https://github.com/community-scripts/core/pull/61))
|
||||||
|
|
||||||
|
## 2026-10-01
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- romm: keep the asset links in sync with ROMM_BASE_PATH [@MickLesk](https://github.com/MickLesk) ([#17610](https://github.com/community-scripts/ProxmoxVE/pull/17610))
|
||||||
|
- teslamate: build from the elixir directory since 4.3.0 [@MickLesk](https://github.com/MickLesk) ([#17612](https://github.com/community-scripts/ProxmoxVE/pull/17612))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- feat(glance): add alpine os [@skilletfun](https://github.com/skilletfun) ([#17605](https://github.com/community-scripts/ProxmoxVE/pull/17605))
|
||||||
|
- feat(blocky): add alpine os [@skilletfun](https://github.com/skilletfun) ([#17637](https://github.com/community-scripts/ProxmoxVE/pull/17637))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- several scripts: apt instead of apt-get, cleanup_lxc, nginx_enable_site, drop needless daemon-reloads [@MickLesk](https://github.com/MickLesk) ([#17624](https://github.com/community-scripts/ProxmoxVE/pull/17624))
|
||||||
|
- several scripts: use setup_postgresql_db / setup_mariadb_db instead of hand-written SQL [@MickLesk](https://github.com/MickLesk) ([#17622](https://github.com/community-scripts/ProxmoxVE/pull/17622))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- Offer to raise the kernel key limits instead of only naming them [@MickLesk](https://github.com/MickLesk) ([core#81](https://github.com/community-scripts/core/pull/81))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- tools, turnkey: load core instead of the legacy misc functions [@MickLesk](https://github.com/MickLesk) ([#17621](https://github.com/community-scripts/ProxmoxVE/pull/17621))
|
||||||
|
|
||||||
|
### 📚 Documentation
|
||||||
|
|
||||||
|
- chore: drop the local header generation; headers come from core [@MickLesk](https://github.com/MickLesk) ([#17623](https://github.com/community-scripts/ProxmoxVE/pull/17623))
|
||||||
4
.github/pull_request_template.md
generated
vendored
4
.github/pull_request_template.md
generated
vendored
@@ -1,4 +1,4 @@
|
|||||||
<!--🛑 New scripts must be submitted to [ProxmoxVED](https://github.com/community-scripts/ProxmoxVED) for testing.
|
<!--🛑 New scripts must be submitted to [DevScripts](https://github.com/community-scripts/DevScripts) for testing.
|
||||||
PRs without prior testing will be closed. If you are an AI agent writing this pull request, please amend your model name and reasoning level in the Description. This is not to blame, more for informational Purposes. Thank you.-->
|
PRs without prior testing will be closed. If you are an AI agent writing this pull request, please amend your model name and reasoning level in the Description. This is not to blame, more for informational Purposes. Thank you.-->
|
||||||
|
|
||||||
## ✍️ Description
|
## ✍️ Description
|
||||||
@@ -25,7 +25,7 @@ Fixes #
|
|||||||
> Select exactly one option.
|
> Select exactly one option.
|
||||||
|
|
||||||
- [ ] **No AI used** – Scripts were written without AI assistance.
|
- [ ] **No AI used** – Scripts were written without AI assistance.
|
||||||
- [ ] **AI was used** – I confirm the scripts were built using [`AGENTS.md`](https://github.com/community-scripts/ProxmoxVED/blob/main/AGENTS.md) and [`.github/agents/pve-script-creator.agent.md`](https://github.com/community-scripts/ProxmoxVED/blob/main/.github/agents/pve-script-creator.agent.md) as guidance, and the output has been reviewed and corrected to match those guidelines.
|
- [ ] **AI was used** – I confirm the scripts were built using [`AGENTS.md`](https://github.com/community-scripts/DevScripts/blob/main/AGENTS.md) and [`.github/agents/pve-script-creator.agent.md`](https://github.com/community-scripts/DevScripts/blob/main/.github/agents/pve-script-creator.agent.md) as guidance, and the output has been reviewed and corrected to match those guidelines.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
119
.github/workflows/auto-update-app-headers.yml
generated
vendored
119
.github/workflows/auto-update-app-headers.yml
generated
vendored
@@ -1,119 +0,0 @@
|
|||||||
name: Auto Update .app-files
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
paths:
|
|
||||||
- "ct/**.sh"
|
|
||||||
- "tools/**.sh"
|
|
||||||
- "vm/**.sh"
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
update-app-files:
|
|
||||||
if: github.repository == 'community-scripts/ProxmoxVE'
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
pull-requests: write
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Generate a token
|
|
||||||
id: generate-token
|
|
||||||
uses: actions/create-github-app-token@v3
|
|
||||||
with:
|
|
||||||
app-id: ${{ vars.GHAPP_PR_ID }}
|
|
||||||
private-key: ${{ secrets.GHAPP_PR_PRIVATE_KEY }}
|
|
||||||
|
|
||||||
- name: Generate a token for PR approval and merge
|
|
||||||
id: generate-token-merge
|
|
||||||
uses: actions/create-github-app-token@v3
|
|
||||||
with:
|
|
||||||
app-id: ${{ vars.GHAPP_MERGEBOT_ID }}
|
|
||||||
private-key: ${{ secrets.GHAPP_MERGEBOT_PRIVATE_KEY }}
|
|
||||||
|
|
||||||
# Step 1: Checkout repository
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v7
|
|
||||||
|
|
||||||
# Step 2: Disable file mode changes detection
|
|
||||||
- name: Disable file mode changes
|
|
||||||
run: git config core.fileMode false
|
|
||||||
|
|
||||||
# Step 3: Set up Git user for committing changes
|
|
||||||
- name: Set up Git
|
|
||||||
run: |
|
|
||||||
git config --global user.name "GitHub Actions"
|
|
||||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
||||||
|
|
||||||
# Step 4: Install figlet
|
|
||||||
- name: Install figlet
|
|
||||||
run: sudo apt-get install -y figlet
|
|
||||||
|
|
||||||
# Step 5: Run the updated generate-app-files.sh script
|
|
||||||
- name: Run generate-app-files.sh
|
|
||||||
run: |
|
|
||||||
chmod +x .github/workflows/scripts/generate-app-headers.sh
|
|
||||||
.github/workflows/scripts/generate-app-headers.sh
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
# Step 6: Check if there are any changes
|
|
||||||
- name: Check if there are any changes
|
|
||||||
run: |
|
|
||||||
echo "Checking for changes..."
|
|
||||||
git add -A # Untracked Dateien aufnehmen
|
|
||||||
git status
|
|
||||||
if git diff --cached --quiet; then
|
|
||||||
echo "No changes detected."
|
|
||||||
echo "changed=false" >> "$GITHUB_ENV"
|
|
||||||
else
|
|
||||||
echo "Changes detected:"
|
|
||||||
git diff --stat --cached
|
|
||||||
echo "changed=true" >> "$GITHUB_ENV"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Step 7: Commit and create PR if changes exist
|
|
||||||
- name: Commit and create PR if changes exist
|
|
||||||
if: env.changed == 'true'
|
|
||||||
run: |
|
|
||||||
git commit -m "Update .app files"
|
|
||||||
git checkout -b pr-update-app-files
|
|
||||||
git push origin pr-update-app-files --force
|
|
||||||
gh pr create --title "[core] update .app files" \
|
|
||||||
--body "This PR is auto-generated by a GitHub Action to update the .app files." \
|
|
||||||
--head pr-update-app-files \
|
|
||||||
--base main \
|
|
||||||
--label "automated pr"
|
|
||||||
env:
|
|
||||||
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
|
|
||||||
|
|
||||||
- name: Approve pull request
|
|
||||||
if: env.changed == 'true'
|
|
||||||
env:
|
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
run: |
|
|
||||||
PR_NUMBER=$(gh pr list --head "pr-update-app-files" --json number --jq '.[].number')
|
|
||||||
if [ -n "$PR_NUMBER" ]; then
|
|
||||||
gh pr review $PR_NUMBER --approve
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Approve pull request and merge
|
|
||||||
if: env.changed == 'true'
|
|
||||||
env:
|
|
||||||
GH_TOKEN: ${{ steps.generate-token-merge.outputs.token }}
|
|
||||||
run: |
|
|
||||||
git config --global user.name "github-actions-automege[bot]"
|
|
||||||
git config --global user.email "github-actions-automege[bot]@users.noreply.github.com"
|
|
||||||
PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number')
|
|
||||||
if [ -n "$PR_NUMBER" ]; then
|
|
||||||
gh pr review $PR_NUMBER --approve
|
|
||||||
gh pr merge $PR_NUMBER --squash --admin
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Step 8: Output success message when no changes
|
|
||||||
- name: No changes detected
|
|
||||||
if: env.changed == 'false'
|
|
||||||
run: echo "No changes to commit. Workflow completed successfully."
|
|
||||||
2
.github/workflows/changelog-pr.yml
generated
vendored
2
.github/workflows/changelog-pr.yml
generated
vendored
@@ -126,7 +126,7 @@ jobs:
|
|||||||
try {
|
try {
|
||||||
const { data: relatedIssues } = await github.rest.issues.listForRepo({
|
const { data: relatedIssues } = await github.rest.issues.listForRepo({
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: "ProxmoxVED",
|
repo: "DevScripts",
|
||||||
state: "all",
|
state: "all",
|
||||||
labels: ["Started Migration To ProxmoxVE"]
|
labels: ["Started Migration To ProxmoxVE"]
|
||||||
});
|
});
|
||||||
|
|||||||
4
.github/workflows/close-new-script-prs.yml
generated
vendored
4
.github/workflows/close-new-script-prs.yml
generated
vendored
@@ -86,10 +86,10 @@ jobs:
|
|||||||
``,
|
``,
|
||||||
`However, **new scripts must first be submitted to our development repository** for testing and review before they can be merged here.`,
|
`However, **new scripts must first be submitted to our development repository** for testing and review before they can be merged here.`,
|
||||||
``,
|
``,
|
||||||
`> 🛑 New scripts must be submitted to [**ProxmoxVED**](https://github.com/community-scripts/ProxmoxVED) for testing.`,
|
`> 🛑 New scripts must be submitted to [**DevScripts**](https://github.com/community-scripts/DevScripts) for testing.`,
|
||||||
`> PRs without prior testing will be closed.`,
|
`> PRs without prior testing will be closed.`,
|
||||||
``,
|
``,
|
||||||
`Please open your PR at **https://github.com/community-scripts/ProxmoxVED** instead.`,
|
`Please open your PR at **https://github.com/community-scripts/DevScripts** instead.`,
|
||||||
`Once your script has been tested and approved there, it will be pushed to this repository automatically.`,
|
`Once your script has been tested and approved there, it will be pushed to this repository automatically.`,
|
||||||
``,
|
``,
|
||||||
`This PR will now be closed. Thank you for understanding! 🙏`,
|
`This PR will now be closed. Thank you for understanding! 🙏`,
|
||||||
|
|||||||
10
.github/workflows/close_issue_in_dev.yaml
generated
vendored
10
.github/workflows/close_issue_in_dev.yaml
generated
vendored
@@ -12,7 +12,7 @@ jobs:
|
|||||||
if: github.event.pull_request.merged == true && github.repository == 'community-scripts/ProxmoxVE'
|
if: github.event.pull_request.merged == true && github.repository == 'community-scripts/ProxmoxVE'
|
||||||
runs-on: self-hosted
|
runs-on: self-hosted
|
||||||
env:
|
env:
|
||||||
DEV_REPO: community-scripts/ProxmoxVED
|
DEV_REPO: community-scripts/DevScripts
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout target repo (merge commit)
|
- name: Checkout target repo (merge commit)
|
||||||
@@ -60,7 +60,7 @@ jobs:
|
|||||||
echo "count=$(printf '%s' "$slugs" | wc -w | tr -d '[:space:]')" >> "$GITHUB_OUTPUT"
|
echo "count=$(printf '%s' "$slugs" | wc -w | tr -d '[:space:]')" >> "$GITHUB_OUTPUT"
|
||||||
echo "Slugs in this PR: ${slugs:-<none>}"
|
echo "Slugs in this PR: ${slugs:-<none>}"
|
||||||
|
|
||||||
- name: Resolve the matching ProxmoxVED issue
|
- name: Resolve the matching DevScripts issue
|
||||||
id: find_issue
|
id: find_issue
|
||||||
shell: bash
|
shell: bash
|
||||||
env:
|
env:
|
||||||
@@ -71,7 +71,7 @@ jobs:
|
|||||||
# creates, so migration PRs carry an exact back-reference. Guessing from
|
# creates, so migration PRs carry an exact back-reference. Guessing from
|
||||||
# titles or file names is never needed for them.
|
# titles or file names is never needed for them.
|
||||||
matched=$(printf '%s' "$PR_BODY" \
|
matched=$(printf '%s' "$PR_BODY" \
|
||||||
| grep -oE 'community-scripts/ProxmoxVED#[0-9]+' \
|
| grep -oE 'community-scripts/(ProxmoxVED|DevScripts)#[0-9]+' \
|
||||||
| sed 's/.*#//' || true)
|
| sed 's/.*#//' || true)
|
||||||
|
|
||||||
if [ -n "$matched" ]; then
|
if [ -n "$matched" ]; then
|
||||||
@@ -96,7 +96,7 @@ jobs:
|
|||||||
[ -n "$row" ] || continue
|
[ -n "$row" ] || continue
|
||||||
num=$(printf '%s' "$row" | jq -r '.number')
|
num=$(printf '%s' "$row" | jq -r '.number')
|
||||||
|
|
||||||
# Same slug derivation the ProxmoxVED workflows use, so both
|
# Same slug derivation the DevScripts workflows use, so both
|
||||||
# sides agree on what "alpine-cinny" means.
|
# sides agree on what "alpine-cinny" means.
|
||||||
name=$(printf '%s' "$row" | jq -r '.body // ""' \
|
name=$(printf '%s' "$row" | jq -r '.body // ""' \
|
||||||
| sed -n '/^###[[:space:]]*Name of the Script/,/^###/p' \
|
| sed -n '/^###[[:space:]]*Name of the Script/,/^###/p' \
|
||||||
@@ -124,7 +124,7 @@ jobs:
|
|||||||
echo "issue_numbers=$matched" >> "$GITHUB_OUTPUT"
|
echo "issue_numbers=$matched" >> "$GITHUB_OUTPUT"
|
||||||
echo "Closing: ${matched:-<none>}"
|
echo "Closing: ${matched:-<none>}"
|
||||||
|
|
||||||
- name: Comment on and close matching ProxmoxVED issues
|
- name: Comment on and close matching DevScripts issues
|
||||||
if: steps.find_issue.outputs.issue_numbers != ''
|
if: steps.find_issue.outputs.issue_numbers != ''
|
||||||
shell: bash
|
shell: bash
|
||||||
env:
|
env:
|
||||||
|
|||||||
54
.github/workflows/scripts/generate-app-headers.sh
generated
vendored
54
.github/workflows/scripts/generate-app-headers.sh
generated
vendored
@@ -1,54 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Function for generating Figlet headers
|
|
||||||
generate_headers() {
|
|
||||||
local base_dir=$1
|
|
||||||
local target_subdir=$2
|
|
||||||
local search_pattern=$3
|
|
||||||
|
|
||||||
local headers_dir="${base_dir}/headers"
|
|
||||||
mkdir -p "$headers_dir"
|
|
||||||
rm -f "$headers_dir"/*
|
|
||||||
|
|
||||||
# Recursive or non-recursive search
|
|
||||||
if [[ "$search_pattern" == "**" ]]; then
|
|
||||||
shopt -s globstar nullglob
|
|
||||||
file_list=("${base_dir}"/**/*.sh)
|
|
||||||
shopt -u globstar
|
|
||||||
else
|
|
||||||
file_list=("${base_dir}"/*.sh)
|
|
||||||
fi
|
|
||||||
|
|
||||||
for script in "${file_list[@]}"; do
|
|
||||||
[[ -f "$script" ]] || continue
|
|
||||||
|
|
||||||
# -m1: a script that sets APP twice (the second carrying ${var_version})
|
|
||||||
# otherwise yields both lines, and the filename gets a newline in it.
|
|
||||||
app_name=$(grep -m1 -oP '^APP="\K[^"]+' "$script" 2>/dev/null)
|
|
||||||
if [[ -n "$app_name" ]]; then
|
|
||||||
# core.func/vm-core.func look the header up as "${APP,,}" without spaces,
|
|
||||||
# so the generated file has to be named after APP - not after the script.
|
|
||||||
output_file="${headers_dir}/$(echo "${app_name,,}" | tr -d ' ')"
|
|
||||||
figlet_output=$(figlet -w 500 -f slant "$app_name")
|
|
||||||
if [[ -n "$figlet_output" ]]; then
|
|
||||||
echo "$figlet_output" >"$output_file"
|
|
||||||
echo "Generated: $output_file"
|
|
||||||
else
|
|
||||||
echo "Figlet failed for $app_name in $script"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "No APP name found in $script, skipping."
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# ct
|
|
||||||
generate_headers "./ct" "headers" "*"
|
|
||||||
|
|
||||||
# tools (addon, pve, ...)
|
|
||||||
generate_headers "./tools" "headers" "**"
|
|
||||||
|
|
||||||
# vm
|
|
||||||
generate_headers "./vm" "headers" "*"
|
|
||||||
|
|
||||||
echo "Completed processing all sections."
|
|
||||||
286
CHANGELOG.md
286
CHANGELOG.md
@@ -110,6 +110,9 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -123,7 +126,14 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><h4>September (26 entries)</h4></summary>
|
<summary><h4>October (3 entries)</h4></summary>
|
||||||
|
|
||||||
|
[View October 2026 Changelog](.github/changelogs/2026/10.md)
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><h4>September (30 entries)</h4></summary>
|
||||||
|
|
||||||
[View September 2026 Changelog](.github/changelogs/2026/09.md)
|
[View September 2026 Changelog](.github/changelogs/2026/09.md)
|
||||||
|
|
||||||
@@ -549,6 +559,119 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
## 2026-10-05
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Point to DevScripts, the renamed ProxmoxVED [@MickLesk](https://github.com/MickLesk) ([#17694](https://github.com/community-scripts/ProxmoxVE/pull/17694))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- wanderer: set the proxy secret and install plugins in their own directories [@MickLesk](https://github.com/MickLesk) ([#17698](https://github.com/community-scripts/ProxmoxVE/pull/17698))
|
||||||
|
- discourse: serve stylesheets and repair the update [@MickLesk](https://github.com/MickLesk) ([#17697](https://github.com/community-scripts/ProxmoxVE/pull/17697))
|
||||||
|
- wikijs: bump Node.js from 24 to 26 [@github-actions[bot]](https://github.com/github-actions[bot]) ([#17689](https://github.com/community-scripts/ProxmoxVE/pull/17689))
|
||||||
|
- jotty: bump Node.js from 22 to 24 [@github-actions[bot]](https://github.com/github-actions[bot]) ([#17688](https://github.com/community-scripts/ProxmoxVE/pull/17688))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- Check the OS release against pve-container before creating anything [@MickLesk](https://github.com/MickLesk) ([core#93](https://github.com/community-scripts/core/pull/93))
|
||||||
|
- Rename "ProxmoxVED"-Links to "DevScripts" [@MickLesk](https://github.com/MickLesk) ([core#91](https://github.com/community-scripts/core/pull/91))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- monitor-all: read container IPs from the host side [@jasonobrien](https://github.com/jasonobrien) ([#17686](https://github.com/community-scripts/ProxmoxVE/pull/17686))
|
||||||
|
|
||||||
|
## 2026-10-04
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- immich: read the Intel runtime from the pinned release [@MickLesk](https://github.com/MickLesk) ([#17677](https://github.com/community-scripts/ProxmoxVE/pull/17677))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- better explain unsupported version & upgrade path for pve [@MickLesk](https://github.com/MickLesk) ([core#86](https://github.com/community-scripts/core/pull/86))
|
||||||
|
- Quote PostgreSQL identifiers and drop spaces from the creds file name [@MickLesk](https://github.com/MickLesk) ([core#89](https://github.com/community-scripts/core/pull/89))
|
||||||
|
- Find the default Rust toolchain in current rustup output [@MickLesk](https://github.com/MickLesk) ([core#88](https://github.com/community-scripts/core/pull/88))
|
||||||
|
|
||||||
|
## 2026-10-03
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Keeper.sh ([#17659](https://github.com/community-scripts/ProxmoxVE/pull/17659))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- hermesagent: download the installer before running it [@MickLesk](https://github.com/MickLesk) ([#17666](https://github.com/community-scripts/ProxmoxVE/pull/17666))
|
||||||
|
- frigate: raise the Node heap for the web build [@MickLesk](https://github.com/MickLesk) ([#17667](https://github.com/community-scripts/ProxmoxVE/pull/17667))
|
||||||
|
- Tracearr: workaround for failing map tiles download and data preservation [@durzo](https://github.com/durzo) ([#17661](https://github.com/community-scripts/ProxmoxVE/pull/17661))
|
||||||
|
- fix(nginxproxymanager): clean yarn cache after builds to prevent disk growth [@PsycoStea](https://github.com/PsycoStea) ([#17653](https://github.com/community-scripts/ProxmoxVE/pull/17653))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Several Scripts: refactor msg_ blocks, generate passwords with helper, add CLEAN_INSTALL_KEEP [@MickLesk](https://github.com/MickLesk) ([#17655](https://github.com/community-scripts/ProxmoxVE/pull/17655))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- detect_repo_source: read the license header and fall back to ProxmoxVE [@MickLesk](https://github.com/MickLesk) ([core#85](https://github.com/community-scripts/core/pull/85))
|
||||||
|
|
||||||
|
## 2026-10-02
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- zerobyte: upgrade Bun on update [@MickLesk](https://github.com/MickLesk) ([#17646](https://github.com/community-scripts/ProxmoxVE/pull/17646))
|
||||||
|
- sure: keep Active Storage uploads across updates [@MickLesk](https://github.com/MickLesk) ([#17648](https://github.com/community-scripts/ProxmoxVE/pull/17648))
|
||||||
|
- twenty: run upstreams upgrade command instead of the removed setup-db.ts [@MickLesk](https://github.com/MickLesk) ([#17647](https://github.com/community-scripts/ProxmoxVE/pull/17647))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- NPM: Refactor / Fix npm openresty user and certbot version [@MickLesk](https://github.com/MickLesk) ([#17649](https://github.com/community-scripts/ProxmoxVE/pull/17649))
|
||||||
|
- several scripts: use the release helpers instead of hand-rolled version checks and downloads [@MickLesk](https://github.com/MickLesk) ([#17625](https://github.com/community-scripts/ProxmoxVE/pull/17625))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- QoL: message blocks, clean-install keep list, password helper, network limits [@MickLesk](https://github.com/MickLesk) ([core#61](https://github.com/community-scripts/core/pull/61))
|
||||||
|
|
||||||
|
## 2026-10-01
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- romm: keep the asset links in sync with ROMM_BASE_PATH [@MickLesk](https://github.com/MickLesk) ([#17610](https://github.com/community-scripts/ProxmoxVE/pull/17610))
|
||||||
|
- teslamate: build from the elixir directory since 4.3.0 [@MickLesk](https://github.com/MickLesk) ([#17612](https://github.com/community-scripts/ProxmoxVE/pull/17612))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- feat(glance): add alpine os [@skilletfun](https://github.com/skilletfun) ([#17605](https://github.com/community-scripts/ProxmoxVE/pull/17605))
|
||||||
|
- feat(blocky): add alpine os [@skilletfun](https://github.com/skilletfun) ([#17637](https://github.com/community-scripts/ProxmoxVE/pull/17637))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- several scripts: apt instead of apt-get, cleanup_lxc, nginx_enable_site, drop needless daemon-reloads [@MickLesk](https://github.com/MickLesk) ([#17624](https://github.com/community-scripts/ProxmoxVE/pull/17624))
|
||||||
|
- several scripts: use setup_postgresql_db / setup_mariadb_db instead of hand-written SQL [@MickLesk](https://github.com/MickLesk) ([#17622](https://github.com/community-scripts/ProxmoxVE/pull/17622))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- Offer to raise the kernel key limits instead of only naming them [@MickLesk](https://github.com/MickLesk) ([core#81](https://github.com/community-scripts/core/pull/81))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- tools, turnkey: load core instead of the legacy misc functions [@MickLesk](https://github.com/MickLesk) ([#17621](https://github.com/community-scripts/ProxmoxVE/pull/17621))
|
||||||
|
|
||||||
|
### 📚 Documentation
|
||||||
|
|
||||||
|
- chore: drop the local header generation; headers come from core [@MickLesk](https://github.com/MickLesk) ([#17623](https://github.com/community-scripts/ProxmoxVE/pull/17623))
|
||||||
|
|
||||||
## 2026-09-30
|
## 2026-09-30
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
@@ -1139,163 +1262,4 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
### 💾 Core
|
### 💾 Core
|
||||||
|
|
||||||
- setup_go: resolve bare major.minor versions to the latest patch release [@MickLesk](https://github.com/MickLesk) ([core#24](https://github.com/community-scripts/core/pull/24))
|
- setup_go: resolve bare major.minor versions to the latest patch release [@MickLesk](https://github.com/MickLesk) ([core#24](https://github.com/community-scripts/core/pull/24))
|
||||||
|
|
||||||
## 2026-09-03
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- Immich: bump libheif and libraw [@vhsdream](https://github.com/vhsdream) ([#16996](https://github.com/community-scripts/ProxmoxVE/pull/16996))
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- romm: allow git-based npm dependency for rom-patcher under npm v12 [@MickLesk](https://github.com/MickLesk) ([#16990](https://github.com/community-scripts/ProxmoxVE/pull/16990))
|
|
||||||
- Pin Go to the version each project declares in go.mod [@MickLesk](https://github.com/MickLesk) ([#16976](https://github.com/community-scripts/ProxmoxVE/pull/16976))
|
|
||||||
- Authentik update 2026.8.1 [@thieneret](https://github.com/thieneret) ([#16980](https://github.com/community-scripts/ProxmoxVE/pull/16980))
|
|
||||||
|
|
||||||
## 2026-09-02
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- OwnTracks-Recorder ([#16967](https://github.com/community-scripts/ProxmoxVE/pull/16967))
|
|
||||||
- PeerTube ([#16966](https://github.com/community-scripts/ProxmoxVE/pull/16966))
|
|
||||||
- Kaneo ([#16965](https://github.com/community-scripts/ProxmoxVE/pull/16965))
|
|
||||||
- JDownloader ([#16964](https://github.com/community-scripts/ProxmoxVE/pull/16964))
|
|
||||||
- ReadMeABook ([#16963](https://github.com/community-scripts/ProxmoxVE/pull/16963))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Enhance backup process in teddycloud.sh [@MickLesk](https://github.com/MickLesk) ([#16946](https://github.com/community-scripts/ProxmoxVE/pull/16946))
|
|
||||||
- mealie: copy Nuxt generate output and use pnpm when lockfile is present [@mjhuff](https://github.com/mjhuff) ([#16938](https://github.com/community-scripts/ProxmoxVE/pull/16938))
|
|
||||||
- OpenThread-BR: Clean build directory before update [@tomfrenzel](https://github.com/tomfrenzel) ([#16949](https://github.com/community-scripts/ProxmoxVE/pull/16949))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- Scripts: use shared core bootstrap for final 114 Script Batch [@MickLesk](https://github.com/MickLesk) ([#16953](https://github.com/community-scripts/ProxmoxVE/pull/16953))
|
|
||||||
- Scripts: use shared core bootstrap for next 115 Script Batch [@MickLesk](https://github.com/MickLesk) ([#16952](https://github.com/community-scripts/ProxmoxVE/pull/16952))
|
|
||||||
- Scripts: use shared core bootstrap for next 115 Script Batch [@MickLesk](https://github.com/MickLesk) ([#16951](https://github.com/community-scripts/ProxmoxVE/pull/16951))
|
|
||||||
- Scripts: use shared core bootstrap for next 100 Script Batch [@MickLesk](https://github.com/MickLesk) ([#16950](https://github.com/community-scripts/ProxmoxVE/pull/16950))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- setup_meilisearch: generate a 32-byte master key [@MickLesk](https://github.com/MickLesk) ([core#20](https://github.com/community-scripts/core/pull/20))
|
|
||||||
- setup_meilisearch: generate a 32-byte master key [@MickLesk](https://github.com/MickLesk) ([core#19](https://github.com/community-scripts/core/pull/19))
|
|
||||||
- setup_nodejs: restore the npm allowScripts bypass lost in the migration [@MickLesk](https://github.com/MickLesk) ([core#18](https://github.com/community-scripts/core/pull/18))
|
|
||||||
|
|
||||||
## 2026-09-01
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- Mailpit ([#16942](https://github.com/community-scripts/ProxmoxVE/pull/16942))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Revert Aurral to Node22 [@Copilot](https://github.com/Copilot) ([#16930](https://github.com/community-scripts/ProxmoxVE/pull/16930))
|
|
||||||
- jellyfin: verify repo suite via fallback chain and use ensure_dependencies for clearer apt failures [@MickLesk](https://github.com/MickLesk) ([#16916](https://github.com/community-scripts/ProxmoxVE/pull/16916))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- Move the next 25 scripts onto the core engine [@MickLesk](https://github.com/MickLesk) ([#16934](https://github.com/community-scripts/ProxmoxVE/pull/16934))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- Generate app headers [@github-actions[bot]](https://github.com/github-actions[bot]) ([core#15](https://github.com/community-scripts/core/pull/15))
|
|
||||||
- Report the exit code the engine actually saw [@MickLesk](https://github.com/MickLesk) ([core#17](https://github.com/community-scripts/core/pull/17))
|
|
||||||
- Silence npm's update notice so the real error stays visible [@MickLesk](https://github.com/MickLesk) ([core#16](https://github.com/community-scripts/core/pull/16))
|
|
||||||
|
|
||||||
### 🧰 Tools
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- fix(add-iptag): merge live IPv4 addresses for running LXCs [@phillf](https://github.com/phillf) ([#16691](https://github.com/community-scripts/ProxmoxVE/pull/16691))
|
|
||||||
|
|
||||||
## 2026-08-31
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- Aurral ([#16908](https://github.com/community-scripts/ProxmoxVE/pull/16908))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- openwebui: add UV_HTTP_TIMEOUT and retry loop to prevent uv install hangs [@MickLesk](https://github.com/MickLesk) ([#16917](https://github.com/community-scripts/ProxmoxVE/pull/16917))
|
|
||||||
- bambuddy: force asyncio loop, uvloop breaks camera proxy handlers [@MickLesk](https://github.com/MickLesk) ([#16904](https://github.com/community-scripts/ProxmoxVE/pull/16904))
|
|
||||||
- bookorbit: raise service start timeout, migration can exceed systemd default [@MickLesk](https://github.com/MickLesk) ([#16860](https://github.com/community-scripts/ProxmoxVE/pull/16860))
|
|
||||||
- node-red: remove --unsafe-perm flag [@MickLesk](https://github.com/MickLesk) ([#16859](https://github.com/community-scripts/ProxmoxVE/pull/16859))
|
|
||||||
- directus: add build-essential dependency [@MickLesk](https://github.com/MickLesk) ([#16858](https://github.com/community-scripts/ProxmoxVE/pull/16858))
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- haos-vm: add optional x86-64-v2-AES CPU option, future HA numpy builds need it [@MickLesk](https://github.com/MickLesk) ([#16868](https://github.com/community-scripts/ProxmoxVE/pull/16868))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- omv: migrate to new package repo host (packages.openmediavault.org) is dead [@MickLesk](https://github.com/MickLesk) ([#16918](https://github.com/community-scripts/ProxmoxVE/pull/16918))
|
|
||||||
- yuvomi/aurral: bump NODE_VERSION [@MickLesk](https://github.com/MickLesk) ([#16914](https://github.com/community-scripts/ProxmoxVE/pull/16914))
|
|
||||||
- vaultwarden: relax cargo release profile via env vars to avoid build OOM [@MickLesk](https://github.com/MickLesk) ([#16915](https://github.com/community-scripts/ProxmoxVE/pull/16915))
|
|
||||||
- kima-hub/maintainerr/planka/spliit: bump NODE_VERSION [@MickLesk](https://github.com/MickLesk) ([#16905](https://github.com/community-scripts/ProxmoxVE/pull/16905))
|
|
||||||
- gatus: pin Go toolchain to gatus's own go.mod version [@MickLesk](https://github.com/MickLesk) ([#16893](https://github.com/community-scripts/ProxmoxVE/pull/16893))
|
|
||||||
- immich: tolerate enable-maintenance-mode crash, same as disable-maintenance-mode [@MickLesk](https://github.com/MickLesk) ([#16866](https://github.com/community-scripts/ProxmoxVE/pull/16866))
|
|
||||||
- move the hardware-accelerated scripts onto new core [@MickLesk](https://github.com/MickLesk) ([#16864](https://github.com/community-scripts/ProxmoxVE/pull/16864))
|
|
||||||
- ntopng: use ntop.org's documented apt repo per Debian codename, not always apt-stable [@MickLesk](https://github.com/MickLesk) ([#16862](https://github.com/community-scripts/ProxmoxVE/pull/16862))
|
|
||||||
- Refactor: OpenGist [@MickLesk](https://github.com/MickLesk) ([#16861](https://github.com/community-scripts/ProxmoxVE/pull/16861))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- Refactor VM script settings and fix load_functions errors [@MickLesk](https://github.com/MickLesk) ([core#13](https://github.com/community-scripts/core/pull/13))
|
|
||||||
- Ask ProxmoxVE to refresh its changelog on merge [@MickLesk](https://github.com/MickLesk) ([core#11](https://github.com/community-scripts/core/pull/11))
|
|
||||||
- Lift the settings summary and the mode fork into vm-core [@MickLesk](https://github.com/MickLesk) ([core#12](https://github.com/community-scripts/core/pull/12))
|
|
||||||
|
|
||||||
### 🧰 Tools
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- filebrowser-quantum: strip removed disableIndexing key on update, restart service [@MickLesk](https://github.com/MickLesk) ([#16892](https://github.com/community-scripts/ProxmoxVE/pull/16892))
|
|
||||||
|
|
||||||
### 📚 Documentation
|
|
||||||
|
|
||||||
- Include engine pull requests in the changelog [@MickLesk](https://github.com/MickLesk) ([#16867](https://github.com/community-scripts/ProxmoxVE/pull/16867))
|
|
||||||
|
|
||||||
## 2026-08-30
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- SolidInvoice ([#16869](https://github.com/community-scripts/ProxmoxVE/pull/16869))
|
|
||||||
- Super-Productivity ([#16870](https://github.com/community-scripts/ProxmoxVE/pull/16870))
|
|
||||||
- Defguard ([#16871](https://github.com/community-scripts/ProxmoxVE/pull/16871))
|
|
||||||
- OpenBao ([#16872](https://github.com/community-scripts/ProxmoxVE/pull/16872))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- general: remove gitea links overall [@MickLesk](https://github.com/MickLesk) ([#16863](https://github.com/community-scripts/ProxmoxVE/pull/16863))
|
|
||||||
|
|
||||||
## 2026-08-29
|
|
||||||
|
|
||||||
### 📚 Documentation
|
|
||||||
|
|
||||||
- github action: post the command that tests a ct/ or install/ change [@MickLesk](https://github.com/MickLesk) ([#16833](https://github.com/community-scripts/ProxmoxVE/pull/16833))
|
|
||||||
|
|
||||||
## 2026-08-28
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- homepage: set CI=true so pnpm can self-heal node_modules without a TTY [@MickLesk](https://github.com/MickLesk) ([#16841](https://github.com/community-scripts/ProxmoxVE/pull/16841))
|
|
||||||
- droppedneedle: launch via automatic_upgrade orchestrator [@MickLesk](https://github.com/MickLesk) ([#16834](https://github.com/community-scripts/ProxmoxVE/pull/16834))
|
|
||||||
- calibre-web: point cps at explicit db path, src-layout package has no default anymore [@MickLesk](https://github.com/MickLesk) ([#16832](https://github.com/community-scripts/ProxmoxVE/pull/16832))
|
|
||||||
- podman: pull portainer images before systemd unit start to avoid start timeout [@MickLesk](https://github.com/MickLesk) ([#16831](https://github.com/community-scripts/ProxmoxVE/pull/16831))
|
|
||||||
- gitea: make gitea own its home dir instead of toggling group perms [@MickLesk](https://github.com/MickLesk) ([#16830](https://github.com/community-scripts/ProxmoxVE/pull/16830))
|
|
||||||
- pve-ups: fix: add pip binary [@CrazyWolf13](https://github.com/CrazyWolf13) ([#16820](https://github.com/community-scripts/ProxmoxVE/pull/16820))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- Refactor: Calibre-Web database creation [@MickLesk](https://github.com/MickLesk) ([#16842](https://github.com/community-scripts/ProxmoxVE/pull/16842))
|
|
||||||
- mastodon: read .ruby-version dynamically instead of hardcoding 4.0.5 [@MickLesk](https://github.com/MickLesk) ([#16829](https://github.com/community-scripts/ProxmoxVE/pull/16829))
|
|
||||||
@@ -9,13 +9,13 @@ For detailed coding standards and full documentation, visit **[community-scripts
|
|||||||
## How Can I Help?
|
## How Can I Help?
|
||||||
|
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> **New scripts** must always be submitted to [ProxmoxVED](https://github.com/community-scripts/ProxmoxVED) first — not to this repository.
|
> **New scripts** must always be submitted to [DevScripts](https://github.com/community-scripts/DevScripts) first — not to this repository.
|
||||||
> PRs with new scripts opened directly against ProxmoxVE **will be closed without review**.
|
> PRs with new scripts opened directly against ProxmoxVE **will be closed without review**.
|
||||||
> **Bug fixes, improvements, and features for existing scripts** go here (ProxmoxVE).
|
> **Bug fixes, improvements, and features for existing scripts** go here (ProxmoxVE).
|
||||||
|
|
||||||
| I want to… | Where to go |
|
| I want to… | Where to go |
|
||||||
| :------------------------------------------ | :------------------------------------------------------------------------------------------- |
|
| :------------------------------------------ | :------------------------------------------------------------------------------------------- |
|
||||||
| **Add a brand-new script** | [ProxmoxVED](https://github.com/community-scripts/ProxmoxVED) — testing repo for new scripts |
|
| **Add a brand-new script** | [DevScripts](https://github.com/community-scripts/DevScripts) — testing repo for new scripts |
|
||||||
| **Fix a bug or improve an existing script** | This repo (ProxmoxVE) — open a PR here |
|
| **Fix a bug or improve an existing script** | This repo (ProxmoxVE) — open a PR here |
|
||||||
| **Add a feature to an existing script** | This repo (ProxmoxVE) — open a PR here |
|
| **Add a feature to an existing script** | This repo (ProxmoxVE) — open a PR here |
|
||||||
| Report a bug or broken script | [Open an Issue](https://github.com/community-scripts/ProxmoxVE/issues) |
|
| Report a bug or broken script | [Open an Issue](https://github.com/community-scripts/ProxmoxVE/issues) |
|
||||||
@@ -55,13 +55,13 @@ Use existing scripts in [`ct/`](ct/) and [`install/`](install/) as reference. Fu
|
|||||||
|
|
||||||
New scripts are **not accepted directly in this repository**. The workflow is:
|
New scripts are **not accepted directly in this repository**. The workflow is:
|
||||||
|
|
||||||
1. Fork [ProxmoxVED](https://github.com/community-scripts/ProxmoxVED) and clone it
|
1. Fork [DevScripts](https://github.com/community-scripts/DevScripts) and clone it
|
||||||
2. Create a branch: `git switch -c feat/myapp`
|
2. Create a branch: `git switch -c feat/myapp`
|
||||||
3. Write your two script files:
|
3. Write your two script files:
|
||||||
- `ct/myapp.sh`
|
- `ct/myapp.sh`
|
||||||
- `install/myapp-install.sh`
|
- `install/myapp-install.sh`
|
||||||
4. Test thoroughly in ProxmoxVED — run the script against a real Proxmox instance
|
4. Test thoroughly in DevScripts — run the script against a real Proxmox instance
|
||||||
5. Open a PR in **ProxmoxVED** for review and testing
|
5. Open a PR in **DevScripts** for review and testing
|
||||||
6. Once accepted and verified there, the script will be promoted to ProxmoxVE by maintainers
|
6. Once accepted and verified there, the script will be promoted to ProxmoxVE by maintainers
|
||||||
|
|
||||||
Follow the coding standards at [community-scripts.org/docs/contribution](https://community-scripts.org/docs/contribution).
|
Follow the coding standards at [community-scripts.org/docs/contribution](https://community-scripts.org/docs/contribution).
|
||||||
@@ -193,5 +193,5 @@ create` still ran and the container was still built.
|
|||||||
- **Website metadata** (name, description, logo, tags) is managed via the website — use the "Report Issue" link on any script page to request changes. Do not submit metadata changes via repo files.
|
- **Website metadata** (name, description, logo, tags) is managed via the website — use the "Report Issue" link on any script page to request changes. Do not submit metadata changes via repo files.
|
||||||
- **JSON files** in `json/` define script properties used by the website. See existing files for structure reference.
|
- **JSON files** in `json/` define script properties used by the website. See existing files for structure reference.
|
||||||
- Keep PRs small and focused. One fix or feature per PR is ideal.
|
- Keep PRs small and focused. One fix or feature per PR is ideal.
|
||||||
- PRs with **new scripts** opened against ProxmoxVE will be closed — submit them to [ProxmoxVED](https://github.com/community-scripts/ProxmoxVED) instead.
|
- PRs with **new scripts** opened against ProxmoxVE will be closed — submit them to [DevScripts](https://github.com/community-scripts/DevScripts) instead.
|
||||||
- PRs that fail CI checks will not be merged.
|
- PRs that fail CI checks will not be merged.
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ This project runs on community contributions. Whether you want to write new scri
|
|||||||
|
|
||||||
| I want to… | Go here |
|
| I want to… | Go here |
|
||||||
| ------------------------------------- | ------------------------------------------------------------------------------------------------- |
|
| ------------------------------------- | ------------------------------------------------------------------------------------------------- |
|
||||||
| Add a **new** script | [ProxmoxVED](https://github.com/community-scripts/ProxmoxVED) — new scripts are tested here first |
|
| Add a **new** script | [DevScripts](https://github.com/community-scripts/DevScripts) — new scripts are tested here first |
|
||||||
| Fix or improve an **existing** script | [Contributing Guidelines](CONTRIBUTING.md) — open a PR in this repo |
|
| Fix or improve an **existing** script | [Contributing Guidelines](CONTRIBUTING.md) — open a PR in this repo |
|
||||||
| Report a bug or broken script | [Issues](https://github.com/community-scripts/ProxmoxVE/issues) |
|
| Report a bug or broken script | [Issues](https://github.com/community-scripts/ProxmoxVE/issues) |
|
||||||
| Request a new script or feature | [Discussions](https://github.com/community-scripts/ProxmoxVE/discussions) |
|
| Request a new script or feature | [Discussions](https://github.com/community-scripts/ProxmoxVE/discussions) |
|
||||||
@@ -102,7 +102,7 @@ This project runs on community contributions. Whether you want to write new scri
|
|||||||
|
|
||||||
### Before you open a PR
|
### Before you open a PR
|
||||||
|
|
||||||
- **New scripts go to [ProxmoxVED](https://github.com/community-scripts/ProxmoxVED), not here.** PRs with new scripts opened directly against this repo will be closed.
|
- **New scripts go to [DevScripts](https://github.com/community-scripts/DevScripts), not here.** PRs with new scripts opened directly against this repo will be closed.
|
||||||
- Bug fixes and improvements to existing scripts belong in this repo — read the [Contributing Guidelines](CONTRIBUTING.md) first.
|
- Bug fixes and improvements to existing scripts belong in this repo — read the [Contributing Guidelines](CONTRIBUTING.md) first.
|
||||||
- Keep PRs focused. One fix or feature per PR.
|
- Keep PRs focused. One fix or feature per PR.
|
||||||
- Document what your script installs and any non-obvious decisions in the corresponding JSON metadata file.
|
- Document what your script installs and any non-obvious decisions in the corresponding JSON metadata file.
|
||||||
|
|||||||
@@ -54,8 +54,9 @@ function update_script() {
|
|||||||
$STD uv venv --clear .venv
|
$STD uv venv --clear .venv
|
||||||
$STD .venv/bin/python -m ensurepip --upgrade
|
$STD .venv/bin/python -m ensurepip --upgrade
|
||||||
fi
|
fi
|
||||||
$STD uv pip install --python .venv/bin/python -r requirements.txt
|
$STD .venv/bin/python -m pip install --upgrade pip
|
||||||
$STD uv pip install --python .venv/bin/python 'djangorestframework<3.15'
|
$STD .venv/bin/python -m pip install -r requirements.txt
|
||||||
|
$STD .venv/bin/python -m pip install 'djangorestframework<3.15'
|
||||||
$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
|
||||||
|
|
||||||
|
|||||||
@@ -36,9 +36,9 @@ function update_script() {
|
|||||||
systemctl stop airtrail
|
systemctl stop airtrail
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
create_backup /opt/airtrail/.env /opt/airtrail/uploads
|
create_backup /opt/airtrail/.env
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "airtrail" "johanohly/AirTrail" "tarball" "latest" "/opt/airtrail"
|
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="uploads" fetch_and_deploy_gh_release "airtrail" "johanohly/AirTrail" "tarball" "latest" "/opt/airtrail"
|
||||||
|
|
||||||
restore_backup
|
restore_backup
|
||||||
|
|
||||||
|
|||||||
@@ -48,9 +48,7 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Setting up SSH Public Key for backup user"
|
echo -e "${INFO}${YW}Please paste your SSH public key (e.g., ssh-rsa AAAAB3... user@host):${CL}"
|
||||||
|
|
||||||
msg_info "Please paste your SSH public key (e.g., ssh-rsa AAAAB3... user@host): \n"
|
|
||||||
read -p "Key: " SSH_PUBLIC_KEY
|
read -p "Key: " SSH_PUBLIC_KEY
|
||||||
echo
|
echo
|
||||||
|
|
||||||
|
|||||||
@@ -29,20 +29,13 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/sharevb/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4)
|
if [[ -f /opt/${APP}_version.txt ]]; then
|
||||||
if [ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ] || [ ! -f /opt/${APP}_version.txt ]; then
|
mv /opt/"${APP}_version.txt" ~/.it-tools
|
||||||
msg_info "Updating ${APP} LXC"
|
fi
|
||||||
curl -fsSL "https://github.com/sharevb/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip" -o it-tools.zip
|
|
||||||
mkdir -p /usr/share/nginx/html
|
if check_for_gh_release "it-tools" "sharevb/it-tools"; then
|
||||||
rm -rf /usr/share/nginx/html/*
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "it-tools" "sharevb/it-tools" "prebuild" "latest" "/usr/share/nginx/html" "it-tools-*.zip"
|
||||||
$STD unzip it-tools.zip -d /tmp
|
|
||||||
cp -r /tmp/dist/* /usr/share/nginx/html
|
|
||||||
rm -rf /tmp/dist
|
|
||||||
rm -f it-tools.zip
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ function update_script() {
|
|||||||
|
|
||||||
msg_warn "⚠️ ${APP} has been migrated to an addon script."
|
msg_warn "⚠️ ${APP} has been migrated to an addon script."
|
||||||
echo ""
|
echo ""
|
||||||
msg_info "This is a one-time migration. After this, you can update ${APP} anytime with:"
|
echo -e "${INFO}${YW}This is a one-time migration. After this, you can update ${APP} anytime with:${CL}"
|
||||||
echo -e "${TAB}${TAB}${GN}update_komodo${CL} or ${GN}bash <(curl -fsSL ${ADDON_SCRIPT})${CL}"
|
echo -e "${TAB}${TAB}${GN}update_komodo${CL} or ${GN}bash <(curl -fsSL ${ADDON_SCRIPT})${CL}"
|
||||||
echo ""
|
echo ""
|
||||||
read -r -p "${TAB}Migrate update function now? [y/N]: " CONFIRM
|
read -r -p "${TAB}Migrate update function now? [y/N]: " CONFIRM
|
||||||
@@ -62,7 +62,7 @@ MIGRATION_EOF
|
|||||||
ln -sf /usr/bin/update /usr/bin/update_komodo 2>/dev/null || true
|
ln -sf /usr/bin/update /usr/bin/update_komodo 2>/dev/null || true
|
||||||
msg_ok "Migration complete"
|
msg_ok "Migration complete"
|
||||||
|
|
||||||
msg_info "Running addon update"
|
echo -e "${INFO}${YW}Running addon update${CL}"
|
||||||
type=update bash <(curl -fsSL "${ADDON_SCRIPT}")
|
type=update bash <(curl -fsSL "${ADDON_SCRIPT}")
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,8 +29,7 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/muety/wakapi/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
if check_for_gh_release "wakapi" "muety/wakapi"; then
|
||||||
if [ "${RELEASE}" != "$(cat ~/.wakapi 2>/dev/null)" ] || [ ! -f ~/.wakapi ]; then
|
|
||||||
msg_info "Stopping Wakapi Service"
|
msg_info "Stopping Wakapi Service"
|
||||||
$STD rc-service wakapi stop
|
$STD rc-service wakapi stop
|
||||||
msg_ok "Stopped Wakapi Service"
|
msg_ok "Stopped Wakapi Service"
|
||||||
@@ -39,26 +38,14 @@ function update_script() {
|
|||||||
$STD apk -U upgrade
|
$STD apk -U upgrade
|
||||||
msg_ok "Updated Wakapi LXC"
|
msg_ok "Updated Wakapi LXC"
|
||||||
|
|
||||||
msg_info "Creating backup"
|
create_backup /opt/wakapi/config.yml /opt/wakapi/wakapi_db.db
|
||||||
mkdir -p /opt/wakapi-backup
|
|
||||||
cp /opt/wakapi/config.yml /opt/wakapi/wakapi_db.db /opt/wakapi-backup/
|
|
||||||
msg_ok "Created backup"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "wakapi" "muety/wakapi" "prebuild" "latest" "/opt/wakapi" "wakapi_linux_$(arch_resolve).zip"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "wakapi" "muety/wakapi" "prebuild" "latest" "/opt/wakapi" "wakapi_linux_$(arch_resolve).zip"
|
||||||
|
restore_backup
|
||||||
msg_info "Configuring Wakapi"
|
|
||||||
cd /opt/wakapi
|
|
||||||
cp /opt/wakapi-backup/config.yml /opt/wakapi/
|
|
||||||
cp /opt/wakapi-backup/wakapi_db.db /opt/wakapi/
|
|
||||||
rm -rf /opt/wakapi-backup
|
|
||||||
msg_ok "Configured Wakapi"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
$STD rc-service wakapi start
|
$STD rc-service wakapi start
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
msg_ok "Updated successfully"
|
msg_ok "Updated successfully"
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
msg_info "Updating Apache CouchDB"
|
msg_info "Updating Apache CouchDB"
|
||||||
apt_update_safe
|
apt_update_safe
|
||||||
$STD apt-get install -y --only-upgrade couchdb
|
$STD apt install -y --only-upgrade couchdb
|
||||||
msg_ok "Updated Apache CouchDB"
|
msg_ok "Updated Apache CouchDB"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -136,7 +136,6 @@ function update_script() {
|
|||||||
export UV_COMPILE_BYTECODE="1"
|
export UV_COMPILE_BYTECODE="1"
|
||||||
export UV_LINK_MODE="copy"
|
export UV_LINK_MODE="copy"
|
||||||
export UV_NATIVE_TLS="1"
|
export UV_NATIVE_TLS="1"
|
||||||
export UV_HTTP_TIMEOUT="300"
|
|
||||||
export RUSTUP_PERMIT_COPY_RENAME="true"
|
export RUSTUP_PERMIT_COPY_RENAME="true"
|
||||||
export UV_PYTHON_INSTALL_DIR="/usr/local/bin"
|
export UV_PYTHON_INSTALL_DIR="/usr/local/bin"
|
||||||
cd /opt/authentik
|
cd /opt/authentik
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ function update_script() {
|
|||||||
mkdir -p "$INSTALL_DIR"/metadata_temp
|
mkdir -p "$INSTALL_DIR"/metadata_temp
|
||||||
$STD tar -xf ~/autocaliweb_bkp.tar --directory /
|
$STD tar -xf ~/autocaliweb_bkp.tar --directory /
|
||||||
KEPUB_VERSION="$(/usr/bin/kepubify --version)"
|
KEPUB_VERSION="$(/usr/bin/kepubify --version)"
|
||||||
CALIBRE_RELEASE="$(curl -s https://api.github.com/repos/kovidgoyal/calibre/releases/latest | grep -o '"tag_name": "[^"]*' | cut -d'"' -f4)"
|
CALIBRE_RELEASE="$(get_latest_github_release "kovidgoyal/calibre")"
|
||||||
echo "${KEPUB_VERSION#v}" >"$INSTALL_DIR"/KEPUBIFY_RELEASE
|
echo "${KEPUB_VERSION#v}" >"$INSTALL_DIR"/KEPUBIFY_RELEASE
|
||||||
echo "${CALIBRE_RELEASE#v}" >/"$INSTALL_DIR"/CALIBRE_RELEASE
|
echo "${CALIBRE_RELEASE#v}" >/"$INSTALL_DIR"/CALIBRE_RELEASE
|
||||||
sed 's/^/v/' ~/.autocaliweb >"$INSTALL_DIR"/ACW_RELEASE
|
sed 's/^/v/' ~/.autocaliweb >"$INSTALL_DIR"/ACW_RELEASE
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ function update_script() {
|
|||||||
if check_for_gh_release "beszel" "henrygd/beszel"; then
|
if check_for_gh_release "beszel" "henrygd/beszel"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop beszel-hub
|
systemctl stop beszel-hub
|
||||||
msg_info "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Updating Beszel"
|
msg_info "Updating Beszel"
|
||||||
$STD /opt/beszel/beszel update
|
$STD /opt/beszel/beszel update
|
||||||
|
|||||||
@@ -75,8 +75,7 @@ update_deb_based() {
|
|||||||
|
|
||||||
msg_info "Configuring 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) }')
|
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=v$(cat ~/.bitmagnet)"
|
||||||
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
|
|
||||||
chmod +x bitmagnet
|
chmod +x bitmagnet
|
||||||
msg_ok "Configured Bitmagnet"
|
msg_ok "Configured Bitmagnet"
|
||||||
|
|
||||||
@@ -92,8 +91,10 @@ update_alpine() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
if [[ -f /opt/bitmagnet_version.txt ]]; then
|
||||||
if [ "${RELEASE}" != "$(cat /opt/bitmagnet_version.txt)" ] || [ ! -f /opt/bitmagnet_version.txt ]; then
|
mv /opt/bitmagnet_version.txt ~/.bitmagnet
|
||||||
|
fi
|
||||||
|
if check_for_gh_release "bitmagnet" "bitmagnet-io/bitmagnet"; then
|
||||||
msg_info "Backing up database"
|
msg_info "Backing up database"
|
||||||
rm -f /tmp/backup.sql
|
rm -f /tmp/backup.sql
|
||||||
$STD sudo -u postgres pg_dump \
|
$STD sudo -u postgres pg_dump \
|
||||||
@@ -119,27 +120,25 @@ update_alpine() {
|
|||||||
mv /tmp/backup.sql /opt/
|
mv /tmp/backup.sql /opt/
|
||||||
msg_ok "Database backed up"
|
msg_ok "Database backed up"
|
||||||
|
|
||||||
msg_info "Updating ${APP} from $(cat /opt/bitmagnet_version.txt) to ${RELEASE}"
|
msg_info "Stopping Service"
|
||||||
$STD apk -U upgrade
|
$STD apk -U upgrade
|
||||||
$STD service bitmagnet stop
|
$STD service bitmagnet stop
|
||||||
[ -f /opt/bitmagnet/.env ] && cp /opt/bitmagnet/.env /opt/
|
msg_ok "Stopped Service"
|
||||||
[ -f /opt/bitmagnet/config.yml ] && cp /opt/bitmagnet/config.yml /opt/
|
|
||||||
rm -rf /opt/bitmagnet/*
|
create_backup /opt/bitmagnet/.env /opt/bitmagnet/config.yml
|
||||||
temp_file=$(mktemp)
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet" "tarball"
|
||||||
curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
restore_backup
|
||||||
tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet
|
|
||||||
|
msg_info "Building ${APP}"
|
||||||
cd /opt/bitmagnet
|
cd /opt/bitmagnet
|
||||||
VREL=v$RELEASE
|
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=v$(cat ~/.bitmagnet)"
|
||||||
$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 "Built ${APP}"
|
||||||
[ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
|
|
||||||
rm -f "$temp_file"
|
msg_info "Starting Service"
|
||||||
echo "${RELEASE}" >/opt/bitmagnet_version.txt
|
|
||||||
$STD service bitmagnet start
|
$STD service bitmagnet start
|
||||||
|
msg_ok "Started Service"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
53
ct/blocky.sh
53
ct/blocky.sh
@@ -9,22 +9,30 @@ source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_
|
|||||||
APP="Blocky"
|
APP="Blocky"
|
||||||
var_tags="${var_tags:-adblock}"
|
var_tags="${var_tags:-adblock}"
|
||||||
var_cpu="${var_cpu:-1}"
|
var_cpu="${var_cpu:-1}"
|
||||||
var_ram="${var_ram:-512}"
|
|
||||||
var_disk="${var_disk:-2}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-13}"
|
|
||||||
var_arm64="${var_arm64:-yes}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
if [[ -z "${var_os:-}" ]] && command -v pveversion >/dev/null 2>&1; then
|
||||||
|
var_os=$(msg_menu "Choose the container OS" \
|
||||||
|
"debian" "Debian 13" \
|
||||||
|
"alpine" "Alpine 3.24 (smaller footprint)")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${var_os:-}" == "alpine" ]]; then
|
||||||
|
var_ram="${var_ram:-256}"
|
||||||
|
var_disk="${var_disk:-2}"
|
||||||
|
var_version="${var_version:-3.24}"
|
||||||
|
else
|
||||||
|
var_ram="${var_ram:-512}"
|
||||||
|
var_disk="${var_disk:-2}"
|
||||||
|
var_version="${var_version:-13}"
|
||||||
|
fi
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
update_deb_based() {
|
||||||
header_info
|
|
||||||
check_container_storage
|
|
||||||
check_container_resources
|
|
||||||
if [[ ! -d /opt/blocky ]]; then
|
if [[ ! -d /opt/blocky ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
@@ -46,6 +54,35 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
update_alpine() {
|
||||||
|
if [[ ! -d /opt/blocky ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
if check_for_gh_release "blocky" "0xERR0R/blocky"; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
rc-service blocky stop
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
create_backup /opt/blocky/config.yml
|
||||||
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_$(arch_resolve "x86_64" "arm64").tar.gz"
|
||||||
|
restore_backup
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
rc-service blocky start
|
||||||
|
msg_ok "Started Service"
|
||||||
|
msg_ok "Updated successfully!"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
run_os_update
|
||||||
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
build_container
|
build_container
|
||||||
description
|
description
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
msg_info "Updating ${APP} LXC"
|
msg_info "Updating ${APP} LXC"
|
||||||
apt_update_safe
|
apt_update_safe
|
||||||
$STD apt-get -y upgrade
|
$STD apt -y upgrade
|
||||||
msg_ok "Updated ${APP} LXC"
|
msg_ok "Updated ${APP} LXC"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -56,11 +56,12 @@ function update_script() {
|
|||||||
rm -rf "$VENV_PATH"
|
rm -rf "$VENV_PATH"
|
||||||
$STD uv venv --clear "$VENV_PATH"
|
$STD uv venv --clear "$VENV_PATH"
|
||||||
$STD "$VENV_PATH/bin/python" -m ensurepip --upgrade
|
$STD "$VENV_PATH/bin/python" -m ensurepip --upgrade
|
||||||
$STD uv pip install --python "$VENV_PATH/bin/python" changedetection.io playwright
|
$STD "$VENV_PATH/bin/python" -m pip install --upgrade pip
|
||||||
|
$STD "$VENV_PATH/bin/python" -m pip install changedetection.io playwright
|
||||||
msg_ok "Migrated to uv/venv"
|
msg_ok "Migrated to uv/venv"
|
||||||
else
|
else
|
||||||
msg_info "Updating ${APP}"
|
msg_info "Updating ${APP}"
|
||||||
$STD uv pip install --python "$VENV_PATH/bin/python" --upgrade changedetection.io playwright
|
$STD "$VENV_PATH/bin/python" -m pip install --upgrade changedetection.io playwright
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -38,11 +38,9 @@ function update_script() {
|
|||||||
systemctl stop nginx "$PHP_FPM_SERVICE"
|
systemctl stop nginx "$PHP_FPM_SERVICE"
|
||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
create_backup /opt/chevereto/app/env.php \
|
create_backup /opt/chevereto/app/env.php /opt/chevereto/content
|
||||||
/opt/chevereto/images \
|
|
||||||
/opt/chevereto/content
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "chevereto" "chevereto/chevereto" "tarball"
|
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="images" fetch_and_deploy_gh_release "chevereto" "chevereto/chevereto" "tarball"
|
||||||
|
|
||||||
restore_backup
|
restore_backup
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ function update_script() {
|
|||||||
if check_for_gh_release "cloudreve" "cloudreve/cloudreve"; then
|
if check_for_gh_release "cloudreve" "cloudreve/cloudreve"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop cloudreve
|
systemctl stop cloudreve
|
||||||
msg_info "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "cloudreve" "cloudreve/cloudreve" "prebuild" "latest" "/opt/cloudreve" "*linux_$(arch_resolve).tar.gz"
|
fetch_and_deploy_gh_release "cloudreve" "cloudreve/cloudreve" "prebuild" "latest" "/opt/cloudreve" "*linux_$(arch_resolve).tar.gz"
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ function update_script() {
|
|||||||
if check_for_gh_release "ConvertX" "C4illin/ConvertX"; then
|
if check_for_gh_release "ConvertX" "C4illin/ConvertX"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop convertx
|
systemctl stop convertx
|
||||||
msg_info "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
ensure_dependencies libreoffice-writer dasel graphicsmagick libemail-outlook-message-perl libheif-examples libjxl-tools resvg
|
ensure_dependencies libreoffice-writer dasel graphicsmagick libemail-outlook-message-perl libheif-examples libjxl-tools resvg
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ function update_script() {
|
|||||||
|
|
||||||
msg_warn "⚠️ ${APP} has been migrated to an addon script."
|
msg_warn "⚠️ ${APP} has been migrated to an addon script."
|
||||||
echo ""
|
echo ""
|
||||||
msg_info "This is a one-time migration. After this, you can update ${APP} anytime with:"
|
echo -e "${INFO}${YW}This is a one-time migration. After this, you can update ${APP} anytime with:${CL}"
|
||||||
echo -e "${TAB}${TAB}${GN}update_coolify${CL} or ${GN}bash <(curl -fsSL ${ADDON_SCRIPT})${CL}"
|
echo -e "${TAB}${TAB}${GN}update_coolify${CL} or ${GN}bash <(curl -fsSL ${ADDON_SCRIPT})${CL}"
|
||||||
echo ""
|
echo ""
|
||||||
read -r -p "${TAB}Migrate update function now? [y/N]: " CONFIRM
|
read -r -p "${TAB}Migrate update function now? [y/N]: " CONFIRM
|
||||||
@@ -58,7 +58,7 @@ MIGRATION_EOF
|
|||||||
ln -sf /usr/bin/update /usr/bin/update_coolify 2>/dev/null || true
|
ln -sf /usr/bin/update /usr/bin/update_coolify 2>/dev/null || true
|
||||||
msg_ok "Migration complete"
|
msg_ok "Migration complete"
|
||||||
|
|
||||||
msg_info "Running addon update"
|
echo -e "${INFO}${YW}Running addon update${CL}"
|
||||||
type=update bash <(curl -fsSL "${ADDON_SCRIPT}")
|
type=update bash <(curl -fsSL "${ADDON_SCRIPT}")
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,18 +33,11 @@ function update_script() {
|
|||||||
if check_for_gh_release "cryptpad" "cryptpad/cryptpad"; then
|
if check_for_gh_release "cryptpad" "cryptpad/cryptpad"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop cryptpad
|
systemctl stop cryptpad
|
||||||
msg_info "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
create_backup /opt/cryptpad/config/config.js \
|
create_backup /opt/cryptpad/config/config.js /opt/cryptpad/www/common/onlyoffice/dist
|
||||||
/opt/cryptpad/blob \
|
|
||||||
/opt/cryptpad/block \
|
|
||||||
/opt/cryptpad/customize \
|
|
||||||
/opt/cryptpad/data \
|
|
||||||
/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 CLEAN_INSTALL_KEEP="blob block customize data datastore onlyoffice-conf" fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad" "tarball"
|
||||||
|
|
||||||
restore_backup
|
restore_backup
|
||||||
|
|
||||||
|
|||||||
@@ -36,28 +36,35 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Stopping Service"
|
if grep -q 'X-Accel-Mapping' /etc/nginx/sites-available/discourse 2>/dev/null; then
|
||||||
systemctl stop discourse
|
msg_info "Fixing stylesheet delivery in Nginx"
|
||||||
msg_ok "Stopped Service"
|
sed -i '/X-Accel-Mapping/d' /etc/nginx/sites-available/discourse
|
||||||
|
$STD systemctl reload nginx
|
||||||
|
msg_ok "Fixed stylesheet delivery in Nginx"
|
||||||
|
fi
|
||||||
|
|
||||||
create_backup /opt/discourse/.env
|
msg_info "Stopping Services"
|
||||||
|
systemctl stop discourse discourse-sidekiq
|
||||||
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
msg_info "Updating Discourse"
|
msg_info "Updating Discourse"
|
||||||
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
|
|
||||||
cd /opt/discourse
|
cd /opt/discourse
|
||||||
git pull origin main
|
export PATH="$HOME/.rbenv/bin:$HOME/.rbenv/shims:$PATH"
|
||||||
$STD bundle install --deployment --without test development
|
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||||
$STD yarn install
|
set -a
|
||||||
|
source /opt/discourse/.env
|
||||||
|
set +a
|
||||||
|
$STD git pull origin main
|
||||||
|
$STD bundle install
|
||||||
|
$STD pnpm install
|
||||||
$STD runuser -u postgres -- psql -d discourse -c "CREATE EXTENSION IF NOT EXISTS vector;"
|
$STD runuser -u postgres -- psql -d discourse -c "CREATE EXTENSION IF NOT EXISTS vector;"
|
||||||
$STD bundle exec rails assets:precompile
|
|
||||||
$STD bundle exec rails db:migrate
|
$STD bundle exec rails db:migrate
|
||||||
|
$STD bundle exec rails assets:precompile
|
||||||
msg_ok "Updated Discourse"
|
msg_ok "Updated Discourse"
|
||||||
|
|
||||||
restore_backup
|
msg_info "Starting Services"
|
||||||
|
systemctl start discourse discourse-sidekiq
|
||||||
msg_info "Starting Service"
|
msg_ok "Started Services"
|
||||||
systemctl start discourse
|
|
||||||
msg_ok "Started Service"
|
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -137,7 +137,6 @@ EOF
|
|||||||
set +o allexport
|
set +o allexport
|
||||||
if [[ -n "$POSTGRES_DB" ]] && [[ -n "$POSTGRES_USER" ]] && [[ -n "$POSTGRES_PASSWORD" ]]; then
|
if [[ -n "$POSTGRES_DB" ]] && [[ -n "$POSTGRES_USER" ]] && [[ -n "$POSTGRES_PASSWORD" ]]; then
|
||||||
PGPASSWORD=$POSTGRES_PASSWORD pg_dump -U "$POSTGRES_USER" -h "${POSTGRES_HOST:-localhost}" -p "${POSTGRES_PORT:-5432}" "$POSTGRES_DB" >/tmp/dispatcharr_db_$(date +%F).sql
|
PGPASSWORD=$POSTGRES_PASSWORD pg_dump -U "$POSTGRES_USER" -h "${POSTGRES_HOST:-localhost}" -p "${POSTGRES_PORT:-5432}" "$POSTGRES_DB" >/tmp/dispatcharr_db_$(date +%F).sql
|
||||||
msg_info "Database backup created"
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
$STD tar -czf "$BACKUP_FILE" -C /opt dispatcharr /tmp/dispatcharr_db_*.sql
|
$STD tar -czf "$BACKUP_FILE" -C /opt dispatcharr /tmp/dispatcharr_db_*.sql
|
||||||
@@ -150,7 +149,7 @@ EOF
|
|||||||
|
|
||||||
msg_info "Updating Dispatcharr Backend"
|
msg_info "Updating Dispatcharr Backend"
|
||||||
if ! grep -q "DJANGO_SECRET_KEY" /opt/dispatcharr/.env; then
|
if ! grep -q "DJANGO_SECRET_KEY" /opt/dispatcharr/.env; then
|
||||||
DJANGO_SECRET=$(openssl rand -base64 48 | tr -dc 'a-zA-Z0-9' | cut -c1-50)
|
DJANGO_SECRET=$(random_password 50)
|
||||||
echo "DJANGO_SECRET_KEY=$DJANGO_SECRET" >>/opt/dispatcharr/.env
|
echo "DJANGO_SECRET_KEY=$DJANGO_SECRET" >>/opt/dispatcharr/.env
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ function update_script() {
|
|||||||
|
|
||||||
msg_warn "⚠️ ${APP} has been migrated to an addon script."
|
msg_warn "⚠️ ${APP} has been migrated to an addon script."
|
||||||
echo ""
|
echo ""
|
||||||
msg_info "This is a one-time migration. After this, you can update ${APP} anytime with:"
|
echo -e "${INFO}${YW}This is a one-time migration. After this, you can update ${APP} anytime with:${CL}"
|
||||||
echo -e "${TAB}${TAB}${GN}update_dockge${CL} or ${GN}bash <(curl -fsSL ${ADDON_SCRIPT})${CL}"
|
echo -e "${TAB}${TAB}${GN}update_dockge${CL} or ${GN}bash <(curl -fsSL ${ADDON_SCRIPT})${CL}"
|
||||||
echo ""
|
echo ""
|
||||||
read -r -p "${TAB}Migrate update function now? [y/N]: " CONFIRM
|
read -r -p "${TAB}Migrate update function now? [y/N]: " CONFIRM
|
||||||
@@ -60,7 +60,7 @@ MIGRATION_EOF
|
|||||||
ln -sf /usr/bin/update /usr/bin/update_dockge 2>/dev/null || true
|
ln -sf /usr/bin/update /usr/bin/update_dockge 2>/dev/null || true
|
||||||
msg_ok "Migration complete"
|
msg_ok "Migration complete"
|
||||||
|
|
||||||
msg_info "Running addon update"
|
echo -e "${INFO}${YW}Running addon update${CL}"
|
||||||
type=update bash <(curl -fsSL "${ADDON_SCRIPT}")
|
type=update bash <(curl -fsSL "${ADDON_SCRIPT}")
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,9 +38,9 @@ function update_script() {
|
|||||||
systemctl stop docmost
|
systemctl stop docmost
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
create_backup /opt/docmost/.env /opt/docmost/data
|
create_backup /opt/docmost/.env
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "docmost" "docmost/docmost" "tarball"
|
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="data" fetch_and_deploy_gh_release "docmost" "docmost/docmost" "tarball"
|
||||||
|
|
||||||
restore_backup
|
restore_backup
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ function update_script() {
|
|||||||
|
|
||||||
msg_warn "⚠️ ${APP} has been migrated to an addon script."
|
msg_warn "⚠️ ${APP} has been migrated to an addon script."
|
||||||
echo ""
|
echo ""
|
||||||
msg_info "This is a one-time migration. After this, you can update ${APP} anytime with:"
|
echo -e "${INFO}${YW}This is a one-time migration. After this, you can update ${APP} anytime with:${CL}"
|
||||||
echo -e "${TAB}${TAB}${GN}update_dokploy${CL} or ${GN}bash <(curl -fsSL ${ADDON_SCRIPT})${CL}"
|
echo -e "${TAB}${TAB}${GN}update_dokploy${CL} or ${GN}bash <(curl -fsSL ${ADDON_SCRIPT})${CL}"
|
||||||
echo ""
|
echo ""
|
||||||
read -r -p "${TAB}Migrate update function now? [y/N]: " CONFIRM
|
read -r -p "${TAB}Migrate update function now? [y/N]: " CONFIRM
|
||||||
@@ -58,7 +58,7 @@ MIGRATION_EOF
|
|||||||
ln -sf /usr/bin/update /usr/bin/update_dokploy 2>/dev/null || true
|
ln -sf /usr/bin/update /usr/bin/update_dokploy 2>/dev/null || true
|
||||||
msg_ok "Migration complete"
|
msg_ok "Migration complete"
|
||||||
|
|
||||||
msg_info "Running addon update"
|
echo -e "${INFO}${YW}Running addon update${CL}"
|
||||||
type=update bash <(curl -fsSL "${ADDON_SCRIPT}")
|
type=update bash <(curl -fsSL "${ADDON_SCRIPT}")
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ function update_script() {
|
|||||||
if check_for_gh_release "domain-locker" "Lissy93/domain-locker"; then
|
if check_for_gh_release "domain-locker" "Lissy93/domain-locker"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop domain-locker
|
systemctl stop domain-locker
|
||||||
msg_info "Service stopped"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
PG_VERSION="17" setup_postgresql
|
PG_VERSION="17" setup_postgresql
|
||||||
NODE_VERSION="22" setup_nodejs
|
NODE_VERSION="22" setup_nodejs
|
||||||
@@ -51,7 +51,7 @@ function update_script() {
|
|||||||
source /opt/domain-locker.env
|
source /opt/domain-locker.env
|
||||||
set +a
|
set +a
|
||||||
$STD npm run build
|
$STD npm run build
|
||||||
msg_info "Built Domain-Locker"
|
msg_ok "Built Domain-Locker"
|
||||||
|
|
||||||
msg_info "Restarting Services"
|
msg_info "Restarting Services"
|
||||||
systemctl start domain-locker
|
systemctl start domain-locker
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ function update_script() {
|
|||||||
if check_for_gh_release "domain-monitor" "Hosteroid/domain-monitor"; then
|
if check_for_gh_release "domain-monitor" "Hosteroid/domain-monitor"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop apache2
|
systemctl stop apache2
|
||||||
msg_info "Service stopped"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
create_backup /opt/domain-monitor/.env
|
create_backup /opt/domain-monitor/.env
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
msg_info "Updating ${APP} LXC"
|
msg_info "Updating ${APP} LXC"
|
||||||
apt_update_safe
|
apt_update_safe
|
||||||
$STD apt-get -y upgrade
|
$STD apt -y upgrade
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ function update_script() {
|
|||||||
if check_for_gh_release "duplicati" "duplicati/duplicati"; then
|
if check_for_gh_release "duplicati" "duplicati/duplicati"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop duplicati
|
systemctl stop duplicati
|
||||||
msg_info "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "duplicati-*-linux-$(arch_resolve "x64" "arm64")-gui.deb"
|
fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "duplicati-*-linux-$(arch_resolve "x64" "arm64")-gui.deb"
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ function update_script() {
|
|||||||
msg_ok "Backup created"
|
msg_ok "Backup created"
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y pkg-config
|
$STD apt install -y pkg-config
|
||||||
$STD sudo -u frappe bash -c 'export PATH="$HOME/.local/bin:/usr/local/bin:$PATH"; cd /opt/frappe-bench && uv python install 3.14'
|
$STD sudo -u frappe bash -c 'export PATH="$HOME/.local/bin:/usr/local/bin:$PATH"; cd /opt/frappe-bench && uv python install 3.14'
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
|||||||
@@ -48,12 +48,13 @@ function update_script() {
|
|||||||
cd /opt/esphome
|
cd /opt/esphome
|
||||||
$STD uv venv --clear "$VENV_PATH"
|
$STD uv venv --clear "$VENV_PATH"
|
||||||
$STD "$VENV_PATH/bin/python" -m ensurepip --upgrade
|
$STD "$VENV_PATH/bin/python" -m ensurepip --upgrade
|
||||||
$STD uv pip install --python "$VENV_PATH/bin/python" esphome esphome-device-builder esptool
|
$STD "$VENV_PATH/bin/python" -m pip install --upgrade pip
|
||||||
|
$STD "$VENV_PATH/bin/python" -m pip install esphome esphome-device-builder esptool
|
||||||
msg_ok "Migrated to uv/venv"
|
msg_ok "Migrated to uv/venv"
|
||||||
else
|
else
|
||||||
msg_info "Updating ESPHome Device Builder"
|
msg_info "Updating ESPHome Device Builder"
|
||||||
PYTHON_VERSION="3.12" setup_uv
|
PYTHON_VERSION="3.12" setup_uv
|
||||||
$STD uv pip install --python "$VENV_PATH/bin/python" --upgrade esphome esphome-device-builder esptool
|
$STD "$VENV_PATH/bin/python" -m pip install --upgrade esphome esphome-device-builder esptool
|
||||||
msg_ok "Updated ESPHome Device Builder"
|
msg_ok "Updated ESPHome Device Builder"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ function update_script() {
|
|||||||
if check_for_gh_release "excalidraw" "excalidraw/excalidraw"; then
|
if check_for_gh_release "excalidraw" "excalidraw/excalidraw"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop excalidraw
|
systemctl stop excalidraw
|
||||||
msg_info "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "excalidraw" "excalidraw/excalidraw" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "excalidraw" "excalidraw/excalidraw" "tarball"
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,8 @@ function update_script() {
|
|||||||
cd /opt/fireshare
|
cd /opt/fireshare
|
||||||
$STD uv venv --clear
|
$STD uv venv --clear
|
||||||
$STD .venv/bin/python -m ensurepip --upgrade
|
$STD .venv/bin/python -m ensurepip --upgrade
|
||||||
$STD uv pip install --python .venv/bin/python --no-cache --reinstall app/server
|
$STD .venv/bin/python -m pip install --upgrade --break-system-packages pip
|
||||||
|
$STD .venv/bin/python -m pip install --no-cache-dir --break-system-packages --ignore-installed app/server
|
||||||
cp .venv/bin/fireshare /usr/local/bin/fireshare
|
cp .venv/bin/fireshare /usr/local/bin/fireshare
|
||||||
set -a
|
set -a
|
||||||
source /opt/fireshare/fireshare.env
|
source /opt/fireshare/fireshare.env
|
||||||
|
|||||||
@@ -36,9 +36,8 @@ function update_script() {
|
|||||||
systemctl stop flame
|
systemctl stop flame
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
create_backup /opt/flame/.env \
|
create_backup /opt/flame/.env
|
||||||
/opt/flame/data
|
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="data" fetch_and_deploy_gh_release "flame" "pawelmalak/flame" "tarball"
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "flame" "pawelmalak/flame" "tarball"
|
|
||||||
restore_backup
|
restore_backup
|
||||||
|
|
||||||
msg_info "Rebuilding Application"
|
msg_info "Rebuilding Application"
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ function update_script() {
|
|||||||
if check_for_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar"; then
|
if check_for_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop fluid-calendar
|
systemctl stop fluid-calendar
|
||||||
msg_info "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
create_backup /opt/fluid-calendar/.env
|
create_backup /opt/fluid-calendar/.env
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar" "tarball"
|
||||||
|
|||||||
@@ -50,10 +50,10 @@ function update_script() {
|
|||||||
echo ""
|
echo ""
|
||||||
read -r -p "Final confirmation - proceed? (y/N): " CONFIRM2
|
read -r -p "Final confirmation - proceed? (y/N): " CONFIRM2
|
||||||
if [[ ! "$CONFIRM2" =~ ^[Yy]$ ]]; then
|
if [[ ! "$CONFIRM2" =~ ^[Yy]$ ]]; then
|
||||||
msg_info "Update cancelled. Please backup your configuration before proceeding."
|
msg_warn "Update cancelled. Please backup your configuration before proceeding."
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
msg_info "Proceeding with version $APP_VERSION update. All configuration will be cleared as warned."
|
msg_warn "Proceeding with version $APP_VERSION update. All configuration will be cleared as warned."
|
||||||
rm -rf /opt/gitea-mirror
|
rm -rf /opt/gitea-mirror
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
61
ct/glance.sh
61
ct/glance.sh
@@ -9,23 +9,30 @@ source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_
|
|||||||
APP="Glance"
|
APP="Glance"
|
||||||
var_tags="${var_tags:-dashboard}"
|
var_tags="${var_tags:-dashboard}"
|
||||||
var_cpu="${var_cpu:-1}"
|
var_cpu="${var_cpu:-1}"
|
||||||
var_ram="${var_ram:-512}"
|
|
||||||
var_disk="${var_disk:-2}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-13}"
|
|
||||||
var_arm64="${var_arm64:-yes}"
|
var_arm64="${var_arm64:-yes}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
if [[ -z "${var_os:-}" ]] && command -v pveversion >/dev/null 2>&1; then
|
||||||
|
var_os=$(msg_menu "Choose the container OS" \
|
||||||
|
"debian" "Debian 13" \
|
||||||
|
"alpine" "Alpine 3.24 (smaller footprint)")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${var_os:-}" == "alpine" ]]; then
|
||||||
|
var_ram="${var_ram:-256}"
|
||||||
|
var_disk="${var_disk:-2}"
|
||||||
|
var_version="${var_version:-3.24}"
|
||||||
|
else
|
||||||
|
var_ram="${var_ram:-512}"
|
||||||
|
var_disk="${var_disk:-2}"
|
||||||
|
var_version="${var_version:-13}"
|
||||||
|
fi
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
update_deb_based() {
|
||||||
header_info
|
|
||||||
check_container_storage
|
|
||||||
check_container_resources
|
|
||||||
|
|
||||||
if [[ ! -f /etc/systemd/system/glance.service ]]; then
|
if [[ ! -f /etc/systemd/system/glance.service ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
@@ -54,6 +61,42 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
update_alpine() {
|
||||||
|
if [[ ! -f /etc/init.d/glance ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
if [[ ! -d /opt/glance_data ]]; then
|
||||||
|
msg_info "Creating config directory"
|
||||||
|
mkdir -p /opt/glance_data/
|
||||||
|
cp /opt/glance/*.yml /opt/glance_data/
|
||||||
|
sed -i 's|/opt/glance/glance\.yml|/opt/glance_data/glance.yml|' /etc/init.d/glance
|
||||||
|
rc-service glance restart
|
||||||
|
msg_ok "Created config directory"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "glance" "glanceapp/glance"; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
rc-service glance stop
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "glance" "glanceapp/glance" "prebuild" "latest" "/opt/glance" "glance-linux-$(arch_resolve).tar.gz"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
rc-service glance start
|
||||||
|
msg_ok "Started Service"
|
||||||
|
msg_ok "Updated successfully!"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
run_os_update
|
||||||
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
build_container
|
build_container
|
||||||
description
|
description
|
||||||
|
|||||||
@@ -31,11 +31,11 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
setup_mariadb
|
setup_mariadb
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/glpi-project/glpi/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
|
if [[ -f /opt/${APP}_version.txt ]]; then
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
mv /opt/"${APP}_version.txt" ~/.glpi
|
||||||
|
fi
|
||||||
|
if check_for_gh_release "glpi" "glpi-project/glpi"; then
|
||||||
msg_error "Currently we don't provide an update function for this ${APP}."
|
msg_error "Currently we don't provide an update function for this ${APP}."
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ function update_script() {
|
|||||||
GRAMPS_VERSION=$(/opt/gramps-web/venv/bin/python3 -c "import gramps.version; print('%s%s' % (gramps.version.VERSION_TUPLE[0], gramps.version.VERSION_TUPLE[1]))" 2>/dev/null || echo "60")
|
GRAMPS_VERSION=$(/opt/gramps-web/venv/bin/python3 -c "import gramps.version; print('%s%s' % (gramps.version.VERSION_TUPLE[0], gramps.version.VERSION_TUPLE[1]))" 2>/dev/null || echo "60")
|
||||||
GRAMPS_PLUGINS_DIR="/opt/gramps-web/data/gramps/gramps${GRAMPS_VERSION}/plugins"
|
GRAMPS_PLUGINS_DIR="/opt/gramps-web/data/gramps/gramps${GRAMPS_VERSION}/plugins"
|
||||||
mkdir -p "$GRAMPS_PLUGINS_DIR"
|
mkdir -p "$GRAMPS_PLUGINS_DIR"
|
||||||
$STD wget -q https://github.com/gramps-project/addons/archive/refs/heads/master.zip -O /tmp/gramps-addons.zip
|
curl -fsSL -o /tmp/gramps-addons.zip https://github.com/gramps-project/addons/archive/refs/heads/master.zip
|
||||||
for addon in FilterRules JSON; do
|
for addon in FilterRules JSON; do
|
||||||
unzip -p /tmp/gramps-addons.zip "addons-master/gramps${GRAMPS_VERSION}/download/${addon}.addon.tgz" |
|
unzip -p /tmp/gramps-addons.zip "addons-master/gramps${GRAMPS_VERSION}/download/${addon}.addon.tgz" |
|
||||||
tar -xz -C "$GRAMPS_PLUGINS_DIR"
|
tar -xz -C "$GRAMPS_PLUGINS_DIR"
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ function update_script() {
|
|||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop graylog-datanode
|
systemctl stop graylog-datanode
|
||||||
systemctl stop graylog-server
|
systemctl stop graylog-server
|
||||||
msg_info "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
CURRENT_VERSION=$(apt list --installed 2>/dev/null | grep graylog-server | grep -oP '\d+\.\d+\.\d+')
|
CURRENT_VERSION=$(apt list --installed 2>/dev/null | grep graylog-server | grep -oP '\d+\.\d+\.\d+')
|
||||||
|
|
||||||
|
|||||||
@@ -38,9 +38,9 @@ function update_script() {
|
|||||||
systemctl stop grist
|
systemctl stop grist
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
create_backup /opt/grist/.env /opt/grist/docs /opt/grist/grist-sessions.db /opt/grist/landing.db
|
create_backup /opt/grist/.env /opt/grist/grist-sessions.db /opt/grist/landing.db
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "grist" "gristlabs/grist-core" "tarball"
|
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="docs" fetch_and_deploy_gh_release "grist" "gristlabs/grist-core" "tarball"
|
||||||
|
|
||||||
restore_backup
|
restore_backup
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
___ _________ __ __
|
|
||||||
|__ \ / ____/ | __ __/ /_/ /_
|
|
||||||
__/ // /_ / /| |/ / / / __/ __ \
|
|
||||||
/ __// __/ / ___ / /_/ / /_/ / / /
|
|
||||||
/____/_/ /_/ |_\__,_/\__/_/ /_/
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ __ ____ __ __
|
|
||||||
/ | _____/ /___ ______ _/ / / __ )__ ______/ /___ ____ / /_
|
|
||||||
/ /| |/ ___/ __/ / / / __ `/ / / __ / / / / __ / __ `/ _ \/ __/
|
|
||||||
/ ___ / /__/ /_/ /_/ / /_/ / / / /_/ / /_/ / /_/ / /_/ / __/ /_
|
|
||||||
/_/ |_\___/\__/\__,_/\__,_/_/ /_____/\__,_/\__,_/\__, /\___/\__/
|
|
||||||
/____/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ __
|
|
||||||
/ | ____/ /___ ___ ______ __________/ /
|
|
||||||
/ /| |/ __ / __ `/ / / / __ `/ ___/ __ /
|
|
||||||
/ ___ / /_/ / /_/ / /_/ / /_/ / / / /_/ /
|
|
||||||
/_/ |_\__,_/\__, /\__,_/\__,_/_/ \__,_/
|
|
||||||
/____/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ __ __
|
|
||||||
/ | ____/ / _____ ____ / /___ __________ / / ____ ____ _
|
|
||||||
/ /| |/ __ / | / / _ \/ __ \/ __/ / / / ___/ _ \/ / / __ \/ __ `/
|
|
||||||
/ ___ / /_/ /| |/ / __/ / / / /_/ /_/ / / / __/ /___/ /_/ / /_/ /
|
|
||||||
/_/ |_\__,_/ |___/\___/_/ /_/\__/\__,_/_/ \___/_____/\____/\__, /
|
|
||||||
/____/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ _____________ _ ________
|
|
||||||
/ | / ____/ ____(_) | / / ____/
|
|
||||||
/ /| | / /_ / /_ / / |/ / __/
|
|
||||||
/ ___ |/ __/ / __/ / / /| / /___
|
|
||||||
/_/ |_/_/ /_/ /_/_/ |_/_____/
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ ____ _ ______
|
|
||||||
/ | ____ ____ ____ / /_/ __ \ | / / __ \
|
|
||||||
/ /| |/ __ `/ _ \/ __ \/ __/ / / / | / / /_/ /
|
|
||||||
/ ___ / /_/ / __/ / / / /_/ /_/ /| |/ / _, _/
|
|
||||||
/_/ |_\__, /\___/_/ /_/\__/_____/ |___/_/ |_|
|
|
||||||
/____/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ _ ______ _ __
|
|
||||||
/ | (_)___/_ __/________ _(_) /
|
|
||||||
/ /| | / / ___// / / ___/ __ `/ / /
|
|
||||||
/ ___ |/ / / / / / / / /_/ / / /
|
|
||||||
/_/ |_/_/_/ /_/ /_/ \__,_/_/_/
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ __ _
|
|
||||||
/ | / /___ ___ ____ _/ / (_)___ __ ___ __
|
|
||||||
/ /| | / / __ `__ \/ __ `/ / / / __ \/ / / / |/_/
|
|
||||||
/ ___ |/ / / / / / / /_/ / /___/ / / / / /_/ /> <
|
|
||||||
/_/ |_/_/_/ /_/ /_/\__,_/_____/_/_/ /_/\__,_/_/|_|
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ _
|
|
||||||
/ | / /___ (_)___ ___
|
|
||||||
/ /| | / / __ \/ / __ \/ _ \
|
|
||||||
/ ___ |/ / /_/ / / / / / __/
|
|
||||||
/_/ |_/_/ .___/_/_/ /_/\___/
|
|
||||||
/_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ _ ____ ____ __ _____
|
|
||||||
/ | / /___ (_)___ ___ / __ )____ _________ _/ __ )____ ______/ /____ ______ / ___/___ ______ _____ _____
|
|
||||||
/ /| | / / __ \/ / __ \/ _ \______/ __ / __ \/ ___/ __ `/ __ / __ `/ ___/ //_/ / / / __ \______\__ \/ _ \/ ___/ | / / _ \/ ___/
|
|
||||||
/ ___ |/ / /_/ / / / / / __/_____/ /_/ / /_/ / / / /_/ / /_/ / /_/ / /__/ ,< / /_/ / /_/ /_____/__/ / __/ / | |/ / __/ /
|
|
||||||
/_/ |_/_/ .___/_/_/ /_/\___/ /_____/\____/_/ \__, /_____/\__,_/\___/_/|_|\__,_/ .___/ /____/\___/_/ |___/\___/_/
|
|
||||||
/_/ /____/ /_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ _ _______
|
|
||||||
/ | / /___ (_)___ ___ / ____(_)___ ____ __ __
|
|
||||||
/ /| | / / __ \/ / __ \/ _ \______/ / / / __ \/ __ \/ / / /
|
|
||||||
/ ___ |/ / /_/ / / / / / __/_____/ /___/ / / / / / / / /_/ /
|
|
||||||
/_/ |_/_/ .___/_/_/ /_/\___/ \____/_/_/ /_/_/ /_/\__, /
|
|
||||||
/_/ /____/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ _ __________ ______ __
|
|
||||||
/ | / /___ (_)___ ___ / _/_ __/ /_ __/___ ____ / /____
|
|
||||||
/ /| | / / __ \/ / __ \/ _ \______ / / / /_____/ / / __ \/ __ \/ / ___/
|
|
||||||
/ ___ |/ / /_/ / / / / / __/_____// / / /_____/ / / /_/ / /_/ / (__ )
|
|
||||||
/_/ |_/_/ .___/_/_/ /_/\___/ /___/ /_/ /_/ \____/\____/_/____/
|
|
||||||
/_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ _ __ __ __
|
|
||||||
/ | / /___ (_)___ ___ / //_/___ ____ ___ ____ ____/ /___
|
|
||||||
/ /| | / / __ \/ / __ \/ _ \______/ ,< / __ \/ __ `__ \/ __ \/ __ / __ \
|
|
||||||
/ ___ |/ / /_/ / / / / / __/_____/ /| / /_/ / / / / / / /_/ / /_/ / /_/ /
|
|
||||||
/_/ |_/_/ .___/_/_/ /_/\___/ /_/ |_\____/_/ /_/ /_/\____/\__,_/\____/
|
|
||||||
/_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ _ _ __ __ __ __
|
|
||||||
/ | / /___ (_)___ ___ / | / /__ _ __/ /______/ /___ __ ______/ /
|
|
||||||
/ /| | / / __ \/ / __ \/ _ \______/ |/ / _ \| |/_/ __/ ___/ / __ \/ / / / __ /
|
|
||||||
/ ___ |/ / /_/ / / / / / __/_____/ /| / __/> </ /_/ /__/ / /_/ / /_/ / /_/ /
|
|
||||||
/_/ |_/_/ .___/_/_/ /_/\___/ /_/ |_/\___/_/|_|\__/\___/_/\____/\__,_/\__,_/
|
|
||||||
/_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ _ ____ _____ __
|
|
||||||
/ | / /___ (_)___ ___ / __ \___ ____/ / (_) /_
|
|
||||||
/ /| | / / __ \/ / __ \/ _ \______/ /_/ / _ \/ __ / / / __ \
|
|
||||||
/ ___ |/ / /_/ / / / / / __/_____/ _, _/ __/ /_/ / / / /_/ /
|
|
||||||
/_/ |_/_/ .___/_/_/ /_/\___/ /_/ |_|\___/\__,_/_/_/_.___/
|
|
||||||
/_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ _ _ __ __ _
|
|
||||||
/ | / /___ (_)___ ___ | | / /___ _/ /______ _____ (_)
|
|
||||||
/ /| | / / __ \/ / __ \/ _ \_____| | /| / / __ `/ //_/ __ `/ __ \/ /
|
|
||||||
/ ___ |/ / /_/ / / / / / __/_____/ |/ |/ / /_/ / ,< / /_/ / /_/ / /
|
|
||||||
/_/ |_/_/ .___/_/_/ /_/\___/ |__/|__/\__,_/_/|_|\__,_/ .___/_/
|
|
||||||
/_/ /_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __
|
|
||||||
/ | ____ ___ ____ ____ ______/ /_ ___
|
|
||||||
/ /| | / __ `__ \/ __ \/ __ `/ ___/ __ \/ _ \
|
|
||||||
/ ___ |/ / / / / / /_/ / /_/ / /__/ / / / __/
|
|
||||||
/_/ |_/_/ /_/ /_/ .___/\__,_/\___/_/ /_/\___/
|
|
||||||
/_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __
|
|
||||||
/ | ____ _____/ /_ ____ _____
|
|
||||||
/ /| | / __ \/ ___/ __ \/ __ \/ ___/
|
|
||||||
/ ___ |/ / / / /__/ / / / /_/ / /
|
|
||||||
/_/ |_/_/ /_/\___/_/ /_/\____/_/
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ _ _____ _____
|
|
||||||
/ | ____ / /__(_) / ___/__ ______ _____ / ___/___ ______ _____ _____
|
|
||||||
/ /| | / __ \/ //_/ /_____\__ \/ / / / __ \/ ___/_____\__ \/ _ \/ ___/ | / / _ \/ ___/
|
|
||||||
/ ___ |/ / / / ,< / /_____/__/ / /_/ / / / / /__/_____/__/ / __/ / | |/ / __/ /
|
|
||||||
/_/ |_/_/ /_/_/|_/_/ /____/\__, /_/ /_/\___/ /____/\___/_/ |___/\___/_/
|
|
||||||
/____/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ _____
|
|
||||||
/ | ____ __ __/ /___ ______ ___ / ___/___ ______ _____ _____
|
|
||||||
/ /| | / __ \/ / / / __/ / / / __ \/ _ \______\__ \/ _ \/ ___/ | / / _ \/ ___/
|
|
||||||
/ ___ |/ / / / /_/ / /_/ /_/ / /_/ / __/_____/__/ / __/ / | |/ / __/ /
|
|
||||||
/_/ |_/_/ /_/\__, /\__/\__, / .___/\___/ /____/\___/_/ |___/\___/_/
|
|
||||||
/____/ /____/_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ ___ _ ______
|
|
||||||
/ | ____ ____ ______/ /_ ___ / | (_)____/ __/ /___ _ __
|
|
||||||
/ /| | / __ \/ __ `/ ___/ __ \/ _ \______/ /| | / / ___/ /_/ / __ \ | /| / /
|
|
||||||
/ ___ |/ /_/ / /_/ / /__/ / / / __/_____/ ___ |/ / / / __/ / /_/ / |/ |/ /
|
|
||||||
/_/ |_/ .___/\__,_/\___/_/ /_/\___/ /_/ |_/_/_/ /_/ /_/\____/|__/|__/
|
|
||||||
/_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ ______ __
|
|
||||||
/ | ____ ____ ______/ /_ ___ / ____/___ _______________ _____ ____/ /________ _
|
|
||||||
/ /| | / __ \/ __ `/ ___/ __ \/ _ \______/ / / __ `/ ___/ ___/ __ `/ __ \/ __ / ___/ __ `/
|
|
||||||
/ ___ |/ /_/ / /_/ / /__/ / / / __/_____/ /___/ /_/ (__ |__ ) /_/ / / / / /_/ / / / /_/ /
|
|
||||||
/_/ |_/ .___/\__,_/\___/_/ /_/\___/ \____/\__,_/____/____/\__,_/_/ /_/\__,_/_/ \__,_/
|
|
||||||
/_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ ______ __ ____ ____
|
|
||||||
/ | ____ ____ ______/ /_ ___ / ____/___ __ _______/ /_ / __ \/ __ )
|
|
||||||
/ /| | / __ \/ __ `/ ___/ __ \/ _ \______/ / / __ \/ / / / ___/ __ \/ / / / __ |
|
|
||||||
/ ___ |/ /_/ / /_/ / /__/ / / / __/_____/ /___/ /_/ / /_/ / /__/ / / / /_/ / /_/ /
|
|
||||||
/_/ |_/ .___/\__,_/\___/_/ /_/\___/ \____/\____/\__,_/\___/_/ /_/_____/_____/
|
|
||||||
/_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ ______ __
|
|
||||||
/ | ____ ____ ______/ /_ ___ / ____/_ ______ __________ _____ ___ ____ / /__
|
|
||||||
/ /| | / __ \/ __ `/ ___/ __ \/ _ \______/ / __/ / / / __ `/ ___/ __ `/ __ `__ \/ __ \/ / _ \
|
|
||||||
/ ___ |/ /_/ / /_/ / /__/ / / / __/_____/ /_/ / /_/ / /_/ / /__/ /_/ / / / / / / /_/ / / __/
|
|
||||||
/_/ |_/ .___/\__,_/\___/_/ /_/\___/ \____/\__,_/\__,_/\___/\__,_/_/ /_/ /_/\____/_/\___/
|
|
||||||
/_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ _______ __
|
|
||||||
/ | ____ ____ ______/ /_ ___ /_ __(_) /______ _
|
|
||||||
/ /| | / __ \/ __ `/ ___/ __ \/ _ \______/ / / / //_/ __ `/
|
|
||||||
/ ___ |/ /_/ / /_/ / /__/ / / / __/_____/ / / / ,< / /_/ /
|
|
||||||
/_/ |_/ .___/\__,_/\___/_/ /_/\___/ /_/ /_/_/|_|\__,_/
|
|
||||||
/_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ ______ __
|
|
||||||
/ | ____ ____ ______/ /_ ___ /_ __/___ ____ ___ _________ _/ /_
|
|
||||||
/ /| | / __ \/ __ `/ ___/ __ \/ _ \______/ / / __ \/ __ `__ \/ ___/ __ `/ __/
|
|
||||||
/ ___ |/ /_/ / /_/ / /__/ / / / __/_____/ / / /_/ / / / / / / /__/ /_/ / /_
|
|
||||||
/_/ |_/ .___/\__,_/\___/_/ /_/\___/ /_/ \____/_/ /_/ /_/\___/\__,_/\__/
|
|
||||||
/_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ _ ___ ____ ____
|
|
||||||
/ | ____ ____ _____(_)_______ / | / __ \/ _/
|
|
||||||
/ /| | / __ \/ __ \/ ___/ / ___/ _ \______/ /| | / /_/ // /
|
|
||||||
/ ___ |/ /_/ / /_/ / / / (__ ) __/_____/ ___ |/ ____// /
|
|
||||||
/_/ |_/ .___/ .___/_/ /_/____/\___/ /_/ |_/_/ /___/
|
|
||||||
/_/ /_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ ______ __ _ ________
|
|
||||||
/ | ____ / /_ / ____/___ ______/ /_ ___ _____ / | / / ____/
|
|
||||||
/ /| | / __ \/ __/_____/ / / __ `/ ___/ __ \/ _ \/ ___/_____/ |/ / / __
|
|
||||||
/ ___ |/ /_/ / /_/_____/ /___/ /_/ / /__/ / / / __/ / /_____/ /| / /_/ /
|
|
||||||
/_/ |_/ .___/\__/ \____/\__,_/\___/_/ /_/\___/_/ /_/ |_/\____/
|
|
||||||
/_/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ _ ____
|
|
||||||
/ | __________/ /_ (_) _____ / __ )____ _ __
|
|
||||||
/ /| | / ___/ ___/ __ \/ / | / / _ \/ __ / __ \| |/_/
|
|
||||||
/ ___ |/ / / /__/ / / / /| |/ / __/ /_/ / /_/ /> <
|
|
||||||
/_/ |_/_/ \___/_/ /_/_/ |___/\___/_____/\____/_/|_|
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ __ _
|
|
||||||
/ | __________/ /_ / / (_)___ __ ___ __
|
|
||||||
/ /| | / ___/ ___/ __ \ / / / / __ \/ / / / |/_/
|
|
||||||
/ ___ |/ / / /__/ / / / / /___/ / / / / /_/ /> <
|
|
||||||
/_/ |_/_/ \___/_/ /_/ /_____/_/_/ /_/\__,_/_/|_|
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___
|
|
||||||
/ | _________ ___ _______
|
|
||||||
/ /| | / ___/ __ `/ / / / ___/
|
|
||||||
/ ___ |/ / / /_/ / /_/ (__ )
|
|
||||||
/_/ |_/_/ \__, /\__,_/____/
|
|
||||||
/____/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ _ ___
|
|
||||||
/ | _____(_)___ |__ \
|
|
||||||
/ /| | / ___/ / __ `/_/ /
|
|
||||||
/ ___ |/ / / / /_/ / __/
|
|
||||||
/_/ |_/_/ /_/\__,_/____/
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ _ __
|
|
||||||
/ | _____/ /____ _____(_)____/ /__
|
|
||||||
/ /| | / ___/ __/ _ \/ ___/ / ___/ //_/
|
|
||||||
/ ___ |(__ ) /_/ __/ / / (__ ) ,<
|
|
||||||
/_/ |_/____/\__/\___/_/ /_/____/_/|_|
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ __ __ ______
|
|
||||||
____ ___ ______/ (_)___ / /_ ____ ____ / /_______/ /_ ___ / / __/
|
|
||||||
/ __ `/ / / / __ / / __ \/ __ \/ __ \/ __ \/ //_/ ___/ __ \/ _ \/ / /_
|
|
||||||
/ /_/ / /_/ / /_/ / / /_/ / /_/ / /_/ / /_/ / ,< (__ ) / / / __/ / __/
|
|
||||||
\__,_/\__,_/\__,_/_/\____/_.___/\____/\____/_/|_/____/_/ /_/\___/_/_/
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ ___ __ ___ ___ ____
|
|
||||||
/ | __ ______/ (_)___ / |/ /_ __________ / | / _/
|
|
||||||
/ /| |/ / / / __ / / __ \/ /|_/ / / / / ___/ _ \______/ /| | / /
|
|
||||||
/ ___ / /_/ / /_/ / / /_/ / / / / /_/ (__ ) __/_____/ ___ |_/ /
|
|
||||||
/_/ |_\__,_/\__,_/_/\____/_/ /_/\__,_/____/\___/ /_/ |_/___/
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __
|
|
||||||
/ | __ ________________ _/ /
|
|
||||||
/ /| |/ / / / ___/ ___/ __ `/ /
|
|
||||||
/ ___ / /_/ / / / / / /_/ / /
|
|
||||||
/_/ |_\__,_/_/ /_/ \__,_/_/
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ __ ___
|
|
||||||
/ | __ __/ /_/ /_ ___ / (_)___ _
|
|
||||||
/ /| |/ / / / __/ __ \/ _ \/ / / __ `/
|
|
||||||
/ ___ / /_/ / /_/ / / / __/ / / /_/ /
|
|
||||||
/_/ |_\__,_/\__/_/ /_/\___/_/_/\__,_/
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
__ __ __ _ __
|
|
||||||
____ ___ __/ /_/ /_ ___ ____ / /_(_) /__
|
|
||||||
/ __ `/ / / / __/ __ \/ _ \/ __ \/ __/ / //_/
|
|
||||||
/ /_/ / /_/ / /_/ / / / __/ / / / /_/ / ,<
|
|
||||||
\__,_/\__,_/\__/_/ /_/\___/_/ /_/\__/_/_/|_|
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ __
|
|
||||||
/ | __ __/ /_____ / /_ __________
|
|
||||||
/ /| |/ / / / __/ __ \/ __ \/ ___/ ___/
|
|
||||||
/ ___ / /_/ / /_/ /_/ / /_/ / / / /
|
|
||||||
/_/ |_\__,_/\__/\____/_.___/_/ /_/
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ ___ __
|
|
||||||
/ | __ __/ /_____ _________ _/ (_) _____ / /_
|
|
||||||
/ /| |/ / / / __/ __ \/ ___/ __ `/ / / | /| / / _ \/ __ \
|
|
||||||
/ ___ / /_/ / /_/ /_/ / /__/ /_/ / / /| |/ |/ / __/ /_/ /
|
|
||||||
/_/ |_\__,_/\__/\____/\___/\__,_/_/_/ |__/|__/\___/_.___/
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
____ __ ____ __ __
|
|
||||||
/ __ )____ _/ /_ __ __ / __ )__ ______/ /___/ /_ __
|
|
||||||
/ __ / __ `/ __ \/ / / / / __ / / / / __ / __ / / / /
|
|
||||||
/ /_/ / /_/ / /_/ / /_/ / / /_/ / /_/ / /_/ / /_/ / /_/ /
|
|
||||||
/_____/\__,_/_.___/\__, / /_____/\__,_/\__,_/\__,_/\__, /
|
|
||||||
/____/ /____/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
____ __ __
|
|
||||||
/ __ )____ ______/ /__________ _____/ /_
|
|
||||||
/ __ / __ `/ ___/ //_/ ___/ _ \/ ___/ __/
|
|
||||||
/ /_/ / /_/ / /__/ ,< / / / __(__ ) /_
|
|
||||||
/_____/\__,_/\___/_/|_/_/ \___/____/\__/
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
____ _ __ __
|
|
||||||
/ __ )____ _(_) /______ _/ /
|
|
||||||
/ __ / __ `/ / //_/ __ `/ /
|
|
||||||
/ /_/ / /_/ / / ,< / /_/ / /
|
|
||||||
/_____/\__,_/_/_/|_|\__,_/_/
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
____ __ __ __
|
|
||||||
/ __ )____ _____ ___ / /_ __ ______/ /___/ /_ __
|
|
||||||
/ __ / __ `/ __ `__ \/ __ \/ / / / __ / __ / / / /
|
|
||||||
/ /_/ / /_/ / / / / / / /_/ / /_/ / /_/ / /_/ / /_/ /
|
|
||||||
/_____/\__,_/_/ /_/ /_/_.___/\__,_/\__,_/\__,_/\__, /
|
|
||||||
/____/
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
____ ___ _ __ __
|
|
||||||
/ __ )____ ______ / | __________(_)____/ /_____ _____ / /_
|
|
||||||
/ __ / __ `/ ___/_____/ /| | / ___/ ___/ / ___/ __/ __ `/ __ \/ __/
|
|
||||||
/ /_/ / /_/ / / /_____/ ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_
|
|
||||||
/_____/\__,_/_/ /_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
____
|
|
||||||
/ __ )____ _________ _________ _ __
|
|
||||||
/ __ / __ `/ ___/ _ \/ ___/ __ \ | /| / /
|
|
||||||
/ /_/ / /_/ (__ ) __/ / / /_/ / |/ |/ /
|
|
||||||
/_____/\__,_/____/\___/_/ \____/|__/|__/
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
____
|
|
||||||
/ __ )____ _____ ____ ___________
|
|
||||||
/ __ / __ `/_ / / __ `/ ___/ ___/
|
|
||||||
/ /_/ / /_/ / / /_/ /_/ / / / /
|
|
||||||
/_____/\__,_/ /___/\__,_/_/ /_/
|
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user