mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-06-15 20:11:19 +02:00
Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f96b62716a | |||
| cfb84ae12d | |||
| f37bf50a47 | |||
| 4a09cac506 | |||
| 5831cc246a | |||
| bcea631c30 | |||
| d9e6e6ea3d | |||
| c48ece67f0 | |||
| 46f163c50c | |||
| 7dbee6cd83 | |||
| 4f97ac2090 | |||
| 054dd68c15 | |||
| 6c1024776d | |||
| d214627ca9 | |||
| d9b7255a0b | |||
| 9c88ef84a0 | |||
| d4b9bc86e8 | |||
| 07ab5dc16e | |||
| 9020fa88b8 | |||
| a5208b5564 |
Generated
+127
@@ -1,3 +1,130 @@
|
|||||||
|
## 2026-06-13
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- BookOrbit ([#15080](https://github.com/community-scripts/ProxmoxVE/pull/15080))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Update authentik version to 2026.5.3 [@thieneret](https://github.com/thieneret) ([#15093](https://github.com/community-scripts/ProxmoxVE/pull/15093))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Immich: Update image-processing libraries [@vhsdream](https://github.com/vhsdream) ([#15082](https://github.com/community-scripts/ProxmoxVE/pull/15082))
|
||||||
|
- HomeBox: Support v0.26.0 [@tomfrenzel](https://github.com/tomfrenzel) ([#15086](https://github.com/community-scripts/ProxmoxVE/pull/15086))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Implement backup functions for scripts A-B [@tremor021](https://github.com/tremor021) ([#15075](https://github.com/community-scripts/ProxmoxVE/pull/15075))
|
||||||
|
|
||||||
|
## 2026-06-12
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Twenty ([#15047](https://github.com/community-scripts/ProxmoxVE/pull/15047))
|
||||||
|
- Alpine-Cinny ([#15044](https://github.com/community-scripts/ProxmoxVE/pull/15044))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- [core] Implement backup and restore functions [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#15067](https://github.com/community-scripts/ProxmoxVE/pull/15067))
|
||||||
|
|
||||||
|
## 2026-06-11
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Clickhouse ([#15045](https://github.com/community-scripts/ProxmoxVE/pull/15045))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Manyfold: add new dependency [@MickLesk](https://github.com/MickLesk) ([#15040](https://github.com/community-scripts/ProxmoxVE/pull/15040))
|
||||||
|
- OpenArchiver: switch Rebuild Function [@MickLesk](https://github.com/MickLesk) ([#15042](https://github.com/community-scripts/ProxmoxVE/pull/15042))
|
||||||
|
- CLIProxyAPI: Save management password to creds file [@tremor021](https://github.com/tremor021) ([#15051](https://github.com/community-scripts/ProxmoxVE/pull/15051))
|
||||||
|
- Jotty: Fix wrong path test in config restore [@vhsdream](https://github.com/vhsdream) ([#15038](https://github.com/community-scripts/ProxmoxVE/pull/15038))
|
||||||
|
- Fix for cross-seed after node upgrade [@TorinFrancis](https://github.com/TorinFrancis) ([#15025](https://github.com/community-scripts/ProxmoxVE/pull/15025))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Alpine-Nextcloud: Upgrade PHP and dependencies in installation script [@MickLesk](https://github.com/MickLesk) ([#15039](https://github.com/community-scripts/ProxmoxVE/pull/15039))
|
||||||
|
- [arm64] porting stage 1: set script arm64 statuses to yes [@asylumexp](https://github.com/asylumexp) ([#15052](https://github.com/community-scripts/ProxmoxVE/pull/15052))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- misc scripts: add support for arm64 [@asylumexp](https://github.com/asylumexp) ([#12639](https://github.com/community-scripts/ProxmoxVE/pull/12639))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- [arm64] remove logic for custom debian arm64 template [@asylumexp](https://github.com/asylumexp) ([#15050](https://github.com/community-scripts/ProxmoxVE/pull/15050))
|
||||||
|
|
||||||
|
### 📚 Documentation
|
||||||
|
|
||||||
|
- (github): Revise script request template [@MickLesk](https://github.com/MickLesk) ([#15058](https://github.com/community-scripts/ProxmoxVE/pull/15058))
|
||||||
|
|
||||||
|
## 2026-06-10
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Baserow ([#14968](https://github.com/community-scripts/ProxmoxVE/pull/14968))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Koillection: Fix update procedure [@tremor021](https://github.com/tremor021) ([#15033](https://github.com/community-scripts/ProxmoxVE/pull/15033))
|
||||||
|
|
||||||
|
## 2026-06-09
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- paperclip ([#14990](https://github.com/community-scripts/ProxmoxVE/pull/14990))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- endurain: Install pytz package during backend setup [@MickLesk](https://github.com/MickLesk) ([#15014](https://github.com/community-scripts/ProxmoxVE/pull/15014))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Proxmox Backup Server - use deb822 [@MickLesk](https://github.com/MickLesk) ([#15013](https://github.com/community-scripts/ProxmoxVE/pull/15013))
|
||||||
|
|
||||||
|
## 2026-06-08
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- security: Fix HTTP to HTTPS for all package and repository downloads [@MickLesk](https://github.com/MickLesk) ([#15009](https://github.com/community-scripts/ProxmoxVE/pull/15009))
|
||||||
|
- homelable: preserve MCP server config across updates [@ferr079](https://github.com/ferr079) ([#14996](https://github.com/community-scripts/ProxmoxVE/pull/14996))
|
||||||
|
- changedetection: migrate Python install to uv venv [@ferr079](https://github.com/ferr079) ([#14995](https://github.com/community-scripts/ProxmoxVE/pull/14995))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Update Flowwiseai to node 24 [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#14999](https://github.com/community-scripts/ProxmoxVE/pull/14999))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- security: Fix MITM RCE vulnerability in microcode scripts (CVE) [@MickLesk](https://github.com/MickLesk) ([#15007](https://github.com/community-scripts/ProxmoxVE/pull/15007))
|
||||||
|
|
||||||
|
## 2026-06-07
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Immich: use actual installed PostgreSQL version for vchord package [@MickLesk](https://github.com/MickLesk) ([#14989](https://github.com/community-scripts/ProxmoxVE/pull/14989))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Navidrome: remove genereic filebrowser addon setup [@MickLesk](https://github.com/MickLesk) ([#14991](https://github.com/community-scripts/ProxmoxVE/pull/14991))
|
||||||
|
|
||||||
## 2026-06-06
|
## 2026-06-06
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
|||||||
+37
-122
@@ -62,6 +62,9 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -75,7 +78,7 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><h4>June (6 entries)</h4></summary>
|
<summary><h4>June (13 entries)</h4></summary>
|
||||||
|
|
||||||
[View June 2026 Changelog](.github/changelogs/2026/06.md)
|
[View June 2026 Changelog](.github/changelogs/2026/06.md)
|
||||||
|
|
||||||
@@ -480,6 +483,38 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
## 2026-06-14
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Iinvoiceninja: fix nginx setup assets port [@MickLesk](https://github.com/MickLesk) ([#15090](https://github.com/community-scripts/ProxmoxVE/pull/15090))
|
||||||
|
- CheckMK: remove stale backup site before creating new backup during update [@MickLesk](https://github.com/MickLesk) ([#15088](https://github.com/community-scripts/ProxmoxVE/pull/15088))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Implement backup functions for scripts C-D [@tremor021](https://github.com/tremor021) ([#15096](https://github.com/community-scripts/ProxmoxVE/pull/15096))
|
||||||
|
|
||||||
|
## 2026-06-13
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- BookOrbit ([#15080](https://github.com/community-scripts/ProxmoxVE/pull/15080))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Update authentik version to 2026.5.3 [@thieneret](https://github.com/thieneret) ([#15093](https://github.com/community-scripts/ProxmoxVE/pull/15093))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Immich: Update image-processing libraries [@vhsdream](https://github.com/vhsdream) ([#15082](https://github.com/community-scripts/ProxmoxVE/pull/15082))
|
||||||
|
- HomeBox: Support v0.26.0 [@tomfrenzel](https://github.com/tomfrenzel) ([#15086](https://github.com/community-scripts/ProxmoxVE/pull/15086))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Implement backup functions for scripts A-B [@tremor021](https://github.com/tremor021) ([#15075](https://github.com/community-scripts/ProxmoxVE/pull/15075))
|
||||||
|
|
||||||
## 2026-06-12
|
## 2026-06-12
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
@@ -1030,124 +1065,4 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
- core: fall back to silent mode when no TTY or whiptail unavailable [@MickLesk](https://github.com/MickLesk) ([#14497](https://github.com/community-scripts/ProxmoxVE/pull/14497))
|
- core: fall back to silent mode when no TTY or whiptail unavailable [@MickLesk](https://github.com/MickLesk) ([#14497](https://github.com/community-scripts/ProxmoxVE/pull/14497))
|
||||||
|
|
||||||
## 2026-05-14
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- CLIProxyAPI ([#14443](https://github.com/community-scripts/ProxmoxVE/pull/14443))
|
|
||||||
|
|
||||||
## 2026-05-13
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Fix: Broken Manifold update [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#14468](https://github.com/community-scripts/ProxmoxVE/pull/14468))
|
|
||||||
- SoulSync: Fix update function [@tremor021](https://github.com/tremor021) ([#14465](https://github.com/community-scripts/ProxmoxVE/pull/14465))
|
|
||||||
- Reactive-Resume: fix PDF generation timeout in LXC containers [@MickLesk](https://github.com/MickLesk) ([#14416](https://github.com/community-scripts/ProxmoxVE/pull/14416))
|
|
||||||
- (calibre-web) Add --no-sandbox for PDF conversion [@jamesmyatt](https://github.com/jamesmyatt) ([#14461](https://github.com/community-scripts/ProxmoxVE/pull/14461))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- tools.func: encode GitHub tag, refine pin logic, add Codeberg [@MickLesk](https://github.com/MickLesk) ([#14473](https://github.com/community-scripts/ProxmoxVE/pull/14473))
|
|
||||||
|
|
||||||
## 2026-05-12
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- DocuSeal ([#14445](https://github.com/community-scripts/ProxmoxVE/pull/14445))
|
|
||||||
- Authentik ([#14440](https://github.com/community-scripts/ProxmoxVE/pull/14440))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Save Omada version [@lucacome](https://github.com/lucacome) ([#14433](https://github.com/community-scripts/ProxmoxVE/pull/14433))
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- OpenCloud: bump version to 6.2.0 [@vhsdream](https://github.com/vhsdream) ([#14451](https://github.com/community-scripts/ProxmoxVE/pull/14451))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- misc: bump node versions [@CrazyWolf13](https://github.com/CrazyWolf13) ([#14447](https://github.com/community-scripts/ProxmoxVE/pull/14447))
|
|
||||||
|
|
||||||
## 2026-05-11
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- Lychee ([#14424](https://github.com/community-scripts/ProxmoxVE/pull/14424))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Termix: fix nginx pid path and log paths on update (#) [@MickLesk](https://github.com/MickLesk) ([#14419](https://github.com/community-scripts/ProxmoxVE/pull/14419))
|
|
||||||
- Nginxproxymanager: restore NPM nginx.conf after OpenResty rebuid [@MickLesk](https://github.com/MickLesk) ([#14421](https://github.com/community-scripts/ProxmoxVE/pull/14421))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- InvestBrain: add commented reverse proxy config hints to .env [@MickLesk](https://github.com/MickLesk) ([#14422](https://github.com/community-scripts/ProxmoxVE/pull/14422))
|
|
||||||
|
|
||||||
### 🧰 Tools
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Cronmaster: fix unexpected EOF in update_cronmaster script [@MickLesk](https://github.com/MickLesk) ([#14420](https://github.com/community-scripts/ProxmoxVE/pull/14420))
|
|
||||||
|
|
||||||
## 2026-05-10
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Save Beszel version [@lucacome](https://github.com/lucacome) ([#14389](https://github.com/community-scripts/ProxmoxVE/pull/14389))
|
|
||||||
- karakeep: Fix SERVER_VERSION update [@MickLesk](https://github.com/MickLesk) ([#14378](https://github.com/community-scripts/ProxmoxVE/pull/14378))
|
|
||||||
- inspIRCd: Fix service not autostarting [@tremor021](https://github.com/tremor021) ([#14368](https://github.com/community-scripts/ProxmoxVE/pull/14368))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- refactor: webcheck [@CrazyWolf13](https://github.com/CrazyWolf13) ([#14391](https://github.com/community-scripts/ProxmoxVE/pull/14391))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- [tools.func]: Pin `pnpm` version [@tremor021](https://github.com/tremor021) ([#14386](https://github.com/community-scripts/ProxmoxVE/pull/14386))
|
|
||||||
|
|
||||||
## 2026-05-09
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- FlowiseAI: Migrate to pnpm [@MickLesk](https://github.com/MickLesk) ([#14344](https://github.com/community-scripts/ProxmoxVE/pull/14344))
|
|
||||||
- Purge openresty [@lucacome](https://github.com/lucacome) ([#14353](https://github.com/community-scripts/ProxmoxVE/pull/14353))
|
|
||||||
- Check for release for Sonarr [@lucacome](https://github.com/lucacome) ([#14354](https://github.com/community-scripts/ProxmoxVE/pull/14354))
|
|
||||||
- fix(termix-install.sh): add tmpfiles.d persistence and systemd PIDFile path [@runnylogan](https://github.com/runnylogan) ([#14350](https://github.com/community-scripts/ProxmoxVE/pull/14350))
|
|
||||||
- ERPNext: start bench Redis services before bench new-site [@MickLesk](https://github.com/MickLesk) ([#14343](https://github.com/community-scripts/ProxmoxVE/pull/14343))
|
|
||||||
- [Hotfix]Jotty: use absolute path when creating data dir [@vhsdream](https://github.com/vhsdream) ([#14355](https://github.com/community-scripts/ProxmoxVE/pull/14355))
|
|
||||||
|
|
||||||
## 2026-05-08
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- wishlist: pin pnpm to v10 to match engine requirements [@MickLesk](https://github.com/MickLesk) ([#14342](https://github.com/community-scripts/ProxmoxVE/pull/14342))
|
|
||||||
- [pelican] fix env copy regression [@LetterN](https://github.com/LetterN) ([#14328](https://github.com/community-scripts/ProxmoxVE/pull/14328))
|
|
||||||
- fix(homepage): fix ERR_PNPM_IGNORED_BUILDS error [@Sergih28](https://github.com/Sergih28) ([#14315](https://github.com/community-scripts/ProxmoxVE/pull/14315))
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- tools.func: add setup_nltk as new function [@MickLesk](https://github.com/MickLesk) ([#14314](https://github.com/community-scripts/ProxmoxVE/pull/14314))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- tools.func: fix meilisearch import-dump background process handling [@MickLesk](https://github.com/MickLesk) ([#14341](https://github.com/community-scripts/ProxmoxVE/pull/14341))
|
|
||||||
+10
-6
@@ -35,8 +35,10 @@ function update_script() {
|
|||||||
$STD apt -y upgrade
|
$STD apt -y upgrade
|
||||||
|
|
||||||
msg_info "Creating Backup"
|
msg_info "Creating Backup"
|
||||||
rm -rf /opt/2fauth-backup
|
create_backup \
|
||||||
mv /opt/2fauth /opt/2fauth-backup
|
/opt/2fauth/.env \
|
||||||
|
/opt/2fauth/storage
|
||||||
|
|
||||||
if ! dpkg -l | grep -q 'php8.4'; then
|
if ! dpkg -l | grep -q 'php8.4'; then
|
||||||
cp /etc/nginx/conf.d/2fauth.conf /etc/nginx/conf.d/2fauth.conf.bak
|
cp /etc/nginx/conf.d/2fauth.conf /etc/nginx/conf.d/2fauth.conf.bak
|
||||||
fi
|
fi
|
||||||
@@ -46,11 +48,13 @@ function update_script() {
|
|||||||
PHP_VERSION="8.4" PHP_FPM="YES" setup_php
|
PHP_VERSION="8.4" PHP_FPM="YES" setup_php
|
||||||
sed -i 's/php8\.[0-9]/php8.4/g' /etc/nginx/conf.d/2fauth.conf
|
sed -i 's/php8\.[0-9]/php8.4/g' /etc/nginx/conf.d/2fauth.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "2fauth" "Bubka/2FAuth" "tarball"
|
fetch_and_deploy_gh_release "2fauth" "Bubka/2FAuth" "tarball"
|
||||||
setup_composer
|
setup_composer
|
||||||
cp /opt/2fauth-backup/.env /opt/2fauth/.env
|
restore_backup
|
||||||
cp -r /opt/2fauth-backup/storage /opt/2fauth/storage
|
|
||||||
cd /opt/2fauth || return
|
msg_info "Configuring 2FAuth"
|
||||||
|
cd /opt/2fauth
|
||||||
export COMPOSER_ALLOW_SUPERUSER=1
|
export COMPOSER_ALLOW_SUPERUSER=1
|
||||||
$STD composer install --no-dev --prefer-dist
|
$STD composer install --no-dev --prefer-dist
|
||||||
php artisan 2fauth:install
|
php artisan 2fauth:install
|
||||||
@@ -58,7 +62,7 @@ function update_script() {
|
|||||||
chmod -R 755 /opt/2fauth
|
chmod -R 755 /opt/2fauth
|
||||||
$STD systemctl restart php8.4-fpm
|
$STD systemctl restart php8.4-fpm
|
||||||
$STD systemctl restart nginx
|
$STD systemctl restart nginx
|
||||||
rm -rf /opt/2fauth-backup
|
msg_ok "Configured 2FAuth"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
+6
-10
@@ -35,10 +35,8 @@ function update_script() {
|
|||||||
systemctl stop adventurelog-frontend
|
systemctl stop adventurelog-frontend
|
||||||
msg_ok "Services Stopped"
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
msg_info "Backup Old Installation"
|
create_backup /opt/adventurelog/backend/server/.env \
|
||||||
cp -r /opt/adventurelog /opt/adventurelog-backup
|
/opt/adventurelog/backend/server/media
|
||||||
rm -rf /opt/adventurelog
|
|
||||||
msg_ok "Backup done"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog" "tarball"
|
fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog" "tarball"
|
||||||
PYTHON_VERSION="3.13" setup_uv
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
@@ -47,9 +45,9 @@ function update_script() {
|
|||||||
$STD sudo -u postgres psql -d adventurelog_db -c "CREATE EXTENSION IF NOT EXISTS postgis;"
|
$STD sudo -u postgres psql -d adventurelog_db -c "CREATE EXTENSION IF NOT EXISTS postgis;"
|
||||||
msg_ok "PostgreSQL Extensions Ready"
|
msg_ok "PostgreSQL Extensions Ready"
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
restore_backup
|
||||||
cp /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
|
|
||||||
cp -r /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
|
msg_info "Updating AdventureLog"
|
||||||
cd /opt/adventurelog/backend/server
|
cd /opt/adventurelog/backend/server
|
||||||
if [[ ! -x .venv/bin/python ]]; then
|
if [[ ! -x .venv/bin/python ]]; then
|
||||||
$STD uv venv --clear .venv
|
$STD uv venv --clear .venv
|
||||||
@@ -61,12 +59,10 @@ function update_script() {
|
|||||||
$STD .venv/bin/python -m manage collectstatic --noinput
|
$STD .venv/bin/python -m manage collectstatic --noinput
|
||||||
$STD .venv/bin/python -m manage migrate
|
$STD .venv/bin/python -m manage migrate
|
||||||
|
|
||||||
cp /opt/adventurelog-backup/frontend/.env /opt/adventurelog/frontend/.env
|
|
||||||
cd /opt/adventurelog/frontend
|
cd /opt/adventurelog/frontend
|
||||||
$STD pnpm i
|
$STD pnpm i
|
||||||
$STD pnpm build
|
$STD pnpm build
|
||||||
rm -rf /opt/adventurelog-backup
|
msg_ok "Updated AdventureLog"
|
||||||
msg_ok "Updated ${APP}"
|
|
||||||
|
|
||||||
msg_info "Starting Services"
|
msg_info "Starting Services"
|
||||||
systemctl daemon-reexec
|
systemctl daemon-reexec
|
||||||
|
|||||||
+5
-13
@@ -34,24 +34,16 @@ function update_script() {
|
|||||||
systemctl stop apache2
|
systemctl stop apache2
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Creating Backup"
|
create_backup /opt/ampache/config/ampache.cfg.php \
|
||||||
cp /opt/ampache/config/ampache.cfg.php /tmp/ampache.cfg.php.backup
|
/opt/ampache/public/rest/.htaccess \
|
||||||
cp /opt/ampache/public/rest/.htaccess /tmp/ampache_rest.htaccess.backup
|
/opt/ampache/public/play/.htaccess \
|
||||||
cp /opt/ampache/public/play/.htaccess /tmp/ampache_play.htaccess.backup
|
/opt/ampache/advanced-config
|
||||||
rm -rf /opt/ampache_backup
|
|
||||||
mv /opt/ampache /opt/ampache_backup
|
|
||||||
msg_ok "Created Backup"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "Ampache" "ampache/ampache" "prebuild" "latest" "/opt/ampache" "ampache-*_all_php8.4.zip"
|
fetch_and_deploy_gh_release "Ampache" "ampache/ampache" "prebuild" "latest" "/opt/ampache" "ampache-*_all_php8.4.zip"
|
||||||
|
|
||||||
msg_info "Restoring Backup"
|
restore_backup
|
||||||
cp /tmp/ampache.cfg.php.backup /opt/ampache/config/ampache.cfg.php
|
|
||||||
cp /tmp/ampache_rest.htaccess.backup /opt/ampache/public/rest/.htaccess
|
|
||||||
cp /tmp/ampache_play.htaccess.backup /opt/ampache/public/play/.htaccess
|
|
||||||
chmod 664 /opt/ampache/public/rest/.htaccess /opt/ampache/public/play/.htaccess
|
chmod 664 /opt/ampache/public/rest/.htaccess /opt/ampache/public/play/.htaccess
|
||||||
chown -R www-data:www-data /opt/ampache
|
chown -R www-data:www-data /opt/ampache
|
||||||
rm -f /tmp/ampache*.backup
|
|
||||||
msg_ok "Restored Configuration"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start apache2
|
systemctl start apache2
|
||||||
|
|||||||
+2
-5
@@ -35,9 +35,7 @@ function update_script() {
|
|||||||
systemctl stop anchor-web anchor-server
|
systemctl stop anchor-web anchor-server
|
||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
msg_info "Backing up Configuration"
|
create_backup /opt/anchor/.env
|
||||||
cp /opt/anchor/.env /opt/anchor.env.bak
|
|
||||||
msg_ok "Backed up Configuration"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "anchor" "ZhFahim/anchor" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "anchor" "ZhFahim/anchor" "tarball"
|
||||||
|
|
||||||
@@ -57,8 +55,7 @@ function update_script() {
|
|||||||
cp -r public .next/standalone/public
|
cp -r public .next/standalone/public
|
||||||
msg_ok "Built Web Interface"
|
msg_ok "Built Web Interface"
|
||||||
|
|
||||||
cp /opt/anchor.env.bak /opt/anchor/.env
|
restore_backup
|
||||||
rm -f /opt/anchor.env.bak
|
|
||||||
|
|
||||||
msg_info "Running Database Migrations"
|
msg_info "Running Database Migrations"
|
||||||
cd /opt/anchor/server
|
cd /opt/anchor/server
|
||||||
|
|||||||
@@ -36,17 +36,12 @@ function update_script() {
|
|||||||
systemctl stop anytype
|
systemctl stop anytype
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/anytype/data
|
||||||
cp -r /opt/anytype/data /opt/anytype_data_backup
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "anytype" "grishy/any-sync-bundle" "prebuild" "latest" "/opt/anytype" "any-sync-bundle_*_linux_amd64.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "anytype" "grishy/any-sync-bundle" "prebuild" "latest" "/opt/anytype" "any-sync-bundle_*_linux_amd64.tar.gz"
|
||||||
chmod +x /opt/anytype/any-sync-bundle
|
chmod +x /opt/anytype/any-sync-bundle
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
cp -r /opt/anytype_data_backup/. /opt/anytype/data
|
|
||||||
rm -rf /opt/anytype_data_backup
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start anytype
|
systemctl start anytype
|
||||||
|
|||||||
+8
-12
@@ -26,26 +26,26 @@ function update_script() {
|
|||||||
check_container_resources
|
check_container_resources
|
||||||
|
|
||||||
TOMCAT_DIR=$(ls -d /opt/tomcat-* 2>/dev/null | head -n1)
|
TOMCAT_DIR=$(ls -d /opt/tomcat-* 2>/dev/null | head -n1)
|
||||||
if [[ -z "$TOMCAT_DIR" || ! -d "$TOMCAT_DIR" ]]; then
|
if [[ -z $TOMCAT_DIR || ! -d $TOMCAT_DIR ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Detect major version and current version from install path (e.g., /opt/tomcat-11 -> 11)
|
# Detect major version and current version from install path (e.g., /opt/tomcat-11 -> 11)
|
||||||
TOMCAT_MAJOR=$(basename "$TOMCAT_DIR" | grep -oP 'tomcat-\K[0-9]+')
|
TOMCAT_MAJOR=$(basename "$TOMCAT_DIR" | grep -oP 'tomcat-\K[0-9]+')
|
||||||
if [[ -z "$TOMCAT_MAJOR" ]]; then
|
if [[ -z $TOMCAT_MAJOR ]]; then
|
||||||
msg_error "Cannot determine Tomcat major version from path: $TOMCAT_DIR"
|
msg_error "Cannot determine Tomcat major version from path: $TOMCAT_DIR"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
CURRENT_VERSION=$(grep -oP 'Apache Tomcat Version \K[0-9.]+' "$TOMCAT_DIR/RELEASE-NOTES" 2>/dev/null || echo "unknown")
|
CURRENT_VERSION=$(grep -oP 'Apache Tomcat Version \K[0-9.]+' "$TOMCAT_DIR/RELEASE-NOTES" 2>/dev/null || echo "unknown")
|
||||||
LATEST_VERSION=$(curl -fsSL "https://dlcdn.apache.org/tomcat/tomcat-${TOMCAT_MAJOR}/" | grep -oP 'v[0-9]+\.[0-9]+\.[0-9]+(-M[0-9]+)?/' | sort -V | tail -n1 | sed 's/\/$//; s/v//')
|
LATEST_VERSION=$(curl -fsSL "https://dlcdn.apache.org/tomcat/tomcat-${TOMCAT_MAJOR}/" | grep -oP 'v[0-9]+\.[0-9]+\.[0-9]+(-M[0-9]+)?/' | sort -V | tail -n1 | sed 's/\/$//; s/v//')
|
||||||
|
|
||||||
if [[ -z "$LATEST_VERSION" ]]; then
|
if [[ -z $LATEST_VERSION ]]; then
|
||||||
msg_error "Failed to fetch latest version for Tomcat ${TOMCAT_MAJOR}"
|
msg_error "Failed to fetch latest version for Tomcat ${TOMCAT_MAJOR}"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$CURRENT_VERSION" == "$LATEST_VERSION" ]]; then
|
if [[ $CURRENT_VERSION == "$LATEST_VERSION" ]]; then
|
||||||
msg_ok "${APP} ${CURRENT_VERSION} is already up to date"
|
msg_ok "${APP} ${CURRENT_VERSION} is already up to date"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
@@ -54,13 +54,9 @@ function update_script() {
|
|||||||
systemctl stop tomcat
|
systemctl stop tomcat
|
||||||
msg_ok "Stopped Tomcat service"
|
msg_ok "Stopped Tomcat service"
|
||||||
|
|
||||||
msg_info "Backing up configuration and applications"
|
create_backup $TOMCAT_DIR/conf
|
||||||
BACKUP_DIR="/tmp/tomcat-backup-$$"
|
[[ -d $TOMCAT_DIR/webapps ]] && create_backup $TOMCAT_DIR/webapps
|
||||||
mkdir -p "$BACKUP_DIR"
|
[[ -d $TOMCAT_DIR/lib ]] && create_backup $TOMCAT_DIR/lib
|
||||||
cp -a "$TOMCAT_DIR/conf" "$BACKUP_DIR/conf"
|
|
||||||
cp -a "$TOMCAT_DIR/webapps" "$BACKUP_DIR/webapps"
|
|
||||||
[[ -d "$TOMCAT_DIR/lib" ]] && cp -a "$TOMCAT_DIR/lib" "$BACKUP_DIR/lib"
|
|
||||||
msg_ok "Backed up configuration and applications"
|
|
||||||
|
|
||||||
msg_info "Downloading Tomcat ${LATEST_VERSION}"
|
msg_info "Downloading Tomcat ${LATEST_VERSION}"
|
||||||
TOMCAT_URL="https://dlcdn.apache.org/tomcat/tomcat-${TOMCAT_MAJOR}/v${LATEST_VERSION}/bin/apache-tomcat-${LATEST_VERSION}.tar.gz"
|
TOMCAT_URL="https://dlcdn.apache.org/tomcat/tomcat-${TOMCAT_MAJOR}/v${LATEST_VERSION}/bin/apache-tomcat-${LATEST_VERSION}.tar.gz"
|
||||||
@@ -78,7 +74,7 @@ function update_script() {
|
|||||||
cp -a "$BACKUP_DIR/webapps"/* "$TOMCAT_DIR/webapps/" 2>/dev/null || true
|
cp -a "$BACKUP_DIR/webapps"/* "$TOMCAT_DIR/webapps/" 2>/dev/null || true
|
||||||
if [[ -d "$BACKUP_DIR/lib" ]]; then
|
if [[ -d "$BACKUP_DIR/lib" ]]; then
|
||||||
for jar in "$BACKUP_DIR/lib"/*.jar; do
|
for jar in "$BACKUP_DIR/lib"/*.jar; do
|
||||||
[[ -f "$jar" ]] || continue
|
[[ -f $jar ]] || continue
|
||||||
jar_name=$(basename "$jar")
|
jar_name=$(basename "$jar")
|
||||||
if [[ ! -f "$TOMCAT_DIR/lib/$jar_name" ]]; then
|
if [[ ! -f "$TOMCAT_DIR/lib/$jar_name" ]]; then
|
||||||
cp "$jar" "$TOMCAT_DIR/lib/"
|
cp "$jar" "$TOMCAT_DIR/lib/"
|
||||||
|
|||||||
+1
-1
@@ -42,7 +42,7 @@ function update_script() {
|
|||||||
RUST_PROFILE="minimal" RUST_TOOLCHAIN="stable" setup_rust
|
RUST_PROFILE="minimal" RUST_TOOLCHAIN="stable" setup_rust
|
||||||
setup_yq
|
setup_yq
|
||||||
|
|
||||||
AUTHENTIK_VERSION="version/2026.5.2"
|
AUTHENTIK_VERSION="version/2026.5.3"
|
||||||
# Source: https://github.com/goauthentik/fips/blob/main/Makefile#L26
|
# Source: https://github.com/goauthentik/fips/blob/main/Makefile#L26
|
||||||
XMLSEC_VERSION="1.3.11"
|
XMLSEC_VERSION="1.3.11"
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -37,16 +37,17 @@ function update_script() {
|
|||||||
systemctl stop uwsgi
|
systemctl stop uwsgi
|
||||||
msg_ok "Services Stopped"
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
|
create_backup /opt/babybuddy/babybuddy/settings/production.py
|
||||||
|
|
||||||
msg_info "Cleaning old files"
|
msg_info "Cleaning old files"
|
||||||
cp /opt/babybuddy/babybuddy/settings/production.py /tmp/production.py.bak
|
|
||||||
find . -mindepth 1 -maxdepth 1 ! -name '.venv' -exec rm -rf {} +
|
find . -mindepth 1 -maxdepth 1 ! -name '.venv' -exec rm -rf {} +
|
||||||
msg_ok "Cleaned old files"
|
msg_ok "Cleaned old files"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "babybuddy" "babybuddy/babybuddy" "tarball"
|
fetch_and_deploy_gh_release "babybuddy" "babybuddy/babybuddy" "tarball"
|
||||||
|
restore_backup
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
msg_info "Updating ${APP}"
|
||||||
cd /opt/babybuddy
|
cd /opt/babybuddy
|
||||||
mv /tmp/production.py.bak /opt/babybuddy/babybuddy/settings/production.py
|
|
||||||
source .venv/bin/activate
|
source .venv/bin/activate
|
||||||
$STD uv pip install -r requirements.txt
|
$STD uv pip install -r requirements.txt
|
||||||
export DJANGO_SETTINGS_MODULE=babybuddy.settings.production
|
export DJANGO_SETTINGS_MODULE=babybuddy.settings.production
|
||||||
|
|||||||
+5
-8
@@ -34,22 +34,19 @@ function update_script() {
|
|||||||
systemctl stop apache2
|
systemctl stop apache2
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up data"
|
create_backup /opt/baikal/config/baikal.yaml \
|
||||||
mv /opt/baikal /opt/baikal-backup
|
/opt/baikal/Specific/
|
||||||
msg_ok "Backed up data"
|
|
||||||
|
|
||||||
PHP_APACHE="YES" PHP_VERSION="8.3" setup_php
|
PHP_APACHE="YES" PHP_VERSION="8.3" setup_php
|
||||||
setup_composer
|
setup_composer
|
||||||
fetch_and_deploy_gh_release "baikal" "sabre-io/Baikal" "tarball"
|
fetch_and_deploy_gh_release "baikal" "sabre-io/Baikal" "tarball"
|
||||||
|
restore_backup
|
||||||
msg_info "Configuring Baikal"
|
|
||||||
cp -r /opt/baikal-backup/config/baikal.yaml /opt/baikal/config/
|
|
||||||
cp -r /opt/baikal-backup/Specific/ /opt/baikal/
|
|
||||||
chown -R www-data:www-data /opt/baikal/
|
chown -R www-data:www-data /opt/baikal/
|
||||||
chmod -R 755 /opt/baikal/
|
chmod -R 755 /opt/baikal/
|
||||||
|
|
||||||
|
msg_info "Configuring Baikal"
|
||||||
cd /opt/baikal
|
cd /opt/baikal
|
||||||
$STD composer install
|
$STD composer install
|
||||||
rm -rf /opt/baikal-backup
|
|
||||||
msg_ok "Configured Baikal"
|
msg_ok "Configured Baikal"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
|
|||||||
+6
-18
@@ -38,11 +38,11 @@ function update_script() {
|
|||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Configuration and Data"
|
msg_info "Backing up Configuration and Data"
|
||||||
cp /opt/bambuddy/.env /opt/bambuddy.env.bak
|
create_backup /opt/bambuddy/.env \
|
||||||
cp -r /opt/bambuddy/data /opt/bambuddy_data_bak
|
/opt/bambuddy/data \
|
||||||
[[ -f /opt/bambuddy/bambuddy.db ]] && cp /opt/bambuddy/bambuddy.db /opt/bambuddy.db.bak
|
/opt/bambuddy/bambuddy.db \
|
||||||
[[ -f /opt/bambuddy/bambutrack.db ]] && cp /opt/bambuddy/bambutrack.db /opt/bambutrack.db.bak
|
/opt/bambuddy/bambutrack.db \
|
||||||
[[ -d /opt/bambuddy/archive ]] && cp -r /opt/bambuddy/archive /opt/bambuddy_archive_bak
|
/opt/bambuddy/archive
|
||||||
msg_ok "Backed up Configuration and Data"
|
msg_ok "Backed up Configuration and Data"
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bambuddy" "maziggy/bambuddy" "tarball" "latest" "/opt/bambuddy"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bambuddy" "maziggy/bambuddy" "tarball" "latest" "/opt/bambuddy"
|
||||||
@@ -59,19 +59,7 @@ function update_script() {
|
|||||||
$STD npm run build
|
$STD npm run build
|
||||||
msg_ok "Rebuilt Frontend"
|
msg_ok "Rebuilt Frontend"
|
||||||
|
|
||||||
msg_info "Restoring Configuration and Data"
|
restore_backup
|
||||||
mkdir -p /opt/bambuddy/data
|
|
||||||
cp /opt/bambuddy.env.bak /opt/bambuddy/.env
|
|
||||||
cp -r /opt/bambuddy_data_bak/. /opt/bambuddy/data/
|
|
||||||
[[ -f /opt/bambuddy.db.bak ]] && cp /opt/bambuddy.db.bak /opt/bambuddy/bambuddy.db
|
|
||||||
[[ -f /opt/bambutrack.db.bak ]] && cp /opt/bambutrack.db.bak /opt/bambuddy/bambutrack.db
|
|
||||||
if [[ -d /opt/bambuddy_archive_bak ]]; then
|
|
||||||
mkdir -p /opt/bambuddy/archive
|
|
||||||
cp -r /opt/bambuddy_archive_bak/. /opt/bambuddy/archive/
|
|
||||||
fi
|
|
||||||
rm -f /opt/bambuddy.env.bak /opt/bambuddy.db.bak /opt/bambutrack.db.bak
|
|
||||||
rm -rf /opt/bambuddy_data_bak /opt/bambuddy_archive_bak
|
|
||||||
msg_ok "Restored Configuration and Data"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start bambuddy
|
systemctl start bambuddy
|
||||||
|
|||||||
+11
-15
@@ -37,16 +37,15 @@ function update_script() {
|
|||||||
|
|
||||||
PHP_VERSION="8.4" PHP_FPM="YES" PHP_MODULE="pdo-sqlite" setup_php
|
PHP_VERSION="8.4" PHP_FPM="YES" PHP_MODULE="pdo-sqlite" setup_php
|
||||||
|
|
||||||
msg_info "Backing up Bar Assistant"
|
create_backup /opt/bar-assistant/.env \
|
||||||
mv /opt/bar-assistant /opt/bar-assistant-backup
|
/opt/bar-assistant/storage/bar-assistant
|
||||||
msg_ok "Backed up Bar Assistant"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "bar-assistant" "karlomikus/bar-assistant" "tarball" "latest" "/opt/bar-assistant"
|
fetch_and_deploy_gh_release "bar-assistant" "karlomikus/bar-assistant" "tarball" "latest" "/opt/bar-assistant"
|
||||||
setup_composer
|
setup_composer
|
||||||
|
|
||||||
msg_info "Updating Bar-Assistant"
|
restore_backup
|
||||||
cp -r /opt/bar-assistant-backup/.env /opt/bar-assistant/.env
|
|
||||||
cp -r /opt/bar-assistant-backup/storage/bar-assistant /opt/bar-assistant/storage/bar-assistant
|
msg_info "Configuring Bar-Assistant"
|
||||||
cd /opt/bar-assistant
|
cd /opt/bar-assistant
|
||||||
$STD composer install --no-interaction
|
$STD composer install --no-interaction
|
||||||
$STD php artisan migrate --force
|
$STD php artisan migrate --force
|
||||||
@@ -57,8 +56,7 @@ function update_script() {
|
|||||||
$STD php artisan route:cache
|
$STD php artisan route:cache
|
||||||
$STD php artisan event:cache
|
$STD php artisan event:cache
|
||||||
chown -R www-data:www-data /opt/bar-assistant
|
chown -R www-data:www-data /opt/bar-assistant
|
||||||
rm -rf /opt/bar-assistant-backup
|
msg_ok "Configured Bar-Assistant"
|
||||||
msg_ok "Updated Bar-Assistant"
|
|
||||||
|
|
||||||
msg_info "Starting nginx"
|
msg_info "Starting nginx"
|
||||||
systemctl start nginx
|
systemctl start nginx
|
||||||
@@ -66,23 +64,21 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim"; then
|
if check_for_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim"; then
|
||||||
msg_info "Backing up Vue Salt Rim"
|
|
||||||
mv /opt/vue-salt-rim /opt/vue-salt-rim-backup
|
create_backup /opt/vue-salt-rim/public/config.js
|
||||||
msg_ok "Backed up Vue Salt Rim"
|
|
||||||
|
|
||||||
msg_info "Stopping nginx"
|
msg_info "Stopping nginx"
|
||||||
systemctl stop nginx
|
systemctl stop nginx
|
||||||
msg_ok "Stopped nginx"
|
msg_ok "Stopped nginx"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim" "tarball" "latest" "/opt/vue-salt-rim"
|
fetch_and_deploy_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim" "tarball" "latest" "/opt/vue-salt-rim"
|
||||||
|
restore_backup
|
||||||
|
|
||||||
msg_info "Updating Vue Salt Rim"
|
msg_info "Configuring Vue Salt Rim"
|
||||||
cp /opt/vue-salt-rim-backup/public/config.js /opt/vue-salt-rim/public/config.js
|
|
||||||
cd /opt/vue-salt-rim
|
cd /opt/vue-salt-rim
|
||||||
$STD npm install
|
$STD npm install
|
||||||
$STD npm run build
|
$STD npm run build
|
||||||
rm -rf /opt/vue-salt-rim-backup
|
msg_ok "Configured Vue Salt Rim"
|
||||||
msg_ok "Updated Vue Salt Rim"
|
|
||||||
|
|
||||||
msg_info "Starting nginx"
|
msg_info "Starting nginx"
|
||||||
systemctl start nginx
|
systemctl start nginx
|
||||||
|
|||||||
+6
-13
@@ -35,27 +35,20 @@ function update_script() {
|
|||||||
systemctl stop baserow-backend baserow-celery baserow-celery-beat baserow-celery-export baserow-frontend
|
systemctl stop baserow-backend baserow-celery baserow-celery-beat baserow-celery-export baserow-frontend
|
||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/baserow/.env
|
||||||
cp /opt/baserow/.env /opt/baserow.env.bak
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "baserow" "baserow/baserow" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "baserow" "baserow/baserow" "tarball"
|
||||||
|
restore_backup
|
||||||
|
|
||||||
msg_info "Restoring Configuration"
|
msg_info "Configuring Baserow"
|
||||||
cp /opt/baserow.env.bak /opt/baserow/.env
|
|
||||||
rm -f /opt/baserow.env.bak
|
|
||||||
msg_ok "Restored Configuration"
|
|
||||||
|
|
||||||
msg_info "Updating Backend Dependencies"
|
|
||||||
cd /opt/baserow/backend
|
cd /opt/baserow/backend
|
||||||
$STD uv sync --frozen --no-dev
|
$STD uv sync --frozen --no-dev
|
||||||
msg_ok "Updated Backend Dependencies"
|
msg_ok "Configured Baserow"
|
||||||
|
|
||||||
msg_info "Updating Frontend"
|
msg_info "Rebuilding Frontend"
|
||||||
cd /opt/baserow/web-frontend
|
cd /opt/baserow/web-frontend
|
||||||
$STD npm install
|
$STD npm install
|
||||||
$STD npm run build
|
$STD npm run build
|
||||||
msg_ok "Updated Frontend"
|
msg_ok "Rebuilt Frontend"
|
||||||
|
|
||||||
msg_info "Running Migrations"
|
msg_info "Running Migrations"
|
||||||
cd /opt/baserow/backend
|
cd /opt/baserow/backend
|
||||||
|
|||||||
+6
-11
@@ -36,18 +36,13 @@ function update_script() {
|
|||||||
systemctl stop bentopdf
|
systemctl stop bentopdf
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
[[ -f /opt/bentopdf/.env.production ]] && cp /opt/bentopdf/.env.production /opt/production.env
|
create_backup /opt/bentopdf/.env.production
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bentopdf" "alam00000/bentopdf" "tarball" "latest" "/opt/bentopdf"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bentopdf" "alam00000/bentopdf" "tarball" "latest" "/opt/bentopdf"
|
||||||
|
restore_backup
|
||||||
|
|
||||||
msg_info "Updating BentoPDF"
|
msg_info "Configuring BentoPDF"
|
||||||
cd /opt/bentopdf
|
cd /opt/bentopdf
|
||||||
$STD npm ci --no-audit --no-fund
|
$STD npm ci --no-audit --no-fund
|
||||||
if [[ -f /opt/production.env ]]; then
|
|
||||||
mv /opt/production.env ./.env.production
|
|
||||||
else
|
|
||||||
cp ./.env.example ./.env.production
|
|
||||||
fi
|
|
||||||
export NODE_OPTIONS="--max-old-space-size=3072"
|
export NODE_OPTIONS="--max-old-space-size=3072"
|
||||||
export SIMPLE_MODE=true
|
export SIMPLE_MODE=true
|
||||||
export VITE_USE_CDN=true
|
export VITE_USE_CDN=true
|
||||||
@@ -64,9 +59,9 @@ EOF
|
|||||||
if [[ ! -f /etc/ssl/private/bentopdf-selfsigned.key || ! -f /etc/ssl/certs/bentopdf-selfsigned.crt ]]; then
|
if [[ ! -f /etc/ssl/private/bentopdf-selfsigned.key || ! -f /etc/ssl/certs/bentopdf-selfsigned.crt ]]; then
|
||||||
CERT_CN="$(hostname -I | awk '{print $1}')"
|
CERT_CN="$(hostname -I | awk '{print $1}')"
|
||||||
$STD openssl req -x509 -nodes -newkey rsa:2048 -days 3650 \
|
$STD openssl req -x509 -nodes -newkey rsa:2048 -days 3650 \
|
||||||
-keyout /etc/ssl/private/bentopdf-selfsigned.key \
|
-keyout /etc/ssl/private/bentopdf-selfsigned.key \
|
||||||
-out /etc/ssl/certs/bentopdf-selfsigned.crt \
|
-out /etc/ssl/certs/bentopdf-selfsigned.crt \
|
||||||
-subj "/CN=${CERT_CN}"
|
-subj "/CN=${CERT_CN}"
|
||||||
fi
|
fi
|
||||||
cat <<'EOF' >/etc/nginx/sites-available/bentopdf
|
cat <<'EOF' >/etc/nginx/sites-available/bentopdf
|
||||||
server {
|
server {
|
||||||
|
|||||||
+7
-7
@@ -35,14 +35,14 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
MIGRATE_V1=0
|
MIGRATE_V1=0
|
||||||
if [[ "$CURRENT_VERSION" == 0.* ]]; then
|
if [[ $CURRENT_VERSION == 0.* ]]; then
|
||||||
MIGRATE_V1=1
|
MIGRATE_V1=1
|
||||||
DISK_USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
|
DISK_USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
|
||||||
if [ "$DISK_USAGE" -gt 50 ]; then
|
if [ "$DISK_USAGE" -gt 50 ]; then
|
||||||
echo -e "\n${RD}Warning: Less than 50% free storage remaining on the root disk.${CL}"
|
echo -e "\n${RD}Warning: Less than 50% free storage remaining on the root disk.${CL}"
|
||||||
echo -e "${RD}Bichon v1 data migration temporarily duplicates data and requires free space for it.${CL}"
|
echo -e "${RD}Bichon v1 data migration temporarily duplicates data and requires free space for it.${CL}"
|
||||||
read -r -p "Are you sure you want to proceed with the update? (y/N): " proceed
|
read -r -p "Are you sure you want to proceed with the update? (y/N): " proceed
|
||||||
if [[ ! "$proceed" =~ ^[Yy]$ ]]; then
|
if [[ ! $proceed =~ ^[Yy]$ ]]; then
|
||||||
msg_error "Update cancelled by user."
|
msg_error "Update cancelled by user."
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
@@ -53,7 +53,7 @@ function update_script() {
|
|||||||
echo -e "\n${RD}Warning: LXC has less than 2GB of RAM allocated (${RAM_TOTAL}MB).${CL}"
|
echo -e "\n${RD}Warning: LXC has less than 2GB of RAM allocated (${RAM_TOTAL}MB).${CL}"
|
||||||
echo -e "${RD}Bichon v1 data migration consumes significant memory and may crash if insufficient.${CL}"
|
echo -e "${RD}Bichon v1 data migration consumes significant memory and may crash if insufficient.${CL}"
|
||||||
read -r -p "Are you sure you want to proceed with the update? (y/N): " proceed_ram
|
read -r -p "Are you sure you want to proceed with the update? (y/N): " proceed_ram
|
||||||
if [[ ! "$proceed_ram" =~ ^[Yy]$ ]]; then
|
if [[ ! $proceed_ram =~ ^[Yy]$ ]]; then
|
||||||
msg_error "Update cancelled by user."
|
msg_error "Update cancelled by user."
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
@@ -65,12 +65,12 @@ function update_script() {
|
|||||||
systemctl stop bichon
|
systemctl stop bichon
|
||||||
msg_ok "Stopped service"
|
msg_ok "Stopped service"
|
||||||
|
|
||||||
cp /opt/bichon/bichon.env /tmp/bichon.env.backup
|
create_backup /opt/bichon/bichon.env
|
||||||
|
|
||||||
if [ "$MIGRATE_V1" -eq 1 ] && [ "$CURRENT_VERSION" != "0.3.7" ]; then
|
if [ "$MIGRATE_V1" -eq 1 ] && [ "$CURRENT_VERSION" != "0.3.7" ]; then
|
||||||
msg_info "Updating to intermediate version v0.3.7"
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "v0.3.7" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "v0.3.7" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz"
|
||||||
cp /tmp/bichon.env.backup /opt/bichon/bichon.env
|
restore_backup
|
||||||
|
msg_info "Updating to intermediate version v0.3.7"
|
||||||
systemctl start bichon
|
systemctl start bichon
|
||||||
sleep 30
|
sleep 30
|
||||||
systemctl stop bichon
|
systemctl stop bichon
|
||||||
@@ -78,7 +78,7 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "latest" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "latest" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz"
|
||||||
cp /tmp/bichon.env.backup /opt/bichon/bichon.env
|
restore_backup
|
||||||
|
|
||||||
if [ "$MIGRATE_V1" -eq 1 ]; then
|
if [ "$MIGRATE_V1" -eq 1 ]; then
|
||||||
msg_info "Running Bichon v1 Data Migration (patience)"
|
msg_info "Running Bichon v1 Data Migration (patience)"
|
||||||
|
|||||||
+6
-8
@@ -56,21 +56,19 @@ function update_script() {
|
|||||||
bitmagnet \
|
bitmagnet \
|
||||||
>/tmp/backup.sql
|
>/tmp/backup.sql
|
||||||
mv /tmp/backup.sql /opt/
|
mv /tmp/backup.sql /opt/
|
||||||
[ -f /opt/bitmagnet/.env ] && cp /opt/bitmagnet/.env /opt/
|
create_backup /opt/bitmagnet/.env \
|
||||||
[ -f /opt/bitmagnet/config.yml ] && cp /opt/bitmagnet/config.yml /opt/
|
/opt/bitmagnet/config.yml
|
||||||
msg_ok "Data backed up"
|
msg_ok "Data backed up"
|
||||||
|
|
||||||
rm -rf /opt/bitmagnet
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet" "tarball"
|
||||||
fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet" "tarball"
|
restore_backup
|
||||||
|
|
||||||
msg_info "Updating Bitmagnet"
|
msg_info "Configuring Bitmagnet"
|
||||||
cd /opt/bitmagnet
|
cd /opt/bitmagnet
|
||||||
VREL=v$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
VREL=v$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
|
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
|
||||||
chmod +x bitmagnet
|
chmod +x bitmagnet
|
||||||
[ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
|
msg_ok "Configured Bitmagnet"
|
||||||
[ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
|
|
||||||
msg_ok "Updated Bitmagnet"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start bitmagnet-web
|
systemctl start bitmagnet-web
|
||||||
|
|||||||
+2
-8
@@ -33,15 +33,9 @@ function update_script() {
|
|||||||
systemctl stop blocky
|
systemctl stop blocky
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backup Config"
|
create_backup /opt/blocky/config.yml
|
||||||
mv /opt/blocky/config.yml /opt/config.yml
|
|
||||||
msg_ok "Backed Up Config"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_x86_64.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_x86_64.tar.gz"
|
||||||
|
restore_backup
|
||||||
msg_info "Restore Config"
|
|
||||||
mv /opt/config.yml /opt/blocky/config.yml
|
|
||||||
msg_ok "Restored Config"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start blocky
|
systemctl start blocky
|
||||||
|
|||||||
@@ -0,0 +1,78 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/bookorbit/bookorbit
|
||||||
|
|
||||||
|
APP="BookOrbit"
|
||||||
|
var_tags="${var_tags:-books;library;reading}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-2048}"
|
||||||
|
var_disk="${var_disk:-10}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-13}"
|
||||||
|
var_arm64="${var_arm64:-no}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -d /opt/bookorbit ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "bookorbit" "bookorbit/bookorbit"; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop bookorbit
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
create_backup /opt/bookorbit/.env
|
||||||
|
|
||||||
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bookorbit" "bookorbit/bookorbit" "tarball"
|
||||||
|
|
||||||
|
msg_info "Rebuilding Application"
|
||||||
|
cd /opt/bookorbit
|
||||||
|
PNPM_VERSION=$(jq -r '.packageManager | ltrimstr("pnpm@")' /opt/bookorbit/package.json)
|
||||||
|
$STD corepack enable
|
||||||
|
$STD corepack prepare "pnpm@${PNPM_VERSION}" --activate
|
||||||
|
$STD pnpm install --frozen-lockfile
|
||||||
|
$STD pnpm --filter client run build-only
|
||||||
|
$STD pnpm --filter server run build
|
||||||
|
cp -r /opt/bookorbit/client/dist /opt/bookorbit/server/public
|
||||||
|
mkdir -p /opt/bookorbit/server/migrations
|
||||||
|
cp -r /opt/bookorbit/server/src/db/migrations/. /opt/bookorbit/server/migrations/
|
||||||
|
chmod +x /opt/bookorbit/server/bin/kepubify/*
|
||||||
|
APP_VER=$(cat ~/.bookorbit)
|
||||||
|
sed -i "s/^APP_VERSION=.*/APP_VERSION=v$APP_VER/" /opt/bookorbit/.env
|
||||||
|
msg_ok "Rebuilt Application"
|
||||||
|
|
||||||
|
msg_info "Updating Kobo Python Runtime"
|
||||||
|
$STD uv pip install --python /opt/bookorbit-python/bin/python -r /opt/bookorbit/server/requirements/kobo-cloudscraper.txt
|
||||||
|
msg_ok "Updated Kobo Python Runtime"
|
||||||
|
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start bookorbit
|
||||||
|
msg_ok "Started Service"
|
||||||
|
msg_ok "Updated successfully!"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||||
+5
-12
@@ -36,20 +36,14 @@ function update_script() {
|
|||||||
systemctl stop apache2
|
systemctl stop apache2
|
||||||
msg_ok "Services Stopped"
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
msg_info "Backing up data"
|
create_backup /opt/bookstack/.env \
|
||||||
mv /opt/bookstack /opt/bookstack-backup
|
/opt/bookstack/public/uploads \
|
||||||
msg_ok "Backup finished"
|
/opt/bookstack/storage/uploads \
|
||||||
|
/opt/bookstack/themes
|
||||||
fetch_and_deploy_gh_release "bookstack" "BookStackApp/BookStack" "tarball"
|
fetch_and_deploy_gh_release "bookstack" "BookStackApp/BookStack" "tarball"
|
||||||
PHP_VERSION="8.3" PHP_APACHE="YES" PHP_FPM="YES" PHP_MODULE="ldap,tidy,mysqli" setup_php
|
PHP_VERSION="8.3" PHP_APACHE="YES" PHP_FPM="YES" PHP_MODULE="ldap,tidy,mysqli" setup_php
|
||||||
setup_composer
|
setup_composer
|
||||||
|
restore_backup
|
||||||
msg_info "Restoring backup"
|
|
||||||
cp /opt/bookstack-backup/.env /opt/bookstack/.env
|
|
||||||
[[ -d /opt/bookstack-backup/public/uploads ]] && cp -a /opt/bookstack-backup/public/uploads/. /opt/bookstack/public/uploads/
|
|
||||||
[[ -d /opt/bookstack-backup/storage/uploads ]] && cp -a /opt/bookstack-backup/storage/uploads/. /opt/bookstack/storage/uploads/
|
|
||||||
[[ -d /opt/bookstack-backup/themes ]] && cp -a /opt/bookstack-backup/themes/. /opt/bookstack/themes/
|
|
||||||
msg_ok "Backup restored"
|
|
||||||
|
|
||||||
msg_info "Configuring BookStack"
|
msg_info "Configuring BookStack"
|
||||||
cd /opt/bookstack
|
cd /opt/bookstack
|
||||||
@@ -60,7 +54,6 @@ function update_script() {
|
|||||||
chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
|
chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
|
||||||
chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
|
chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
|
||||||
chmod -R 640 /opt/bookstack/.env
|
chmod -R 640 /opt/bookstack/.env
|
||||||
rm -rf /opt/bookstack-backup
|
|
||||||
msg_ok "Configured BookStack"
|
msg_ok "Configured BookStack"
|
||||||
|
|
||||||
msg_info "Starting Apache2"
|
msg_info "Starting Apache2"
|
||||||
|
|||||||
+3
-18
@@ -34,25 +34,10 @@ function update_script() {
|
|||||||
systemctl stop bytestash-backend bytestash-frontend
|
systemctl stop bytestash-backend bytestash-frontend
|
||||||
msg_ok "Services Stopped"
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
msg_info "Backing up data"
|
[[ -d /opt/bytestash/data ]] && create_backup /opt/bytestash/data
|
||||||
tmp_dir="/opt/bytestash-data-backup"
|
[[ -d /opt/data ]] && create_backup /opt/data
|
||||||
mkdir -p "$tmp_dir"
|
|
||||||
if [[ -d /opt/bytestash/data ]]; then
|
|
||||||
cp -r /opt/bytestash/data "$tmp_dir"/data
|
|
||||||
elif [[ -d /opt/data ]]; then
|
|
||||||
cp -r /opt/data "$tmp_dir"/data
|
|
||||||
fi
|
|
||||||
msg_ok "Data backed up"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bytestash" "jordan-dalby/ByteStash" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bytestash" "jordan-dalby/ByteStash" "tarball"
|
||||||
|
restore_backup
|
||||||
msg_info "Restoring data"
|
|
||||||
if [[ -d "$tmp_dir"/data ]]; then
|
|
||||||
mkdir -p /opt/bytestash/data
|
|
||||||
cp -r "$tmp_dir"/data/* /opt/bytestash/data/
|
|
||||||
rm -rf "$tmp_dir"
|
|
||||||
fi
|
|
||||||
msg_ok "Data restored"
|
|
||||||
|
|
||||||
msg_info "Configuring ByteStash"
|
msg_info "Configuring ByteStash"
|
||||||
cd /opt/bytestash/server
|
cd /opt/bytestash/server
|
||||||
|
|||||||
+3
-9
@@ -35,10 +35,8 @@ function update_script() {
|
|||||||
systemctl stop calibre-web
|
systemctl stop calibre-web
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/calibre-web/app.db \
|
||||||
cp -r /opt/calibre-web/app.db /opt/app.db_backup
|
/opt/calibre-web/data
|
||||||
cp -r /opt/calibre-web/data /opt/data_backup
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Calibre-Web" "janeczku/calibre-web" "prebuild" "latest" "/opt/calibre-web" "calibre-web*.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Calibre-Web" "janeczku/calibre-web" "prebuild" "latest" "/opt/calibre-web" "calibre-web*.tar.gz"
|
||||||
setup_uv
|
setup_uv
|
||||||
@@ -50,11 +48,7 @@ function update_script() {
|
|||||||
$STD uv pip install --python /opt/calibre-web/.venv/bin/python --no-cache-dir -r requirements.txt
|
$STD uv pip install --python /opt/calibre-web/.venv/bin/python --no-cache-dir -r requirements.txt
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
cp /opt/app.db_backup /opt/calibre-web/app.db 2>/dev/null
|
|
||||||
cp -r /opt/data_backup /opt/calibre-web/data 2>/dev/null
|
|
||||||
rm -rf /opt/app.db_backup /opt/data_backup
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start calibre-web
|
systemctl start calibre-web
|
||||||
|
|||||||
+2
-7
@@ -35,16 +35,11 @@ function update_script() {
|
|||||||
systemctl stop certimate
|
systemctl stop certimate
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/certimate/pb_data
|
||||||
cp -r /opt/certimate/pb_data /opt/certimate_pb_data_backup
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "certimate" "certimate-go/certimate" "prebuild" "latest" "/opt/certimate" "certimate_*_linux_amd64.zip"
|
fetch_and_deploy_gh_release "certimate" "certimate-go/certimate" "prebuild" "latest" "/opt/certimate" "certimate_*_linux_amd64.zip"
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
cp -r /opt/certimate_pb_data_backup/. /opt/certimate/pb_data
|
|
||||||
rm -rf /opt/certimate_pb_data_backup
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start certimate
|
systemctl start certimate
|
||||||
|
|||||||
+3
-8
@@ -35,10 +35,8 @@ function update_script() {
|
|||||||
systemctl stop checkmate-server checkmate-client nginx
|
systemctl stop checkmate-server checkmate-client nginx
|
||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/checkmate/server/.env \
|
||||||
cp /opt/checkmate/server/.env /opt/checkmate_server.env.bak
|
/opt/checkmate/client/.env.local
|
||||||
[ -f /opt/checkmate/client/.env.local ] && cp /opt/checkmate/client/.env.local /opt/checkmate_client.env.local.bak
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "checkmate" "bluewave-labs/Checkmate" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "checkmate" "bluewave-labs/Checkmate" "tarball"
|
||||||
|
|
||||||
@@ -56,10 +54,7 @@ function update_script() {
|
|||||||
VITE_APP_API_BASE_URL="/api/v1" UPTIME_APP_API_BASE_URL="/api/v1" VITE_APP_LOG_LEVEL="warn" $STD npm run build
|
VITE_APP_API_BASE_URL="/api/v1" UPTIME_APP_API_BASE_URL="/api/v1" VITE_APP_LOG_LEVEL="warn" $STD npm run build
|
||||||
msg_ok "Updated Checkmate Client"
|
msg_ok "Updated Checkmate Client"
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
mv /opt/checkmate_server.env.bak /opt/checkmate/server/.env
|
|
||||||
[ -f /opt/checkmate_client.env.local.bak ] && mv /opt/checkmate_client.env.local.bak /opt/checkmate/client/.env.local
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Starting Services"
|
msg_info "Starting Services"
|
||||||
systemctl start checkmate-server checkmate-client nginx
|
systemctl start checkmate-server checkmate-client nginx
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ function update_script() {
|
|||||||
RELEASE="${RELEASE%%+*}"
|
RELEASE="${RELEASE%%+*}"
|
||||||
msg_info "Updating checkmk"
|
msg_info "Updating checkmk"
|
||||||
$STD omd stop monitoring
|
$STD omd stop monitoring
|
||||||
|
$STD omd -f rm monitoringbackup 2>/dev/null || true
|
||||||
$STD omd cp monitoring monitoringbackup
|
$STD omd cp monitoring monitoringbackup
|
||||||
curl_download "/opt/checkmk.deb" "https://download.checkmk.com/checkmk/${RELEASE}/check-mk-community-${RELEASE}_0.$(get_os_info codename)_amd64.deb"
|
curl_download "/opt/checkmk.deb" "https://download.checkmk.com/checkmk/${RELEASE}/check-mk-community-${RELEASE}_0.$(get_os_info codename)_amd64.deb"
|
||||||
$STD apt install -y /opt/checkmk.deb
|
$STD apt install -y /opt/checkmk.deb
|
||||||
|
|||||||
+2
-7
@@ -33,16 +33,11 @@ function update_script() {
|
|||||||
systemctl stop cleanuparr
|
systemctl stop cleanuparr
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up config"
|
create_backup /opt/cleanuparr/config
|
||||||
cp -r /opt/cleanuparr/config /opt/cleanuparr_config_backup
|
|
||||||
msg_ok "Backed up config"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
|
||||||
|
|
||||||
msg_info "Restoring config"
|
restore_backup
|
||||||
[[ -d /opt/cleanuparr/config ]] && rm -rf /opt/cleanuparr/config
|
|
||||||
mv /opt/cleanuparr_config_backup /opt/cleanuparr/config
|
|
||||||
msg_ok "Restored config"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start cleanuparr
|
systemctl start cleanuparr
|
||||||
|
|||||||
+2
-11
@@ -36,20 +36,11 @@ function update_script() {
|
|||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
ensure_dependencies rsync
|
ensure_dependencies rsync
|
||||||
|
create_backup /opt/commafeed/data
|
||||||
if [ -d /opt/commafeed/data ] && [ "$(ls -A /opt/commafeed/data)" ]; then
|
|
||||||
msg_info "Backing up existing data"
|
|
||||||
mv /opt/commafeed/data /opt/data.bak
|
|
||||||
msg_ok "Backed up existing data"
|
|
||||||
fi
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "commafeed" "Athou/commafeed" "prebuild" "latest" "/opt/commafeed" "commafeed-*-h2-jvm.zip"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "commafeed" "Athou/commafeed" "prebuild" "latest" "/opt/commafeed" "commafeed-*-h2-jvm.zip"
|
||||||
|
|
||||||
if [ -d /opt/data.bak ] && [ "$(ls -A /opt/data.bak)" ]; then
|
restore_backup
|
||||||
msg_info "Restoring data"
|
|
||||||
mv /opt/data.bak /opt/commafeed/data
|
|
||||||
msg_ok "Restored data"
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start commafeed
|
systemctl start commafeed
|
||||||
|
|||||||
+6
-4
@@ -33,11 +33,13 @@ function update_script() {
|
|||||||
systemctl stop configarr-task.timer
|
systemctl stop configarr-task.timer
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
mkdir -p /opt/backup/
|
create_backup /opt/configarr/config.yml \
|
||||||
mv /opt/configarr/{config.yml,secrets.yml,.env} /opt/backup/
|
/opt/configarr/secrets.yml \
|
||||||
|
/opt/configarr/.env
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "configarr" "raydak-labs/configarr" "prebuild" "latest" "/opt/configarr" "configarr-linux-x64.tar.xz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "configarr" "raydak-labs/configarr" "prebuild" "latest" "/opt/configarr" "configarr-linux-x64.tar.xz"
|
||||||
mv /opt/backup/{config.yml,secrets.yml,.env} /opt/configarr/
|
|
||||||
rm -rf /opt/backup
|
restore_backup
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start configarr-task.timer
|
systemctl start configarr-task.timer
|
||||||
|
|||||||
+4
-9
@@ -36,19 +36,14 @@ function update_script() {
|
|||||||
|
|
||||||
ensure_dependencies libreoffice-writer
|
ensure_dependencies libreoffice-writer
|
||||||
|
|
||||||
msg_info "Move data-Folder"
|
create_backup /opt/convertx/data
|
||||||
if [[ -d /opt/convertx/data ]]; then
|
|
||||||
mv /opt/convertx/data /opt/data
|
|
||||||
fi
|
|
||||||
msg_ok "Moved data-Folder"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "ConvertX" "C4illin/ConvertX" "tarball" "latest" "/opt/convertx"
|
fetch_and_deploy_gh_release "ConvertX" "C4illin/ConvertX" "tarball" "latest" "/opt/convertx"
|
||||||
|
|
||||||
|
restore_backup
|
||||||
|
|
||||||
msg_info "Updating ConvertX"
|
msg_info "Updating ConvertX"
|
||||||
if [[ -d /opt/data ]]; then
|
cd /opt/convertx
|
||||||
mv /opt/data /opt/convertx/data
|
|
||||||
fi
|
|
||||||
cd /opt/convertx
|
|
||||||
$STD bun install
|
$STD bun install
|
||||||
msg_ok "Updated ConvertX"
|
msg_ok "Updated ConvertX"
|
||||||
|
|
||||||
|
|||||||
+7
-13
@@ -30,20 +30,17 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL "https://gitlab.com/api/v4/projects/20430749/releases" | grep -o '"tag_name":"v[^"]*"' | head -n 1 | sed 's/"tag_name":"v//;s/"//')
|
RELEASE=$(curl -fsSL "https://gitlab.com/api/v4/projects/20430749/releases" | grep -o '"tag_name":"v[^"]*"' | head -n 1 | sed 's/"tag_name":"v//;s/"//')
|
||||||
if [[ ! -f /opt/crafty-controller_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/crafty-controller_version.txt)" ]]; then
|
if [[ ! -f /opt/crafty-controller_version.txt ]] || [[ ${RELEASE} != "$(cat /opt/crafty-controller_version.txt)" ]]; then
|
||||||
|
|
||||||
msg_info "Stopping Crafty-Controller"
|
msg_info "Stopping Crafty-Controller"
|
||||||
systemctl stop crafty-controller
|
systemctl stop crafty-controller
|
||||||
msg_ok "Stopped Crafty-Controller"
|
msg_ok "Stopped Crafty-Controller"
|
||||||
|
|
||||||
msg_info "Creating Backup of config"
|
create_backup /opt/crafty-controller/crafty/crafty-4/app/config/version.json \
|
||||||
cp -a /opt/crafty-controller/crafty/crafty-4/app/config/. /opt/crafty-controller/backup
|
/opt/crafty-controller/crafty/crafty-4/app/config/credits.json \
|
||||||
rm /opt/crafty-controller/backup/version.json
|
/opt/crafty-controller/crafty/crafty-4/app/config/logging.json \
|
||||||
rm /opt/crafty-controller/backup/credits.json
|
/opt/crafty-controller/crafty/crafty-4/app/config/default.json.example \
|
||||||
rm /opt/crafty-controller/backup/logging.json
|
/opt/crafty-controller/crafty/crafty-4/app/config/motd_format.json
|
||||||
rm /opt/crafty-controller/backup/default.json.example
|
|
||||||
rm /opt/crafty-controller/backup/motd_format.json
|
|
||||||
msg_ok "Backup Created"
|
|
||||||
|
|
||||||
msg_info "Updating Crafty-Controller to v${RELEASE}"
|
msg_info "Updating Crafty-Controller to v${RELEASE}"
|
||||||
curl -fsSL "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip" -o $(basename "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip")
|
curl -fsSL "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip" -o $(basename "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip")
|
||||||
@@ -58,11 +55,8 @@ function update_script() {
|
|||||||
echo "${RELEASE}" >"/opt/crafty-controller_version.txt"
|
echo "${RELEASE}" >"/opt/crafty-controller_version.txt"
|
||||||
msg_ok "Updated Crafty-Controller to v${RELEASE}"
|
msg_ok "Updated Crafty-Controller to v${RELEASE}"
|
||||||
|
|
||||||
msg_info "Restoring Backup of config"
|
restore_backup
|
||||||
cp -a /opt/crafty-controller/backup/. /opt/crafty-controller/crafty/crafty-4/app/config
|
|
||||||
rm -rf /opt/crafty-controller/backup
|
|
||||||
chown -R crafty:crafty /opt/crafty-controller/
|
chown -R crafty:crafty /opt/crafty-controller/
|
||||||
msg_ok "Backup Restored"
|
|
||||||
|
|
||||||
msg_info "Starting Crafty-Controller"
|
msg_info "Starting Crafty-Controller"
|
||||||
systemctl start crafty-controller
|
systemctl start crafty-controller
|
||||||
|
|||||||
+9
-12
@@ -34,21 +34,18 @@ function update_script() {
|
|||||||
systemctl stop cryptpad
|
systemctl stop cryptpad
|
||||||
msg_info "Stopped Service"
|
msg_info "Stopped Service"
|
||||||
|
|
||||||
msg_info "Creating backup"
|
create_backup /opt/cryptpad/config/config.js \
|
||||||
[ -f /opt/cryptpad/config/config.js ] && mv /opt/cryptpad/config/config.js /opt/
|
/opt/cryptpad/blob \
|
||||||
for dir in blob block customize data datastore www/common/onlyoffice/dist onlyoffice-conf; do
|
/opt/cryptpad/block \
|
||||||
[ -d "/opt/cryptpad/${dir}" ] && mv "/opt/cryptpad/${dir}" "/tmp/cryptpad_${dir//\//_}"
|
/opt/cryptpad/customize \
|
||||||
done
|
/opt/cryptpad/data \
|
||||||
msg_ok "Created backup"
|
/opt/cryptpad/datastore \
|
||||||
|
/opt/cryptpad/www/common/onlyoffice/dist \
|
||||||
|
/opt/cryptpad/onlyoffice-conf
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad" "tarball"
|
||||||
|
|
||||||
msg_info "Restoring backup"
|
restore_backup
|
||||||
mv /opt/config.js /opt/cryptpad/config/
|
|
||||||
for dir in blob block customize data datastore www/common/onlyoffice/dist onlyoffice-conf; do
|
|
||||||
[ -d "/tmp/cryptpad_${dir//\//_}" ] && mv "/tmp/cryptpad_${dir//\//_}" "/opt/cryptpad/${dir}"
|
|
||||||
done
|
|
||||||
msg_ok "Restored backup"
|
|
||||||
|
|
||||||
msg_info "Updating CryptPad"
|
msg_info "Updating CryptPad"
|
||||||
cd /opt/cryptpad
|
cd /opt/cryptpad
|
||||||
|
|||||||
+2
-8
@@ -35,17 +35,11 @@ function update_script() {
|
|||||||
systemctl stop dagu
|
systemctl stop dagu
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/dagu/data
|
||||||
cp -r /opt/dagu/data /opt/dagu_data_backup
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "dagu" "dagucloud/dagu" "prebuild" "latest" "/opt/dagu" "dagu_*_linux_amd64.tar.gz"
|
fetch_and_deploy_gh_release "dagu" "dagucloud/dagu" "prebuild" "latest" "/opt/dagu" "dagu_*_linux_amd64.tar.gz"
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
mkdir -p /opt/dagu/data
|
|
||||||
cp -r /opt/dagu_data_backup/. /opt/dagu/data
|
|
||||||
rm -rf /opt/dagu_data_backup
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start dagu
|
systemctl start dagu
|
||||||
|
|||||||
+2
-8
@@ -36,10 +36,7 @@ function update_script() {
|
|||||||
systemctl stop dashy
|
systemctl stop dashy
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up user-data"
|
create_backup /opt/dashy/user-data
|
||||||
rm -rf /opt/dashy_user_data_backup
|
|
||||||
cp -r /opt/dashy/user-data /opt/dashy_user_data_backup
|
|
||||||
msg_ok "Backed up user-data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dashy" "lissy93/dashy" "prebuild" "latest" "/opt/dashy" "dashy-*.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dashy" "lissy93/dashy" "prebuild" "latest" "/opt/dashy" "dashy-*.tar.gz"
|
||||||
|
|
||||||
@@ -48,10 +45,7 @@ function update_script() {
|
|||||||
$STD yarn install --ignore-engines --network-timeout 300000
|
$STD yarn install --ignore-engines --network-timeout 300000
|
||||||
msg_ok "Updated Dashy"
|
msg_ok "Updated Dashy"
|
||||||
|
|
||||||
msg_info "Restoring user-data"
|
restore_backup
|
||||||
cp -r /opt/dashy_user_data_backup/. /opt/dashy/user-data/
|
|
||||||
rm -rf /opt/dashy_user_data_backup
|
|
||||||
msg_ok "Restored user-data"
|
|
||||||
|
|
||||||
msg_info "Starting Dashy"
|
msg_info "Starting Dashy"
|
||||||
systemctl start dashy
|
systemctl start dashy
|
||||||
|
|||||||
+2
-11
@@ -35,12 +35,7 @@ function update_script() {
|
|||||||
$STD systemctl stop databasus
|
$STD systemctl stop databasus
|
||||||
msg_ok "Stopped Databasus"
|
msg_ok "Stopped Databasus"
|
||||||
|
|
||||||
msg_info "Backing up Configuration"
|
create_backup /opt/databasus/.env
|
||||||
[[ ! -f /.env && -f /opt/databasus/.env ]] && cp /opt/databasus/.env /.env
|
|
||||||
chmod 600 /.env
|
|
||||||
cp /.env /opt/databasus.env.bak
|
|
||||||
chmod 600 /opt/databasus.env.bak
|
|
||||||
msg_ok "Backed up Configuration"
|
|
||||||
|
|
||||||
msg_info "Ensuring Database Clients"
|
msg_info "Ensuring Database Clients"
|
||||||
# Create PostgreSQL version symlinks for compatibility
|
# Create PostgreSQL version symlinks for compatibility
|
||||||
@@ -87,11 +82,7 @@ function update_script() {
|
|||||||
chown -R postgres:postgres /opt/databasus
|
chown -R postgres:postgres /opt/databasus
|
||||||
msg_ok "Updated Databasus"
|
msg_ok "Updated Databasus"
|
||||||
|
|
||||||
msg_info "Restoring Configuration"
|
restore_backup
|
||||||
cp /opt/databasus.env.bak /.env
|
|
||||||
rm -f /opt/databasus.env.bak
|
|
||||||
chmod 600 /.env
|
|
||||||
msg_ok "Restored Configuration"
|
|
||||||
|
|
||||||
if ! grep -q "EnvironmentFile=/.env" /etc/systemd/system/databasus.service; then
|
if ! grep -q "EnvironmentFile=/.env" /etc/systemd/system/databasus.service; then
|
||||||
msg_info "Updating Service"
|
msg_info "Updating Service"
|
||||||
|
|||||||
+4
-11
@@ -37,11 +37,9 @@ function update_script() {
|
|||||||
systemctl stop dawarich-web dawarich-worker
|
systemctl stop dawarich-web dawarich-worker
|
||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/dawarich/app/storage \
|
||||||
cp -r /opt/dawarich/app/storage /opt/dawarich_storage_backup 2>/dev/null || true
|
/opt/dawarich/app/config/master.key \
|
||||||
cp /opt/dawarich/app/config/master.key /opt/dawarich_master.key 2>/dev/null || true
|
/opt/dawarich/app/config/credentials.yml.enc
|
||||||
cp /opt/dawarich/app/config/credentials.yml.enc /opt/dawarich_credentials.yml.enc 2>/dev/null || true
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dawarich" "Freika/dawarich" "tarball" "latest" "/opt/dawarich/app"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dawarich" "Freika/dawarich" "tarball" "latest" "/opt/dawarich/app"
|
||||||
|
|
||||||
@@ -85,12 +83,7 @@ function update_script() {
|
|||||||
$STD bundle exec rake data:migrate
|
$STD bundle exec rake data:migrate
|
||||||
msg_ok "Ran Migrations"
|
msg_ok "Ran Migrations"
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
cp -r /opt/dawarich_storage_backup/. /opt/dawarich/app/storage/ 2>/dev/null || true
|
|
||||||
cp /opt/dawarich_master.key /opt/dawarich/app/config/master.key 2>/dev/null || true
|
|
||||||
cp /opt/dawarich_credentials.yml.enc /opt/dawarich/app/config/credentials.yml.enc 2>/dev/null || true
|
|
||||||
rm -rf /opt/dawarich_storage_backup /opt/dawarich_master.key /opt/dawarich_credentials.yml.enc
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Starting Services"
|
msg_info "Starting Services"
|
||||||
systemctl start dawarich-web dawarich-worker
|
systemctl start dawarich-web dawarich-worker
|
||||||
|
|||||||
+2
-7
@@ -33,16 +33,11 @@ function update_script() {
|
|||||||
systemctl stop ddns-updater
|
systemctl stop ddns-updater
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/ddns-updater/data
|
||||||
cp -r /opt/ddns-updater/data /opt/ddns-updater_data_backup
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ddns-updater" "qdm12/ddns-updater" "singlefile" "latest" "/opt/ddns-updater" "ddns-updater_*_linux_amd64"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ddns-updater" "qdm12/ddns-updater" "singlefile" "latest" "/opt/ddns-updater" "ddns-updater_*_linux_amd64"
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
cp -r /opt/ddns-updater_data_backup/. /opt/ddns-updater/data/
|
|
||||||
rm -rf /opt/ddns-updater_data_backup
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start ddns-updater
|
systemctl start ddns-updater
|
||||||
|
|||||||
+3
-7
@@ -35,10 +35,8 @@ function update_script() {
|
|||||||
systemctl stop degoog
|
systemctl stop degoog
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Configuration & Data"
|
create_backup /opt/degoog/.env \
|
||||||
[[ -f /opt/degoog/.env ]] && cp /opt/degoog/.env /opt/degoog.env.bak
|
/opt/degoog/data
|
||||||
[[ -d /opt/degoog/data ]] && mv /opt/degoog/data /opt/degoog_data_backup
|
|
||||||
msg_ok "Backed up Configuration & Data"
|
|
||||||
|
|
||||||
if ! command -v bun >/dev/null 2>&1; then
|
if ! command -v bun >/dev/null 2>&1; then
|
||||||
msg_info "Installing Bun"
|
msg_info "Installing Bun"
|
||||||
@@ -55,9 +53,7 @@ function update_script() {
|
|||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "degoog" "fccview/degoog" "prebuild" "latest" "/opt/degoog" "degoog_*_prebuild.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "degoog" "fccview/degoog" "prebuild" "latest" "/opt/degoog" "degoog_*_prebuild.tar.gz"
|
||||||
|
|
||||||
msg_info "Restoring Configuration & Data"
|
restore_backup
|
||||||
[[ -f /opt/degoog.env.bak ]] && mv /opt/degoog.env.bak /opt/degoog/.env
|
|
||||||
[[ -d /opt/degoog_data_backup ]] && mv /opt/degoog_data_backup /opt/degoog/data
|
|
||||||
|
|
||||||
if [[ -f /opt/degoog/.env ]]; then
|
if [[ -f /opt/degoog/.env ]]; then
|
||||||
grep -q "^DEGOOG_VALKEY_URL=" /opt/degoog/.env && sed -i "s|^DEGOOG_VALKEY_URL=.*|DEGOOG_VALKEY_URL=redis://valkey:6379|" /opt/degoog/.env || echo "DEGOOG_VALKEY_URL=redis://valkey:6379" >>/opt/degoog/.env
|
grep -q "^DEGOOG_VALKEY_URL=" /opt/degoog/.env && sed -i "s|^DEGOOG_VALKEY_URL=.*|DEGOOG_VALKEY_URL=redis://valkey:6379|" /opt/degoog/.env || echo "DEGOOG_VALKEY_URL=redis://valkey:6379" >>/opt/degoog/.env
|
||||||
|
|||||||
+2
-9
@@ -37,19 +37,12 @@ function update_script() {
|
|||||||
systemctl stop discopanel
|
systemctl stop discopanel
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Creating Backup"
|
create_backup /opt/discopanel/data/discopanel.db
|
||||||
mkdir -p /opt/discopanel_backup_temp
|
|
||||||
cp /opt/discopanel/data/discopanel.db /opt/discopanel_backup_temp/discopanel.db
|
|
||||||
msg_ok "Created Backup"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "discopanel" "nickheyer/discopanel" "prebuild" "latest" "/opt/discopanel" "discopanel-linux-amd64.tar.gz"
|
fetch_and_deploy_gh_release "discopanel" "nickheyer/discopanel" "prebuild" "latest" "/opt/discopanel" "discopanel-linux-amd64.tar.gz"
|
||||||
ln -sf /opt/discopanel/discopanel-linux-amd64 /opt/discopanel/discopanel
|
ln -sf /opt/discopanel/discopanel-linux-amd64 /opt/discopanel/discopanel
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
mkdir -p /opt/discopanel/data
|
|
||||||
mv /opt/discopanel_backup_temp/discopanel.db /opt/discopanel/data/discopanel.db
|
|
||||||
rm -rf /opt/discopanel_backup_temp
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start discopanel
|
systemctl start discopanel
|
||||||
|
|||||||
+5
-11
@@ -37,25 +37,19 @@ function update_script() {
|
|||||||
systemctl stop docmost
|
systemctl stop docmost
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up data"
|
create_backup /opt/docmost/.env \
|
||||||
cp /opt/docmost/.env /opt/
|
/opt/docmost/data
|
||||||
cp -r /opt/docmost/data /opt/
|
|
||||||
rm -rf /opt/docmost
|
|
||||||
msg_ok "Data backed up"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "docmost" "docmost/docmost" "tarball"
|
fetch_and_deploy_gh_release "docmost" "docmost/docmost" "tarball"
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
restore_backup
|
||||||
cd /opt/docmost
|
|
||||||
mv /opt/.env /opt/docmost/.env
|
|
||||||
mv /opt/data /opt/docmost/data
|
|
||||||
|
|
||||||
# Fix: Docmost EE (audit logs etc.) lives in a git submodule that is NOT
|
# Fix: Docmost EE (audit logs etc.) lives in a git submodule that is NOT
|
||||||
# included in GitHub tarballs. The community NoopAuditService exists but
|
# included in GitHub tarballs. The community NoopAuditService exists but
|
||||||
# is only exported by CoreModule – child modules such as UserModule cannot
|
# is only exported by CoreModule – child modules such as UserModule cannot
|
||||||
# resolve it. Making CoreModule @Global() exposes the token app-wide.
|
# resolve it. Making CoreModule @Global() exposes the token app-wide.
|
||||||
if [[ ! -f /opt/docmost/apps/server/src/ee/ee.module.ts ]] \
|
if [[ ! -f /opt/docmost/apps/server/src/ee/ee.module.ts ]] &&
|
||||||
&& ! grep -q '@Global()' /opt/docmost/apps/server/src/core/core.module.ts 2>/dev/null; then
|
! grep -q '@Global()' /opt/docmost/apps/server/src/core/core.module.ts 2>/dev/null; then
|
||||||
sed -i '/^ Module,$/a\ Global,' /opt/docmost/apps/server/src/core/core.module.ts
|
sed -i '/^ Module,$/a\ Global,' /opt/docmost/apps/server/src/core/core.module.ts
|
||||||
sed -i '/^@Module({$/i @Global()' /opt/docmost/apps/server/src/core/core.module.ts
|
sed -i '/^@Module({$/i @Global()' /opt/docmost/apps/server/src/core/core.module.ts
|
||||||
fi
|
fi
|
||||||
|
|||||||
+4
-9
@@ -35,24 +35,19 @@ function update_script() {
|
|||||||
systemctl stop docuseal docuseal-sidekiq
|
systemctl stop docuseal docuseal-sidekiq
|
||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/docuseal/.env \
|
||||||
cp /opt/docuseal/.env /opt/docuseal.env.bak
|
/opt/docuseal/data
|
||||||
[[ -d /opt/docuseal/data ]] && mv /opt/docuseal/data /opt/docuseal_data.bak
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "docuseal" "docusealco/docuseal" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "docuseal" "docusealco/docuseal" "tarball"
|
||||||
|
|
||||||
local required_ruby current_ruby
|
local required_ruby current_ruby
|
||||||
required_ruby=$(grep -m1 '^ruby ' /opt/docuseal/Gemfile | grep -oP '[0-9]+\.[0-9]+\.[0-9]+')
|
required_ruby=$(grep -m1 '^ruby ' /opt/docuseal/Gemfile | grep -oP '[0-9]+\.[0-9]+\.[0-9]+')
|
||||||
current_ruby=$(PATH="/root/.rbenv/bin:/root/.rbenv/shims:${PATH}" rbenv global 2>/dev/null || true)
|
current_ruby=$(PATH="/root/.rbenv/bin:/root/.rbenv/shims:${PATH}" rbenv global 2>/dev/null || true)
|
||||||
if [[ -n "$required_ruby" && "$required_ruby" != "$current_ruby" ]]; then
|
if [[ -n $required_ruby && $required_ruby != "$current_ruby" ]]; then
|
||||||
RUBY_VERSION="${required_ruby}" RUBY_INSTALL_RAILS="false" HOME=/root setup_ruby
|
RUBY_VERSION="${required_ruby}" RUBY_INSTALL_RAILS="false" HOME=/root setup_ruby
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
mv /opt/docuseal.env.bak /opt/docuseal/.env
|
|
||||||
[[ -d /opt/docuseal_data.bak ]] && mv /opt/docuseal_data.bak /opt/docuseal/data
|
|
||||||
msg_ok "Restored Data"
|
|
||||||
|
|
||||||
msg_info "Building Application"
|
msg_info "Building Application"
|
||||||
cd /opt/docuseal
|
cd /opt/docuseal
|
||||||
|
|||||||
@@ -43,9 +43,7 @@ function update_script() {
|
|||||||
systemctl stop apache2
|
systemctl stop apache2
|
||||||
msg_info "Service stopped"
|
msg_info "Service stopped"
|
||||||
|
|
||||||
msg_info "Creating backup"
|
create_backup /opt/domain-monitor/.env
|
||||||
mv /opt/domain-monitor/.env /opt
|
|
||||||
msg_ok "Created backup"
|
|
||||||
|
|
||||||
setup_composer
|
setup_composer
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "domain-monitor" "Hosteroid/domain-monitor" "prebuild" "latest" "/opt/domain-monitor" "domain-monitor-v*.zip"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "domain-monitor" "Hosteroid/domain-monitor" "prebuild" "latest" "/opt/domain-monitor" "domain-monitor-v*.zip"
|
||||||
@@ -56,9 +54,7 @@ function update_script() {
|
|||||||
chown -R www-data:www-data /opt/domain-monitor
|
chown -R www-data:www-data /opt/domain-monitor
|
||||||
msg_ok "Updated Domain Monitor"
|
msg_ok "Updated Domain Monitor"
|
||||||
|
|
||||||
msg_info "Restoring backup"
|
restore_backup
|
||||||
mv /opt/.env /opt/domain-monitor
|
|
||||||
msg_ok "Restored backup"
|
|
||||||
|
|
||||||
msg_info "Restarting Services"
|
msg_info "Restarting Services"
|
||||||
systemctl start apache2
|
systemctl start apache2
|
||||||
|
|||||||
+3
-7
@@ -35,18 +35,14 @@ function update_script() {
|
|||||||
systemctl stop donetick
|
systemctl stop donetick
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing Up Configurations"
|
create_backup /opt/donetick/config/selfhosted.yaml \
|
||||||
mv /opt/donetick/config/selfhosted.yaml /opt/donetick/donetick.db /opt
|
/opt/donetick/donetick.db
|
||||||
msg_ok "Backed Up Configurations"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "donetick" "donetick/donetick" "prebuild" "latest" "/opt/donetick" "donetick_Linux_x86_64.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "donetick" "donetick/donetick" "prebuild" "latest" "/opt/donetick" "donetick_Linux_x86_64.tar.gz"
|
||||||
|
|
||||||
msg_info "Restoring Configurations"
|
restore_backup
|
||||||
mv /opt/selfhosted.yaml /opt/donetick/config
|
|
||||||
grep -q 'http://localhost"$' /opt/donetick/config/selfhosted.yaml || sed -i '/https:\/\/localhost"$/a\ - "http://localhost"' /opt/donetick/config/selfhosted.yaml
|
grep -q 'http://localhost"$' /opt/donetick/config/selfhosted.yaml || sed -i '/https:\/\/localhost"$/a\ - "http://localhost"' /opt/donetick/config/selfhosted.yaml
|
||||||
grep -q 'capacitor://localhost' /opt/donetick/config/selfhosted.yaml || sed -i '/http:\/\/localhost"$/a\ - "capacitor://localhost"' /opt/donetick/config/selfhosted.yaml
|
grep -q 'capacitor://localhost' /opt/donetick/config/selfhosted.yaml || sed -i '/http:\/\/localhost"$/a\ - "capacitor://localhost"' /opt/donetick/config/selfhosted.yaml
|
||||||
mv /opt/donetick.db /opt/donetick
|
|
||||||
msg_ok "Restored Configurations"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start donetick
|
systemctl start donetick
|
||||||
|
|||||||
+4
-10
@@ -35,19 +35,13 @@ function update_script() {
|
|||||||
systemctl stop dynacat
|
systemctl stop dynacat
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing up Data"
|
create_backup /opt/dynacat/config \
|
||||||
cp -r /opt/dynacat/config /opt/dynacat_config_backup
|
/opt/dynacat/assets \
|
||||||
cp -r /opt/dynacat/assets /opt/dynacat_assets_backup
|
/opt/dynacat/data
|
||||||
cp -r /opt/dynacat/data /opt/dynacat_data_backup
|
|
||||||
msg_ok "Backed up Data"
|
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dynacat" "Panonim/dynacat" "prebuild" "latest" "/opt/dynacat" "dynacat-linux-amd64.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dynacat" "Panonim/dynacat" "prebuild" "latest" "/opt/dynacat" "dynacat-linux-amd64.tar.gz"
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
restore_backup
|
||||||
cp -r /opt/dynacat_config_backup/. /opt/dynacat/config
|
|
||||||
cp -r /opt/dynacat_assets_backup/. /opt/dynacat/assets
|
|
||||||
cp -r /opt/dynacat_data_backup/. /opt/dynacat/data
|
|
||||||
rm -rf /opt/dynacat_config_backup /opt/dynacat_assets_backup /opt/dynacat_data_backup
|
|
||||||
chmod +x /opt/dynacat/dynacat
|
chmod +x /opt/dynacat/dynacat
|
||||||
msg_ok "Restored Data"
|
msg_ok "Restored Data"
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
____ __ ____ __ _ __
|
||||||
|
/ __ )____ ____ / /__/ __ \_____/ /_ (_) /_
|
||||||
|
/ __ / __ \/ __ \/ //_/ / / / ___/ __ \/ / __/
|
||||||
|
/ /_/ / /_/ / /_/ / ,< / /_/ / / / /_/ / / /_
|
||||||
|
/_____/\____/\____/_/|_|\____/_/ /_.___/_/\__/
|
||||||
|
|
||||||
+6
-4
@@ -39,14 +39,16 @@ function update_script() {
|
|||||||
systemctl stop homebox
|
systemctl stop homebox
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
if [ -f /opt/homebox ] && [ -x /opt/homebox ]; then
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "homebox" "sysadminsmedia/homebox" "prebuild" "latest" "/opt/homebox" "homebox_Linux_x86_64.tar.gz"
|
||||||
rm -f /opt/homebox
|
|
||||||
fi
|
|
||||||
fetch_and_deploy_gh_release "homebox" "sysadminsmedia/homebox" "prebuild" "latest" "/opt/homebox" "homebox_Linux_x86_64.tar.gz"
|
|
||||||
chmod +x /opt/homebox/homebox
|
chmod +x /opt/homebox/homebox
|
||||||
[ -f /opt/.env ] && mv /opt/.env /opt/homebox/.env
|
[ -f /opt/.env ] && mv /opt/.env /opt/homebox/.env
|
||||||
[ -d /opt/.data ] && mv /opt/.data /opt/homebox/.data
|
[ -d /opt/.data ] && mv /opt/.data /opt/homebox/.data
|
||||||
|
|
||||||
|
if ! grep -q "HBOX_AUTH_API_KEY_PEPPER" /opt/homebox/.env; then
|
||||||
|
AUTH_KEY=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)
|
||||||
|
echo "HBOX_AUTH_API_KEY_PEPPER=${AUTH_KEY}" >>/opt/homebox/.env
|
||||||
|
fi
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start homebox
|
systemctl start homebox
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|||||||
+4
-4
@@ -310,7 +310,7 @@ function compile_libjxl() {
|
|||||||
SOURCE=${SOURCE_DIR}/libjxl
|
SOURCE=${SOURCE_DIR}/libjxl
|
||||||
JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
|
JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
|
||||||
JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
|
JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
|
||||||
LIBJXL_REVISION="794a5dcf0d54f9f0b20d288a12e87afb91d20dfc"
|
LIBJXL_REVISION="332feb17d17311c748445f7ee75c4fb55cc38530"
|
||||||
# : "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
|
# : "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
|
||||||
if [[ "$LIBJXL_REVISION" != "$(grep 'libjxl' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
if [[ "$LIBJXL_REVISION" != "$(grep 'libjxl' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
||||||
msg_info "Recompiling libjxl"
|
msg_info "Recompiling libjxl"
|
||||||
@@ -355,7 +355,7 @@ function compile_libjxl() {
|
|||||||
function compile_libheif() {
|
function compile_libheif() {
|
||||||
SOURCE=${SOURCE_DIR}/libheif
|
SOURCE=${SOURCE_DIR}/libheif
|
||||||
ensure_dependencies libaom-dev
|
ensure_dependencies libaom-dev
|
||||||
LIBHEIF_REVISION="35dad50a9145332a7bfdf1ff6aef6801fb613d68"
|
LIBHEIF_REVISION="62f1b8c76ed4d8305071fdacbe74ef9717bacac5"
|
||||||
# : "${LIBHEIF_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libheif.json)}"
|
# : "${LIBHEIF_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libheif.json)}"
|
||||||
if [[ "${update:-}" ]] || [[ "$LIBHEIF_REVISION" != "$(grep 'libheif' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
if [[ "${update:-}" ]] || [[ "$LIBHEIF_REVISION" != "$(grep 'libheif' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
||||||
msg_info "Recompiling libheif"
|
msg_info "Recompiling libheif"
|
||||||
@@ -387,7 +387,7 @@ function compile_libheif() {
|
|||||||
|
|
||||||
function compile_libraw() {
|
function compile_libraw() {
|
||||||
SOURCE=${SOURCE_DIR}/libraw
|
SOURCE=${SOURCE_DIR}/libraw
|
||||||
LIBRAW_REVISION="0b56545a4f828743f28a4345cdfdd4c49f9f9a2a"
|
LIBRAW_REVISION="b860248a89d9082b8e0a1e202e516f46af9adb29"
|
||||||
# : "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
|
# : "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
|
||||||
if [[ "$LIBRAW_REVISION" != "$(grep 'libraw' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
if [[ "$LIBRAW_REVISION" != "$(grep 'libraw' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
||||||
msg_info "Recompiling libraw"
|
msg_info "Recompiling libraw"
|
||||||
@@ -430,7 +430,7 @@ function compile_imagemagick() {
|
|||||||
|
|
||||||
function compile_libvips() {
|
function compile_libvips() {
|
||||||
SOURCE=$SOURCE_DIR/libvips
|
SOURCE=$SOURCE_DIR/libvips
|
||||||
LIBVIPS_REVISION="0c9151a4f416d2f8ae20a755db218f6637050eec"
|
LIBVIPS_REVISION="17ad2f62dda7e39985955da189183e594683d45e"
|
||||||
if [[ "$LIBVIPS_REVISION" != "$(grep 'libvips' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
if [[ "$LIBVIPS_REVISION" != "$(grep 'libvips' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
||||||
msg_info "Recompiling libvips"
|
msg_info "Recompiling libvips"
|
||||||
[[ -d "$SOURCE" ]] && rm -rf "$SOURCE"
|
[[ -d "$SOURCE" ]] && rm -rf "$SOURCE"
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ PG_VERSION="17" setup_postgresql
|
|||||||
PG_DB_NAME="authentik" PG_DB_USER="authentik" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db
|
PG_DB_NAME="authentik" PG_DB_USER="authentik" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db
|
||||||
|
|
||||||
XMLSEC_VERSION="1.3.11"
|
XMLSEC_VERSION="1.3.11"
|
||||||
AUTHENTIK_VERSION="version/2026.5.2"
|
AUTHENTIK_VERSION="version/2026.5.3"
|
||||||
fetch_and_deploy_gh_release "xmlsec" "lsh123/xmlsec" "tarball" "${XMLSEC_VERSION}" "/opt/xmlsec"
|
fetch_and_deploy_gh_release "xmlsec" "lsh123/xmlsec" "tarball" "${XMLSEC_VERSION}" "/opt/xmlsec"
|
||||||
fetch_and_deploy_gh_release "authentik" "goauthentik/authentik" "tarball" "${AUTHENTIK_VERSION}" "/opt/authentik"
|
fetch_and_deploy_gh_release "authentik" "goauthentik/authentik" "tarball" "${AUTHENTIK_VERSION}" "/opt/authentik"
|
||||||
fetch_and_deploy_gh_release "geoipupdate" "maxmind/geoipupdate" "binary"
|
fetch_and_deploy_gh_release "geoipupdate" "maxmind/geoipupdate" "binary"
|
||||||
|
|||||||
@@ -0,0 +1,99 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/bookorbit/bookorbit
|
||||||
|
|
||||||
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||||
|
color
|
||||||
|
verb_ip6
|
||||||
|
catch_errors
|
||||||
|
setting_up_container
|
||||||
|
network_check
|
||||||
|
update_os
|
||||||
|
|
||||||
|
msg_info "Installing Dependencies"
|
||||||
|
$STD apt install -y \
|
||||||
|
build-essential \
|
||||||
|
ffmpeg \
|
||||||
|
poppler-utils
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
|
||||||
|
PG_DB_NAME="bookorbit" PG_DB_USER="bookorbit" PG_DB_EXTENSIONS="uuid-ossp,pg_trgm,vector" setup_postgresql_db
|
||||||
|
NODE_VERSION="24" setup_nodejs
|
||||||
|
setup_uv
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "bookorbit" "bookorbit/bookorbit" "tarball"
|
||||||
|
|
||||||
|
msg_info "Building Application"
|
||||||
|
cd /opt/bookorbit
|
||||||
|
PNPM_VERSION=$(jq -r '.packageManager | ltrimstr("pnpm@")' /opt/bookorbit/package.json)
|
||||||
|
$STD corepack enable
|
||||||
|
$STD corepack prepare "pnpm@${PNPM_VERSION}" --activate
|
||||||
|
$STD pnpm install --frozen-lockfile
|
||||||
|
$STD pnpm --filter client run build-only
|
||||||
|
$STD pnpm --filter server run build
|
||||||
|
cp -r /opt/bookorbit/client/dist /opt/bookorbit/server/public
|
||||||
|
mkdir -p /opt/bookorbit/server/migrations
|
||||||
|
cp -r /opt/bookorbit/server/src/db/migrations/. /opt/bookorbit/server/migrations/
|
||||||
|
chmod +x /opt/bookorbit/server/bin/kepubify/*
|
||||||
|
msg_ok "Built Application"
|
||||||
|
|
||||||
|
msg_info "Setting up Python Runtime"
|
||||||
|
$STD uv venv /opt/bookorbit-python
|
||||||
|
$STD uv pip install --python /opt/bookorbit-python/bin/python -r /opt/bookorbit/server/requirements/kobo-cloudscraper.txt
|
||||||
|
msg_ok "Set up Python Runtime"
|
||||||
|
|
||||||
|
msg_info "Configuring Application"
|
||||||
|
mkdir -p /opt/bookorbit-data/covers /opt/bookorbit-data/book-bucket /opt/bookorbit-books
|
||||||
|
APP_VER=$(cat ~/.bookorbit)
|
||||||
|
JWT_SECRET=$(openssl rand -hex 32)
|
||||||
|
SETUP_BOOTSTRAP_TOKEN=$(openssl rand -hex 16)
|
||||||
|
cat <<EOF >>~/bookorbit.creds
|
||||||
|
|
||||||
|
Setup Token: ${SETUP_BOOTSTRAP_TOKEN}
|
||||||
|
EOF
|
||||||
|
cat <<EOF >/opt/bookorbit/.env
|
||||||
|
NODE_ENV=production
|
||||||
|
PORT=3000
|
||||||
|
DATABASE_URL=postgres://${PG_DB_USER}:${PG_DB_PASS}@127.0.0.1:5432/${PG_DB_NAME}
|
||||||
|
JWT_SECRET=${JWT_SECRET}
|
||||||
|
SETUP_BOOTSTRAP_TOKEN=${SETUP_BOOTSTRAP_TOKEN}
|
||||||
|
APP_URL=http://${LOCAL_IP}:3000
|
||||||
|
CLIENT_URL=http://${LOCAL_IP}:3000
|
||||||
|
NODE_OPTIONS=--max-old-space-size=2048
|
||||||
|
APP_DATA_PATH=/opt/bookorbit-data
|
||||||
|
KOBO_CLOUDSCRAPER_PYTHON=/opt/bookorbit-python/bin/python
|
||||||
|
BOOK_DOCK_PATH=/opt/bookorbit-data/book-bucket
|
||||||
|
APP_VERSION=v${APP_VER}
|
||||||
|
EOF
|
||||||
|
msg_ok "Configured Application"
|
||||||
|
|
||||||
|
msg_info "Creating Service"
|
||||||
|
cat <<EOF >/etc/systemd/system/bookorbit.service
|
||||||
|
[Unit]
|
||||||
|
Description=BookOrbit Service
|
||||||
|
After=network.target postgresql.service
|
||||||
|
Requires=postgresql.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=root
|
||||||
|
WorkingDirectory=/opt/bookorbit/server
|
||||||
|
EnvironmentFile=/opt/bookorbit/.env
|
||||||
|
ExecStartPre=/usr/bin/node /opt/bookorbit/server/dist/scripts/migrate.js
|
||||||
|
ExecStart=/usr/bin/node /opt/bookorbit/server/dist/main.js
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=5
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
systemctl enable -q --now bookorbit
|
||||||
|
msg_ok "Created Service"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
cleanup_lxc
|
||||||
@@ -18,11 +18,13 @@ fetch_and_deploy_gh_release "homebox" "sysadminsmedia/homebox" "prebuild" "lates
|
|||||||
|
|
||||||
msg_info "Configuring Homebox"
|
msg_info "Configuring Homebox"
|
||||||
chmod +x /opt/homebox/homebox
|
chmod +x /opt/homebox/homebox
|
||||||
|
AUTH_KEY="$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)"
|
||||||
cat <<EOF >/opt/homebox/.env
|
cat <<EOF >/opt/homebox/.env
|
||||||
# For possible environment variables check here: https://homebox.software/en/configure-homebox
|
# For possible environment variables check here: https://homebox.software/en/configure-homebox
|
||||||
HBOX_MODE=production
|
HBOX_MODE=production
|
||||||
HBOX_WEB_PORT=7745
|
HBOX_WEB_PORT=7745
|
||||||
HBOX_WEB_HOST=0.0.0.0
|
HBOX_WEB_HOST=0.0.0.0
|
||||||
|
HBOX_AUTH_API_KEY_PEPPER=${AUTH_KEY}
|
||||||
EOF
|
EOF
|
||||||
msg_ok "Configured Homebox"
|
msg_ok "Configured Homebox"
|
||||||
|
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ cd "$STAGING_DIR"
|
|||||||
SOURCE=${SOURCE_DIR}/libjxl
|
SOURCE=${SOURCE_DIR}/libjxl
|
||||||
JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
|
JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
|
||||||
JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
|
JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
|
||||||
LIBJXL_REVISION="794a5dcf0d54f9f0b20d288a12e87afb91d20dfc"
|
LIBJXL_REVISION="332feb17d17311c748445f7ee75c4fb55cc38530"
|
||||||
# : "${LIBJXL_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libjxl.json)}"
|
# : "${LIBJXL_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libjxl.json)}"
|
||||||
$STD git clone https://github.com/libjxl/libjxl.git "$SOURCE"
|
$STD git clone https://github.com/libjxl/libjxl.git "$SOURCE"
|
||||||
cd "$SOURCE"
|
cd "$SOURCE"
|
||||||
@@ -216,7 +216,7 @@ msg_ok "(1/5) Compiled libjxl"
|
|||||||
|
|
||||||
msg_info "(2/5) Compiling libheif"
|
msg_info "(2/5) Compiling libheif"
|
||||||
SOURCE=${SOURCE_DIR}/libheif
|
SOURCE=${SOURCE_DIR}/libheif
|
||||||
LIBHEIF_REVISION="35dad50a9145332a7bfdf1ff6aef6801fb613d68"
|
LIBHEIF_REVISION="62f1b8c76ed4d8305071fdacbe74ef9717bacac5"
|
||||||
# : "${LIBHEIF_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libheif.json)}"
|
# : "${LIBHEIF_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libheif.json)}"
|
||||||
$STD git clone https://github.com/strukturag/libheif.git "$SOURCE"
|
$STD git clone https://github.com/strukturag/libheif.git "$SOURCE"
|
||||||
cd "$SOURCE"
|
cd "$SOURCE"
|
||||||
@@ -242,7 +242,7 @@ msg_ok "(2/5) Compiled libheif"
|
|||||||
|
|
||||||
msg_info "(3/5) Compiling libraw"
|
msg_info "(3/5) Compiling libraw"
|
||||||
SOURCE=${SOURCE_DIR}/libraw
|
SOURCE=${SOURCE_DIR}/libraw
|
||||||
LIBRAW_REVISION="0b56545a4f828743f28a4345cdfdd4c49f9f9a2a"
|
LIBRAW_REVISION="b860248a89d9082b8e0a1e202e516f46af9adb29"
|
||||||
# : "${LIBRAW_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libraw.json)}"
|
# : "${LIBRAW_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libraw.json)}"
|
||||||
$STD git clone https://github.com/LibRaw/LibRaw.git "$SOURCE"
|
$STD git clone https://github.com/LibRaw/LibRaw.git "$SOURCE"
|
||||||
cd "$SOURCE"
|
cd "$SOURCE"
|
||||||
@@ -272,7 +272,7 @@ msg_ok "(4/5) Compiled imagemagick"
|
|||||||
|
|
||||||
msg_info "(5/5) Compiling libvips"
|
msg_info "(5/5) Compiling libvips"
|
||||||
SOURCE=$SOURCE_DIR/libvips
|
SOURCE=$SOURCE_DIR/libvips
|
||||||
LIBVIPS_REVISION="0c9151a4f416d2f8ae20a755db218f6637050eec"
|
LIBVIPS_REVISION="17ad2f62dda7e39985955da189183e594683d45e"
|
||||||
$STD git clone https://github.com/libvips/libvips.git "$SOURCE"
|
$STD git clone https://github.com/libvips/libvips.git "$SOURCE"
|
||||||
cd "$SOURCE"
|
cd "$SOURCE"
|
||||||
$STD git reset --hard "$LIBVIPS_REVISION"
|
$STD git reset --hard "$LIBVIPS_REVISION"
|
||||||
|
|||||||
@@ -133,6 +133,8 @@ server {
|
|||||||
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
|
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
|
||||||
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
||||||
include fastcgi_params;
|
include fastcgi_params;
|
||||||
|
fastcgi_param HTTP_X_FORWARDED_HOST $http_host;
|
||||||
|
fastcgi_param HTTP_X_FORWARDED_PROTO $scheme;
|
||||||
fastcgi_read_timeout 300;
|
fastcgi_read_timeout 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -979,6 +979,20 @@ base_settings() {
|
|||||||
|
|
||||||
IPV6_METHOD=${var_ipv6_method:-"none"}
|
IPV6_METHOD=${var_ipv6_method:-"none"}
|
||||||
GATE=${var_gateway:-""}
|
GATE=${var_gateway:-""}
|
||||||
|
|
||||||
|
# Guard against invalid gateway combinations from defaults/app vars:
|
||||||
|
# - DHCP must not force a static gateway
|
||||||
|
# - Static IPv4 must use a gateway in the same subnet
|
||||||
|
if [[ "$NET" == "dhcp" && -n "$GATE" ]]; then
|
||||||
|
msg_warn "Ignoring var_gateway '$GATE' because var_net is 'dhcp'"
|
||||||
|
GATE=""
|
||||||
|
elif [[ "$NET" != "dhcp" && -n "$GATE" ]]; then
|
||||||
|
if ! validate_gateway_in_subnet "$NET" "$GATE"; then
|
||||||
|
msg_warn "Ignoring var_gateway '$GATE' because it is not in subnet of var_net '$NET'"
|
||||||
|
GATE=""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
APT_CACHER=${var_apt_cacher:-""}
|
APT_CACHER=${var_apt_cacher:-""}
|
||||||
APT_CACHER_IP=${var_apt_cacher_ip:-""}
|
APT_CACHER_IP=${var_apt_cacher_ip:-""}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -8098,7 +8098,7 @@ setup_postgresql_db() {
|
|||||||
IFS=',' read -ra EXT_LIST <<<"${PG_DB_EXTENSIONS:-}"
|
IFS=',' read -ra EXT_LIST <<<"${PG_DB_EXTENSIONS:-}"
|
||||||
for ext in "${EXT_LIST[@]}"; do
|
for ext in "${EXT_LIST[@]}"; do
|
||||||
ext=$(echo "$ext" | xargs) # Trim whitespace
|
ext=$(echo "$ext" | xargs) # Trim whitespace
|
||||||
$STD sudo -u postgres psql -d "$PG_DB_NAME" -c "CREATE EXTENSION IF NOT EXISTS $ext;"
|
$STD sudo -u postgres psql -d "$PG_DB_NAME" -c "CREATE EXTENSION IF NOT EXISTS \"$ext\";"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user