Compare commits

...

113 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
54d4d58b15 Update CHANGELOG.md (#7450)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-07 00:13:32 +00:00
community-scripts-pr-app[bot]
889a58c00e Update versions.json (#7449)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-07 02:13:05 +02:00
community-scripts-pr-app[bot]
e9a5d7587a Update CHANGELOG.md (#7448)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-06 22:05:03 +00:00
community-scripts-pr-app[bot]
6f84046741 Update CHANGELOG.md (#7447)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-06 22:04:44 +00:00
Ivan Penchev
ff96351db8 feat: added mobile ui subscription nag removal (#7164)
* feat: added mobile ui nag removal

* chore: remove my ansible comment
2025-09-07 00:04:38 +02:00
community-scripts-pr-app[bot]
1b632199b3 Update CHANGELOG.md (#7446)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-06 22:04:26 +00:00
community-scripts-pr-app[bot]
9fb02a93b4 Update date in json (#7445)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-09-06 22:04:23 +00:00
push-app-to-main[bot]
3aa56651d8 'Add new script' (#7442)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2025-09-07 00:04:06 +02:00
community-scripts-pr-app[bot]
17d4c59041 Update versions.json (#7441)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-06 14:04:48 +02:00
community-scripts-pr-app[bot]
2bfb35779b Update CHANGELOG.md (#7437)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-06 09:03:16 +00:00
EtlamGit
83b93390c9 use debian source for direct installation of MQTT (#7423)
as newer Debian contains mosquitto in sources, directly install it without adding extra repository
2025-09-06 11:02:54 +02:00
community-scripts-pr-app[bot]
7ce47ad414 Update CHANGELOG.md (#7433)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-06 06:36:37 +00:00
community-scripts-pr-app[bot]
646e0c31f4 Update CHANGELOG.md (#7432)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-06 06:36:20 +00:00
community-scripts-pr-app[bot]
0c7e200a94 Update date in json (#7431)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-09-06 06:36:18 +00:00
push-app-to-main[bot]
a9b02b3e9c 'Add new script' (#7414) 2025-09-06 08:36:01 +02:00
community-scripts-pr-app[bot]
b62adc2c5c Update CHANGELOG.md (#7430)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-06 06:35:57 +00:00
Austin
3438b046e5 MediaManager Configuration Path (#7408) 2025-09-06 08:35:40 +02:00
community-scripts-pr-app[bot]
cbd6d6d0f3 Update CHANGELOG.md (#7429)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-06 06:35:36 +00:00
Slaviša Arežina
cf6c429c57 Remove default creds (#7403) 2025-09-06 08:35:12 +02:00
community-scripts-pr-app[bot]
bbe71cbbb9 Update CHANGELOG.md (#7428)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-06 00:12:58 +00:00
community-scripts-pr-app[bot]
9b6a736c8c Update versions.json (#7427)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-06 02:12:30 +02:00
community-scripts-pr-app[bot]
c395ccc270 Update CHANGELOG.md (#7421)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-05 17:28:01 +00:00
Chris
3dd72e08e9 Pin version to 0.80 (#7420)
- a lot of changes in next version
2025-09-05 19:27:40 +02:00
community-scripts-pr-app[bot]
1d989bea73 Update versions.json (#7417)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-05 14:05:32 +02:00
community-scripts-pr-app[bot]
f881b88344 Update CHANGELOG.md (#7411)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-05 06:07:57 +00:00
Slaviša Arežina
06dbad83ef AdventureLog: Update dependencies (#7404)
* Update adventurelog-install.sh

* Check and install memcached if not present

---------

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-09-05 08:07:34 +02:00
community-scripts-pr-app[bot]
7ff966b042 Update CHANGELOG.md (#7410)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-05 05:24:44 +00:00
Bram Suurd
62264f37a6 refactor: Enhance ScriptAccordion and Sidebar components to support selectedCategory state (#7405)
* refactor: Enhance ScriptAccordion and Sidebar components to support selectedCategory state

* lint

* chore: Add ESLint configuration to ignore errors during builds in next.config.mjs
2025-09-05 07:24:19 +02:00
community-scripts-pr-app[bot]
bf05dabc4c Update CHANGELOG.md (#7407)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-05 00:13:38 +00:00
community-scripts-pr-app[bot]
bc229d9738 Update versions.json (#7406)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-05 02:13:07 +02:00
community-scripts-pr-app[bot]
969b08caa8 Update CHANGELOG.md (#7399)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-04 14:23:31 +00:00
Mike Hennessy
c1c43ed2cb fix: Syntax error in Immich scripts (#7398)
* fix: Syntax error in Immich scripts

* fix: Remove exit pipes
2025-09-04 16:22:47 +02:00
community-scripts-pr-app[bot]
e74767d1a4 Update CHANGELOG.md (#7396)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-04 12:46:19 +00:00
Chris
e9e17f4f51 Immich: pin compiled photo library revisions (#7395)
- Immich base has already switched to Trixie; until we get a Trixie LXC
any further updates to the base image might conflict with our Bookworm
LXC
2025-09-04 14:45:55 +02:00
community-scripts-pr-app[bot]
2c1b15a40e Update versions.json (#7394)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-04 14:05:20 +02:00
community-scripts-pr-app[bot]
a4bfaf1646 Update CHANGELOG.md (#7393)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-04 08:28:32 +00:00
CanbiZ
6fa12cc814 Netdata: Fix pve_check for 8 (#7392) 2025-09-04 10:28:09 +02:00
community-scripts-pr-app[bot]
d314168a37 Update CHANGELOG.md (#7390)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-04 00:12:13 +00:00
community-scripts-pr-app[bot]
d6ad11c5c2 Update versions.json (#7389)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-04 02:11:47 +02:00
community-scripts-pr-app[bot]
534592b44a Update CHANGELOG.md (#7386)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-03 18:33:13 +00:00
Slaviša Arežina
d9b6b58b36 Increase HDD size (#7384) 2025-09-03 20:32:52 +02:00
community-scripts-pr-app[bot]
298eb7e83d Update CHANGELOG.md (#7380)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-03 12:56:32 +00:00
Chris
c2dd1e413f Wizarr: fix uv lock issue; use correct output suppression (#7378) 2025-09-03 14:56:04 +02:00
community-scripts-pr-app[bot]
a4f1766408 Update CHANGELOG.md (#7379)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-03 12:45:49 +00:00
Bram Suurd
a24169e9b8 Fix navigation (#7376)
* Removed double entries from the search to improve navigation

* change input on search field to improve searchability

* added type to search to make sure that LXC and VM's dont get mixed up

* run linting over changes

---------

Co-authored-by: Bram Suurd <bram.suurd@infracom.nl>
2025-09-03 14:45:24 +02:00
community-scripts-pr-app[bot]
45a2163e66 Update CHANGELOG.md (#7377)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-03 12:43:16 +00:00
Slaviša Arežina
2fc3e62d60 Fix paths (#7374) 2025-09-03 14:42:52 +02:00
community-scripts-pr-app[bot]
210b846d61 Update versions.json (#7375)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-03 14:06:04 +02:00
community-scripts-pr-app[bot]
b04cfb65f7 Update CHANGELOG.md (#7369)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-03 07:25:57 +00:00
Desert Gamer
6a2fc4083b Enhanced IP-Tag installation script with interactive configuration, improved VM IP detection, and better visual indicators (#7366)
- **Interactive Configuration**: Added setup wizard for `TAG_FORMAT` (last_two_octets/last_octet/full) and `LOOP_INTERVAL` (30-7200 seconds) during installation/update
- **Unified Installation Menu**: Replaced conditional service detection with unified menu offering install-with-service, install-command-only, and update options
- **Post-Installation Guidance**: Added comprehensive information display about configuration file location (`/opt/iptag/iptag.conf`) and required CIDR_LIST setup
- **Improved VM IP Detection**: Enhanced IP discovery with QM guest agent priority, ARP table validation via ping, and automatic removal of stale ARP entries
- **Visual Indicators**: Replaced emoji symbols with standard ASCII characters (✓/✗) with proper colors for better terminal compatibility
- **Simplified Update Process**: Removed complex service detection logic and provided direct update option in main menu

These changes address user feedback about complex installation requirements, VM IP detection issues, and provide clearer guidance for network subnet configuration.
2025-09-03 09:25:37 +02:00
community-scripts-pr-app[bot]
f7f53943c2 Update CHANGELOG.md (#7365)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-03 00:12:00 +00:00
community-scripts-pr-app[bot]
31f4d9b16c Update versions.json (#7364)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-03 02:11:34 +02:00
community-scripts-pr-app[bot]
cd4cd5eec1 Update CHANGELOG.md (#7361)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-02 20:17:14 +00:00
Slaviša Arežina
8a7eeee727 Add max upload size to nginx (#7358) 2025-09-02 22:16:48 +02:00
community-scripts-pr-app[bot]
be5d65f421 Update CHANGELOG.md (#7357)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-02 16:40:41 +00:00
CanbiZ
591af3f109 Increase default disk size for Apt-Cacher-NG (#7352) 2025-09-02 18:40:22 +02:00
community-scripts-pr-app[bot]
a3e0df9de1 Update CHANGELOG.md (#7356)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-02 16:39:59 +00:00
CanbiZ
596699d07e booklore: remove folder before update (#7351) 2025-09-02 18:39:39 +02:00
community-scripts-pr-app[bot]
b2275b44c2 Update CHANGELOG.md (#7355)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-02 16:35:45 +00:00
Chris
737842fb1e Immich: bump version to 1.140.1 (#7349) 2025-09-02 18:35:22 +02:00
community-scripts-pr-app[bot]
646cb2bc30 Update versions.json (#7347)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-02 14:05:31 +02:00
community-scripts-pr-app[bot]
4599bfe052 Update CHANGELOG.md (#7345)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-02 07:42:14 +00:00
CanbiZ
bb85b1d4ac pbs: increase note on website for ipv6 (#7339) 2025-09-02 09:41:52 +02:00
community-scripts-pr-app[bot]
57ae4a48a7 Update CHANGELOG.md (#7342)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-02 00:12:51 +00:00
community-scripts-pr-app[bot]
06e8460851 Update versions.json (#7341)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-02 02:12:31 +02:00
community-scripts-pr-app[bot]
9713c95bf4 Update CHANGELOG.md (#7340)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-01 17:58:39 +00:00
dependabot[bot]
705748bba5 Bump next from 15.2.4 to 15.5.2 in /frontend (#7309)
Bumps [next](https://github.com/vercel/next.js) from 15.2.4 to 15.5.2.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.2.4...v15.5.2)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 15.5.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-01 19:58:17 +02:00
community-scripts-pr-app[bot]
022f079821 Update CHANGELOG.md (#7338)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-01 13:02:32 +00:00
CanbiZ
80d75731a8 Refactor + Feature Bump: HomeAssistant OS (#7336) 2025-09-01 15:02:10 +02:00
community-scripts-pr-app[bot]
227721a72f Update CHANGELOG.md (#7337)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-01 13:00:47 +00:00
CanbiZ
5572a7a0ab UmbrelOS: Refactor / use q35 / better import (#7329)
* UmbrelOS: Improve VM Import Process

* q35 Feature-Bump

* Update umbrel-os-vm.sh

* Update umbrel-os-vm.sh

* Update umbrel-os-vm.sh

* temp folder for big file

* Update umbrel-os-vm.sh

* update MACH (adv. Settings)

* Update umbrel-os-vm.sh

* Formatting

* Update umbrel-os-vm.sh

* Refactor

* Update umbrel-os-vm.sh

* Update umbrel-os-vm.sh
2025-09-01 15:00:23 +02:00
community-scripts-pr-app[bot]
6a69185a2d Update versions.json (#7334)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-01 14:06:31 +02:00
community-scripts-pr-app[bot]
77441b6189 Update CHANGELOG.md (#7333)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-01 10:42:23 +00:00
CanbiZ
4aa337c2f2 booklore: add note for start-up in frontend (#7331) 2025-09-01 12:42:06 +02:00
finkerle
4bd2f6866a Update configarr.sh (#7323) 2025-09-01 12:41:45 +02:00
community-scripts-pr-app[bot]
377de80103 Update CHANGELOG.md (#7330)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-01 07:38:44 +00:00
CanbiZ
1c62d4614e Harmonize GitHub Release Check (#7328) 2025-09-01 09:38:20 +02:00
community-scripts-pr-app[bot]
a91f7410a4 Update CHANGELOG.md (#7327)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-01 00:14:57 +00:00
community-scripts-pr-app[bot]
528c0a8de5 Update versions.json (#7326)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-01 02:14:38 +02:00
community-scripts-pr-app[bot]
988bd3ef19 Update CHANGELOG.md (#7322)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-31 14:52:16 +00:00
Slaviša Arežina
99d9664ae4 Increase disk size (#7320) 2025-08-31 16:51:56 +02:00
community-scripts-pr-app[bot]
09649eb5b1 Update versions.json (#7317)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-31 14:04:56 +02:00
community-scripts-pr-app[bot]
5c49ba784a Update CHANGELOG.md (#7315)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-31 00:14:09 +00:00
community-scripts-pr-app[bot]
469f959911 Update versions.json (#7314)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-31 02:13:44 +02:00
community-scripts-pr-app[bot]
7504c4b7e9 Update versions.json (#7313)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-30 14:05:59 +02:00
community-scripts-pr-app[bot]
9a6047393d Update CHANGELOG.md (#7312)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-30 11:12:54 +00:00
Tobias
dec2ef817a Refactor gitea-mirror env-file (#7240) 2025-08-30 13:12:35 +02:00
community-scripts-pr-app[bot]
54a9bc8841 Update CHANGELOG.md (#7310)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-30 06:54:37 +00:00
Chris
8def7c0f0a Bump to v1.140.0 (#7275) 2025-08-30 08:54:16 +02:00
community-scripts-pr-app[bot]
13cbc2756b Update CHANGELOG.md (#7306)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-30 00:12:23 +00:00
community-scripts-pr-app[bot]
933928c4ee Update versions.json (#7305)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-30 02:11:41 +02:00
Andrej Kocijan
2beaab0d88 Fix alpine redlib slug (#7303) 2025-08-30 00:04:59 +02:00
community-scripts-pr-app[bot]
560ed60745 Update CHANGELOG.md (#7301)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-29 20:58:59 +00:00
community-scripts-pr-app[bot]
46febb33a9 Update CHANGELOG.md (#7300)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-29 20:58:38 +00:00
CanbiZ
ddd8e0ee68 fix version check for pocket-id migration (#7298) 2025-08-29 22:58:31 +02:00
CanbiZ
be255263c6 Refactor release fetching and version checking logic (#7299) 2025-08-29 22:58:19 +02:00
CanbiZ
c8d969d38a Replace output redirection with touch command 2025-08-29 22:21:15 +02:00
CanbiZ
96511325ab Fix GitHub release check for homebox 2025-08-29 17:07:41 +02:00
CanbiZ
bc545df207 qf: create file if not exist 2025-08-29 16:20:21 +02:00
CanbiZ
36bf265fc6 improve update-pinning 2025-08-29 14:20:12 +02:00
CanbiZ
892ad29c60 fix broken exit 2025-08-29 14:16:18 +02:00
community-scripts-pr-app[bot]
a5d02b5459 Update versions.json (#7289)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-29 14:05:08 +02:00
community-scripts-pr-app[bot]
3ccf9924a1 Update CHANGELOG.md (#7287)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-29 11:32:06 +00:00
Slaviša Arežina
953bbd7978 Update zitadel-install.sh (#7284) 2025-08-29 13:31:43 +02:00
community-scripts-pr-app[bot]
4228cb99db Update CHANGELOG.md (#7283)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-29 10:37:18 +00:00
CanbiZ
f7791fe2ff post-pbs: increase enterprise recognition (#7280) 2025-08-29 12:36:55 +02:00
community-scripts-pr-app[bot]
616c736428 Update CHANGELOG.md (#7282)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-29 10:30:11 +00:00
CanbiZ
ede5f35f39 [core]: feature - check_for_gh_release - version pinning (#7279)
* [core]: feature - check_for_gh_release - version pinning

* Modify usage comments for check_for_gh_release

Updated usage example for check_for_gh_release function.

* Refactor jq installation command with STD variable

* remove unneeded dev/null
2025-08-29 12:29:52 +02:00
community-scripts-pr-app[bot]
b73bfdf7fd Update CHANGELOG.md (#7281)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-29 10:27:46 +00:00
CanbiZ
9305a4ca85 [feat]: migrate all update_scripts to new version helper (gh) (#7262)
* first migrations

* finalize

* add fix kometa inside function
2025-08-29 12:27:24 +02:00
Chris
54b59e24ca Add PVE version to bug report template (#7276) 2025-08-29 09:46:56 +02:00
community-scripts-pr-app[bot]
d57c613535 Update CHANGELOG.md (#7278)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-29 06:55:54 +00:00
Abe Brandsma
f02525af8a Fix typo where install mode was changed instead of pinned version (#7277) 2025-08-29 08:55:30 +02:00
193 changed files with 3520 additions and 3212 deletions

View File

@@ -67,6 +67,14 @@ body:
validations:
required: true
- type: input
id: pve_version
attributes:
label: 📈 Which Proxmox version are you on?
placeholder: "run pveversion in your PVE node console"
validations:
required: true
- type: textarea
id: issue_description
attributes:

View File

@@ -10,8 +10,155 @@
> [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2025-09-07
## 2025-09-06
### 🆕 New Scripts
- Resilio Sync ([#7442](https://github.com/community-scripts/ProxmoxVE/pull/7442))
- leantime ([#7414](https://github.com/community-scripts/ProxmoxVE/pull/7414))
### 🚀 Updated Scripts
- use debian source for direct installation of MQTT [@EtlamGit](https://github.com/EtlamGit) ([#7423](https://github.com/community-scripts/ProxmoxVE/pull/7423))
- #### ✨ New Features
- feat: added mobile ui subscription nag removal [@ivan-penchev](https://github.com/ivan-penchev) ([#7164](https://github.com/community-scripts/ProxmoxVE/pull/7164))
### 🌐 Website
- #### 📝 Script Information
- MediaManager Configuration Path [@austinpilz](https://github.com/austinpilz) ([#7408](https://github.com/community-scripts/ProxmoxVE/pull/7408))
- Paperless-NGX: Remove default credentials from json [@tremor021](https://github.com/tremor021) ([#7403](https://github.com/community-scripts/ProxmoxVE/pull/7403))
## 2025-09-05
### 🚀 Updated Scripts
- Tududi: Pin version to 0.80 [@vhsdream](https://github.com/vhsdream) ([#7420](https://github.com/community-scripts/ProxmoxVE/pull/7420))
- #### 🐞 Bug Fixes
- AdventureLog: Update dependencies [@tremor021](https://github.com/tremor021) ([#7404](https://github.com/community-scripts/ProxmoxVE/pull/7404))
### 🌐 Website
- refactor: Enhance ScriptAccordion and Sidebar components to support selectedCategory state [@BramSuurdje](https://github.com/BramSuurdje) ([#7405](https://github.com/community-scripts/ProxmoxVE/pull/7405))
## 2025-09-04
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- fix: Syntax error in Immich scripts [@henworth](https://github.com/henworth) ([#7398](https://github.com/community-scripts/ProxmoxVE/pull/7398))
- Netdata: Fix pve_check for 8 [@MickLesk](https://github.com/MickLesk) ([#7392](https://github.com/community-scripts/ProxmoxVE/pull/7392))
- #### 🔧 Refactor
- Immich: pin compiled photo library revisions [@vhsdream](https://github.com/vhsdream) ([#7395](https://github.com/community-scripts/ProxmoxVE/pull/7395))
## 2025-09-03
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Element-Synapse: Increase HDD size [@tremor021](https://github.com/tremor021) ([#7384](https://github.com/community-scripts/ProxmoxVE/pull/7384))
- Wizarr: fix uv lock issue; use correct output suppression [@vhsdream](https://github.com/vhsdream) ([#7378](https://github.com/community-scripts/ProxmoxVE/pull/7378))
- Netbox: Fix missing directory [@tremor021](https://github.com/tremor021) ([#7374](https://github.com/community-scripts/ProxmoxVE/pull/7374))
- #### 🔧 Refactor
- Enhanced IP-Tag installation script with interactive configuration, improved VM IP detection, and better visual indicators [@DesertGamer](https://github.com/DesertGamer) ([#7366](https://github.com/community-scripts/ProxmoxVE/pull/7366))
### 🌐 Website
- #### 🐞 Bug Fixes
- Fix navigation [@BramSuurdje](https://github.com/BramSuurdje) ([#7376](https://github.com/community-scripts/ProxmoxVE/pull/7376))
## 2025-09-02
### 🚀 Updated Scripts
- Increase default disk size for Apt-Cacher-NG [@MickLesk](https://github.com/MickLesk) ([#7352](https://github.com/community-scripts/ProxmoxVE/pull/7352))
- #### 🐞 Bug Fixes
- Snipe-IT: Fix Nginx configuration [@tremor021](https://github.com/tremor021) ([#7358](https://github.com/community-scripts/ProxmoxVE/pull/7358))
- booklore: remove folder before update [@MickLesk](https://github.com/MickLesk) ([#7351](https://github.com/community-scripts/ProxmoxVE/pull/7351))
- #### ✨ New Features
- Immich: bump version to 1.140.1 [@vhsdream](https://github.com/vhsdream) ([#7349](https://github.com/community-scripts/ProxmoxVE/pull/7349))
### 🌐 Website
- #### 📝 Script Information
- pbs: increase note on website for ipv6 [@MickLesk](https://github.com/MickLesk) ([#7339](https://github.com/community-scripts/ProxmoxVE/pull/7339))
## 2025-09-01
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Update configarr.sh to mv backep up .env correctly [@finkerle](https://github.com/finkerle) ([#7323](https://github.com/community-scripts/ProxmoxVE/pull/7323))
- #### ✨ New Features
- Refactor + Feature Bump: HomeAssistant OS [@MickLesk](https://github.com/MickLesk) ([#7336](https://github.com/community-scripts/ProxmoxVE/pull/7336))
- UmbrelOS: Refactor / use q35 / better import [@MickLesk](https://github.com/MickLesk) ([#7329](https://github.com/community-scripts/ProxmoxVE/pull/7329))
- Harmonize GH Release Check (excl. Pre-Releases & Migrate old "_version.txt" [@MickLesk](https://github.com/MickLesk) ([#7328](https://github.com/community-scripts/ProxmoxVE/pull/7328))
### 🌐 Website
- Bump next from 15.2.4 to 15.5.2 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#7309](https://github.com/community-scripts/ProxmoxVE/pull/7309))
- #### 📝 Script Information
- booklore: add note for start-up in frontend [@MickLesk](https://github.com/MickLesk) ([#7331](https://github.com/community-scripts/ProxmoxVE/pull/7331))
## 2025-08-31
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- n8n: Increase disk size [@tremor021](https://github.com/tremor021) ([#7320](https://github.com/community-scripts/ProxmoxVE/pull/7320))
## 2025-08-30
### 🚀 Updated Scripts
- Immich: bump version to 1.140.0 [@vhsdream](https://github.com/vhsdream) ([#7275](https://github.com/community-scripts/ProxmoxVE/pull/7275))
- #### 🔧 Refactor
- Refactor gitea-mirror env-file [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7240](https://github.com/community-scripts/ProxmoxVE/pull/7240))
## 2025-08-29
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- fix version check for pocket-id migration [@MickLesk](https://github.com/MickLesk) ([#7298](https://github.com/community-scripts/ProxmoxVE/pull/7298))
- fix: remove file creation at release fetching and version checking logic [@MickLesk](https://github.com/MickLesk) ([#7299](https://github.com/community-scripts/ProxmoxVE/pull/7299))
- Zitadel: Fix initial setup [@tremor021](https://github.com/tremor021) ([#7284](https://github.com/community-scripts/ProxmoxVE/pull/7284))
- post-pbs: increase enterprise recognition [@MickLesk](https://github.com/MickLesk) ([#7280](https://github.com/community-scripts/ProxmoxVE/pull/7280))
- Fix typo where install mode was changed instead of pinned version [@Brandsma](https://github.com/Brandsma) ([#7277](https://github.com/community-scripts/ProxmoxVE/pull/7277))
- #### ✨ New Features
- [core]: feature - check_for_gh_release - version pinning [@MickLesk](https://github.com/MickLesk) ([#7279](https://github.com/community-scripts/ProxmoxVE/pull/7279))
- [feat]: migrate all update_scripts to new version helper (gh) [@MickLesk](https://github.com/MickLesk) ([#7262](https://github.com/community-scripts/ProxmoxVE/pull/7262))
## 2025-08-28
### 🆕 New Scripts

View File

@@ -28,12 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Bubka/2FAuth/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.2fauth 2>/dev/null)" ]] || [[ ! -f ~/.2fauth ]]; then
msg_info "Updating $APP to ${RELEASE}"
if check_for_gh_release "2fauth" "Bubka/2FAuth"; then
$STD apt-get update
$STD apt-get -y upgrade
@@ -64,18 +59,13 @@ function update_script() {
$STD systemctl restart nginx
msg_info "Cleaning Up"
rm -rf "v${RELEASE}.zip"
if dpkg -l | grep -q 'php8.2'; then
$STD apt-get remove --purge -y php8.2*
fi
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleanup Completed"
echo "${RELEASE}" >/opt/2fauth_version.txt
msg_ok "Updated $APP to ${RELEASE}"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
msg_ok "Updated Successfully"
fi
exit
}

View File

@@ -27,9 +27,11 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.adventurelog 2>/dev/null)" ]] || [[ ! -f ~/.adventurelog ]]; then
if ! command -v memcached >/dev/null 2>&1; then
$STD apt-get update
$STD apt-get install -y memcached libmemcached-tools
fi
if check_for_gh_release "adventurelog" "seanmorley15/adventurelog"; then
msg_info "Stopping Services"
systemctl stop adventurelog-backend
systemctl stop adventurelog-frontend
@@ -42,7 +44,7 @@ function update_script() {
fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog"
PYTHON_VERSION="3.12" setup_uv
msg_info "Updating ${APP} to v${RELEASE}"
msg_info "Updating ${APP}"
cp /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
cp -r /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
cd /opt/adventurelog/backend/server
@@ -70,10 +72,7 @@ function update_script() {
msg_info "Cleaning Up"
rm -rf /opt/adventurelog-backup
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -9,7 +9,7 @@ APP="Apt-Cacher-NG"
var_tags="${var_tags:-caching}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
@@ -20,18 +20,18 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
header_info
check_container_storage
check_container_resources
if [[ ! -d /var ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
exit
}
start

View File

@@ -27,9 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/release-argus/Argus/releases/latest | jq -r .tag_name | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.Argus 2>/dev/null)" ]] || [[ ! -f ~/.Argus ]]; then
if check_for_gh_release "argus" "release-argus/Argus"; then
msg_info "Stopping service"
systemctl stop argus
msg_ok "Service stopped"
@@ -39,11 +37,9 @@ function update_script() {
msg_info "Starting service"
systemctl start argus
msg_ok "Service started"
msg_ok "Updated ${APP} to ${RELEASE}"
else
msg_ok "${APP} is already up to date (${RELEASE})"
msg_ok "Updated Successfully"
fi
exit
}
start

View File

@@ -29,8 +29,8 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/authelia/authelia/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(/usr/bin/authelia -v | awk '{print substr($3, 2, length($2)) }')" ]]; then
if check_for_gh_release "authelia" "authelia/authelia"; then
$STD apt-get update
$STD apt-get -y upgrade
@@ -40,14 +40,10 @@ function update_script() {
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleanup Completed"
msg_ok "Updated $APP to ${RELEASE}"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
msg_ok "Updated Successfully"
fi
exit
}
start
build_container
description

View File

@@ -20,30 +20,26 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /root/.config/autobrr/config.toml ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
header_info
check_container_storage
check_container_resources
if [[ ! -f /root/.config/autobrr/config.toml ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/autobrr/autobrr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.autobrr 2>/dev/null)" ]] || [[ ! -f ~/.autobrr ]]; then
msg_info "Stopping ${APP} LXC"
systemctl stop autobrr
msg_ok "Stopped ${APP} LXC"
if check_for_gh_release "autobrr" "autobrr/autobrr"; then
msg_info "Stopping ${APP} LXC"
systemctl stop autobrr
msg_ok "Stopped ${APP} LXC"
fetch_and_deploy_gh_release "autobrr" "autobrr/autobrr" "prebuild" "latest" "/usr/local/bin" "autobrr_*_linux_x86_64.tar.gz"
fetch_and_deploy_gh_release "autobrr" "autobrr/autobrr" "prebuild" "latest" "/usr/local/bin" "autobrr_*_linux_x86_64.tar.gz"
msg_info "Starting ${APP} LXC"
systemctl start autobrr
msg_ok "Started ${APP} LXC"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
msg_info "Starting ${APP} LXC"
systemctl start autobrr
msg_ok "Started ${APP} LXC"
msg_ok "Updated Successfully"
fi
exit
}

View File

@@ -28,8 +28,7 @@ function update_script() {
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/babybuddy/babybuddy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.babybuddy 2>/dev/null)" ]] || [[ ! -f ~/.babybuddy ]]; then
if check_for_gh_release "babybuddy" "babybuddy/babybuddy"; then
setup_uv
msg_info "Stopping Services"
@@ -44,13 +43,13 @@ function update_script() {
fetch_and_deploy_gh_release "babybuddy" "babybuddy/babybuddy"
msg_info "Updating ${APP} to v${RELEASE}"
msg_info "Updating ${APP}"
cd /opt/babybuddy
mv /tmp/production.py.bak /opt/babybuddy/babybuddy/settings/production.py
source .venv/bin/activate
$STD uv pip install -r requirements.txt
$STD python manage.py migrate
msg_ok "Updated ${APP} to v${RELEASE}"
msg_ok "Updated ${APP}"
msg_info "Fixing permissions"
chown -R www-data:www-data /opt/data
@@ -62,14 +61,10 @@ function update_script() {
systemctl start uwsgi
systemctl start nginx
msg_ok "Services Started"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
build_container
description

View File

@@ -28,8 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/sabre-io/Baikal/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(cat ~/.baikal 2>/dev/null)" ]] || [[ ! -f ~/.baikal ]]; then
if check_for_gh_release "baikal" "sabre-io/Baikal"; then
msg_info "Stopping Service"
systemctl stop apache2
msg_ok "Stopped Service"
@@ -58,8 +57,6 @@ function update_script() {
rm -rf /opt/baikal-backup
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -29,11 +29,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE_MEILISEARCH=$(curl -fsSL https://api.github.com/repos/meilisearch/meilisearch/releases/latest | jq -r '.tag_name | sub("^v"; "")')
RELEASE_BARASSISTANT=$(curl -fsSL https://api.github.com/repos/karlomikus/bar-assistant/releases/latest | jq -r '.tag_name | sub("^v"; "")')
RELEASE_SALTRIM=$(curl -fsSL https://api.github.com/repos/karlomikus/vue-salt-rim/releases/latest | jq -r '.tag_name | sub("^v"; "")')
if [[ "${RELEASE_BARASSISTANT}" != "$(cat ~/.bar-assistant 2>/dev/null)" ]] || [[ ! -f ~/.bar-assistant ]]; then
if check_for_gh_release "bar-assistant" "karlomikus/bar-assistant"; then
msg_info "Stopping nginx"
systemctl stop nginx
msg_ok "Stopped nginx"
@@ -45,7 +41,7 @@ function update_script() {
fetch_and_deploy_gh_release "bar-assistant" "karlomikus/bar-assistant" "tarball" "latest" "/opt/bar-assistant"
setup_composer
msg_info "Updating ${APP} to ${RELEASE_BARASSISTANT}"
msg_info "Updating Bar-Assistant"
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
cd /opt/bar-assistant
@@ -58,7 +54,7 @@ function update_script() {
$STD php artisan route:cache
$STD php artisan event:cache
chown -R www-data:www-data /opt/bar-assistant
msg_ok "Updated $APP to ${RELEASE_BARASSISTANT}"
msg_ok "Updated Bar-Assistant"
msg_info "Starting nginx"
systemctl start nginx
@@ -67,11 +63,9 @@ function update_script() {
msg_info "Cleaning up"
rm -rf /opt/bar-assistant-backup
msg_ok "Cleaned"
else
msg_ok "No update required. ${APP} is already at ${RELEASE_BARASSISTANT}"
fi
if [[ "${RELEASE_SALTRIM}" != "$(cat ~/.vue-salt-rim 2>/dev/null)" ]] || [[ ! -f ~/.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
msg_ok "Backed up Vue Salt Rim"
@@ -82,12 +76,12 @@ function update_script() {
fetch_and_deploy_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim" "tarball" "latest" "/opt/vue-salt-rim"
msg_info "Updating Salt Rim to ${RELEASE_SALTRIM}"
msg_info "Updating Vue Salt Rim"
cp /opt/vue-salt-rim-backup/public/config.js /opt/vue-salt-rim/public/config.js
cd /opt/vue-salt-rim
$STD npm install
$STD npm run build
msg_ok "Updated $APP to ${RELEASE_SALTRIM}"
msg_ok "Updated Vue Salt Rim"
msg_info "Starting nginx"
systemctl start nginx
@@ -96,12 +90,9 @@ function update_script() {
msg_info "Cleaning up"
rm -rf /opt/vue-salt-rim-backup
msg_ok "Cleaned"
msg_ok "Updated"
else
msg_ok "No update required. Salt Rim is already at ${RELEASE_SALTRIM}"
fi
if [[ "${RELEASE_MEILISEARCH}" != "$(cat ~/.meilisearch 2>/dev/null)" ]] || [[ ! -f ~/.meilisearch ]]; then
if check_for_gh_release "meilisearch" "meilisearch/meilisearch"; then
msg_info "Stopping Meilisearch"
systemctl stop meilisearch
msg_ok "Stopped Meilisearch"
@@ -111,10 +102,7 @@ function update_script() {
msg_info "Starting Meilisearch"
systemctl start meilisearch
msg_ok "Started Meilisearch"
msg_ok "Updated Meilisearch"
else
msg_ok "No update required. Meilisearch is already at ${RELEASE_MEILISEARCH}"
msg_ok "Updated Successfully"
fi
exit
}

View File

@@ -28,8 +28,8 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Forceu/barcodebuddy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.barcodebuddy 2>/dev/null)" ]] || [[ ! -f ~/.barcodebuddy ]]; then
if check_for_gh_release "barcodebuddy" "Forceu/barcodebuddy"; then
msg_info "Stopping Service"
systemctl stop apache2
systemctl stop barcodebuddy
@@ -55,8 +55,6 @@ function update_script() {
rm -r /opt/barcodebuddy-backup
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -27,14 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/morpheus65535/bazarr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.bazarr 2>/dev/null)" ]] || [[ ! -f ~/.bazarr ]]; then
if check_for_gh_release "bazarr" "morpheus65535/bazarr"; then
PYTHON_VERSION="3.13" setup_uv
fetch_and_deploy_gh_release "bazarr" "morpheus65535/bazarr" "prebuild" "latest" "/opt/bazarr" "bazarr.zip"
@@ -44,10 +37,7 @@ function update_script() {
sed -i.bak 's/--only-binary=Pillow//g' /opt/bazarr/requirements.txt
$STD uv pip install -r /opt/bazarr/requirements.txt --system
msg_ok "Setup Bazarr"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
msg_ok "Updated Successfully"
fi
exit
}

View File

@@ -27,8 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.bitmagnet 2>/dev/null)" ]] || [[ ! -f ~/.bitmagnet ]]; then
if check_for_gh_release "bitmagnet" "bitmagnet-io/bitmagnet"; then
msg_info "Stopping Service"
systemctl stop bitmagnet-web
msg_ok "Stopped Service"
@@ -63,22 +62,19 @@ function update_script() {
rm -rf /opt/bitmagnet
fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet"
msg_info "Updating ${APP} to v${RELEASE}"
msg_info "Updating ${APP}"
cd /opt/bitmagnet
VREL=v$RELEASE
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"
chmod +x bitmagnet
[ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
[ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
msg_ok "Updated $APP to v${RELEASE}"
msg_ok "Updated $APP"
msg_info "Starting Service"
systemctl start bitmagnet-web
msg_ok "Started Service"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -28,13 +28,15 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/booklore-app/BookLore/releases/latest | yq '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.booklore 2>/dev/null)" ]] || [[ ! -f ~/.booklore ]]; then
if check_for_gh_release "booklore" "booklore-app/BookLore"; then
msg_info "Stopping $APP"
systemctl stop booklore
msg_ok "Stopped $APP"
msg_info "backup old install"
mv /opt/booklore /opt/booklore_bak
msg_ok "backup done"
fetch_and_deploy_gh_release "booklore" "booklore-app/BookLore"
msg_info "Building Frontend"
@@ -60,11 +62,9 @@ function update_script() {
msg_info "Starting $APP"
systemctl start booklore
systemctl reload nginx
rm -rf /opt/booklore_bak
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
msg_ok "Updated Successfully"
fi
exit
}

View File

@@ -28,8 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/BookStackApp/BookStack/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.bookstack 2>/dev/null)" ]] || [[ ! -f ~/.bookstack ]]; then
if check_for_gh_release "bookstack" "BookStackApp/BookStack"; then
msg_info "Stopping Apache2"
systemctl stop apache2
msg_ok "Services Stopped"
@@ -58,7 +57,6 @@ function update_script() {
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 640 /opt/bookstack/.env
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Configured BookStack"
msg_info "Starting Apache2"
@@ -69,12 +67,9 @@ function update_script() {
rm -rf /opt/bookstack-backup
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
build_container
description

View File

@@ -28,9 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/jordan-dalby/ByteStash/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.bytestash 2>/dev/null)" ]] || [[ ! -f ~/.bytestash ]]; then
if check_for_gh_release "bytestash" "jordan-dalby/ByteStash"; then
read -rp "${TAB3}Did you make a backup via application WebUI? (y/n): " backuped
if [[ "$backuped" =~ ^[Yy]$ ]]; then
msg_info "Stopping Services"
@@ -57,10 +55,7 @@ function update_script() {
exit
fi
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}
start

View File

@@ -27,23 +27,21 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | tr ' ' '\n' | grep -Ev 'rc|b' | sort -V | tail -n 1)
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
if check_for_gh_release "checkmk" "checkmk/checkmk"; then
RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | tr ' ' '\n' | grep -Ev 'rc|b' | sort -V | tail -n 1)
msg_info "Updating ${APP} to v${RELEASE}"
$STD omd stop monitoring
$STD omd cp monitoring monitoringbackup
curl -fsSL "https://download.checkmk.com/checkmk/${RELEASE}/check-mk-raw-${RELEASE}_0.bookworm_amd64.deb" -o "/opt/checkmk.deb"
curl -fsSL "https://download.checkmk.com/checkmk/${RELEASE}/check-mk-raw-${RELEASE}_0.bookworm_amd64.deb" -o "/opt/checkmk.deb"
$STD apt-get install -y /opt/checkmk.deb
$STD omd --force -V ${RELEASE}.cre update --conflict=install monitoring
$STD omd start monitoring
$STD omd -f rm monitoringbackup
$STD omd cleanup
rm -rf /opt/checkmk.deb
msg_ok "Updated ${APP} to v${RELEASE}"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}."
msg_ok "Updated ${APP}"
msg_ok "Updated Successfully"
fi
exit
}

View File

@@ -20,32 +20,27 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/cleanuparr/Cleanuparr ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Cleanuparr/Cleanuparr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.Cleanuparr 2>/dev/null)" ]] || [[ ! -f ~/.Cleanuparr ]]; then
msg_info "Stopping ${APP}"
systemctl stop cleanuparr
msg_ok "Stopped ${APP}"
fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
msg_info "Starting ${APP}"
systemctl start cleanuparr
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/cleanuparr/Cleanuparr ]]; then
msg_error "No ${APP} Installation Found!"
exit
}
fi
if check_for_gh_release "cleanuparr" "Cleanuparr/Cleanuparr"; then
msg_info "Stopping ${APP}"
systemctl stop cleanuparr
msg_ok "Stopped ${APP}"
fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
msg_info "Starting ${APP}"
systemctl start cleanuparr
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
fi
exit
}
start
build_container
description

View File

@@ -28,9 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/cloudreve/cloudreve/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(cat ~/.cloudreve 2>/dev/null)" ]] || [[ ! -f ~/.cloudreve ]]; then
if check_for_gh_release "cloudreve" "cloudreve/cloudreve"; then
msg_info "Stopping $APP"
systemctl stop cloudreve
msg_ok "Stopped $APP"
@@ -40,10 +38,7 @@ function update_script() {
msg_info "Starting $APP"
systemctl start cloudreve
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
msg_ok "Updated Successfully"
fi
exit
}

View File

@@ -28,8 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Athou/commafeed/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
if [[ "${RELEASE}" != "$(cat ~/.commafeed 2>/dev/null)" ]] || [[ ! -f ~/.commafeed ]]; then
if check_for_gh_release "commafeed" "Athou/commafeed"; then
msg_info "Stopping ${APP}"
systemctl stop commafeed
msg_ok "Stopped ${APP}"
@@ -59,8 +58,6 @@ function update_script() {
systemctl start commafeed
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -27,31 +27,28 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/raydak-labs/configarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.configarr 2>/dev/null || cat /opt/configarr_version.txt 2>/dev/null)" ]]; then
if check_for_gh_release "configarr" "raydak-labs/configarr"; then
msg_info "Stopping $APP"
systemctl stop configarr-task.timer
msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
msg_info "Updating $APP"
mkdir -p /opt/backup/
mv /opt/configarr/{config.yml,secrets.yml,.env} "/opt/backup/"
rm -rf /opt/configarr
fetch_and_deploy_gh_release "configarr" "raydak-labs/configarr"
mv /opt/backup/* /opt/configarr/
mv /opt/backup/{config.yml,secrets.yml,.env} "/opt/configarr/"
cd /opt/configarr
$STD pnpm install
$STD pnpm run build
msg_ok "Updated $APP to v${RELEASE}"
msg_ok "Updated $APP"
msg_info "Starting $APP"
systemctl start configarr-task.timer
msg_ok "Started configarr"
rm -rf /opt/backup
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
msg_ok "Updated Successfully"
fi
exit
}

View File

@@ -27,8 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/C4illin/ConvertX/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(cat ~/.convertx 2>/dev/null)" ]] || [[ ! -f ~/.convertx ]]; then
if check_for_gh_release "ConvertX" "C4illin/ConvertX"; then
msg_info "Stopping $APP"
systemctl stop convertx
msg_ok "Stopped $APP"
@@ -41,25 +40,21 @@ function update_script() {
fetch_and_deploy_gh_release "ConvertX" "C4illin/ConvertX" "tarball" "latest" "/opt/convertx"
msg_info "Updating $APP to v${RELEASE}"
msg_info "Updating $APP"
if [[ -d /opt/data ]]; then
mv /opt/data /opt/convertx/data
fi
cd /opt/convertx
$STD bun install
msg_ok "Updated $APP to v${RELEASE}"
msg_ok "Updated $APP"
msg_info "Starting $APP"
systemctl start convertx
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
msg_ok "Updated Successfully"
fi
exit
}
start
build_container
description

View File

@@ -33,52 +33,42 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
if ! command -v npm >/dev/null 2>&1; then
echo "Installing NPM..."
$STD apt-get install -y npm
echo "Installed NPM..."
fi
fi
NODE_VERSION="22" setup_nodejs
msg_info "Updating ${APP}"
$STD /opt/cronicle/bin/control.sh upgrade
msg_ok "Updated ${APP}"
exit
fi
if [ "$UPD" == "2" ]; then
if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
if ! command -v npm >/dev/null 2>&1; then
echo "Installing NPM..."
$STD apt-get install -y npm
echo "Installed NPM..."
fi
fi
LATEST=$(curl -fsSL https://api.github.com/repos/jhuckaby/Cronicle/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
IP=$(hostname -I | awk '{print $1}')
msg_info "Installing Dependencies"
$STD apt-get install -y \
git \
build-essential \
ca-certificates \
gnupg2
msg_ok "Installed Dependencies"
NODE_VERSION="22" setup_nodejs
fetch_and_deploy_gh_release "cronicle" "jhuckaby/Cronicle"
if check_for_gh_release "cronicle" "jhuckaby/Cronicle"; then
IP=$(hostname -I | awk '{print $1}')
msg_info "Installing Dependencies"
$STD apt-get install -y \
git \
build-essential \
ca-certificates \
gnupg2
msg_ok "Installed Dependencies"
msg_info "Configuring Cronicle Worker"
cd /opt/cronicle
$STD npm install
$STD node bin/build.js dist
sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json
$STD /opt/cronicle/bin/control.sh start
$STD cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled
chmod 775 /etc/init.d/cronicled
$STD update-rc.d cronicled defaults
msg_ok "Installed Cronicle Worker"
NODE_VERSION="22" setup_nodejs
fetch_and_deploy_gh_release "cronicle" "jhuckaby/Cronicle"
echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
exit
msg_info "Configuring Cronicle Worker"
cd /opt/cronicle
$STD npm install
$STD node bin/build.js dist
sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json
$STD /opt/cronicle/bin/control.sh start
$STD cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled
chmod 775 /etc/init.d/cronicled
$STD update-rc.d cronicled defaults
msg_ok "Installed Cronicle Worker"
echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
exit
fi
fi
}

View File

@@ -28,8 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/cryptpad/cryptpad/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(cat ~/.cryptpad 2>/dev/null)" ]] || [[ ! -f ~/.cryptpad ]]; then
if check_for_gh_release "cryptpad" "cryptpad/cryptpad"; then
msg_info "Stopping $APP"
systemctl stop cryptpad
msg_ok "Stopped $APP"
@@ -40,12 +39,12 @@ function update_script() {
fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad"
msg_info "Updating $APP to ${RELEASE}"
msg_info "Updating $APP"
cd /opt/cryptpad
$STD npm ci
$STD npm run install:components
$STD npm run build
msg_ok "Updated $APP to ${RELEASE}"
msg_ok "Updated $APP"
msg_info "Restoring configuration"
mv /opt/config.js /opt/cryptpad/config/
@@ -54,10 +53,7 @@ function update_script() {
msg_info "Starting $APP"
systemctl start cryptpad
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
msg_ok "Updated Successfully"
fi
exit
}

View File

@@ -27,9 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Lissy93/dashy/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
if [[ "${RELEASE}" != "$(cat ~/.dashy 2>/dev/null)" ]] || [[ ! -f ~/.dashy ]]; then
if check_for_gh_release "dashy" "Lissy93/dashy"; then
msg_info "Stopping ${APP}"
systemctl stop dashy
msg_ok "Stopped ${APP}"
@@ -46,11 +44,11 @@ function update_script() {
rm -rf /opt/dashy
fetch_and_deploy_gh_release "dashy" "Lissy93/dashy"
msg_info "Updating ${APP} to ${RELEASE}"
msg_info "Updating ${APP}"
cd /opt/dashy
npm install
npm run build
msg_ok "Updated ${APP} to ${RELEASE}"
msg_ok "Updated ${APP}"
msg_info "Restoring conf.yml"
cd ~
@@ -64,10 +62,7 @@ function update_script() {
msg_info "Starting Dashy"
systemctl start dashy
msg_ok "Started Dashy"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -30,8 +30,8 @@ function update_script() {
NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/docmost/docmost/main/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
fi
export NODE_OPTIONS="--max_old_space_size=4096"
RELEASE=$(curl -fsSL https://api.github.com/repos/docmost/docmost/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.docmost 2>/dev/null)" ]] || [[ ! -f ~/.docmost ]]; then
if check_for_gh_release "docmost" "docmost/docmost"; then
msg_info "Stopping ${APP}"
systemctl stop docmost
msg_ok "${APP} Stopped"
@@ -44,7 +44,7 @@ function update_script() {
fetch_and_deploy_gh_release "docmost" "docmost/docmost"
msg_info "Updating ${APP} to v${RELEASE}"
msg_info "Updating ${APP}"
cd /opt/docmost
mv /opt/.env /opt/docmost/.env
mv /opt/data /opt/docmost/data
@@ -55,10 +55,7 @@ function update_script() {
msg_info "Starting ${APP}"
systemctl start docmost
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -20,31 +20,27 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /usr/bin/duplicati-server ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/duplicati/duplicati/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
if [[ "${RELEASE}" != "$(cat ~/.duplicati)" ]] || [[ ! -f ~/.duplicati ]]; then
msg_info "Stopping $APP"
systemctl stop duplicati
msg_ok "Stopped $APP"
fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "duplicati-*-linux-x64-gui.deb"
msg_info "Starting $APP"
systemctl start duplicati
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
header_info
check_container_storage
check_container_resources
if [[ ! -f /usr/bin/duplicati-server ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "duplicati" "duplicati/duplicati"; then
msg_info "Stopping $APP"
systemctl stop duplicati
msg_ok "Stopped $APP"
fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "duplicati-*-linux-x64-gui.deb"
msg_info "Starting $APP"
systemctl start duplicati
msg_ok "Started $APP"
msg_ok "Update Successful"
fi
exit
}
start

View File

@@ -9,7 +9,7 @@ APP="Element Synapse"
var_tags="${var_tags:-server}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-4}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"

View File

@@ -28,8 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
if [[ "${RELEASE}" != "$(cat ~/.emby 2>/dev/null)" ]] || [[ ! -f ~/.emby ]]; then
if check_for_gh_release "emby" "MediaBrowser/Emby.Releases"; then
msg_info "Stopping ${APP}"
systemctl stop emby-server
msg_ok "Stopped ${APP}"
@@ -39,10 +38,7 @@ function update_script() {
msg_info "Starting ${APP}"
systemctl start emby-server
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -26,10 +26,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\Kv\K[^"]+' | head -n1)
RELEASE_FFMPEG=$(curl -fsSL https://api.github.com/repos/ErsatzTV/ErsatzTV-ffmpeg/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
if [[ "${RELEASE}" != "$(cat ~/.ersatztv 2>/dev/null)" ]] || [[ ! -f ~/.ersatztv ]]; then
if check_for_gh_release "ersatztv" "ErsatzTV/ErsatzTV"; then
msg_info "Stopping ErsatzTV"
systemctl stop ersatzTV
msg_ok "Stopped ErsatzTV"
@@ -41,11 +38,9 @@ function update_script() {
msg_ok "Started ErsatzTV"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
if [[ "${RELEASE_FFMPEG}" != "$(cat ~/.ersatztv-ffmpeg 2>/dev/null)" ]] || [[ ! -f ~/.ersatztv-ffmpeg ]]; then
if check_for_gh_release "ersatztv-ffmpeg" "ErsatzTV/ErsatzTV-ffmpeg"; then
msg_info "Stopping ErsatzTV"
systemctl stop ersatzTV
msg_ok "Stopped ErsatzTV"
@@ -62,10 +57,7 @@ function update_script() {
msg_info "Starting ErsatzTV"
systemctl start ersatzTV
msg_ok "Started ErsatzTV"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ErsatzTV-ffmpeg is already at ${RELEASE_FFMPEG}"
fi
exit
}

View File

@@ -28,8 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/excalidraw/excalidraw/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.excalidraw 2>/dev/null)" ]] || [[ ! -f ~/.excalidraw ]]; then
if check_for_gh_release "excalidraw" "excalidraw/excalidraw"; then
msg_info "Stopping $APP"
systemctl stop excalidraw
msg_ok "Stopped $APP"
@@ -37,18 +36,15 @@ function update_script() {
rm -rf /opt/excalidraw
fetch_and_deploy_gh_release "excalidraw" "excalidraw/excalidraw"
msg_info "Updating $APP to v${RELEASE}"
msg_info "Updating $APP"
cd /opt/excalidraw
$STD yarn
msg_ok "Updated $APP to v${RELEASE}"
msg_ok "Updated $APP"
msg_info "Starting $APP"
systemctl start excalidraw
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
msg_ok "Updated Successfully"
fi
exit
}

View File

@@ -28,8 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/firefly-iii/firefly-iii/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
if [[ "${RELEASE}" != "$(cat ~/.firefly 2>/dev/null)" ]] || [[ ! -f ~/.firefly ]]; then
if check_for_gh_release "firefly" "firefly-iii/firefly-iii"; then
msg_info "Stopping Apache2"
systemctl stop apache2
msg_ok "Stopped Apache2"
@@ -42,7 +41,7 @@ function update_script() {
fetch_and_deploy_gh_release "firefly" "firefly-iii/firefly-iii" "prebuild" "latest" "/opt/firefly" "FireflyIII-*.zip"
setup_composer
msg_info "Updating ${APP} to v${RELEASE}"
msg_info "Updating ${APP}"
rm -rf /opt/firefly/storage
cp /opt/.env /opt/firefly/.env
cp -r /opt/storage /opt/firefly/storage
@@ -58,15 +57,12 @@ function update_script() {
$STD php artisan view:clear
$STD php artisan firefly-iii:upgrade-database
$STD php artisan firefly-iii:laravel-passport-keys
msg_ok "Updated ${APP} to v${RELEASE}"
msg_ok "Updated ${APP}"
msg_info "Starting Apache2"
systemctl start apache2
msg_ok "Started Apache2"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}."
fi
exit
}

View File

@@ -28,8 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/FlareSolverr/FlareSolverr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
if [[ "${RELEASE}" != "$(cat ~/.flaresolverr 2>/dev/null)" ]] || [[ ! -f ~/.flaresolverr ]]; then
if check_for_gh_release "flaresolverr" "FlareSolverr/FlareSolverr" "3.3.5"; then
msg_info "Stopping service"
systemctl stop flaresolverr
msg_ok "Stopped service"
@@ -40,8 +39,6 @@ function update_script() {
msg_info "Starting service"
systemctl start flaresolverr
msg_ok "Started service"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -28,8 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/dotnetfactory/fluid-calendar/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.fluid-calendar 2>/dev/null)" ]] || [[ ! -f ~/.fluid-calendar ]]; then
if check_for_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar"; then
msg_info "Stopping $APP"
systemctl stop fluid-calendar
msg_ok "Stopped $APP"
@@ -38,7 +37,7 @@ function update_script() {
rm -rf /opt/fluid-calendar
fetch_and_deploy_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar"
msg_info "Updating $APP to v${RELEASE}"
msg_info "Updating $APP"
mv /opt/fluid.env /opt/fluid-calendar/.env
cd /opt/fluid-calendar
export NEXT_TELEMETRY_DISABLED=1
@@ -46,15 +45,12 @@ function update_script() {
$STD npm run prisma:generate
$STD npx prisma migrate deploy
$STD npm run build:os
msg_ok "Updated $APP to v${RELEASE}"
msg_ok "Updated $APP"
msg_info "Starting $APP"
systemctl start fluid-calendar
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -28,10 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/TwiN/gatus/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.gatus 2>/dev/null)" ]] || [[ ! -f ~/.gatus ]]; then
msg_info "Updating $APP"
if check_for_gh_release "gatus" "TwiN/gatus"; then
msg_info "Stopping $APP"
systemctl stop gatus
msg_ok "Stopped $APP"
@@ -40,21 +37,18 @@ function update_script() {
rm -rf /opt/gatus
fetch_and_deploy_gh_release "gatus" "TwiN/gatus"
msg_info "Updating $APP to v${RELEASE}"
msg_info "Updating $APP"
cd /opt/gatus
$STD go mod tidy
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gatus .
setcap CAP_NET_RAW+ep gatus
mv /opt/config.yaml config
msg_ok "Updated $APP to v${RELEASE}"
msg_ok "Updated $APP"
msg_info "Starting $APP"
systemctl start gatus
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -32,25 +32,54 @@ function update_script() {
APP_VERSION=$(grep -o '"version": *"[^"]*"' /opt/gitea-mirror/package.json | cut -d'"' -f4)
if [[ $APP_VERSION =~ ^2\. ]]; then
if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️ VERSION 2.x DETECTED" --yesno \
"WARNING: Version $APP_VERSION detected!\n\nUpdating from version 2.x will CLEAR ALL CONFIGURATION.\n\nThis includes:\n• API tokens\n• User settings\n• Repository configurations\n• All custom settings\n\nDo you want to continue with the update process?" 15 70 --defaultno
then
"WARNING: Version $APP_VERSION detected!\n\nUpdating from version 2.x will CLEAR ALL CONFIGURATION.\n\nThis includes:\n• API tokens\n• User settings\n• Repository configurations\n• All custom settings\n\nDo you want to continue with the update process?" 15 70 --defaultno; then
exit 0
fi
if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️ FINAL CONFIRMATION" --yesno \
"FINAL WARNING: This update WILL clear all configuration!\n\nBEFORE PROCEEDING, please:\n\n• Copy API tokens to a safe location\n• Backup any custom configurations\n• Note down repository settings\n\nThis action CANNOT be undone!" 18 70 --defaultno
then
whiptail --backtitle "Gitea Mirror Update" --title "Update Cancelled" --msgbox "Update process cancelled. Please backup your configuration before proceeding." 8 60
exit 0
"FINAL WARNING: This update WILL clear all configuration!\n\nBEFORE PROCEEDING, please:\n\n• Copy API tokens to a safe location\n• Backup any custom configurations\n• Note down repository settings\n\nThis action CANNOT be undone!" 18 70 --defaultno; then
whiptail --backtitle "Gitea Mirror Update" --title "Update Cancelled" --msgbox "Update process cancelled. Please backup your configuration before proceeding." 8 60
exit 0
fi
whiptail --backtitle "Gitea Mirror Update" --title "Proceeding with Update" --msgbox \
"Proceeding with version $APP_VERSION update.\n\nAll configuration will be cleared as warned." 8 50
"Proceeding with version $APP_VERSION update.\n\nAll configuration will be cleared as warned." 8 50
rm -rf /opt/gitea-mirror
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/RayLabsHQ/gitea-mirror/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.${APP} 2>/dev/null || cat /opt/${APP}_version.txt 2>/dev/null)" ]]; then
if [[ ! -f /opt/gitea-mirror.env ]]; then
msg_info "Detected old Enviroment, updating files"
APP_SECRET=$(openssl rand -base64 32)
HOST_IP=$(hostname -I | awk '{print $1}')
cat <<EOF >/opt/gitea-mirror.env
# See here for config options: https://github.com/RayLabsHQ/gitea-mirror/blob/main/docs/ENVIRONMENT_VARIABLES.md
NODE_ENV=production
HOST=0.0.0.0
PORT=4321
DATABASE_URL=sqlite://data/gitea-mirror.db
BETTER_AUTH_URL=http://${HOST_IP}:4321
BETTER_AUTH_SECRET=${APP_SECRET}
npm_package_version=${APP_VERSION}
EOF
rm /etc/systemd/system/gitea-mirror.service
cat <<EOF >/etc/systemd/system/gitea-mirror.service
[Unit]
Description=Gitea Mirror
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/gitea-mirror
ExecStart=/usr/local/bin/bun dist/server/entry.mjs
Restart=on-failure
RestartSec=10
EnvironmentFile=/opt/gitea-mirror.env
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
msg_ok "Old Enviroment fixed"
fi
if check_for_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror"; then
msg_info "Stopping Services"
systemctl stop gitea-mirror
msg_ok "Services Stopped"
@@ -70,25 +99,23 @@ function update_script() {
rm -rf /opt/gitea-mirror
fetch_and_deploy_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror"
msg_info "Updating and rebuilding ${APP} to v${RELEASE}"
msg_info "Updating and rebuilding ${APP}"
cd /opt/gitea-mirror
$STD bun run setup
$STD bun run build
APP_VERSION=$(grep -o '"version": *"[^"]*"' package.json | cut -d'"' -f4)
sudo sed -i.bak "s|^Environment=npm_package_version=.*|Environment=npm_package_version=${APP_VERSION}|" /etc/systemd/system/gitea-mirror.service
msg_ok "Updated and rebuilt ${APP} to v${RELEASE}"
sudo sed -i.bak "s|^npm_package_version=.*|npm_package_version=${APP_VERSION}|" /opt/gitea-mirror.env
msg_ok "Updated and rebuilt ${APP}"
msg_info "Restoring Data"
cp /opt/gitea-mirror-backup/data/* /opt/gitea-mirror/data
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Restored Data"
msg_info "Starting Service"
systemctl daemon-reload
systemctl start gitea-mirror
msg_ok "Service Started"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
msg_ok "Update Successfully"
fi
exit
}

View File

@@ -28,8 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://github.com/go-gitea/gitea/releases/latest | grep "title>Release" | cut -d " " -f 4 | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.gitea 2>/dev/null)" ]] || [[ ! -f ~/.gitea ]]; then
if check_for_gh_release "gitea" "go-gitea/gitea"; then
msg_info "Stopping service"
systemctl stop gitea
msg_ok "Service stopped"
@@ -41,10 +40,7 @@ function update_script() {
msg_info "Starting service"
systemctl start gitea
msg_ok "Started service"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -28,8 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/glanceapp/glance/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.glance 2>/dev/null)" ]] || [[ ! -f ~/.glance ]]; then
if check_for_gh_release "glance" "glanceapp/glance"; then
msg_info "Stopping Service"
systemctl stop glance
msg_ok "Stopped Service"
@@ -40,10 +39,7 @@ function update_script() {
msg_info "Starting Service"
systemctl start glance
msg_ok "Started Service"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}."
fi
exit
}

View File

@@ -28,8 +28,7 @@ function update_script() {
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/AlexxIT/go2rtc/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.go2rtc 2>/dev/null)" ]] || [[ ! -f ~/.go2rtc ]]; then
if check_for_gh_release "go2rtc" "AlexxIT/go2rtc"; then
msg_info "Stopping service"
systemctl stop go2rtc
msg_ok "Stopped service"
@@ -39,10 +38,7 @@ function update_script() {
msg_info "Starting service"
systemctl start go2rtc
msg_ok "Started service"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -20,19 +20,14 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/gokapi ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if [[ -f /opt/${APP}_version.txt ]]; then
mv /opt/${APP}_version ~/.gokapi
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Forceu/Gokapi/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.gokapi 2>/dev/null)" ]] || [[ ! -f ~/.gokapi ]]; then
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/gokapi ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "gokapi" "Forceu/Gokapi"; then
msg_info "Stopping ${APP}"
systemctl stop gokapi
msg_ok "Stopped ${APP}"
@@ -42,10 +37,7 @@ function update_script() {
msg_info "Starting ${APP}"
systemctl start gokapi
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -28,9 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL "https://api.github.com/repos/StarFleetCPTN/GoMFT/releases/latest" | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.gomft)" ]] || [[ ! -f ~/.gomft ]]; then
if check_for_gh_release "gomft" "StarFleetCPTN/GoMFT"; then
msg_info "Stopping $APP"
systemctl stop gomft
msg_ok "Stopped $APP"
@@ -40,10 +38,7 @@ function update_script() {
msg_info "Starting $APP"
systemctl start gomft
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -27,9 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/gotify/server/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.gotify 2>/dev/null)" ]] || [[ ! -f ~/.gotify ]]; then
if check_for_gh_release "gotify" "gotify/server"; then
msg_info "Stopping ${APP}"
systemctl stop gotify
msg_ok "Stopped ${APP}"
@@ -40,10 +38,7 @@ function update_script() {
msg_info "Starting ${APP}"
systemctl start gotify
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -27,19 +27,14 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
php_ver=$(php -v | head -n 1 | awk '{print $2}')
if [[ ! $php_ver == "8.3"* ]]; then
PHP_VERSION="8.3" PHP_MODULE="sqlite3,bz2" PHP_APACHE="yes" setup_php
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/grocy/grocy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.grocy 2>/dev/null)" ]] || [[ ! -f ~/.grocy ]]; then
if check_for_gh_release "grocy" "grocy/grocy"; then
msg_info "Updating ${APP}"
bash /var/www/html/update.sh
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -29,9 +29,7 @@ function update_script() {
exit
fi
NODE_VERSION="20" NODE_MODULE="gulp-cli,mocha" setup_nodejs
RELEASE=$(curl -fsSL https://api.github.com/repos/HabitRPG/habitica/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.habitica 2>/dev/null)" ]] || [[ ! -f ~/.habitica ]]; then
if check_for_gh_release "habitica" "HabitRPG/habitica"; then
msg_info "Stopping $APP"
systemctl stop habitica-mongodb
systemctl stop habitica
@@ -48,13 +46,13 @@ function update_script() {
fetch_and_deploy_gh_release "habitica" "HabitRPG/habitica" "tarball" "latest" "/opt/habitica"
msg_info "Updating $APP to ${RELEASE}"
msg_info "Updating $APP"
cd /opt/habitica
$STD npm i
$STD npm run postinstall
$STD npm run client:build
$STD gulp build:prod
msg_ok "Updated $APP to ${RELEASE}"
msg_ok "Updated $APP"
msg_info "Restoring configuration"
if [[ -f ~/config.json ]]; then
@@ -69,10 +67,7 @@ function update_script() {
systemctl start habitica
systemctl start habitica-client
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

6
ct/headers/leantime Normal file
View File

@@ -0,0 +1,6 @@
__ __ _
/ / ___ ____ _____ / /_(_)___ ___ ___
/ / / _ \/ __ `/ __ \/ __/ / __ `__ \/ _ \
/ /___/ __/ /_/ / / / / /_/ / / / / / / __/
/_____/\___/\__,_/_/ /_/\__/_/_/ /_/ /_/\___/

6
ct/headers/resiliosync Normal file
View File

@@ -0,0 +1,6 @@
____ _ ___ _____
/ __ \___ _____(_) (_)___ / ___/__ ______ _____
/ /_/ / _ \/ ___/ / / / __ \ \__ \/ / / / __ \/ ___/
/ _, _/ __(__ ) / / / /_/ / ___/ / /_/ / / / / /__
/_/ |_|\___/____/_/_/_/\____/ /____/\__, /_/ /_/\___/
/____/

View File

@@ -31,8 +31,7 @@ function update_script() {
mv /opt/"${APP}_version.txt" ~/.headscale
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/juanfont/headscale/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.headscale 2>/dev/null)" ]] || [[ ! -f ~/.headscale ]]; then
if check_for_gh_release "headscale" "juanfont/headscale"; then
msg_info "Stopping ${APP}"
systemctl stop headscale
msg_ok "Stopped ${APP}"
@@ -41,12 +40,9 @@ function update_script() {
fetch_and_deploy_gh_release "headscale-admin" "GoodiesHQ/headscale-admin" "prebuild" "latest" "/opt/headscale-admin" "admin.zip"
msg_info "Starting ${APP}"
# Temporary fix until headscale project resolves service getting disabled on updates.
systemctl enable -q --now headscale
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -28,9 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/healthchecks/healthchecks/releases/latest | jq '.tag_name' | sed 's/^"v//;s/"$//')
if [[ "${RELEASE}" != "$(cat ~/.healthchecks 2>/dev/null)" ]] || [[ ! -f ~/.healthchecks ]]; then
if check_for_gh_release "healthchecks" "healthchecks/healthchecks"; then
msg_info "Stopping $APP"
systemctl stop healthchecks
msg_ok "Stopped $APP"
@@ -38,7 +36,7 @@ function update_script() {
setup_uv
fetch_and_deploy_gh_release "healthchecks" "healthchecks/healthchecks"
msg_info "Updating $APP to v${RELEASE}"
msg_info "Updating $APP"
cd /opt/healthchecks
mkdir -p /opt/healthchecks/static-collected/
$STD uv pip install wheel gunicorn -r requirements.txt --system
@@ -46,16 +44,13 @@ function update_script() {
$STD uv run -- python manage.py migrate --noinput
$STD uv run -- python manage.py collectstatic --noinput
$STD uv run -- python manage.py compress
msg_ok "Updated $APP to v${RELEASE}"
msg_ok "Updated $APP"
msg_info "Starting $APP"
systemctl start healthchecks
systemctl restart caddy
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -81,9 +81,8 @@ EOF
msg_ok "Updated Services"
systemctl daemon-reload
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/homarr-labs/homarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.${APP} 2>/dev/null || cat /opt/${APP}_version.txt 2>/dev/null)" ]]; then
if check_for_gh_release "homarr" "homarr-labs/homarr"; then
msg_info "Stopping Services (Patience)"
systemctl stop homarr
msg_ok "Services Stopped"
@@ -98,7 +97,6 @@ EOF
$STD apt upgrade nodejs -y
msg_ok "Updated Nodejs"
$STD command -v jq || $STD apt-get update && $STD apt-get install -y jq
NODE_VERSION=$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.engines.node | split(">=")[1] | split(".")[0]')
NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.packageManager | split("@")[1]')"
setup_nodejs
@@ -106,7 +104,7 @@ EOF
rm -rf /opt/homarr
fetch_and_deploy_gh_release "homarr" "homarr-labs/homarr"
msg_info "Updating and rebuilding ${APP} to v${RELEASE} (Patience)"
msg_info "Updating and rebuilding ${APP} (Patience)"
rm /opt/run_homarr.sh
cat <<'EOF' >/opt/run_homarr.sh
#!/bin/bash
@@ -153,7 +151,6 @@ EOF
mkdir /opt/homarr/build
cp ./node_modules/better-sqlite3/build/Release/better_sqlite3.node ./build/better_sqlite3.node
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}"
msg_info "Starting Services"
@@ -164,8 +161,6 @@ EOF
if [[ "$choice" =~ ^[Yy]$ ]]; then
reboot
fi
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -33,8 +33,7 @@ function update_script() {
systemctl daemon-reload
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/sysadminsmedia/homebox/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.homebox 2>/dev/null)" ]] || [[ ! -f ~/.homebox ]]; then
if check_for_gh_release "homebox" "sysadminsmedia/homebox"; then
msg_info "Stopping ${APP}"
systemctl stop homebox
msg_ok "${APP} Stopped"
@@ -50,10 +49,7 @@ function update_script() {
msg_info "Starting ${APP}"
systemctl start homebox
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -27,8 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/danielbrendel/hortusfox-web/releases/latest | jq -r .tag_name | sed 's/^v//')
if [[ ! -f ~/.hortusfox ]] || [[ "${RELEASE}" != "$(cat ~/.hortusfox)" ]]; then
if check_for_gh_release "danielbrendel" "hortusfox-web"; then
msg_info "Stopping Service"
systemctl stop apache2
msg_ok "Stopped Service"
@@ -58,8 +57,6 @@ function update_script() {
rm -r /opt/hortusfox-backup
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -30,26 +30,24 @@ function update_script() {
fi
setup_uv
RELEASE=$(curl -fsSL https://api.github.com/repos/plexguide/Huntarr.io/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
if [[ -f ~/.huntarr && "${RELEASE}" == "$(cat ~/.huntarr)" ]]; then
msg_ok "No update required. ${APP} is already at ${RELEASE}"
exit
if check_for_gh_release "huntarr" "plexguide/Huntarr.io"; then
msg_info "Stopping huntarr"
systemctl stop huntarr
msg_ok "Stopped huntarr"
fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io"
msg_info "Configuring $APP"
cd /opt/huntarr
$STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python
msg_ok "Configured $APP"
msg_info "Starting $APP"
systemctl start huntarr
msg_ok "Started $APP"
msg_ok "Updated $APP"
fi
msg_info "Stopping huntarr service"
systemctl stop huntarr
msg_ok "Stopped huntarr service"
fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io"
msg_info "Configuring $APP"
cd /opt/huntarr
$STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python
msg_ok "Configured $APP"
msg_info "Starting $APP"
systemctl start huntarr
msg_ok "Started $APP"
msg_ok "Updated $APP to v${RELEASE}"
exit
}

View File

@@ -61,53 +61,49 @@ function update_script() {
done
msg_ok "Image-processing libraries up to date"
fi
RELEASE="1.139.4"
#RELEASE=$(curl -fsSL https://api.github.com/repos/immich-app/immich/releases?per_page=1 | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ -f ~/.immich && "$RELEASE" == "$(cat ~/.immich)" ]]; then
msg_ok "No update required. ${APP} is already at v${RELEASE}"
exit
fi
msg_info "Stopping ${APP} services"
systemctl stop immich-web
systemctl stop immich-ml
msg_ok "Stopped ${APP}"
INSTALL_DIR="/opt/${APP}"
UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
SRC_DIR="${INSTALL_DIR}/source"
APP_DIR="${INSTALL_DIR}/app"
ML_DIR="${APP_DIR}/machine-learning"
GEO_DIR="${INSTALL_DIR}/geodata"
VCHORD_RELEASE="0.4.3"
# VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
RELEASE="1.140.1"
if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
msg_info "Stopping Services"
systemctl stop immich-web
systemctl stop immich-ml
msg_ok "Stopped ${APP}"
INSTALL_DIR="/opt/${APP}"
UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
SRC_DIR="${INSTALL_DIR}/source"
APP_DIR="${INSTALL_DIR}/app"
ML_DIR="${APP_DIR}/machine-learning"
GEO_DIR="${INSTALL_DIR}/geodata"
VCHORD_RELEASE="0.4.3"
# VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
if [[ ! -f ~/.vchord_version ]] || [[ "$VCHORD_RELEASE" != "$(cat ~/.vchord_version)" ]]; then
msg_info "Updating VectorChord"
if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
$STD sudo -u postgres pg_dumpall --clean --if-exists --username=postgres | gzip >/etc/postgresql/immich-db-vchord0.3.0.sql.gz
chown postgres /etc/postgresql/immich-db-vchord0.3.0.sql.gz
$STD sudo -u postgres gunzip --stdout /etc/postgresql/immich-db-vchord0.3.0.sql.gz |
sed -e "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
-e "/vchordrq.prewarm_dim/d" |
sudo -u postgres psql
if [[ ! -f ~/.vchord_version ]] || [[ "$VCHORD_RELEASE" != "$(cat ~/.vchord_version)" ]]; then
msg_info "Updating VectorChord"
if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
$STD sudo -u postgres pg_dumpall --clean --if-exists --username=postgres | gzip >/etc/postgresql/immich-db-vchord0.3.0.sql.gz
chown postgres /etc/postgresql/immich-db-vchord0.3.0.sql.gz
$STD sudo -u postgres gunzip --stdout /etc/postgresql/immich-db-vchord0.3.0.sql.gz |
sed -e "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
-e "/vchordrq.prewarm_dim/d" |
sudo -u postgres psql
fi
curl -fsSL "https://github.com/tensorchord/vectorchord/releases/download/${VCHORD_RELEASE}/postgresql-16-vchord_${VCHORD_RELEASE}-1_amd64.deb" -o vchord.deb
$STD apt install -y ./vchord.deb
$STD sudo -u postgres psql -d immich -c "ALTER EXTENSION vchord UPDATE;"
systemctl restart postgresql
if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
$STD sudo -u postgres psql -d immich -c "REINDEX INDEX face_index;"
$STD sudo -u postgres psql -d immich -c "REINDEX INDEX clip_index;"
fi
echo "$VCHORD_RELEASE" >~/.vchord_version
rm ./vchord.deb
msg_ok "Updated VectorChord to v${VCHORD_RELEASE}"
fi
curl -fsSL "https://github.com/tensorchord/vectorchord/releases/download/${VCHORD_RELEASE}/postgresql-16-vchord_${VCHORD_RELEASE}-1_amd64.deb" -o vchord.deb
$STD apt install -y ./vchord.deb
$STD sudo -u postgres psql -d immich -c "ALTER EXTENSION vchord UPDATE;"
systemctl restart postgresql
if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
$STD sudo -u postgres psql -d immich -c "REINDEX INDEX face_index;"
$STD sudo -u postgres psql -d immich -c "REINDEX INDEX clip_index;"
fi
echo "$VCHORD_RELEASE" >~/.vchord_version
rm ./vchord.deb
msg_ok "Updated VectorChord to v${VCHORD_RELEASE}"
fi
cp "$ML_DIR"/ml_start.sh "$INSTALL_DIR"
if grep -qs "set -a" "$APP_DIR"/bin/start.sh; then
cp "$APP_DIR"/bin/start.sh "$INSTALL_DIR"
else
cat <<EOF >"$INSTALL_DIR"/start.sh
cp "$ML_DIR"/ml_start.sh "$INSTALL_DIR"
if grep -qs "set -a" "$APP_DIR"/bin/start.sh; then
cp "$APP_DIR"/bin/start.sh "$INSTALL_DIR"
else
cat <<EOF >"$INSTALL_DIR"/start.sh
#!/usr/bin/env bash
set -a
@@ -116,92 +112,93 @@ set +a
/usr/bin/node ${APP_DIR}/dist/main.js "\$@"
EOF
chmod +x "$INSTALL_DIR"/start.sh
chmod +x "$INSTALL_DIR"/start.sh
fi
(
shopt -s dotglob
rm -rf "${APP_DIR:?}"/*
)
rm -rf "$SRC_DIR"
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v${RELEASE}" "$SRC_DIR"
msg_info "Updating ${APP} web and microservices"
cd "$SRC_DIR"/server
if [[ "$RELEASE" == "1.135.1" ]]; then
rm ./src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts
fi
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
export CI=1
corepack enable
# server build
export SHARP_IGNORE_GLOBAL_LIBVIPS=true
$STD pnpm --filter immich --frozen-lockfile build
unset SHARP_IGNORE_GLOBAL_LIBVIPS
export SHARP_FORCE_GLOBAL_LIBVIPS=true
$STD pnpm --filter immich --frozen-lockfile --prod --no-optional deploy "$APP_DIR"
cp "$APP_DIR"/package.json "$APP_DIR"/bin
sed -i 's|^start|./start|' "$APP_DIR"/bin/immich-admin
# openapi & web build
cd "$SRC_DIR"
$STD pnpm --filter @immich/sdk --filter immich-web --frozen-lockfile --force install
$STD pnpm --filter @immich/sdk --filter immich-web build
cp -a web/build "$APP_DIR"/www
cp LICENSE "$APP_DIR"
# cli build
$STD pnpm --filter @immich/sdk --filter @immich/cli --frozen-lockfile install
$STD pnpm --filter @immich/sdk --filter @immich/cli build
$STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli
cd "$APP_DIR"
mv "$INSTALL_DIR"/start.sh "$APP_DIR"/bin
msg_ok "Updated ${APP} web and microservices"
cd "$SRC_DIR"/machine-learning
mkdir -p "$ML_DIR"
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
$STD /usr/local/bin/uv venv "$VIRTUAL_ENV"
if [[ -f ~/.openvino ]]; then
msg_info "Updating HW-accelerated machine-learning"
/usr/local/bin/uv -q sync --extra openvino --no-cache --active
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so"
msg_ok "Updated HW-accelerated machine-learning"
else
msg_info "Updating machine-learning"
/usr/local/bin/uv -q sync --extra cpu --no-cache --active
msg_ok "Updated machine-learning"
fi
cd "$SRC_DIR"
cp -a machine-learning/{ann,immich_ml} "$ML_DIR"
mv "$INSTALL_DIR"/ml_start.sh "$ML_DIR"
if [[ -f ~/.openvino ]]; then
sed -i "/intra_op/s/int = 0/int = os.cpu_count() or 0/" "$ML_DIR"/immich_ml/config.py
fi
ln -sf "$APP_DIR"/resources "$INSTALL_DIR"
cd "$APP_DIR"
grep -rl /usr/src | xargs -n1 sed -i "s|\/usr/src|$INSTALL_DIR|g"
grep -rlE "'/build'" | xargs -n1 sed -i "s|'/build'|'$APP_DIR'|g"
sed -i "s@\"/cache\"@\"$INSTALL_DIR/cache\"@g" "$ML_DIR"/immich_ml/config.py
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$APP_DIR"/upload
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$ML_DIR"/upload
ln -s "$GEO_DIR" "$APP_DIR"
chown -R immich:immich "$INSTALL_DIR"
if [[ ! -f ~/.debian_version.bak ]]; then
cp /etc/debian_version ~/.debian_version.bak
sed -i 's/.*/13.0/' /etc/debian_version
fi
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
systemctl restart immich-ml immich-web
fi
(
shopt -s dotglob
rm -rf "${APP_DIR:?}"/*
)
rm -rf "$SRC_DIR"
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v${RELEASE}" "$SRC_DIR"
msg_info "Updating ${APP} web and microservices"
cd "$SRC_DIR"/server
if [[ "$RELEASE" == "1.135.1" ]]; then
rm ./src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts
fi
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
export CI=1
corepack enable
# server build
export SHARP_IGNORE_GLOBAL_LIBVIPS=true
$STD pnpm --filter immich --frozen-lockfile build
unset SHARP_IGNORE_GLOBAL_LIBVIPS
export SHARP_FORCE_GLOBAL_LIBVIPS=true
$STD pnpm --filter immich --frozen-lockfile --prod --no-optional deploy "$APP_DIR"
cp "$APP_DIR"/package.json "$APP_DIR"/bin
sed -i 's|^start|./start|' "$APP_DIR"/bin/immich-admin
# openapi & web build
cd "$SRC_DIR"
$STD pnpm --filter @immich/sdk --filter immich-web --frozen-lockfile --force install
$STD pnpm --filter @immich/sdk --filter immich-web build
cp -a web/build "$APP_DIR"/www
cp LICENSE "$APP_DIR"
# cli build
$STD pnpm --filter @immich/sdk --filter @immich/cli --frozen-lockfile install
$STD pnpm --filter @immich/sdk --filter @immich/cli build
$STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli
cd "$APP_DIR"
mv "$INSTALL_DIR"/start.sh "$APP_DIR"/bin
msg_ok "Updated ${APP} web and microservices"
cd "$SRC_DIR"/machine-learning
mkdir -p "$ML_DIR"
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
$STD /usr/local/bin/uv venv "$VIRTUAL_ENV"
if [[ -f ~/.openvino ]]; then
msg_info "Updating HW-accelerated machine-learning"
/usr/local/bin/uv -q sync --extra openvino --no-cache --active
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so"
msg_ok "Updated HW-accelerated machine-learning"
else
msg_info "Updating machine-learning"
/usr/local/bin/uv -q sync --extra cpu --no-cache --active
msg_ok "Updated machine-learning"
fi
cd "$SRC_DIR"
cp -a machine-learning/{ann,immich_ml} "$ML_DIR"
mv "$INSTALL_DIR"/ml_start.sh "$ML_DIR"
if [[ -f ~/.openvino ]]; then
sed -i "/intra_op/s/int = 0/int = os.cpu_count() or 0/" "$ML_DIR"/immich_ml/config.py
fi
ln -sf "$APP_DIR"/resources "$INSTALL_DIR"
cd "$APP_DIR"
grep -rl /usr/src | xargs -n1 sed -i "s|\/usr/src|$INSTALL_DIR|g"
grep -rlE "'/build'" | xargs -n1 sed -i "s|'/build'|'$APP_DIR'|g"
sed -i "s@\"/cache\"@\"$INSTALL_DIR/cache\"@g" "$ML_DIR"/immich_ml/config.py
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$APP_DIR"/upload
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$ML_DIR"/upload
ln -s "$GEO_DIR" "$APP_DIR"
chown -R immich:immich "$INSTALL_DIR"
if [[ ! -f ~/.debian_version.bak ]]; then
cp /etc/debian_version ~/.debian_version.bak
sed -i 's/.*/13.0/' /etc/debian_version
fi
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
systemctl restart immich-ml immich-web
exit
}
@@ -209,7 +206,8 @@ function compile_libjxl() {
SOURCE=${SOURCE_DIR}/libjxl
JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
: "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
# : "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
: "${LIBJXL_REVISION:=794a5dcf0d54f9f0b20d288a12e87afb91d20dfc}"
if [[ "${update:-}" ]] || [[ "$LIBJXL_REVISION" != "$(grep 'libjxl' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
msg_info "Recompiling libjxl"
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
@@ -256,7 +254,8 @@ function compile_libheif() {
$STD apt-get install -y libaom-dev
local update="required"
fi
: "${LIBHEIF_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libheif.json)}"
# : "${LIBHEIF_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libheif.json)}"
: "${LIBHEIF_REVISION:=35dad50a9145332a7bfdf1ff6aef6801fb613d68}"
if [[ "${update:-}" ]] || [[ "$LIBHEIF_REVISION" != "$(grep 'libheif' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
msg_info "Recompiling libheif"
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
@@ -288,7 +287,8 @@ function compile_libheif() {
function compile_libraw() {
SOURCE=${SOURCE_DIR}/libraw
local update
: "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
# : "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
: "${LIBRAW_REVISION:=09bea31181b43e97959ee5452d91e5bc66365f1f}"
if [[ "${update:-}" ]] || [[ "$LIBRAW_REVISION" != "$(grep 'libraw' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
msg_info "Recompiling libraw"
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
@@ -309,7 +309,8 @@ function compile_libraw() {
function compile_imagemagick() {
SOURCE=$SOURCE_DIR/imagemagick
: "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/imagemagick.json)}"
# : "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/imagemagick.json)}"
: "${IMAGEMAGICK_REVISION:=8289a3388a085ad5ae81aa6812f21554bdfd54f2}"
if [[ "${update:-}" ]] || [[ "$IMAGEMAGICK_REVISION" != "$(grep 'imagemagick' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
msg_info "Recompiling ImageMagick"
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
@@ -329,7 +330,8 @@ function compile_imagemagick() {
function compile_libvips() {
SOURCE=$SOURCE_DIR/libvips
: "${LIBVIPS_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libvips.json)}"
# : "${LIBVIPS_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libvips.json)}"
: "${LIBVIPS_REVISION:=8fa37a64547e392d3808eed8d72adab7e02b3d00}"
if [[ "${update:-}" ]] || [[ "$LIBVIPS_REVISION" != "$(grep 'libvips' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
msg_info "Recompiling libvips"
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi

View File

@@ -27,9 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/inspircd/inspircd/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.inspircd 2>/dev/null)" ]] || [[ ! -f ~/.inspircd ]]; then
if check_for_gh_release "inspircd" "inspircd/inspircd"; then
msg_info "Stopping Service"
systemctl stop inspircd
msg_ok "Stopped Service"
@@ -39,10 +37,7 @@ function update_script() {
msg_info "Starting Service"
systemctl start inspircd
msg_ok "Started Service"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}."
fi
exit
}

View File

@@ -34,13 +34,18 @@ function update_script() {
DisableRootWarning=true
EOF
fi
if check_for_gh_release "Jackett" "Jackett/Jackett"; then
msg_info "Stopping Service"
systemctl stop jackett
msg_ok "Stopped Service"
RELEASE=$(curl -s https://api.github.com/repos/Jackett/Jackett/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.jackett 2>/dev/null)" ]] || [[ ! -f ~/.jackett ]]; then
rm -rf /opt/Jackett
fetch_and_deploy_gh_release "jackett" "Jackett/Jackett" "prebuild" "latest" "/opt/Jackett" "Jackett.Binaries.LinuxAMDx64.tar.gz"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
msg_info "Starting Service"
systemctl start jackett
msg_ok "Started Service"
msg_ok "Updated Successfully"
fi
exit
}

View File

@@ -28,10 +28,10 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/Casvt/Kapowarr/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(cat $HOME/.kapowarr)" ]] || [[ ! -f $HOME/.kapowarr ]]; then
setup_uv
setup_uv
if check_for_gh_release "kapowarr" "Casvt/Kapowarr"; then
msg_info "Stopping $APP"
systemctl stop kapowarr
msg_ok "Stopped $APP"
@@ -41,17 +41,15 @@ function update_script() {
msg_ok "Backup Created"
fetch_and_deploy_gh_release "kapowarr" "Casvt/Kapowarr"
msg_info "Updating $APP to ${RELEASE}"
msg_info "Updating $APP"
mv /opt/db /opt/kapowarr
msg_ok "Updated $APP to ${RELEASE}"
msg_ok "Updated $APP"
msg_info "Starting $APP"
systemctl start kapowarr
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -28,73 +28,71 @@ function update_script() {
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/karakeep-app/karakeep/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ -f ~/.karakeep && "$RELEASE" == "$(cat ~/.karakeep)" ]]; then
msg_ok "No update required. ${APP} is already at ${RELEASE}"
exit
if check_for_gh_release "karakeep" "karakeep-app/karakeep"; then
msg_info "Stopping Services"
systemctl stop karakeep-web karakeep-workers karakeep-browser
msg_ok "Stopped Services"
msg_info "Updating yt-dlp"
$STD yt-dlp --update-to nightly
msg_ok "Updated yt-dlp"
msg_info "Prepare update"
if [[ -f /opt/${APP}_version.txt && "$(cat /opt/${APP}_version.txt)" < "0.23.0" ]]; then
$STD apt-get install -y graphicsmagick ghostscript
fi
if [[ -f /opt/karakeep/.env ]] && [[ ! -f /etc/karakeep/karakeep.env ]]; then
mkdir -p /etc/karakeep
mv /opt/karakeep/.env /etc/karakeep/karakeep.env
fi
rm -rf /opt/karakeep
msg_ok "Update prepared"
if grep -q "start:prod" /etc/systemd/system/karakeep-workers.service; then
sed -i 's|^ExecStart=.*$|ExecStart=/usr/bin/node dist/index.mjs|' /etc/systemd/system/karakeep-workers.service
systemctl daemon-reload
fi
fetch_and_deploy_gh_release "karakeep" "karakeep-app/karakeep"
if command -v corepack >/dev/null; then
$STD corepack disable
fi
MODULE_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/karakeep/package.json)"
NODE_VERSION="22" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs
msg_info "Updating ${APP}"
corepack enable
export PUPPETEER_SKIP_DOWNLOAD="true"
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true"
export NEXT_TELEMETRY_DISABLED=1
export CI="true"
cd /opt/karakeep/apps/web
$STD pnpm install --frozen-lockfile
$STD pnpm build
cd /opt/karakeep/apps/workers
$STD pnpm install --frozen-lockfile
$STD pnpm build
cd /opt/karakeep/apps/cli
$STD pnpm install --frozen-lockfile
$STD pnpm build
DATA_DIR="$(sed -n '/^DATA_DIR/p' /etc/karakeep/karakeep.env | awk -F= '{print $2}' | tr -d '="=')"
export DATA_DIR="${DATA_DIR:-/opt/karakeep_data}"
cd /opt/karakeep/packages/db
$STD pnpm migrate
$STD pnpm store prune
sed -i "s/^SERVER_VERSION=.*$/SERVER_VERSION=${CHECK_UPDATE_RELEASE}/" /etc/karakeep/karakeep.env
msg_ok "Updated ${APP}"
msg_info "Starting Services"
systemctl start karakeep-browser karakeep-workers karakeep-web
msg_ok "Started Services"
msg_info "Cleaning up"
$STD apt-get autoremove -y
$STD apt-get autoclean -y
msg_ok "Cleaned"
msg_ok "Updated Successfully"
fi
msg_info "Stopping Services"
systemctl stop karakeep-web karakeep-workers karakeep-browser
msg_ok "Stopped Services"
msg_info "Updating yt-dlp"
$STD yt-dlp --update-to nightly
msg_ok "Updated yt-dlp"
msg_info "Prepare update"
if [[ -f /opt/${APP}_version.txt && "$(cat /opt/${APP}_version.txt)" < "0.23.0" ]]; then
$STD apt-get install -y graphicsmagick ghostscript
fi
if [[ -f /opt/karakeep/.env ]] && [[ ! -f /etc/karakeep/karakeep.env ]]; then
mkdir -p /etc/karakeep
mv /opt/karakeep/.env /etc/karakeep/karakeep.env
fi
rm -rf /opt/karakeep
msg_ok "Update prepared"
if grep -q "start:prod" /etc/systemd/system/karakeep-workers.service; then
sed -i 's|^ExecStart=.*$|ExecStart=/usr/bin/node dist/index.mjs|' /etc/systemd/system/karakeep-workers.service
systemctl daemon-reload
fi
fetch_and_deploy_gh_release "karakeep" "karakeep-app/karakeep"
if command -v corepack >/dev/null; then
$STD corepack disable
fi
MODULE_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/karakeep/package.json)"
NODE_VERSION="22" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs
msg_info "Updating ${APP} to v${RELEASE}"
corepack enable
export PUPPETEER_SKIP_DOWNLOAD="true"
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true"
export NEXT_TELEMETRY_DISABLED=1
export CI="true"
cd /opt/karakeep/apps/web
$STD pnpm install --frozen-lockfile
$STD pnpm build
cd /opt/karakeep/apps/workers
$STD pnpm install --frozen-lockfile
$STD pnpm build
cd /opt/karakeep/apps/cli
$STD pnpm install --frozen-lockfile
$STD pnpm build
DATA_DIR="$(sed -n '/^DATA_DIR/p' /etc/karakeep/karakeep.env | awk -F= '{print $2}' | tr -d '="=')"
export DATA_DIR="${DATA_DIR:-/opt/karakeep_data}"
cd /opt/karakeep/packages/db
$STD pnpm migrate
$STD pnpm store prune
sed -i "s/^SERVER_VERSION=.*$/SERVER_VERSION=${RELEASE}/" /etc/karakeep/karakeep.env
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Starting Services"
systemctl start karakeep-browser karakeep-workers karakeep-web
msg_ok "Started Services"
msg_info "Cleaning up"
$STD apt-get autoremove -y
$STD apt-get autoclean -y
msg_ok "Cleaned"
msg_ok "Updated Successfully"
exit
}

View File

@@ -27,12 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/keycloak/keycloak/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.keycloak_app 2>/dev/null)" ]] || [[ ! -f ~/.keycloak_app ]]; then
if check_for_gh_release "keycloak" "keycloak/keycloak"; then
msg_info "Stopping Keycloak"
systemctl stop keycloak
msg_ok "Stopped Keycloak"
@@ -64,13 +59,10 @@ function update_script() {
rm -rf keycloak.old
msg_ok "Cleanup complete"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
build_container
description

View File

@@ -27,8 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/benjaminjonard/koillection/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f ~/.koillection ]] || [[ "${RELEASE}" != "$(cat ~/.koillection)" ]]; then
if check_for_gh_release "koillection" "benjaminjonard/koillection"; then
msg_info "Stopping Service"
systemctl stop apache2
msg_ok "Stopped Service"
@@ -39,7 +38,7 @@ function update_script() {
fetch_and_deploy_gh_release "koillection" "benjaminjonard/koillection"
msg_info "Updating ${APP} to v${RELEASE}"
msg_info "Updating ${APP}"
cd /opt/koillection
cp -r /opt/koillection-backup/.env.local /opt/koillection
cp -r /opt/koillection-backup/public/uploads/. /opt/koillection/public/uploads/
@@ -51,7 +50,7 @@ function update_script() {
$STD yarn install
$STD yarn build
chown -R www-data:www-data /opt/koillection/public/uploads
msg_ok "Updated $APP to v${RELEASE}"
msg_ok "Updated $APP"
msg_info "Starting Service"
systemctl start apache2
@@ -60,10 +59,7 @@ function update_script() {
msg_info "Cleaning up"
rm -r /opt/koillection-backup
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -28,12 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Kometa-Team/Kometa/releases/latest | jq -r '.tag_name | sub("^v";"")')
if [[ "${RELEASE}" != "$(cat ~/.kometa 2>/dev/null)" ]] || [[ ! -f ~/.kometa ]]; then
if check_for_gh_release "kometa" "Kometa-Team/Kometa"; then
msg_info "Stopping Service"
systemctl stop kometa
msg_ok "Stopped Service"
@@ -43,7 +38,6 @@ function update_script() {
msg_ok "Backup completed"
PYTHON_VERSION="3.12" setup_uv
$STD uv python update-shell
fetch_and_deploy_gh_release "kometa" "Kometa-Team/Kometa"
msg_info "Updating Kometa"
@@ -56,8 +50,6 @@ function update_script() {
systemctl start kometa
msg_ok "Started Service"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -27,9 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/gotson/komga/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f ~/.komga-org ]] || [[ "${RELEASE}" != "$(cat ~/.komga-org)" ]]; then
if check_for_gh_release "komga" "gotson/komga"; then
msg_info "Stopping ${APP}"
systemctl stop komga
msg_ok "Stopped ${APP}"
@@ -41,10 +39,7 @@ function update_script() {
msg_info "Starting ${APP}"
systemctl start komga
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}."
fi
exit
}

View File

@@ -27,9 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/ipfs/kubo/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.kubo)" ]] || [[ ! -f ~/.kubo ]]; then
if check_for_gh_release "kubo" "ipfs/kubo"; then
msg_info "Stopping service"
systemctl stop ipfs
msg_ok "Stopped service"
@@ -39,10 +37,7 @@ function update_script() {
msg_info "Starting service"
systemctl start ipfs
msg_ok "Service started"
msg_ok "Updated successfuly"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
msg_ok "Updated successfully"
fi
exit
}

62
ct/leantime.sh Normal file
View File

@@ -0,0 +1,62 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Stroopwafe1
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://leantime.io
APP="Leantime"
var_tags="${var_tags:-productivity}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-20}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/leantime ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "leantime" "Leantime/leantime"; then
msg_info "Creating Backup"
mariadb-dump leantime >"/opt/${APP}_db_backup_$(date +%F).sql"
tar -czf "/opt/${APP}_backup_$(date +%F).tar.gz" "/opt/${APP}"
mv /opt/leantime /opt/leantime_bak
msg_ok "Backup Created"
fetch_and_deploy_gh_release "leantime" "Leantime/leantime" "prebuild" "latest" "/opt/leantime" Leantime*.tar.gz
msg_info "Restoring Config & Permissions"
mv /opt/leantime_bak/config/.env /opt/leantime/config/.env
chown -R www-data:www-data "/opt/leantime"
chmod -R 750 "/opt/leantime"
msg_ok "Restored Config & Permissions"
msg_info "Removing Backup"
rm -rf /opt/leantime_bak
msg_ok "Removed Backup"
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}/install${CL}"

View File

@@ -28,8 +28,7 @@ function update_script() {
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/librespeed/speedtest-rust/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.librespeed 2>/dev/null)" ]] || [[ ! -f ~/.librespeed ]]; then
if check_for_gh_release "librespeed-rust" "librespeed/speedtest-rust"; then
msg_info "Stopping Services"
systemctl stop librespeed_rs
msg_ok "Services Stopped"
@@ -39,8 +38,7 @@ function update_script() {
msg_info "Starting Service"
systemctl start librespeed_rs
msg_ok "Started Service"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
msg_ok "Updated Successfully"
fi
exit
}

View File

@@ -28,25 +28,21 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/LibreTranslate/LibreTranslate/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat $HOME/.libretranslate)" ]] || [[ ! -f $HOME/.libretranslate ]]; then
if check_for_gh_release "libretranslate" "LibreTranslate/LibreTranslate"; then
msg_info "Stopping $APP"
systemctl stop libretranslate
msg_ok "Stopped $APP"
msg_info "Updating $APP to ${RELEASE}"
msg_info "Updating $APP"
cd /opt/libretranslate
source .venv/bin/activate
$STD pip install -U libretranslate
msg_ok "Updated $APP to ${RELEASE}"
msg_ok "Updated $APP"
msg_info "Starting $APP"
systemctl start libretranslate
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -28,14 +28,8 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq &>/dev/null; then
$STD apt-get update
$STD apt-get install -y jq
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Lidarr/Lidarr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.lidarr)" ]] || [[ ! -f ~/.lidarr ]]; then
if check_for_gh_release "lidarr" "Lidarr/Lidarr"; then
msg_info "Stopping service"
systemctl stop lidarr
msg_ok "Service stopped"
@@ -46,10 +40,7 @@ function update_script() {
msg_info "Starting service"
systemctl start lidarr
msg_ok "Service started"
msg_ok "Updated successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -26,8 +26,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(cat /opt/linkwarden_version.txt)" ]] || [[ ! -f /opt/linkwarden_version.txt ]]; then
if check_for_gh_release "linkwarden" "linkwarden/linkwarden"; then
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
msg_info "Stopping ${APP}"
systemctl stop linkwarden
@@ -35,11 +34,15 @@ function update_script() {
RUST_CRATES="monolith" setup_rust
msg_info "Updating ${APP} to ${RELEASE}"
msg_info "Backing up data"
mv /opt/linkwarden/.env /opt/.env
[ -d /opt/linkwarden/data ] && mv /opt/linkwarden/data /opt/data.bak
rm -rf /opt/linkwarden
msg_ok "Backed up data"
fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden"
msg_info "Updating ${APP}"
cd /opt/linkwarden
$STD yarn
$STD npx playwright install-deps
@@ -49,7 +52,7 @@ function update_script() {
$STD yarn web:build
$STD yarn prisma:deploy
[ -d /opt/data.bak ] && mv /opt/data.bak /opt/linkwarden/data
msg_ok "Updated ${APP} to ${RELEASE}"
msg_ok "Updated ${APP}"
msg_info "Starting ${APP}"
systemctl start linkwarden
@@ -61,8 +64,6 @@ function update_script() {
rm -rf /opt/linkwarden/.next/cache
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}."
fi
exit
}

View File

@@ -27,12 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/knadh/listmonk/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.listmonk)" ]] || [[ ! -f ~/.listmonk ]]; then
if check_for_gh_release "listmonk" "knadh/listmonk"; then
msg_info "Stopping ${APP}"
systemctl stop listmonk
msg_ok "Stopped ${APP}"
@@ -56,10 +51,7 @@ function update_script() {
msg_info "Cleaning up"
rm -rf /opt/listmonk-backup/
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -27,12 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/hargata/lubelog/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ ! -f ~/.lubelogger ]] || [[ "${RELEASE}" != "$(cat ~/.lubelogger)" ]]; then
if check_for_gh_release "lubelogger" "hargata/lubelog"; then
msg_info "Stopping Service"
systemctl stop lubelogger
msg_ok "Stopped Service"
@@ -67,10 +62,7 @@ function update_script() {
msg_info "Cleaning up"
rm -rf /tmp/lubeloggerData
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}."
fi
exit
}

View File

@@ -27,14 +27,12 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/hywax/mafl/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.mafl 2>/dev/null)" ]] || [[ ! -f ~/.mafl ]]; then
if check_for_gh_release "mafl" "hywax/mafl"; then
msg_info "Stopping Mafl service"
systemctl stop mafl
msg_ok "Service stopped"
msg_info "Performing backup"
msg_info "Backing up data"
mkdir -p /opt/mafl-backup/data
mv /opt/mafl/data /opt/mafl-backup/data
rm -rf /opt/mafl
@@ -42,15 +40,17 @@ function update_script() {
fetch_and_deploy_gh_release "mafl" "hywax/mafl"
msg_info "Updating Mafl to v${RELEASE}"
msg_info "Updating Mafl"
cd /opt/mafl
yarn install
yarn build
$STD yarn install
$STD yarn build
mv /opt/mafl-backup/data /opt/mafl/data
msg_ok "Mafl updated"
msg_info "Starting Service"
systemctl start mafl
msg_ok "Updated Mafl to v${RELEASE}"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
msg_ok "Service started"
msg_ok "Update successfully"
fi
exit
}

View File

@@ -27,12 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/MagicMirrorOrg/MagicMirror/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ ! -f ~/.magicmirror ]] || [[ "${RELEASE}" != "$(cat ~/.magicmirror)" ]]; then
if check_for_gh_release "magicmirror" "MagicMirrorOrg/MagicMirror"; then
msg_info "Stopping Service"
systemctl stop magicmirror
msg_ok "Stopped Service"
@@ -62,10 +57,7 @@ function update_script() {
msg_info "Starting Service"
systemctl start magicmirror
msg_ok "Started Service"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}."
fi
exit
}

View File

@@ -28,12 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/intri-in/manage-my-damn-life-nextjs/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.mmdl)" ]] || [[ ! -f ~/.mmdl ]]; then
if check_for_gh_release "mmdl" "intri-in/manage-my-damn-life-nextjs"; then
msg_info "Stopping service"
systemctl stop mmdl
msg_ok "Stopped service"
@@ -54,10 +49,7 @@ function update_script() {
msg_info "Starting service"
systemctl start mmdl
msg_ok "Started service"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -28,10 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/mealie-recipes/mealie/releases/latest | jq -r '.tag_name | sub("^v"; "")')
if [[ "${RELEASE}" != "$(cat ~/.mealie 2>/dev/null)" ]] || [[ ! -f ~/.mealie ]]; then
if check_for_gh_release "mealie" "mealie-recipes/mealie"; then
PYTHON_VERSION="3.12" setup_uv
NODE_MODULE="yarn" NODE_VERSION="20" setup_nodejs
@@ -79,10 +76,7 @@ function update_script() {
msg_info "Starting $APP"
systemctl start mealie
msg_ok "Started $APP"
msg_ok "Update to $RELEASE Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
msg_ok "Update Successful"
fi
exit
}

View File

@@ -30,8 +30,7 @@ function update_script() {
setup_uv
RELEASE=$(curl -fsSL https://api.github.com/repos/maxdorninger/MediaManager/releases/latest | jq '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.mediamanager 2>/dev/null)" ]] || [[ ! -f ~/.mediamanager ]]; then
if check_for_gh_release "mediamanager" "maxdorninger/MediaManager"; then
msg_info "Stopping Service"
systemctl stop mediamanager
msg_ok "Stopped Service"
@@ -61,10 +60,7 @@ function update_script() {
msg_info "Starting Service"
systemctl start mediamanager
msg_ok "Started Service"
msg_ok "Updated Successfully"
else
msg_ok "Already up to date"
fi
exit
}

View File

@@ -24,15 +24,11 @@ function update_script() {
check_container_storage
check_container_resources
if [[ ! -d /opt/mediamtx/ ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/bluenviron/mediamtx/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.mediamtx)" ]] || [[ ! -f ~/.mediamtx ]]; then
if check_for_gh_release "mediamtx" "bluenviron/mediamtx"; then
msg_info "Stopping service"
systemctl stop mediamtx
msg_ok "Service stopped"
@@ -42,10 +38,7 @@ function update_script() {
msg_info "Starting service"
systemctl start mediamtx
msg_ok "Service started"
msg_ok "Updated successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -30,15 +30,18 @@ function update_script() {
3>&1 1>&2 2>&3)
if [ "$UPD" == "1" ]; then
msg_info "Stopping Meilisearch"
systemctl stop meilisearch
msg_ok "Stopped Meilisearch"
if check_for_gh_release "meilisearch" "meilisearch/meilisearch"; then
msg_info "Stopping Meilisearch"
systemctl stop meilisearch
msg_ok "Stopped Meilisearch"
fetch_and_deploy_gh_release "meilisearch" "meilisearch/meilisearch" "binary"
fetch_and_deploy_gh_release "meilisearch" "meilisearch/meilisearch" "binary"
msg_info "Starting Meilisearch"
systemctl start meilisearch
msg_ok "Started Meilisearch"
msg_info "Starting Meilisearch"
systemctl start meilisearch
msg_ok "Started Meilisearch"
msg_ok "Update Successfully"
fi
exit
fi
@@ -47,24 +50,27 @@ function update_script() {
msg_error "No Meilisearch-UI Installation Found!"
exit
fi
msg_info "Stopping Meilisearch-UI"
systemctl stop meilisearch-ui
msg_ok "Stopped Meilisearch-UI"
if check_for_gh_release "meilisearch-ui" "riccox/meilisearch-ui"; then
msg_info "Stopping Meilisearch-UI"
systemctl stop meilisearch-ui
msg_ok "Stopped Meilisearch-UI"
cp /opt/meilisearch-ui/.env.local /tmp/.env.local.bak
rm -rf /opt/meilisearch-ui
fetch_and_deploy_gh_release "meilisearch-ui" "riccox/meilisearch-ui" "tarball"
cp /opt/meilisearch-ui/.env.local /tmp/.env.local.bak
rm -rf /opt/meilisearch-ui
fetch_and_deploy_gh_release "meilisearch-ui" "riccox/meilisearch-ui" "tarball"
msg_info "Configuring Meilisearch-UI"
cd /opt/meilisearch-ui
sed -i 's|const hash = execSync("git rev-parse HEAD").toString().trim();|const hash = "unknown";|' /opt/meilisearch-ui/vite.config.ts
mv /tmp/.env.local.bak /opt/meilisearch-ui/.env.local
$STD pnpm install
msg_ok "Configured Meilisearch-UI"
msg_info "Configuring Meilisearch-UI"
cd /opt/meilisearch-ui
sed -i 's|const hash = execSync("git rev-parse HEAD").toString().trim();|const hash = "unknown";|' /opt/meilisearch-ui/vite.config.ts
mv /tmp/.env.local.bak /opt/meilisearch-ui/.env.local
$STD pnpm install
msg_ok "Configured Meilisearch-UI"
msg_info "Starting Meilisearch-UI"
systemctl start meilisearch-ui
msg_ok "Started Meilisearch-UI"
msg_info "Starting Meilisearch-UI"
systemctl start meilisearch-ui
msg_ok "Started Meilisearch-UI"
msg_ok "Update Successfully"
fi
exit
fi
}

View File

@@ -27,9 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/usememos/memos/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.memos 2>/dev/null)" ]] || [[ ! -f ~/.memos ]]; then
if check_for_gh_release "memos" "usememos/memos"; then
msg_info "Stopping service"
systemctl stop memos
msg_ok "Service stopped"
@@ -39,10 +37,7 @@ function update_script() {
msg_info "Starting service"
systemctl start memos
msg_ok "Service started"
msg_ok "Updated successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -27,9 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/monicahq/monica/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f ~/.monica ]] || [[ "${RELEASE}" != "$(cat ~/.monica)" ]]; then
if check_for_gh_release "monica" "monicahq/monica"; then
msg_info "Stopping Service"
systemctl stop apache2
msg_ok "Stopped Service"
@@ -59,10 +57,7 @@ function update_script() {
msg_info "Cleaning up"
rm -r /opt/monica-backup
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -27,11 +27,10 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://github.com/gnmyt/myspeed/releases/latest | grep "title>Release" | cut -d " " -f 5)
if [[ ! -f ~/.myspeed ]] || [[ "${RELEASE}" != "$(cat ~/.myspeed)" ]]; then
msg_info "Stopping ${APP} Service"
if check_for_gh_release "myspeed" "gnmyt/myspeed"; then
msg_info "Stopping Service"
systemctl stop myspeed
msg_ok "Stopped ${APP} Service"
msg_ok "Stopped Service"
msg_info "Creating backup"
cd /opt
@@ -41,22 +40,19 @@ function update_script() {
fetch_and_deploy_gh_release "myspeed" "gnmyt/myspeed" "prebuild" "latest" "/opt/myspeed" "MySpeed-*.zip"
msg_info "Updating ${APP} to ${RELEASE}"
msg_info "Updating ${APP}"
cd /opt/myspeed
$STD npm install
if [[ -d /opt/myspeed_bak/data ]]; then
mkdir -p /opt/myspeed/data/
cp -r /opt/myspeed_bak/data/* /opt/myspeed/data/
fi
msg_ok "Updated ${APP} to ${RELEASE}"
msg_ok "Updated ${APP}"
msg_info "Starting ${APP} Service"
msg_info "Starting Service"
systemctl start myspeed
msg_ok "Started ${APP} Service"
msg_ok "Started Service"
msg_ok "Updated Successfully!\n"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -9,7 +9,7 @@ APP="n8n"
var_tags="${var_tags:-automation}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-6}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"

View File

@@ -20,31 +20,27 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var/lib/navidrome ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/navidrome/navidrome/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.navidrome 2>/dev/null)" ]] || [[ ! -f ~/.navidrome ]]; then
msg_info "Stopping Services"
systemctl stop navidrome
msg_ok "Services Stopped"
fetch_and_deploy_gh_release "navidrome" "navidrome/navidrome" "binary"
msg_info "Starting Services"
systemctl start navidrome
msg_ok "Started Services"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
header_info
check_container_storage
check_container_resources
if [[ ! -d /var/lib/navidrome ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "navidrome" "navidrome/navidrome"; then
msg_info "Stopping Services"
systemctl stop navidrome
msg_ok "Services Stopped"
fetch_and_deploy_gh_release "navidrome" "navidrome/navidrome" "binary"
msg_info "Starting Services"
systemctl start navidrome
msg_ok "Started Services"
msg_ok "Updated Successfully"
fi
exit
}
start

View File

@@ -20,16 +20,14 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/nocodb.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/nocodb/nocodb/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f ~/.nocodb ]] || [[ "${RELEASE}" != "$(cat ~/.nocodb)" ]]; then
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/nocodb.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "nocodb" "nocodb/nocodb"; then
msg_info "Stopping Service"
systemctl stop nocodb
msg_ok "Stopped Service"
@@ -39,10 +37,7 @@ function update_script() {
msg_info "Starting Service"
systemctl start nocodb
msg_ok "Started Service"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -30,26 +30,21 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/NodeBB/NodeBB/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.nodebb)" ]] || [[ ! -f ~/.nodebb ]]; then
if check_for_gh_release "nodebb" "NodeBB/NodeBB"; then
msg_info "Stopping ${APP}"
systemctl stop nodebb
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP} to v${RELEASE}"
msg_info "Updating ${APP}"
cd /opt/nodebb
$STD ./nodebb upgrade
echo "${RELEASE}" > ~/.nodebb
msg_ok "Updated ${APP} to v${RELEASE}"
echo "${CHECK_UPDATE_RELEASE}" >~/.nodebb
msg_ok "Updated ${APP}"
msg_info "Starting ${APP}"
systemctl start nodebb
msg_ok "Started ${APP}"
msg_ok "Updated Successfully\n"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}."
fi
exit
}

View File

@@ -28,22 +28,17 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/oauth2-proxy/oauth2-proxy/releases/latest | jq -r .tag_name | sed 's/^v//')
if [[ ! -f ~/.oauth2-proxy ]] || [[ "${RELEASE}" != "$(cat ~/.oauth2-proxy)" ]]; then
msg_info "Stopping ${APP} services"
if check_for_gh_release "oauth2-proxy" "oauth2-proxy/oauth2-proxy"; then
msg_info "Stopping Service"
systemctl stop oauth2-proxy
msg_ok "Stopped ${APP} service"
msg_ok "Stopped Service"
fetch_and_deploy_gh_release "oauth2-proxy" "oauth2-proxy/oauth2-proxy" "prebuild" "latest" "/opt/oauth2-proxy" "oauth2-proxy*linux-amd64.tar.gz"
msg_info "Starting ${APP} service"
msg_info "Starting Service"
systemctl start oauth2-proxy
msg_ok "Started ${APP} service"
msg_ok "Started Service"
msg_ok "Updated successfully!\n"
else
msg_ok "${APP} is already up to date (${RELEASE})"
fi
}

View File

@@ -27,12 +27,10 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Ombi-app/Ombi/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.ombi)" ]] || [[ ! -f ~/.ombi ]]; then
msg_info "Stopping ${APP} service"
if check_for_gh_release "ombi" "Ombi-app/Ombi"; then
msg_info "Stopping Service"
systemctl stop ombi
msg_ok "Stopped ${APP} service"
msg_ok "Stopped Service"
msg_info "Creating backup"
[[ -f /opt/ombi/Ombi.db ]] && mv /opt/ombi/Ombi.db /opt
@@ -46,13 +44,10 @@ function update_script() {
[[ -f /opt/OmbiExternal.db ]] && mv /opt/OmbiExternal.db /opt/ombi
[[ -f /opt/OmbiSettings.db ]] && mv /opt/OmbiSettings.db /opt/ombi
msg_info "Starting ${APP} service"
msg_info "Starting Service"
systemctl start ombi
msg_ok "Started ${APP} service"
msg_ok "Started Service"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} ia already at ${RELEASE}."
fi
exit
}

View File

@@ -27,9 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/thomiceli/opengist/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f ~/.opengist ]] || [[ "${RELEASE}" != "$(cat ~/.opengist)" ]]; then
if check_for_gh_release "opengist" "thomiceli/opengist"; then
msg_info "Stopping Service"
systemctl stop opengist
msg_ok "Stopped Service"
@@ -40,17 +38,14 @@ function update_script() {
fetch_and_deploy_gh_release "opengist" "thomiceli/opengist" "prebuild" "latest" "/opt/opengist" "opengist*linux-amd64.tar.gz"
msg_info "Configuring ${APP}"
msg_info "Restoring Configuration"
mv /opt/opengist-backup/config.yml /opt/opengist/config.yml
msg_ok "Configured ${APP}"
msg_ok "Configuration Restored"
msg_info "Starting Service"
systemctl start opengist
msg_ok "Started Service"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}."
fi
exit
}

View File

@@ -20,32 +20,28 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/ots ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Luzifer/ots/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(cat ~/.ots 2>/dev/null)" ]] || [[ ! -f ~/.ots ]]; then
msg_info "Stopping ${APP} Service"
systemctl stop ots
systemctl stop nginx
msg_ok "Stopped ${APP} Service"
fetch_and_deploy_gh_release "ots" "Luzifer/ots" "prebuild" "latest" "/opt/ots" "ots_linux_amd64.tgz"
msg_info "Stopping ${APP} Service"
systemctl start ots
systemctl start nginx
msg_ok "Stopped ${APP} Service"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/ots ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "ots" "Luzifer/ots"; then
msg_info "Stopping Services"
systemctl stop ots
systemctl stop nginx
msg_ok "Stopped Services"
fetch_and_deploy_gh_release "ots" "Luzifer/ots" "prebuild" "latest" "/opt/ots" "ots_linux_amd64.tgz"
msg_info "Starting Services"
systemctl start ots
systemctl start nginx
msg_ok "Started Services"
msg_ok "Updated Successfully"
fi
exit
}
start

View File

@@ -28,8 +28,7 @@ function update_script() {
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/outline/outline/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f ~/.outline ]] || [[ "${RELEASE}" != "$(cat ~/.outline)" ]]; then
if check_for_gh_release "outline" "outline/outline"; then
msg_info "Stopping Services"
systemctl stop outline
msg_ok "Services Stopped"
@@ -40,7 +39,7 @@ function update_script() {
fetch_and_deploy_gh_release "outline" "outline/outline" "tarball"
msg_info "Updating ${APP} to ${RELEASE}"
msg_info "Updating ${APP}"
cd /opt/outline
mv /opt/.env /opt/outline
export NODE_ENV=development
@@ -53,10 +52,7 @@ function update_script() {
msg_info "Starting Services"
systemctl start outline
msg_ok "Started Services"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -27,10 +27,8 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/sct/overseerr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f ~/.overseerr ]] || [[ "${RELEASE}" != "$(cat ~/.overseerr)" ]]; then
msg_info "Stopping ${APP} service"
if check_for_gh_release "overseerr" "sct/overseerr"; then
msg_info "Stopping Service"
systemctl stop overseerr
msg_ok "Service stopped"
@@ -48,13 +46,10 @@ function update_script() {
mv /opt/config_backup /opt/overseerr/config
msg_ok "Configured ${APP}"
msg_info "Starting ${APP} service"
msg_info "Starting Service"
systemctl start overseerr
msg_ok "Started ${APP} service"
msg_ok "Started Service"
msg_ok "Updated successfully!"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -20,31 +20,26 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/owncast ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/owncast/owncast/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f ~/.owncast ]] || [[ "${RELEASE}" != "$(cat ~/.owncast)" ]]; then
msg_info "Stopping ${APP}"
systemctl stop owncast
msg_ok "Stopped ${APP}"
fetch_and_deploy_gh_release "owncast" "owncast/owncast" "prebuild" "latest" "/opt/owncast" "owncast*linux-64bit.zip"
msg_info "Starting ${APP}"
systemctl start owncast
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}."
fi
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/owncast ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "owncast" "owncast/owncast"; then
msg_info "Stopping Service"
systemctl stop owncast
msg_ok "Stopped Service"
fetch_and_deploy_gh_release "owncast" "owncast/owncast" "prebuild" "latest" "/opt/owncast" "owncast*linux-64bit.zip"
msg_info "Starting Service"
systemctl start owncast
msg_ok "Started Service"
msg_ok "Updated Successfully"
fi
exit
}
start

View File

@@ -20,36 +20,31 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/pairdrop ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/schlagmichdoch/PairDrop/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f ~/.pairdrop ]] || [[ "${RELEASE}" != "$(cat ~/.pairdrop)" ]]; then
msg_info "Stopping ${APP}"
systemctl stop pairdrop
msg_ok "Stopped ${APP}"
fetch_and_deploy_gh_release "pairdrop" "schlagmichdoch/PairDrop" "tarball"
msg_info "Configuring PairDrop"
cd /opt/pairdrop
$STD npm install
msg_ok "Configured PairDrop"
msg_info "Starting ${APP}"
systemctl start pairdrop
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}."
fi
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/pairdrop ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "pairdrop" "schlagmichdoch/PairDrop"; then
msg_info "Stopping Service"
systemctl stop pairdrop
msg_ok "Stopped Service"
fetch_and_deploy_gh_release "pairdrop" "schlagmichdoch/PairDrop" "tarball"
msg_info "Configuring PairDrop"
cd /opt/pairdrop
$STD npm install
msg_ok "Configured PairDrop"
msg_info "Starting Service"
systemctl start pairdrop
msg_ok "Started Service"
msg_ok "Updated Successfully"
fi
exit
}
start

View File

@@ -27,9 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/kyantech/palmr/releases/latest | jq '.tag_name' | sed 's/^"v//;s/"$//')
if [[ "${RELEASE}" != "$(cat ~/.palmr 2>/dev/null)" ]] || [[ ! -f ~/.palmr ]]; then
if check_for_gh_release "palmr" "kyantech/Palmr"; then
msg_info "Stopping Services"
systemctl stop palmr-frontend palmr-backend
msg_ok "Stopped Services"
@@ -56,15 +54,12 @@ function update_script() {
$STD pnpm install
$STD pnpm build
chown -R palmr:palmr /opt/palmr_data /opt/palmr
msg_ok "Updated $APP"
msg_ok "Updated ${APP}"
msg_info "Starting Services"
systemctl start palmr-backend palmr-frontend
msg_ok "Started Services"
msg_ok "Updated Successfully"
else
msg_ok "Already up to date"
fi
exit
}

View File

@@ -27,11 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/paperless-ngx/paperless-ngx/releases/latest | jq -r .tag_name | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.paperless 2>/dev/null)" ]] || [[ ! -f ~/.paperless ]]; then
if check_for_gh_release "paperless" "paperless-ngx/paperless-ngx"; then
msg_info "Stopping all Paperless-ngx Services"
systemctl stop paperless-consumer paperless-webserver paperless-scheduler paperless-task-queue
msg_ok "Stopped all Paperless-ngx Services"
@@ -50,13 +46,13 @@ function update_script() {
fetch_and_deploy_gh_release "jbig2enc" "ie13/jbig2enc" "tarball" "latest" "/opt/jbig2enc"
setup_gs
msg_info "Updating to ${RELEASE}"
msg_info "Updating Paperless-ngx"
cp -r /opt/paperless/backup/* /opt/paperless/
cd /opt/paperless
$STD uv sync --all-extras
cd /opt/paperless/src
$STD uv run -- python manage.py migrate
msg_ok "Updated to ${RELEASE}"
msg_ok "Updated Paperless-ngx"
else
msg_warn "You are about to migrate your Paperless-ngx installation to uv!"
msg_custom "🔒" "It is strongly recommended to take a Proxmox snapshot first:"
@@ -117,7 +113,7 @@ function update_script() {
$STD uv sync --all-extras
cd /opt/paperless/src
$STD uv run -- python manage.py migrate
msg_ok "Paperless-ngx migration and update to ${RELEASE} completed"
msg_ok "Paperless-ngx migration and update completed"
fi
msg_info "Starting all Paperless-ngx Services"
@@ -125,8 +121,6 @@ function update_script() {
sleep 1
msg_ok "Started all Paperless-ngx Services"
msg_ok "Updated Successfully!\n"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
@@ -139,4 +133,3 @@ 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}:8000${CL}"

View File

@@ -36,15 +36,12 @@ function update_script() {
$STD systemctl reload nginx
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/paymenter/paymenter/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f ~/.paymenter ]] || [[ "${RELEASE}" != "$(cat ~/.paymenter)" ]]; then
msg_info "Updating ${APP} to ${RELEASE}"
if check_for_gh_release "paymenter" "paymenter/paymenter"; then
msg_info "Updating ${APP}"
cd /opt/paymenter
$STD php artisan p:upgrade --no-interaction
echo "${RELEASE}" >~/.paymenter
echo "${CHECK_UPDATE_RELEASE}" >~/.paymenter
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}."
fi
exit
}

View File

@@ -27,33 +27,29 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
NODE_VERSION="22" NODE_MODULE="pnpm" setup_nodejs
RELEASE=$(curl -fsSL https://api.github.com/repos/Brandawg93/PeaNUT/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.peanut 2>/dev/null)" ]] || [[ ! -f ~/.peanut ]]; then
NODE_VERSION="22" NODE_MODULE="pnpm" setup_nodejs
if check_for_gh_release "peanut" "Brandawg93/PeaNUT"; then
msg_info "Stopping $APP"
systemctl stop peanut
msg_ok "Stopped $APP"
fetch_and_deploy_gh_release "peanut" "Brandawg93/PeaNUT" "tarball" "latest" "/opt/peanut"
msg_info "Updating $APP to ${RELEASE}"
msg_info "Updating $APP"
cd /opt/peanut
$STD pnpm i
$STD pnpm run build:local
cp -r .next/static .next/standalone/.next/
mkdir -p /opt/peanut/.next/standalone/config
ln -sf /etc/peanut/settings.yml /opt/peanut/.next/standalone/config/settings.yml
msg_ok "Updated $APP to ${RELEASE}"
msg_ok "Updated $APP"
msg_info "Starting $APP"
systemctl start peanut
msg_ok "Started $APP"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
msg_ok "Updated Successfully"
fi
exit
}

View File

@@ -28,9 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Pf2eToolsOrg/Pf2eTools/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.pf2etools 2>/dev/null)" ]] || [[ ! -f ~/.pf2etools ]]; then
if check_for_gh_release "pf2etools" "Pf2eToolsOrg/Pf2eTools"; then
msg_info "Updating System"
$STD apt-get update
$STD apt-get -y upgrade
@@ -46,10 +44,7 @@ function update_script() {
chown -R www-data: "/opt/${APP}"
chmod -R 755 "/opt/${APP}"
msg_ok "Updated ${APP}"
msg_ok "Updated successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -27,9 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/photoprism/photoprism/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(cat ~/.photoprism 2>/dev/null)" ]] || [[ ! -f ~/.photoprism ]]; then
if check_for_gh_release "photoprism" "photoprism/photoprism"; then
msg_info "Stopping PhotoPrism"
systemctl stop photoprism
msg_ok "Stopped PhotoPrism"
@@ -51,11 +49,10 @@ function update_script() {
systemctl start photoprism
msg_ok "Started PhotoPrism"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
build_container
description

View File

@@ -28,8 +28,7 @@ function update_script() {
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/phpipam/phpipam/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f ~/.phpipam ]] || [[ "${RELEASE}" != "$(cat ~/.phpipam 2>/dev/null)" ]]; then
if check_for_gh_release "phpipam" "phpipam/phpipam"; then
msg_info "Stopping Service"
systemctl stop apache2
msg_ok "Stopped Service"
@@ -45,10 +44,7 @@ function update_script() {
msg_info "Cleaning up"
rm -r /opt/phpipam-backup
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -28,8 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/plankanban/planka/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.planka 2>/dev/null)" ]] || [[ ! -f ~/.planka ]]; then
if check_for_gh_release "planka" "plankanban/planka"; then
msg_info "Stopping $APP"
systemctl stop planka
msg_ok "Stopped $APP"
@@ -45,8 +44,11 @@ function update_script() {
msg_ok "Backed up data"
fetch_and_deploy_gh_release "planka" "plankanban/planka" "prebuild" "latest" "/opt/planka" "planka-prebuild.zip"
msg_info "Update Frontend"
cd /opt/planka
$STD npm install
msg_ok "Updated Frontend"
msg_info "Restoring data"
mv /opt/planka-backup/.env /opt/planka/
@@ -59,10 +61,7 @@ function update_script() {
msg_info "Starting $APP"
systemctl start planka
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

Some files were not shown because too many files have changed in this diff Show More