Compare commits

...

260 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
3371529cce Update CHANGELOG.md (#5681)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-04 01:15:58 +01:00
community-scripts-pr-app[bot]
1ac1aadbe3 Update versions.json (#5680)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-04 02:15:07 +02:00
Slaviša Arežina
10127650fa Update evcc.json (#5676) 2025-07-04 00:05:24 +02:00
community-scripts-pr-app[bot]
3533c896a3 Update .app files (#5672)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-07-03 15:54:07 +02:00
community-scripts-pr-app[bot]
ee6f07b31a Update CHANGELOG.md (#5671)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-03 14:49:36 +01:00
CanbiZ
5ac4818030 Refactor: Trilium (#5665)
* Refactor: Trilium

* change name & description of trilium

* finalize

* Change Logo to new selfhst

* Update trilium.sh

---------

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-07-03 15:49:02 +02:00
community-scripts-pr-app[bot]
c293b058c0 Update CHANGELOG.md (#5670)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-03 14:32:42 +01:00
CanbiZ
cadeee4deb Improve asset matching in fetch_and_deploy_gh_release for prebuild and singlefile modes (#5669)
* Improve asset matching in fetch_and_deploy_gh_release for prebuild and singlefile modes

* tar globbing

* Update tools.func
2025-07-03 15:32:12 +02:00
CanbiZ
f401c7cc4c Improve asset matching in fetch_and_deploy_gh_release for prebuild and singlefile modes 2025-07-03 15:16:42 +02:00
community-scripts-pr-app[bot]
a3ea46701c Update versions.json (#5667)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-03 14:07:50 +02:00
community-scripts-pr-app[bot]
009178a3dc Update CHANGELOG.md (#5664)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-03 11:59:04 +01:00
CanbiZ
38e8b70873 Bump Icons to selfhst repo | switch svg to webp (#5659) 2025-07-03 12:58:26 +02:00
community-scripts-pr-app[bot]
31cda26096 Update CHANGELOG.md (#5663)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-03 11:54:09 +01:00
Slaviša Arežina
e16aac7a83 Fix typo (#5662) 2025-07-03 12:53:30 +02:00
Slaviša Arežina
2a52baf57e Update qbittorrent.sh (#5661) 2025-07-03 11:12:15 +02:00
community-scripts-pr-app[bot]
28d3297d66 Update CHANGELOG.md (#5655)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-03 01:18:47 +01:00
community-scripts-pr-app[bot]
4784d76d49 Update versions.json (#5654)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-03 02:18:08 +02:00
community-scripts-pr-app[bot]
8ef7efaf79 Update CHANGELOG.md (#5648)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-02 16:14:20 +01:00
community-scripts-pr-app[bot]
736802af76 Update CHANGELOG.md (#5647)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-02 16:13:47 +01:00
CanbiZ
8fee28b690 Remove: Pingvin-Share (#5635) 2025-07-02 17:12:42 +02:00
community-scripts-pr-app[bot]
c8682d5f81 Update CHANGELOG.md (#5646)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-02 16:12:28 +01:00
CanbiZ
ef571559d6 Remove: Readarr (#5636) 2025-07-02 17:11:59 +02:00
community-scripts-pr-app[bot]
16c48fa41a Update CHANGELOG.md (#5645)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-02 16:11:45 +01:00
Slaviša Arežina
710c1fd58c Update changedetection-install.sh (#5640) 2025-07-02 17:11:17 +02:00
community-scripts-pr-app[bot]
21f7276c4f Update CHANGELOG.md (#5644)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-02 14:52:06 +01:00
CanbiZ
bf05f4be95 Refactor & Bump to Node24: Zigbee2MQTT (#5638) 2025-07-02 15:51:22 +02:00
community-scripts-pr-app[bot]
be01124d1a Update versions.json (#5641)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-02 14:07:47 +02:00
community-scripts-pr-app[bot]
8a91b87f4c Update CHANGELOG.md (#5633)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-02 01:15:44 +01:00
community-scripts-pr-app[bot]
020a4b3597 Update versions.json (#5632)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-02 02:15:06 +02:00
community-scripts-pr-app[bot]
f93c568758 Update CHANGELOG.md (#5630)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-01 22:40:53 +01:00
community-scripts-pr-app[bot]
d9d4444f08 Update CHANGELOG.md (#5629)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-01 22:38:21 +01:00
community-scripts-pr-app[bot]
400a82e2cc Update CHANGELOG.md (#5628)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-01 22:37:47 +01:00
Austin
35a0d14110 Jellyfin GPU passthrough setup instruction (#5625) 2025-07-01 23:36:13 +02:00
community-scripts-pr-app[bot]
a78dd20a2e Update CHANGELOG.md (#5627)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-01 22:35:55 +01:00
community-scripts-pr-app[bot]
4af08a5c45 Update date in json (#5626)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-07-01 22:35:42 +01:00
push-app-to-main[bot]
2959d37b65 'Add new script' (#5614) 2025-07-01 23:35:18 +02:00
community-scripts-pr-app[bot]
3275136db7 Update date in json (#5624)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-07-01 21:02:37 +01:00
community-scripts-pr-app[bot]
c4c974a01d Update CHANGELOG.md (#5623)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-01 21:02:34 +01:00
push-app-to-main[bot]
4fe05d09a2 ITSM-NG (#5615)
* 'Add new script'

* Update itsm-ng-install.sh

* Update itsm-ng-install.sh

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-07-01 22:02:06 +02:00
community-scripts-pr-app[bot]
7b5dd6cd69 Update versions.json (#5613)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-01 14:07:45 +02:00
community-scripts-pr-app[bot]
28c779ef86 Update CHANGELOG.md (#5612)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-01 11:31:43 +01:00
CanbiZ
8c1dac0583 Update tools.func (#5608) 2025-07-01 12:31:06 +02:00
community-scripts-pr-app[bot]
2db514f666 Update CHANGELOG.md (#5610)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-01 08:46:41 +01:00
Slaviša Arežina
0232dbd89d Update openwebui.sh (#5601) 2025-07-01 09:46:07 +02:00
community-scripts-pr-app[bot]
70f43cb904 Update CHANGELOG.md (#5606)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-01 01:17:34 +01:00
community-scripts-pr-app[bot]
05e06d0782 Update versions.json (#5605)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-01 02:17:00 +02:00
community-scripts-pr-app[bot]
89c39783b4 Update CHANGELOG.md (#5602)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-30 21:36:52 +01:00
Mészöly Marcell
3f3278b022 Fixing Cloudflare DDNS - lack of resources (#5600) 2025-06-30 22:36:11 +02:00
community-scripts-pr-app[bot]
bda9f482c1 Update CHANGELOG.md (#5599)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-30 21:09:58 +01:00
community-scripts-pr-app[bot]
7292dbb8c6 Update .app files (#5597)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-30 21:46:06 +02:00
community-scripts-pr-app[bot]
2bdf85db39 Update CHANGELOG.md (#5596)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-30 20:23:55 +01:00
CanbiZ
546bff56fa Alpine Syncthing (#5586)
* Alpine-Syncthing

* Update syncthing.json
2025-06-30 21:18:45 +02:00
community-scripts-pr-app[bot]
1896f2db0f Update CHANGELOG.md (#5594)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-30 19:26:17 +01:00
community-scripts-pr-app[bot]
e47828f0a4 Update date in json (#5593)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-30 19:25:01 +01:00
push-app-to-main[bot]
c511f7d9e5 Kapowarr (#5584) 2025-06-30 20:24:26 +02:00
community-scripts-pr-app[bot]
a106e7e358 Update CHANGELOG.md (#5592)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-30 19:23:49 +01:00
CanbiZ
254f2b894d tools.func: optimize binary build installs with helper (#5588) 2025-06-30 20:23:25 +02:00
Slaviša Arežina
733251a0a2 Update apache-guacamole-install.sh (#5587) 2025-06-30 16:05:17 +02:00
community-scripts-pr-app[bot]
bcfa05db47 Update CHANGELOG.md (#5585)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-30 14:22:34 +01:00
Chris
5313f00edb Immich: make changes to automatically enable QuickSync (#5560)
- In previous versions of the script, transcoding was enabled only if
you chose to enable OpenVINO
- Recently that was decoupled, but a couple of things were overlooked
- Now, even if you elect to not enable OpenVINO, the necessary
permission and group changes will be made to the immich user (or the
root user if choosing a privileged LXC) regardless.
2025-06-30 15:21:36 +02:00
CanbiZ
f83bfd1598 fix jar 2025-06-30 15:12:23 +02:00
community-scripts-pr-app[bot]
fd27524479 Update versions.json (#5583)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-30 14:07:48 +02:00
community-scripts-pr-app[bot]
8155fea034 Update CHANGELOG.md (#5581)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-30 12:26:34 +01:00
Slaviša Arežina
c853054067 Apache Guacamole: Install auth-jdbc component that matches release version (#5563)
* Pull jdbc auth matching release version

* jdbc 9.3

---------

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-06-30 13:26:08 +02:00
CanbiZ
a80ec39740 fix broken ip6 config file 2025-06-30 12:39:29 +02:00
CanbiZ
bb33d00829 Update api.func 2025-06-30 12:33:57 +02:00
CanbiZ
be64a6700d Filebrowser: change exclude "folders" to "folderPaths" (#5576) 2025-06-30 12:12:14 +02:00
community-scripts-pr-app[bot]
247bc549e8 Update CHANGELOG.md (#5577)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-30 11:12:11 +01:00
CanbiZ
b26c5c9354 [core]: add ipv6 configuration support (#5575) 2025-06-30 12:11:44 +02:00
community-scripts-pr-app[bot]
5e5c79ef29 Update CHANGELOG.md (#5572)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-30 01:16:40 +01:00
community-scripts-pr-app[bot]
4db81b8c41 Update versions.json (#5571)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-30 02:16:03 +02:00
community-scripts-pr-app[bot]
0b97f26b13 Update CHANGELOG.md (#5569)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-29 21:02:26 +01:00
Bram Suurd
f2a21617f7 update readme with valid discord link. other one expired (#5567) 2025-06-29 22:01:36 +02:00
community-scripts-pr-app[bot]
ed618b7144 Update CHANGELOG.md (#5568)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-29 21:01:29 +01:00
Meier Lukas
1ec71332bf Add cron-job api-key env variable to homarr script (#5204)
* Add cron-job api-key env variable to homarr script

* Update homarr.sh

---------

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-06-29 22:01:04 +02:00
community-scripts-pr-app[bot]
5696dffd02 Update CHANGELOG.md (#5561)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-29 15:35:04 +01:00
ape364
1e93f131d2 Update script-item.tsx (#5549)
* Update script-item.tsx

add space

* Update script-item.tsx

* Update script-item.tsx

---------

Co-authored-by: Bram Suurd <78373894+BramSuurdje@users.noreply.github.com>
2025-06-29 16:34:24 +02:00
community-scripts-pr-app[bot]
022f88c30a Update versions.json (#5556)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-29 14:07:10 +02:00
community-scripts-pr-app[bot]
b661f3cbcc Update CHANGELOG.md (#5555)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-29 13:02:05 +01:00
community-scripts-pr-app[bot]
9b97e4974a Update CHANGELOG.md (#5554)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-29 13:01:26 +01:00
Slaviša Arežina
e2b36b540f Linkwarden: Add backing up of data folder to the update function (#5548)
* Add backing up of data folder also

* Check for directories before backing  up
2025-06-29 14:00:38 +02:00
community-scripts-pr-app[bot]
983a09c5db Update CHANGELOG.md (#5553)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-29 13:00:30 +01:00
Bram Suurd
f605085021 fix bug in tooltip that would always render 'updateable' (#5552)
* fix bug in tooltip that would always render 'updateable'

* Remove double InstallCommand component from ScriptItems
2025-06-29 14:00:01 +02:00
community-scripts-pr-app[bot]
4a3b15ae0e Update CHANGELOG.md (#5547)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-29 01:17:25 +01:00
community-scripts-pr-app[bot]
0fd5f366b3 Update versions.json (#5546)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-29 02:16:55 +02:00
Michel Roegl-Brunner
dd5b3cd1b9 push-to-gitea.yaml (#5542) 2025-06-28 16:04:20 +02:00
community-scripts-pr-app[bot]
2b55f82aab Update versions.json (#5541)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-28 14:07:13 +02:00
community-scripts-pr-app[bot]
87c6f87faf Update CHANGELOG.md (#5539)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-28 11:22:35 +01:00
community-scripts-pr-app[bot]
caad96f25a Update CHANGELOG.md (#5538)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-28 11:22:25 +01:00
Slaviša Arežina
8e7978713f Ollama: Clean up old Ollama files before running update (#5534)
* Update ollama.sh

* Update openwebui.sh
2025-06-28 12:21:55 +02:00
community-scripts-pr-app[bot]
1e05867b4c Update CHANGELOG.md (#5537)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-28 11:21:49 +01:00
Slaviša Arežina
43dfe6dc33 Update onlyoffice-install.sh (#5535) 2025-06-28 12:21:22 +02:00
community-scripts-pr-app[bot]
179812e55f Update CHANGELOG.md (#5533)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-28 07:23:53 +01:00
pieman3000
d09cf45a3c Update booklore.json (#5528) 2025-06-28 08:23:12 +02:00
CanbiZ
e609868619 uptime-kuma fix 2025-06-28 08:11:40 +02:00
community-scripts-pr-app[bot]
692ac62add Update CHANGELOG.md (#5532)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-28 01:15:22 +01:00
community-scripts-pr-app[bot]
216cc7e5c3 Update versions.json (#5531)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-28 02:14:47 +02:00
community-scripts-pr-app[bot]
bcc113406a Update CHANGELOG.md (#5529)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-27 23:38:36 +01:00
Bram Suurd
0067075ed1 Remove npm legacy errors, created single source of truth for ESlint. updated analytics url. updated script background (#5498)
* Update ScriptAccordion and ScriptItem components for improved styling

* Add README.md for Proxmox VE Helper-Scripts Frontend

* Remove testing dependencies and related test files from the frontend project

* Update analytics URL in siteConfig to point to community-scripts.org

* Refactor ESLint configuration to have one source of truth and run "npm lint" to apply new changes

* Update lint script in package.json to remove npm

* Add 'next' option to ESLint configuration for improved compatibility

* Update package dependencies and versions in package.json and package-lock.json

* Refactor theme provider import and enhance calendar component for dynamic icon rendering

* rename sidebar, alerts and buttons

* rename description and interfaces files

* rename more files

* change folder name

* Refactor tooltip logic to improve updateable condition handling

* Enhance CommandMenu to prevent duplicate scripts across categories

* Remove test step from frontend CI/CD workflow
2025-06-28 00:38:09 +02:00
community-scripts-pr-app[bot]
d60911a063 Update CHANGELOG.md (#5527)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-27 22:12:57 +01:00
community-scripts-pr-app[bot]
abad754f61 Update CHANGELOG.md (#5526)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-27 22:12:02 +01:00
community-scripts-pr-app[bot]
a632d315ab Update date in json (#5525)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-27 22:11:49 +01:00
push-app-to-main[bot]
520bae01d6 BookLore (#5524) 2025-06-27 23:11:24 +02:00
Michel Roegl-Brunner
7057fba151 push-to-gitea.yaml (#5523) 2025-06-27 20:51:09 +02:00
community-scripts-pr-app[bot]
e24ca6472c Update CHANGELOG.md (#5522)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-27 16:41:35 +01:00
Michel Roegl-Brunner
028feb363f Update wireguard.json (#5514) 2025-06-27 17:40:59 +02:00
Michel Roegl-Brunner
491b341fdf push-to-gitea.yaml (#5521) 2025-06-27 17:17:22 +02:00
community-scripts-pr-app[bot]
db77e42a50 Update CHANGELOG.md (#5520)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-27 15:04:47 +01:00
CanbiZ
cf3f790f03 wizarr: remove unneeded tmp file (#5517) 2025-06-27 16:04:11 +02:00
Michel Roegl-Brunner
a0da56997c Workflow to gitea (forgot git add and commit) (#5513)
* New workflow to push to gitea and change links

* Update workflow
2025-06-27 16:03:27 +02:00
community-scripts-pr-app[bot]
c000235d81 Update versions.json (#5518)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-27 14:07:44 +02:00
community-scripts-pr-app[bot]
578d8067dc Update CHANGELOG.md (#5512)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-27 10:18:18 +01:00
Michel Roegl-Brunner
03d2a76ff1 New workflow to push to gitea and change links (#5510) 2025-06-27 11:17:52 +02:00
CanbiZ
650a5f5df5 fix single r to double r 2025-06-27 10:58:20 +02:00
CanbiZ
5130cc6bc9 fix single r to double r 2025-06-27 10:57:58 +02:00
CanbiZ
7ebe0139c2 fix path for package.json 2025-06-27 10:14:41 +02:00
community-scripts-pr-app[bot]
08da826302 Update CHANGELOG.md (#5504)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-27 01:16:16 +01:00
community-scripts-pr-app[bot]
d94c7b846c Update versions.json (#5503)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-27 02:15:30 +02:00
CanbiZ
97a1c64fad remove exit if npm update failed 2025-06-26 23:42:22 +02:00
CanbiZ
4b8e1e9015 fix issue path 2025-06-26 23:40:07 +02:00
CanbiZ
c2b5747718 readd npm latest update 2025-06-26 20:49:17 +02:00
CanbiZ
d31fd08d69 fix nodejs 2025-06-26 19:04:14 +02:00
community-scripts-pr-app[bot]
e6230de022 Update CHANGELOG.md (#5493)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-26 17:28:26 +01:00
community-scripts-pr-app[bot]
db7aaa3158 Update CHANGELOG.md (#5492)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-26 17:26:40 +01:00
community-scripts-pr-app[bot]
af1f22a4d6 Update date in json (#5491)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-26 17:26:23 +01:00
push-app-to-main[bot]
4cc3a87b0e ConvertX (#5484)
* 'Add new script'

* curl

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-06-26 18:25:42 +02:00
community-scripts-pr-app[bot]
db2671ed95 Update CHANGELOG.md (#5490)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-26 17:25:16 +01:00
Slaviša Arežina
0a72c81ea5 Update tools.func (#5488) 2025-06-26 18:24:43 +02:00
community-scripts-pr-app[bot]
dfd612480c Update CHANGELOG.md (#5487)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-26 15:27:44 +01:00
Slaviša Arežina
64397b16c5 [tools] Fix setup_mongodb function (#5486)
* Fix repo component name

* Update
2025-06-26 16:27:15 +02:00
community-scripts-pr-app[bot]
bd49471ebc Update versions.json (#5483)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-26 14:07:47 +02:00
community-scripts-pr-app[bot]
7289c68399 Update CHANGELOG.md (#5478)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-26 01:16:06 +01:00
community-scripts-pr-app[bot]
4a5ddc8410 Update versions.json (#5477)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-26 02:15:17 +02:00
community-scripts-pr-app[bot]
93808fbd75 Update CHANGELOG.md (#5471)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-25 19:42:32 +01:00
community-scripts-pr-app[bot]
24394a0947 Update CHANGELOG.md (#5470)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-25 19:40:52 +01:00
CanbiZ
4676eb616c Website: mark VM's and "OS"-LXC's as updatable (#5453) 2025-06-25 20:40:33 +02:00
community-scripts-pr-app[bot]
e9ae558c25 Update CHANGELOG.md (#5469)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-25 19:39:54 +01:00
community-scripts-pr-app[bot]
afee37794b Update CHANGELOG.md (#5468)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-25 19:39:39 +01:00
Bram Suurd
72e7bda418 Enhance InstallCommand component to support Gitea as an alternative source for installation scripts. Added informational alert for Gitea usage and refactored command generation logic to accommodate the new option. (#5464) 2025-06-25 20:39:26 +02:00
Bram Suurd
69e14c8fca Update Tooltips component to conditionally display updateable status based on item type (#5461) 2025-06-25 20:39:02 +02:00
community-scripts-pr-app[bot]
6394c0cf17 Update CHANGELOG.md (#5467)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-25 19:35:45 +01:00
Bram Suurd
d1deffb235 Refactor CommandMenu to prevent duplicate scripts across categories (#5463) 2025-06-25 20:35:17 +02:00
community-scripts-pr-app[bot]
ac885f8adb Update CHANGELOG.md (#5466)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-25 17:04:25 +01:00
CanbiZ
8d91a5df5f Fix Apt-Cacher Issue with CAT 2025-06-25 18:03:54 +02:00
Slaviša Arežina
5ad9323944 Docmost: Increase resources (#5458)
* Update docmost.sh

* Update docmost.json
2025-06-25 14:25:17 +02:00
community-scripts-pr-app[bot]
559bf61c31 Update versions.json (#5459)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-25 14:07:52 +02:00
community-scripts-pr-app[bot]
3a391c34fc Update CHANGELOG.md (#5457)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-25 11:39:00 +01:00
community-scripts-pr-app[bot]
332a96ea03 Update CHANGELOG.md (#5456)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-25 11:38:10 +01:00
CanbiZ
454c574d38 tools.func: new helper for imagemagick (#5452) 2025-06-25 12:37:15 +02:00
community-scripts-pr-app[bot]
2512c828e7 Update CHANGELOG.md (#5455)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-25 11:37:04 +01:00
CanbiZ
a99ecb60ef refactor tailscale script & remove debian 12 note (#5454) 2025-06-25 12:36:15 +02:00
community-scripts-pr-app[bot]
24f22dfecc Update CHANGELOG.md (#5451)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-25 10:01:49 +01:00
CanbiZ
8521e2389b YunoHost: add Update-Funtion (#5450) 2025-06-25 11:01:11 +02:00
community-scripts-pr-app[bot]
ea60b9b5e4 Update CHANGELOG.md (#5449)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-25 01:15:50 +01:00
community-scripts-pr-app[bot]
c5cb6b2ade Update versions.json (#5448)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-25 02:15:19 +02:00
community-scripts-pr-app[bot]
81eb020430 Update .app files (#5442)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-24 22:02:16 +02:00
CanbiZ
73f1816e49 fix App name 2025-06-24 21:55:46 +02:00
community-scripts-pr-app[bot]
d0f0efca37 Update CHANGELOG.md (#5440)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-24 17:36:44 +01:00
community-scripts-pr-app[bot]
1697ffa752 Update CHANGELOG.md (#5439)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-24 17:35:53 +01:00
CanbiZ
8130b83328 GoMFT: tmpl bugfix to work with current version until a new release pushed (#5435) 2025-06-24 18:35:13 +02:00
community-scripts-pr-app[bot]
b384a387c3 Update CHANGELOG.md (#5438)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-24 17:35:02 +01:00
CanbiZ
8fd491460a bump scripts (Installer) from Ubuntu 22.04 to Ubuntu 24.04 (agentdvr, emby, jellyfin, plex, shinobi) (#5434) 2025-06-24 18:34:20 +02:00
CanbiZ
f86f90b2e0 Update gomft-install.sh 2025-06-24 15:49:54 +02:00
CanbiZ
00575130f5 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVE 2025-06-24 15:42:13 +02:00
CanbiZ
2a873d974c add git 2025-06-24 15:42:00 +02:00
community-scripts-pr-app[bot]
439fdbf071 Update .app files (#5432)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-24 15:37:51 +02:00
community-scripts-pr-app[bot]
8ccf3de8f7 Update CHANGELOG.md (#5431)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-24 14:37:06 +01:00
community-scripts-pr-app[bot]
5fc126b61c Update date in json (#5430)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-24 14:35:59 +01:00
push-app-to-main[bot]
c75af3a750 ONLYOFFICE Docs (#5420)
* 'Add new script'

* Update install/onlyoffice-install.sh

* Update onlyoffice-install.sh

* add info for credentials

* Update onlyoffice.sh

* curl

* naming

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-06-24 15:35:24 +02:00
CanbiZ
5c768b54c0 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVE 2025-06-24 15:34:59 +02:00
CanbiZ
e8848c1641 templ fix - gomft 2025-06-24 15:34:53 +02:00
community-scripts-pr-app[bot]
24c90699e6 Update CHANGELOG.md (#5429)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-24 14:29:20 +01:00
CanbiZ
e6ab47f341 general: update all alpine scripts to 3.22 (#5428) 2025-06-24 15:28:35 +02:00
community-scripts-pr-app[bot]
f63a1d89a3 Update versions.json (#5427)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-24 14:07:55 +02:00
community-scripts-pr-app[bot]
0c1aaedf6b Update CHANGELOG.md (#5426)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-24 12:26:01 +01:00
community-scripts-pr-app[bot]
5b35d537a8 Update CHANGELOG.md (#5425)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-24 12:25:34 +01:00
CanbiZ
1d06016ae1 Update tools.func (#5422) 2025-06-24 13:25:26 +02:00
CanbiZ
15b36b4d16 Minio: use latest version or latest feature rich version (#5423)
* minio ref

* Improvements

* Update minio-install.sh
2025-06-24 13:24:55 +02:00
community-scripts-pr-app[bot]
6a285e1e19 Update CHANGELOG.md (#5419)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-24 10:59:54 +01:00
Michel Roegl-Brunner
f60d132b20 Update all Alpine Scripts to atleast 1GB HDD (#5418)
* Update alpine-it-tools.sh

* Update alpine-zigbee2mqtt.sh

* Update jsons

---------

Co-authored-by: tremor021 <arezina.slavisa@gmail.com>
2025-06-24 11:58:42 +02:00
community-scripts-pr-app[bot]
d73bc95d4a Update CHANGELOG.md (#5417)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-24 10:35:12 +01:00
community-scripts-pr-app[bot]
2faeb5255c Update date in json (#5416)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-24 10:35:05 +01:00
community-scripts-pr-app[bot]
b4c6f28e4e Update CHANGELOG.md (#5415)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-24 10:34:52 +01:00
CanbiZ
d95bfdb7dc Refactor: MeTube to uv based install (#5411)
* Refactor: MeTube (uv migrated)

* Setup_nodejs
2025-06-24 11:34:07 +02:00
community-scripts-pr-app[bot]
99a0fb727b Update CHANGELOG.md (#5414)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-24 10:33:54 +01:00
CanbiZ
0efa83ff48 Refactor: Prometheus PVE Exporter to uv based install (#5412) 2025-06-24 11:33:46 +02:00
CanbiZ
66ab254fb2 Refactor: ESPHome to uv based install (#5413)
* Refactor: ESPHome to uv based install

* fix curl
2025-06-24 11:33:26 +02:00
community-scripts-pr-app[bot]
daad486c5e Update CHANGELOG.md (#5410)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-24 01:15:55 +01:00
community-scripts-pr-app[bot]
e11fb287f1 Update versions.json (#5409)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-24 02:15:14 +02:00
community-scripts-pr-app[bot]
b889909d65 Update .app files (#5406)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-23 22:30:23 +02:00
community-scripts-pr-app[bot]
454a272cad Update CHANGELOG.md (#5405)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-23 21:19:04 +01:00
CanbiZ
7e7d610182 Alpine-Forgejo (#5396) 2025-06-23 22:18:22 +02:00
CanbiZ
7302d43e7e 2025-06-23 21:29:56 +02:00
community-scripts-pr-app[bot]
3d4bcb8081 Update CHANGELOG.md (#5404)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-23 19:58:19 +01:00
community-scripts-pr-app[bot]
a0f18fd0f7 Update CHANGELOG.md (#5403)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-23 19:57:38 +01:00
Slaviša Arežina
dc3113c57b Update mariadb.json (#5400) 2025-06-23 20:57:31 +02:00
CanbiZ
c09606db69 [core]: tools.func -> autoupdate npm to newest version on install (#5397) 2025-06-23 20:57:01 +02:00
CanbiZ
7b90b0624e remove unneeded var 2025-06-23 20:53:23 +02:00
CanbiZ
342722b10a fix setup_postgres > install_postgres 2025-06-23 20:14:26 +02:00
CanbiZ
22964f4898 quickfix NodeJS - wrong function after merge 2025-06-23 20:13:34 +02:00
community-scripts-pr-app[bot]
a8b3244f92 Update versions.json (#5394)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-23 14:08:13 +02:00
community-scripts-pr-app[bot]
a1aee90f72 Update CHANGELOG.md (#5393)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-23 12:58:22 +01:00
Slaviša Arežina
09dbc22728 PLANKA: Fix the update procedure (#5391)
* fix update

* Fix because Mick
2025-06-23 13:57:45 +02:00
community-scripts-pr-app[bot]
9559a1b3f7 Update CHANGELOG.md (#5392)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-23 12:45:18 +01:00
Miguel
2f0bff4e42 changed trilium github repo (#5390) 2025-06-23 13:44:49 +02:00
community-scripts-pr-app[bot]
ea8586d4b5 Update CHANGELOG.md (#5389)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-23 08:08:24 +01:00
Tobias
33bb4fd9e0 changedetection: fix: hermetic msedge (#5388) 2025-06-23 09:07:49 +02:00
community-scripts-pr-app[bot]
5cf8765d9a Update CHANGELOG.md (#5386)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-23 01:16:29 +01:00
community-scripts-pr-app[bot]
b6a98288cc Update versions.json (#5385)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-23 02:15:59 +02:00
community-scripts-pr-app[bot]
89cfb38459 Update CHANGELOG.md (#5382)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-22 20:41:28 +01:00
Götz Görisch
82179752ee fix: casing and naming error after #5254 (#5380)
* fix: fix casing of OpenWrt

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>

* fix: correct name of Homeassistant VM for PiMox

* follow to #5254

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>

---------

Signed-off-by: Goetz Goerisch <ggoerisch@gmail.com>
Co-authored-by: Goetz Goerisch <ggoerisch@gmail.com>
2025-06-22 21:40:54 +02:00
community-scripts-pr-app[bot]
d495095d21 Update CHANGELOG.md (#5381)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-22 20:36:05 +01:00
CanbiZ
6cc901eba6 alpine: increase hdd to 1gb (#5377) 2025-06-22 21:35:22 +02:00
CanbiZ
75b6aa9dac Update build.func 2025-06-22 20:53:02 +02:00
CanbiZ
aab85ab654 fix issue while creating ct without gnupg2 2025-06-22 20:43:25 +02:00
CanbiZ
5e87af5e8f Update build.func 2025-06-22 20:25:01 +02:00
CanbiZ
8bd6d89bff quickfix 2025-06-22 20:16:16 +02:00
CanbiZ
ddf3019021 quickfix missing char 2025-06-22 20:06:25 +02:00
community-scripts-pr-app[bot]
ef871c44ff Update CHANGELOG.md (#5375)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-22 18:55:29 +01:00
CanbiZ
5fcc97142f [core]: fix timing issues while template update & timezone setup at create new LXC (#5358)
* fix timezone timing issue at new LXC

* fix possible issue on templates
2025-06-22 19:54:55 +02:00
community-scripts-pr-app[bot]
c6cbb495d2 Update CHANGELOG.md (#5371)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-22 13:08:29 +01:00
community-scripts-pr-app[bot]
cd84cf974c Update CHANGELOG.md (#5370)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-22 13:07:57 +01:00
Chris
a2b8a87cc4 Immich: unpin release; use fetch & deploy function for update (#5355) 2025-06-22 14:07:25 +02:00
community-scripts-pr-app[bot]
c684472cb4 Update versions.json (#5369)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-22 14:07:16 +02:00
community-scripts-pr-app[bot]
930e4bd556 Update CHANGELOG.md (#5367)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-22 11:28:11 +01:00
CanbiZ
c6c03d4728 fix: install_adminer > setup_adminer (#5356) 2025-06-22 12:27:47 +02:00
community-scripts-pr-app[bot]
e024099beb Update CHANGELOG.md (#5366)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-22 11:27:26 +01:00
Tyler Stuyfzand
08648aca15 gitea: Update gitea.sh to stop update failures (#5361)
When updating gitea using the update command on Debian 12, if you have any other files or directories starting with the name gitea it will fail.

This update will make it use a set file name for the output and mv operation which resolves the issue.
2025-06-22 12:27:01 +02:00
community-scripts-pr-app[bot]
70a1cfbe28 Update CHANGELOG.md (#5360)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-22 01:17:03 +01:00
community-scripts-pr-app[bot]
3d99d74685 Update versions.json (#5359)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-22 02:16:31 +02:00
community-scripts-pr-app[bot]
6cc090b693 Update versions.json (#5351)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-21 14:07:08 +02:00
community-scripts-pr-app[bot]
a8deff54d8 Update CHANGELOG.md (#5345)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-21 01:15:29 +01:00
community-scripts-pr-app[bot]
e33cf652a1 Update versions.json (#5344)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-21 02:14:57 +02:00
community-scripts-pr-app[bot]
b35eadfc36 Update CHANGELOG.md (#5340)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-20 22:23:24 +01:00
CanbiZ
74a073e8bd Immich: remove unneeded tmp_file (#5332)
* remove temp cleanup from immich

* Update immich-install.sh

* vchord
2025-06-20 23:22:49 +02:00
community-scripts-pr-app[bot]
ce9c1e63a8 Update CHANGELOG.md (#5338)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-20 20:47:43 +01:00
Slaviša Arežina
25f6245d31 Update huntarr.sh (#5336) 2025-06-20 21:47:07 +02:00
CanbiZ
074d6fa31b quickfix: broken formatting in verbose spinner 2025-06-20 15:10:50 +02:00
community-scripts-pr-app[bot]
8dfacb9e7d Update versions.json (#5330)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-20 14:07:54 +02:00
CanbiZ
12a6055ea3 set syslinks for jupyter to prevent issues 2025-06-20 13:39:45 +02:00
CanbiZ
637f9a1f44 quickfix broken format 2025-06-20 13:32:57 +02:00
community-scripts-pr-app[bot]
a7ed02160b Update CHANGELOG.md (#5328)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-20 12:31:30 +01:00
community-scripts-pr-app[bot]
03551e23e4 Update CHANGELOG.md (#5327)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-20 12:28:33 +01:00
CanbiZ
1f7d85ac60 [core]: unify misc/*.func scripts with centralized logic from core.func (#5316)
* Core Changes

* Formatting

* add create_lxc patches

* Update install.func

* remove dev header
2025-06-20 13:28:06 +02:00
community-scripts-pr-app[bot]
4e46fd739d Update CHANGELOG.md (#5326)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-20 11:14:28 +01:00
CanbiZ
ea5eca83fe Argus: fix wrong port on website (#5322) 2025-06-20 12:13:53 +02:00
community-scripts-pr-app[bot]
b49b902d64 Update CHANGELOG.md (#5324)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-20 10:29:44 +01:00
CanbiZ
f81f7fb1c0 Refactor: migrate AdventureLog update to uv and GitHub release logic (#5318) 2025-06-20 11:29:10 +02:00
community-scripts-pr-app[bot]
bcdeeaafb3 Update CHANGELOG.md (#5323)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-20 10:28:43 +01:00
CanbiZ
92f631b628 migrate Jupyter Notebook to uv-based installation with update support (#5320) 2025-06-20 11:28:17 +02:00
community-scripts-pr-app[bot]
9133782289 Update CHANGELOG.md (#5314)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-20 07:06:50 +01:00
Slaviša Arežina
e343c7b5aa Better DB pass (#5313) 2025-06-20 08:06:24 +02:00
community-scripts-pr-app[bot]
3e47e39633 Update CHANGELOG.md (#5312)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-20 06:57:57 +01:00
Tobias
43a90bf9e6 fix planka Tags (#5311) 2025-06-20 07:57:32 +02:00
community-scripts-pr-app[bot]
cd45ccfb70 Update CHANGELOG.md (#5310)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-20 06:48:20 +01:00
Chris
b52cba817f Immich: test fix for 5299 (#5300) 2025-06-20 07:47:46 +02:00
community-scripts-pr-app[bot]
ac203f4e79 Update CHANGELOG.md (#5309)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-20 06:42:45 +01:00
Niklas
b019991ee6 Update changedetection.sh (#5301)
Add Microsoft Edge as Broswer - as needed for changedetection/playwright to work
2025-06-20 07:42:12 +02:00
community-scripts-pr-app[bot]
6bc17a0031 Update CHANGELOG.md (#5308)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-20 06:41:16 +01:00
Mateusz Haligowski
69d9394840 (turnkey) Add OpenLDAP (#5305) 2025-06-20 07:40:51 +02:00
275 changed files with 11965 additions and 6239 deletions

View File

@@ -44,9 +44,6 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: npm ci --prefer-offline --legacy-peer-deps run: npm ci --prefer-offline --legacy-peer-deps
- name: Run tests
run: npm run test
- name: Configure Next.js for pages - name: Configure Next.js for pages
uses: actions/configure-pages@v5 uses: actions/configure-pages@v5
with: with:

48
.github/workflows/push-to-gitea.yaml generated vendored Normal file
View File

@@ -0,0 +1,48 @@
name: Sync to Gitea
on:
push:
branches:
- main
jobs:
sync:
if: github.repository == 'community-scripts/ProxmoxVE'
runs-on: ubuntu-latest
steps:
- name: Checkout source repo
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Change all links to git.community-scripts.org
run: |
echo "Searching for files containing raw.githubusercontent.com URLs..."
# Find all files containing GitHub raw URLs, excluding certain directories
files_with_github_urls=$(grep -r "https://raw.githubusercontent.com/community-scripts/ProxmoxVE" . --exclude-dir=.git --exclude-dir=node_modules --exclude-dir=.github/workflows --files-with-matches || true)
if [ -n "$files_with_github_urls" ]; then
echo "$files_with_github_urls" | while read file; do
if [ -f "$file" ]; then
sed -i 's|https://raw\.githubusercontent\.com/community-scripts/ProxmoxVE/|https://git.community-scripts.org/community-scripts/ProxmoxVE/raw/branch/|g' "$file"
fi
done
else
echo "No files found containing GitHub raw URLs"
fi
- name: Push to Gitea
run: |
git config --global user.name "Push From Github"
git config --global user.email "actions@github.com"
git remote add gitea https://$GITEA_USER:$GITEA_TOKEN@git.community-scripts.org/community-scripts/ProxmoxVE.git
git add .
git commit -m "Sync to Gitea"
git push gitea --all --force
env:
GITEA_USER: ${{ secrets.GITEA_USERNAME }}
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}

View File

@@ -14,8 +14,304 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment. All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
## 2025-07-04
## 2025-07-03
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Zipline: Fix typo in uploads directory path [@tremor021](https://github.com/tremor021) ([#5662](https://github.com/community-scripts/ProxmoxVE/pull/5662))
- #### ✨ New Features
- Improve asset matching in fetch_and_deploy_gh_release for prebuild and singlefile modes [@MickLesk](https://github.com/MickLesk) ([#5669](https://github.com/community-scripts/ProxmoxVE/pull/5669))
- #### 🔧 Refactor
- Refactor: Trilium [@MickLesk](https://github.com/MickLesk) ([#5665](https://github.com/community-scripts/ProxmoxVE/pull/5665))
### 🌐 Website
- #### 📝 Script Information
- Bump Icons to selfhst repo | switch svg to webp [@MickLesk](https://github.com/MickLesk) ([#5659](https://github.com/community-scripts/ProxmoxVE/pull/5659))
## 2025-07-02
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Changedetection: Base64 encode the launch options [@tremor021](https://github.com/tremor021) ([#5640](https://github.com/community-scripts/ProxmoxVE/pull/5640))
- #### 🔧 Refactor
- Refactor & Bump to Node24: Zigbee2MQTT [@MickLesk](https://github.com/MickLesk) ([#5638](https://github.com/community-scripts/ProxmoxVE/pull/5638))
### 🌐 Website
- #### 💥 Breaking Changes
- Remove: Pingvin-Share [@MickLesk](https://github.com/MickLesk) ([#5635](https://github.com/community-scripts/ProxmoxVE/pull/5635))
- Remove: Readarr [@MickLesk](https://github.com/MickLesk) ([#5636](https://github.com/community-scripts/ProxmoxVE/pull/5636))
## 2025-07-01
### 🆕 New Scripts
- Librespeed Rust ([#5614](https://github.com/community-scripts/ProxmoxVE/pull/5614))
- ITSM-NG ([#5615](https://github.com/community-scripts/ProxmoxVE/pull/5615))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Open WebUI: Fix Ollama update procedure [@tremor021](https://github.com/tremor021) ([#5601](https://github.com/community-scripts/ProxmoxVE/pull/5601))
- #### ✨ New Features
- [tools]: increase fetch_and_deploy with dns pre check [@MickLesk](https://github.com/MickLesk) ([#5608](https://github.com/community-scripts/ProxmoxVE/pull/5608))
### 🌐 Website
- #### 📝 Script Information
- Jellyfin GPU Passthrough NVIDIA Note [@austinpilz](https://github.com/austinpilz) ([#5625](https://github.com/community-scripts/ProxmoxVE/pull/5625))
## 2025-06-30
### 🆕 New Scripts
- Alpine Syncthing [@MickLesk](https://github.com/MickLesk) ([#5586](https://github.com/community-scripts/ProxmoxVE/pull/5586))
- Kapowarr ([#5584](https://github.com/community-scripts/ProxmoxVE/pull/5584))
### 🚀 Updated Scripts
- Fixing Cloudflare DDNS - lack of resources [@meszolym](https://github.com/meszolym) ([#5600](https://github.com/community-scripts/ProxmoxVE/pull/5600))
- #### 🐞 Bug Fixes
- Immich: make changes to automatically enable QuickSync [@vhsdream](https://github.com/vhsdream) ([#5560](https://github.com/community-scripts/ProxmoxVE/pull/5560))
- Apache Guacamole: Install auth-jdbc component that matches release version [@tremor021](https://github.com/tremor021) ([#5563](https://github.com/community-scripts/ProxmoxVE/pull/5563))
- #### ✨ New Features
- tools.func: optimize binary installs with fetch_and_deploy helper [@MickLesk](https://github.com/MickLesk) ([#5588](https://github.com/community-scripts/ProxmoxVE/pull/5588))
- [core]: add ipv6 configuration support [@MickLesk](https://github.com/MickLesk) ([#5575](https://github.com/community-scripts/ProxmoxVE/pull/5575))
## 2025-06-29
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Linkwarden: Add backing up of data folder to the update function [@tremor021](https://github.com/tremor021) ([#5548](https://github.com/community-scripts/ProxmoxVE/pull/5548))
- #### ✨ New Features
- Add cron-job api-key env variable to homarr script [@Meierschlumpf](https://github.com/Meierschlumpf) ([#5204](https://github.com/community-scripts/ProxmoxVE/pull/5204))
### 🧰 Maintenance
- #### 📝 Documentation
- update readme with valid discord link. other one expired [@BramSuurdje](https://github.com/BramSuurdje) ([#5567](https://github.com/community-scripts/ProxmoxVE/pull/5567))
### 🌐 Website
- Update script-item.tsx [@ape364](https://github.com/ape364) ([#5549](https://github.com/community-scripts/ProxmoxVE/pull/5549))
- #### 🐞 Bug Fixes
- fix bug in tooltip that would always render 'updateable' [@BramSuurdje](https://github.com/BramSuurdje) ([#5552](https://github.com/community-scripts/ProxmoxVE/pull/5552))
## 2025-06-28
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Ollama: Clean up old Ollama files before running update [@tremor021](https://github.com/tremor021) ([#5534](https://github.com/community-scripts/ProxmoxVE/pull/5534))
- ONLYOFFICE: Update install script to manually create RabbitMQ user [@tremor021](https://github.com/tremor021) ([#5535](https://github.com/community-scripts/ProxmoxVE/pull/5535))
### 🌐 Website
- #### 📝 Script Information
- Booklore: Correct documentation and website [@pieman3000](https://github.com/pieman3000) ([#5528](https://github.com/community-scripts/ProxmoxVE/pull/5528))
## 2025-06-27
### 🆕 New Scripts
- BookLore ([#5524](https://github.com/community-scripts/ProxmoxVE/pull/5524))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- wizarr: remove unneeded tmp file [@MickLesk](https://github.com/MickLesk) ([#5517](https://github.com/community-scripts/ProxmoxVE/pull/5517))
### 🧰 Maintenance
- #### 🐞 Bug Fixes
- Remove npm legacy errors, created single source of truth for ESlint. updated analytics url. updated script background [@BramSuurdje](https://github.com/BramSuurdje) ([#5498](https://github.com/community-scripts/ProxmoxVE/pull/5498))
- #### 📂 Github
- New workflow to push to gitea and change links to gitea [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#5510](https://github.com/community-scripts/ProxmoxVE/pull/5510))
### 🌐 Website
- #### 📝 Script Information
- Wireguard, Update Link to Documentation. [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#5514](https://github.com/community-scripts/ProxmoxVE/pull/5514))
## 2025-06-26
### 🆕 New Scripts
- ConvertX ([#5484](https://github.com/community-scripts/ProxmoxVE/pull/5484))
### 🚀 Updated Scripts
- [tools] Update setup_nodejs function [@tremor021](https://github.com/tremor021) ([#5488](https://github.com/community-scripts/ProxmoxVE/pull/5488))
- [tools] Fix setup_mongodb function [@tremor021](https://github.com/tremor021) ([#5486](https://github.com/community-scripts/ProxmoxVE/pull/5486))
## 2025-06-25
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Docmost: Increase resources [@tremor021](https://github.com/tremor021) ([#5458](https://github.com/community-scripts/ProxmoxVE/pull/5458))
- #### ✨ New Features
- tools.func: new helper for imagemagick [@MickLesk](https://github.com/MickLesk) ([#5452](https://github.com/community-scripts/ProxmoxVE/pull/5452))
- YunoHost: add Update-Function [@MickLesk](https://github.com/MickLesk) ([#5450](https://github.com/community-scripts/ProxmoxVE/pull/5450))
- #### 🔧 Refactor
- Refactor: Tailscale [@MickLesk](https://github.com/MickLesk) ([#5454](https://github.com/community-scripts/ProxmoxVE/pull/5454))
### 🌐 Website
- #### 🐞 Bug Fixes
- Update Tooltips component to conditionally display updateable status based on item type [@BramSuurdje](https://github.com/BramSuurdje) ([#5461](https://github.com/community-scripts/ProxmoxVE/pull/5461))
- Refactor CommandMenu to prevent duplicate scripts across categories [@BramSuurdje](https://github.com/BramSuurdje) ([#5463](https://github.com/community-scripts/ProxmoxVE/pull/5463))
- #### ✨ New Features
- Enhance InstallCommand component to support Gitea as an alternative source for installation scripts. [@BramSuurdje](https://github.com/BramSuurdje) ([#5464](https://github.com/community-scripts/ProxmoxVE/pull/5464))
- #### 📝 Script Information
- Website: mark VM's and "OS"-LXC's as updatable [@MickLesk](https://github.com/MickLesk) ([#5453](https://github.com/community-scripts/ProxmoxVE/pull/5453))
## 2025-06-24
### 🆕 New Scripts
- ONLYOFFICE Docs ([#5420](https://github.com/community-scripts/ProxmoxVE/pull/5420))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- GoMFT: tmpl bugfix to work with current version until a new release pushed [@MickLesk](https://github.com/MickLesk) ([#5435](https://github.com/community-scripts/ProxmoxVE/pull/5435))
- Update all Alpine Scripts to atleast 1GB HDD [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#5418](https://github.com/community-scripts/ProxmoxVE/pull/5418))
- #### ✨ New Features
- general: update all alpine scripts to version 3.22 [@MickLesk](https://github.com/MickLesk) ([#5428](https://github.com/community-scripts/ProxmoxVE/pull/5428))
- Minio: use latest version or latest feature rich version [@MickLesk](https://github.com/MickLesk) ([#5423](https://github.com/community-scripts/ProxmoxVE/pull/5423))
- [core]: Improve GitHub release fetch robustness with split timeouts and retry logic [@MickLesk](https://github.com/MickLesk) ([#5422](https://github.com/community-scripts/ProxmoxVE/pull/5422))
- #### 💥 Breaking Changes
- bump scripts (Installer) from Ubuntu 22.04 to Ubuntu 24.04 (agentdvr, emby, jellyfin, plex, shinobi) [@MickLesk](https://github.com/MickLesk) ([#5434](https://github.com/community-scripts/ProxmoxVE/pull/5434))
- #### 🔧 Refactor
- Refactor: MeTube to uv based install [@MickLesk](https://github.com/MickLesk) ([#5411](https://github.com/community-scripts/ProxmoxVE/pull/5411))
- Refactor: Prometheus PVE Exporter to uv based install [@MickLesk](https://github.com/MickLesk) ([#5412](https://github.com/community-scripts/ProxmoxVE/pull/5412))
- Refactor: ESPHome to uv based install [@MickLesk](https://github.com/MickLesk) ([#5413](https://github.com/community-scripts/ProxmoxVE/pull/5413))
## 2025-06-23
### 🆕 New Scripts
- Alpine-Forgejo by @Johann3s-H [@MickLesk](https://github.com/MickLesk) ([#5396](https://github.com/community-scripts/ProxmoxVE/pull/5396))
### 🚀 Updated Scripts
- [core]: tools.func -> autoupdate npm to newest version on install [@MickLesk](https://github.com/MickLesk) ([#5397](https://github.com/community-scripts/ProxmoxVE/pull/5397))
- #### 🐞 Bug Fixes
- PLANKA: Fix the update procedure [@tremor021](https://github.com/tremor021) ([#5391](https://github.com/community-scripts/ProxmoxVE/pull/5391))
- changed trilium github repo [@miggi92](https://github.com/miggi92) ([#5390](https://github.com/community-scripts/ProxmoxVE/pull/5390))
- changedetection: fix: hermetic msedge [@CrazyWolf13](https://github.com/CrazyWolf13) ([#5388](https://github.com/community-scripts/ProxmoxVE/pull/5388))
### 🌐 Website
- #### 📝 Script Information
- MariaDB: Add information about Adminer on website [@tremor021](https://github.com/tremor021) ([#5400](https://github.com/community-scripts/ProxmoxVE/pull/5400))
## 2025-06-22
### 🚀 Updated Scripts
- [core]: fix timing issues while template update & timezone setup at create new LXC [@MickLesk](https://github.com/MickLesk) ([#5358](https://github.com/community-scripts/ProxmoxVE/pull/5358))
- alpine: increase hdd to 1gb [@MickLesk](https://github.com/MickLesk) ([#5377](https://github.com/community-scripts/ProxmoxVE/pull/5377))
- #### 🐞 Bug Fixes
- fix: casing and naming error after #5254 [@GoetzGoerisch](https://github.com/GoetzGoerisch) ([#5380](https://github.com/community-scripts/ProxmoxVE/pull/5380))
- fix: install_adminer > setup_adminer [@MickLesk](https://github.com/MickLesk) ([#5356](https://github.com/community-scripts/ProxmoxVE/pull/5356))
- gitea: Update gitea.sh to stop update failures [@tystuyfzand](https://github.com/tystuyfzand) ([#5361](https://github.com/community-scripts/ProxmoxVE/pull/5361))
- #### 🔧 Refactor
- Immich: unpin release; use fetch & deploy function for update [@vhsdream](https://github.com/vhsdream) ([#5355](https://github.com/community-scripts/ProxmoxVE/pull/5355))
## 2025-06-21
## 2025-06-20 ## 2025-06-20
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Immich: remove unneeded tmp_file [@MickLesk](https://github.com/MickLesk) ([#5332](https://github.com/community-scripts/ProxmoxVE/pull/5332))
- Huntarr: Fix duplicate update status messages [@tremor021](https://github.com/tremor021) ([#5336](https://github.com/community-scripts/ProxmoxVE/pull/5336))
- fix planka Tags [@CrazyWolf13](https://github.com/CrazyWolf13) ([#5311](https://github.com/community-scripts/ProxmoxVE/pull/5311))
- PLANKA: Better DB password generate [@tremor021](https://github.com/tremor021) ([#5313](https://github.com/community-scripts/ProxmoxVE/pull/5313))
- Immich: Hotfix for #5299 [@vhsdream](https://github.com/vhsdream) ([#5300](https://github.com/community-scripts/ProxmoxVE/pull/5300))
- changedetection: add msedge as Browser dependency [@Niklas04](https://github.com/Niklas04) ([#5301](https://github.com/community-scripts/ProxmoxVE/pull/5301))
- #### ✨ New Features
- (turnkey) Add OpenLDAP as a TurnKey option [@mhaligowski](https://github.com/mhaligowski) ([#5305](https://github.com/community-scripts/ProxmoxVE/pull/5305))
- #### 🔧 Refactor
- [core]: unify misc/*.func scripts with centralized logic from core.func [@MickLesk](https://github.com/MickLesk) ([#5316](https://github.com/community-scripts/ProxmoxVE/pull/5316))
- Refactor: migrate AdventureLog update to uv and GitHub release logic [@MickLesk](https://github.com/MickLesk) ([#5318](https://github.com/community-scripts/ProxmoxVE/pull/5318))
- Refactor: migrate Jupyter Notebook to uv-based installation with update support [@MickLesk](https://github.com/MickLesk) ([#5320](https://github.com/community-scripts/ProxmoxVE/pull/5320))
### 🌐 Website
- #### 📝 Script Information
- Argus: fix wrong port on website [@MickLesk](https://github.com/MickLesk) ([#5322](https://github.com/community-scripts/ProxmoxVE/pull/5322))
## 2025-06-19 ## 2025-06-19
### 🆕 New Scripts ### 🆕 New Scripts

View File

@@ -13,7 +13,7 @@
<a href="https://helper-scripts.com"> <a href="https://helper-scripts.com">
<img src="https://img.shields.io/badge/Website-4c9b3f?style=for-the-badge&logo=github&logoColor=white" alt="Website" /> <img src="https://img.shields.io/badge/Website-4c9b3f?style=for-the-badge&logo=github&logoColor=white" alt="Website" />
</a> </a>
<a href="https://discord.gg/jsYVk5JBxq"> <a href="https://discord.gg/3AnUqsXnmK">
<img src="https://img.shields.io/badge/Discord-7289da?style=for-the-badge&logo=discord&logoColor=white" alt="Discord" /> <img src="https://img.shields.io/badge/Discord-7289da?style=for-the-badge&logo=discord&logoColor=white" alt="Discord" />
</a> </a>
<a href="https://ko-fi.com/community_scripts"> <a href="https://ko-fi.com/community_scripts">
@@ -82,7 +82,7 @@ We appreciate any contributions to the project—whether it's bug reports, featu
Join our community for support: Join our community for support:
- **Discord**: Join our [Proxmox Helper Scripts Discord server](https://discord.gg/jsYVk5JBxq) for real-time support. - **Discord**: Join our [Proxmox Helper Scripts Discord server](https://discord.gg/3AnUqsXnmK) for real-time support.
- **GitHub Discussions**: [Ask questions or report issues](https://github.com/community-scripts/ProxmoxVE/discussions). - **GitHub Discussions**: [Ask questions or report issues](https://github.com/community-scripts/ProxmoxVE/discussions).
## 🤝 Report a Bug or Feature Request ## 🤝 Report a Bug or Feature Request

View File

@@ -27,43 +27,51 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
RELEASE=$(curl -fsSL https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') RELEASE=$(curl -fsSL https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then if [[ "${RELEASE}" != "$(cat ~/.adventurelog 2>/dev/null)" ]] || [[ ! -f ~/.adventurelog ]]; then
msg_info "Stopping Services" msg_info "Stopping Services"
systemctl stop adventurelog-backend systemctl stop adventurelog-backend
systemctl stop adventurelog-frontend systemctl stop adventurelog-frontend
msg_ok "Services Stopped" msg_ok "Services Stopped"
msg_info "Updating ${APP} to ${RELEASE}" fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog"
mv /opt/adventurelog/ /opt/adventurelog-backup/ PYTHON_VERSION="3.12" setup_uv
curl -fsSL -o /opt/v${RELEASE}.zip "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
$STD unzip /opt/v${RELEASE}.zip -d /opt/ msg_info "Updating ${APP} to v${RELEASE}"
mv /opt/AdventureLog-${RELEASE} /opt/adventurelog # Backend Migration
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
mv /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
mv /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
cd /opt/adventurelog/backend/server cd /opt/adventurelog/backend/server
$STD pip install --upgrade pip if [[ ! -x .venv/bin/python ]]; then
$STD pip install -r requirements.txt $STD uv venv .venv
$STD python3 manage.py collectstatic --noinput $STD .venv/bin/python -m ensurepip --upgrade
$STD python3 manage.py migrate fi
mv /opt/adventurelog-backup/frontend/.env /opt/adventurelog/frontend/.env $STD .venv/bin/python -m pip install --upgrade pip
$STD .venv/bin/python -m pip install -r requirements.txt
$STD .venv/bin/python -m manage collectstatic --noinput
$STD .venv/bin/python -m manage migrate
# Frontend Migration
cp /opt/adventurelog-backup/frontend/.env /opt/adventurelog/frontend/.env
cd /opt/adventurelog/frontend cd /opt/adventurelog/frontend
$STD pnpm install $STD pnpm i
$STD pnpm run build $STD pnpm build
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}" msg_ok "Updated ${APP}"
msg_info "Starting Services" msg_info "Starting Services"
systemctl daemon-reexec
systemctl start adventurelog-backend systemctl start adventurelog-backend
systemctl start adventurelog-frontend systemctl start adventurelog-frontend
msg_ok "Started Services" msg_ok "Services Started"
msg_info "Cleaning Up" msg_info "Cleaning Up"
rm -rf /opt/v${RELEASE}.zip rm -rf /opt/v${RELEASE}.zip
rm -rf /opt/adventurelog-backup rm -rf /opt/adventurelog-backup
msg_ok "Cleaned" msg_ok "Cleaned"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
else else
msg_ok "No update required. ${APP} is already at ${RELEASE}" msg_ok "No update required. ${APP} is already at ${RELEASE}"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}" var_disk="${var_disk:-8}"
var_os="${var_os:-ubuntu}" var_os="${var_os:-ubuntu}"
var_version="${var_version:-22.04}" var_version="${var_version:-24.04}"
var_unprivileged="${var_unprivileged:-0}" var_unprivileged="${var_unprivileged:-0}"
header_info "$APP" header_info "$APP"
@@ -20,15 +20,15 @@ color
catch_errors catch_errors
function update_script() { function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /opt/agentdvr ]]; then if [[ ! -d /opt/agentdvr ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "Currently we don't provide an update function for this ${APP}."
exit exit
fi
msg_error "Currently we don't provide an update function for this ${APP}."
exit
} }
start start
@@ -38,4 +38,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}" var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-3}" var_disk="${var_disk:-3}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-2}" var_disk="${var_disk:-2}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

45
ct/alpine-forgejo.sh Normal file
View File

@@ -0,0 +1,45 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Johann3s-H (An!ma)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://forgejo.org/
APP="Alpine-Forgejo"
var_tags="${var_tags:-alpine;git}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}"
var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
msg_info "Updating Alpine Packages"
$STD apk -U upgrade
msg_ok "Updated Alpine Packages"
msg_info "Updating Forgejo"
$STD apk upgrade forgejo
msg_ok "Updated Forgejo"
msg_info "Restarting Forgejo"
$STD rc-service forgejo restart
msg_ok "Restarted Forgejo"
exit 0
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_disk="${var_disk:-3}" var_disk="${var_disk:-3}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}" var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}" var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -9,9 +9,9 @@ APP="Alpine-IT-Tools"
var_tags="${var_tags:-alpine;development}" var_tags="${var_tags:-alpine;development}"
var_cpu="${var_cpu:-1}" var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_disk="${var_disk:-0.5}" var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-10}" var_disk="${var_disk:-10}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}" var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-2}" var_disk="${var_disk:-2}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -58,4 +58,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${APP} should be reachable by going to the following URL.
${BL}https://${IP}${CL} \n" ${BL}https://${IP}${CL} \n"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}" var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}" var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}" var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}" var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
var_fuse="${var_fuse:-yes}" var_fuse="${var_fuse:-yes}"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}" var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -69,4 +69,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable on port 6379. echo -e "${APP} should be reachable on port 6379.
${BL}redis-cli -h ${IP} -p 6379${CL} \n" ${BL}redis-cli -h ${IP} -p 6379${CL} \n"

45
ct/alpine-syncthing.sh Normal file
View File

@@ -0,0 +1,45 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://syncthing.net/
APP="Alpine-Syncthing"
var_tags="${var_tags:-alpine;networking}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}"
var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
msg_info "Updating Alpine Packages"
$STD apk -U upgrade
msg_ok "Updated Alpine Packages"
msg_info "Updating Syncthing"
$STD apk upgrade syncthing
msg_ok "Updated Syncthing"
msg_info "Restarting Syncthing"
$STD rc-service syncthing restart
msg_ok "Restarted Syncthing"
exit 1
}
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}:8384${CL}"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_disk="${var_disk:-2}" var_disk="${var_disk:-2}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -31,13 +31,13 @@ function update_script() {
msg_info "Updating Tinyauth" msg_info "Updating Tinyauth"
RELEASE=$(curl -s https://api.github.com/repos/steveiliop56/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') RELEASE=$(curl -s https://api.github.com/repos/steveiliop56/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [ "${RELEASE}" != "$(cat /opt/tinyauth_version.txt)" ] || [ ! -f /opt/tinyauth_version.txt ]; then if [ "${RELEASE}" != "$(cat /opt/tinyauth_version.txt)" ] || [ ! -f /opt/tinyauth_version.txt ]; then
$STD service tinyauth stop $STD service tinyauth stop
rm -f /opt/tinyauth/tinyauth rm -f /opt/tinyauth/tinyauth
curl -fsSL "https://github.com/steveiliop56/tinyauth/releases/download/v${RELEASE}/tinyauth-amd64" -o /opt/tinyauth/tinyauth curl -fsSL "https://github.com/steveiliop56/tinyauth/releases/download/v${RELEASE}/tinyauth-amd64" -o /opt/tinyauth/tinyauth
chmod +x /opt/tinyauth/tinyauth chmod +x /opt/tinyauth/tinyauth
echo "${RELEASE}" > /opt/tinyauth_version.txt echo "${RELEASE}" >/opt/tinyauth_version.txt
msg_info "Restarting Tinyauth" msg_info "Restarting Tinyauth"
$STD service tinyauth start $STD service tinyauth start
msg_ok "Restarted Tinyauth" msg_ok "Restarted Tinyauth"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}" var_ram="${var_ram:-512}"
var_disk="${var_disk:-1}" var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}" var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}" var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}" var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -7,11 +7,11 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="Alpine-Zigbee2MQTT" APP="Alpine-Zigbee2MQTT"
var_tags="${var_tags:-alpine;zigbee;mqtt;smarthome}" var_tags="${var_tags:-alpine;zigbee;mqtt;smarthome}"
var_disk="${var_disk:-0.3}" var_disk="${var_disk:-1}"
var_cpu="${var_cpu:-1}" var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-0}" var_unprivileged="${var_unprivileged:-0}"
header_info "$APP" header_info "$APP"

View File

@@ -9,9 +9,9 @@ APP="Alpine"
var_tags="${var_tags:-os;alpine}" var_tags="${var_tags:-os;alpine}"
var_cpu="${var_cpu:-1}" var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}" var_ram="${var_ram:-512}"
var_disk="${var_disk:-0.5}" var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

79
ct/booklore.sh Normal file
View File

@@ -0,0 +1,79 @@
#!/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: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/adityachandelgit/BookLore
APP="BookLore"
var_tags="${var_tags:-books;library}"
var_cpu="${var_cpu:-3}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-7}"
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/booklore ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/adityachandelgit/BookLore/releases/latest | yq '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.booklore 2>/dev/null)" ]] || [[ ! -f ~/.booklore ]]; then
msg_info "Stopping $APP"
systemctl stop booklore
msg_ok "Stopped $APP"
fetch_and_deploy_gh_release "booklore" "adityachandelgit/BookLore"
msg_info "Building Frontend"
cd /opt/booklore/booklore-ui
$STD npm install --force
$STD npm run build --configuration=production
msg_ok "Built Frontend"
msg_info "Building Backend"
cd /opt/booklore/booklore-api
APP_VERSION=$(curl -fsSL https://api.github.com/repos/adityachandelgit/BookLore/releases/latest | yq '.tag_name' | sed 's/^v//')
yq eval ".app.version = \"${APP_VERSION}\"" -i src/main/resources/application.yaml
$STD ./gradlew clean build --no-daemon
mkdir -p /opt/booklore/dist
JAR_PATH=$(find /opt/booklore/booklore-api/build/libs -maxdepth 1 -type f -name "booklore-api-*.jar" ! -name "*plain*" | head -n1)
if [[ -z "$JAR_PATH" ]]; then
msg_error "Backend JAR not found"
exit 1
fi
cp "$JAR_PATH" /opt/booklore/dist/app.jar
msg_ok "Built Backend"
msg_info "Starting $APP"
systemctl start booklore
systemctl reload nginx
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
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}:6060${CL}"

View File

@@ -52,6 +52,7 @@ function update_script() {
$STD /opt/browserless/node_modules/playwright-core/cli.js install --with-deps $STD /opt/browserless/node_modules/playwright-core/cli.js install --with-deps
# Update Chrome separately, as it has to be done with the force option. Otherwise the installation of other browsers will not be done if Chrome is already installed. # Update Chrome separately, as it has to be done with the force option. Otherwise the installation of other browsers will not be done if Chrome is already installed.
$STD /opt/browserless/node_modules/playwright-core/cli.js install --force chrome $STD /opt/browserless/node_modules/playwright-core/cli.js install --force chrome
$STD /opt/browserless/node_modules/playwright-core/cli.js install --force msedge
$STD /opt/browserless/node_modules/playwright-core/cli.js install chromium firefox webkit $STD /opt/browserless/node_modules/playwright-core/cli.js install chromium firefox webkit
$STD npm run build --prefix /opt/browserless $STD npm run build --prefix /opt/browserless
$STD npm run build:function --prefix /opt/browserless $STD npm run build:function --prefix /opt/browserless
@@ -74,4 +75,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"

View File

@@ -7,8 +7,8 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="Cloudflare-DDNS" APP="Cloudflare-DDNS"
var_tags="${var_tags:-network}" var_tags="${var_tags:-network}"
var_cpu="${var_cpu:-1}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-512}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-3}" var_disk="${var_disk:-3}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-12}"

70
ct/convertx.sh Normal file
View File

@@ -0,0 +1,70 @@
#!/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: Omar Minaya | MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/C4illin/ConvertX
APP="ConvertX"
var_tags="${var_tags:-converter}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-20}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var ]]; then
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
msg_info "Stopping $APP"
systemctl stop convertx
msg_ok "Stopped $APP"
msg_info "Move data-Folder"
if [[ -d /opt/convertx/data ]]; then
mv /opt/convertx/data /opt/data
fi
msg_ok "Moved data-Folder"
fetch_and_deploy_gh_release "ConvertX" "C4illin/ConvertX" "tarball" "latest" "/opt/convertx"
msg_info "Updating $APP to v${RELEASE}"
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_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}"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -8,8 +8,8 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="Docmost" APP="Docmost"
var_tags="${var_tags:-documents}" var_tags="${var_tags:-documents}"
var_cpu="${var_cpu:-3}" var_cpu="${var_cpu:-3}"
var_ram="${var_ram:-3072}" var_ram="${var_ram:-4096}"
var_disk="${var_disk:-7}" var_disk="${var_disk:-8}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-12}"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}" var_disk="${var_disk:-8}"
var_os="${var_os:-ubuntu}" var_os="${var_os:-ubuntu}"
var_version="${var_version:-22.04}" var_version="${var_version:-24.04}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -25,22 +25,57 @@ function update_script() {
check_container_resources check_container_resources
if [[ ! -f /etc/systemd/system/esphomeDashboard.service ]]; then if [[ ! -f /etc/systemd/system/esphomeDashboard.service ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit 1
fi fi
msg_info "Stopping ESPHome"
msg_info "Stopping ${APP}"
systemctl stop esphomeDashboard systemctl stop esphomeDashboard
msg_ok "Stopped ESPHome" msg_ok "Stopped ${APP}"
msg_info "Updating ESPHome" VENV_PATH="/opt/esphome/.venv"
if [[ -d /srv/esphome ]]; then ESPHOME_BIN="${VENV_PATH}/bin/esphome"
$STD source /srv/esphome/bin/activate export PYTHON_VERSION="3.12"
if [[ ! -d "$VENV_PATH" || ! -x "$ESPHOME_BIN" ]]; then
PYTHON_VERSION="3.12" setup_uv
msg_info "Migrating to uv/venv"
rm -rf "$VENV_PATH"
mkdir -p /opt/esphome
cd /opt/esphome
$STD uv venv "$VENV_PATH"
$STD "$VENV_PATH/bin/python" -m ensurepip --upgrade
$STD "$VENV_PATH/bin/python" -m pip install --upgrade pip
$STD "$VENV_PATH/bin/python" -m pip install esphome tornado esptool
msg_ok "Migrated to uv/venv"
else
msg_info "Updating ESPHome"
PYTHON_VERSION="3.12" setup_uv
$STD "$VENV_PATH/bin/python" -m pip install --upgrade esphome tornado esptool
msg_ok "Updated ESPHome"
fi fi
$STD pip3 install -U esphome SERVICE_FILE="/etc/systemd/system/esphomeDashboard.service"
msg_ok "Updated ESPHome" if ! grep -q "${VENV_PATH}/bin/esphome" "$SERVICE_FILE"; then
msg_info "Updating systemd service"
cat <<EOF >"$SERVICE_FILE"
[Unit]
Description=ESPHome Dashboard
After=network.target
msg_info "Starting ESPHome" [Service]
ExecStart=${VENV_PATH}/bin/esphome dashboard /root/config/
Restart=always
User=root
[Install]
WantedBy=multi-user.target
EOF
$STD systemctl daemon-reload
msg_ok "Updated systemd service"
fi
msg_info "Starting ${APP}"
systemctl start esphomeDashboard systemctl start esphomeDashboard
msg_ok "Started ESPHome" msg_ok "Started ${APP}"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
exit exit
} }
@@ -52,4 +87,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6052${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6052${CL}"

View File

@@ -29,10 +29,11 @@ function update_script() {
fi fi
RELEASE=$(curl -fsSL https://github.com/go-gitea/gitea/releases/latest | grep "title>Release" | cut -d " " -f 4 | sed 's/^v//') RELEASE=$(curl -fsSL https://github.com/go-gitea/gitea/releases/latest | grep "title>Release" | cut -d " " -f 4 | sed 's/^v//')
msg_info "Updating $APP to ${RELEASE}" msg_info "Updating $APP to ${RELEASE}"
curl -fsSL "https://github.com/go-gitea/gitea/releases/download/v$RELEASE/gitea-$RELEASE-linux-amd64" -o $(basename "https://github.com/go-gitea/gitea/releases/download/v$RELEASE/gitea-$RELEASE-linux-amd64") FILENAME="gitea-$RELEASE-linux-amd64"
curl -fsSL "https://github.com/go-gitea/gitea/releases/download/v$RELEASE/gitea-$RELEASE-linux-amd64" -o $FILENAME
systemctl stop gitea systemctl stop gitea
rm -rf /usr/local/bin/gitea rm -rf /usr/local/bin/gitea
mv gitea* /usr/local/bin/gitea mv $FILENAME /usr/local/bin/gitea
chmod +x /usr/local/bin/gitea chmod +x /usr/local/bin/gitea
systemctl start gitea systemctl start gitea
msg_ok "Updated $APP Successfully" msg_ok "Updated $APP Successfully"

View File

@@ -45,6 +45,9 @@ function update_script() {
msg_ok "Stopped $APP" msg_ok "Stopped $APP"
msg_info "Updating $APP to ${RELEASE}" msg_info "Updating $APP to ${RELEASE}"
if ! command -v git >/dev/null 2>&1; then
$STD apt-get install -y git
fi
rm -f /opt/gomft/gomft rm -f /opt/gomft/gomft
temp_file=$(mktemp) temp_file=$(mktemp)
curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file" curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
@@ -53,6 +56,43 @@ function update_script() {
cd /opt/gomft cd /opt/gomft
$STD npm install $STD npm install
$STD npm run build $STD npm run build
TEMPL_VERSION="$(awk '/github.com\/a-h\/templ/{print $2}' go.mod)"
$STD go install github.com/a-h/templ/cmd/templ@${TEMPL_VERSION}
# dirty hack to fix templ
cat <<'EOF' >/opt/gomft/components/file_metadata/search/file_metadata_search_content.templ
package search
import (
"context"
"github.com/starfleetcptn/gomft/components/file_metadata"
"github.com/starfleetcptn/gomft/components/file_metadata/list"
)
templ FileMetadataSearchContent(ctx context.Context, data file_metadata.FileMetadataSearchData) {
<!-- Search Results -->
<div id="search-results">
if len(data.Files) > 0 {
@list.FileMetadataListPartial(ctx, file_metadata.FileMetadataListData{
Files: data.Files,
Page: data.Page,
Limit: data.Limit,
TotalCount: data.TotalCount,
TotalPages: data.TotalPages,
Filter: data.Filter,
SortBy: data.SortBy,
SortDir: data.SortDir,
}, "/files/search/partial", "#search-results-container")
} else {
<div class="p-6 text-center text-gray-500 dark:text-gray-400">
<svg class="mx-auto mb-4 w-12 h-12 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" />
</svg>
<p>No files found matching your search criteria.</p>
</div>
}
</div>
}
EOF
$STD "$HOME"/go/bin/templ generate $STD "$HOME"/go/bin/templ generate
export CGO_ENABLED=1 export CGO_ENABLED=1
export GOOS=linux export GOOS=linux

View File

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

View File

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

6
ct/headers/booklore Normal file
View File

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

6
ct/headers/convertx Normal file
View File

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

6
ct/headers/itsm-ng Normal file
View File

@@ -0,0 +1,6 @@
_______________ __ ___ _ ________
/ _/_ __/ ___// |/ / / | / / ____/
/ / / / \__ \/ /|_/ /_____/ |/ / / __
_/ / / / ___/ / / / /_____/ /| / /_/ /
/___/ /_/ /____/_/ /_/ /_/ |_/\____/

6
ct/headers/kapowarr Normal file
View File

@@ -0,0 +1,6 @@
__ __
/ //_/___ _____ ____ _ ______ ___________
/ ,< / __ `/ __ \/ __ \ | /| / / __ `/ ___/ ___/
/ /| / /_/ / /_/ / /_/ / |/ |/ / /_/ / / / /
/_/ |_\__,_/ .___/\____/|__/|__/\__,_/_/ /_/
/_/

View File

@@ -0,0 +1,6 @@
__ _ __ __ ____ __
/ / (_) /_ ________ _________ ___ ___ ____/ / / __ \__ _______/ /_
/ / / / __ \/ ___/ _ \/ ___/ __ \/ _ \/ _ \/ __ /_____/ /_/ / / / / ___/ __/
/ /___/ / /_/ / / / __(__ ) /_/ / __/ __/ /_/ /_____/ _, _/ /_/ (__ ) /_
/_____/_/_.___/_/ \___/____/ .___/\___/\___/\__,_/ /_/ |_|\__,_/____/\__/
/_/

6
ct/headers/onlyoffice Normal file
View File

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

View File

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

View File

@@ -48,6 +48,7 @@ source /opt/homarr/.env
set +a set +a
export DB_DIALECT='sqlite' export DB_DIALECT='sqlite'
export AUTH_SECRET=$(openssl rand -base64 32) export AUTH_SECRET=$(openssl rand -base64 32)
export CRON_JOB_API_KEY=$(openssl rand -base64 32)
node /opt/homarr_db/migrations/$DB_DIALECT/migrate.cjs /opt/homarr_db/migrations/$DB_DIALECT node /opt/homarr_db/migrations/$DB_DIALECT/migrate.cjs /opt/homarr_db/migrations/$DB_DIALECT
for dir in $(find /opt/homarr_db/migrations/migrations -mindepth 1 -maxdepth 1 -type d); do for dir in $(find /opt/homarr_db/migrations/migrations -mindepth 1 -maxdepth 1 -type d); do
dirname=$(basename "$dir") dirname=$(basename "$dir")
@@ -114,6 +115,7 @@ source /opt/homarr/.env
set +a set +a
export DB_DIALECT='sqlite' export DB_DIALECT='sqlite'
export AUTH_SECRET=$(openssl rand -base64 32) export AUTH_SECRET=$(openssl rand -base64 32)
export CRON_JOB_API_KEY=$(openssl rand -base64 32)
node /opt/homarr_db/migrations/$DB_DIALECT/migrate.cjs /opt/homarr_db/migrations/$DB_DIALECT node /opt/homarr_db/migrations/$DB_DIALECT/migrate.cjs /opt/homarr_db/migrations/$DB_DIALECT
for dir in $(find /opt/homarr_db/migrations/migrations -mindepth 1 -maxdepth 1 -type d); do for dir in $(find /opt/homarr_db/migrations/migrations -mindepth 1 -maxdepth 1 -type d); do
dirname=$(basename "$dir") dirname=$(basename "$dir")

View File

@@ -40,10 +40,10 @@ function update_script() {
msg_ok "Stopped huntarr service" msg_ok "Stopped huntarr service"
fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io" fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io"
msg_info "Updating $APP to v${RELEASE}" msg_info "Configuring $APP"
cd /opt/huntarr cd /opt/huntarr
$STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python $STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python
msg_ok "Updated $APP to v${RELEASE}" msg_ok "Configured $APP"
msg_info "Starting $APP" msg_info "Starting $APP"
systemctl start huntarr systemctl start huntarr

View File

@@ -181,113 +181,114 @@ function update_script() {
fi fi
fi fi
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) }') 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 [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then if [[ -f ~/.immich && "$RELEASE" == "$(cat ~/.immich)" ]]; then
msg_info "Stopping ${APP} services" msg_ok "No update required. ${APP} is already at v${RELEASE}"
systemctl stop immich-web exit
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="$(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
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 DATABASE;"
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"
rm -rf "${APP_DIR:?}"/*
rm -rf "$SRC_DIR"
immich_zip=$(mktemp)
curl -fsSL "https://github.com/immich-app/immich/archive/refs/tags/v${RELEASE}.zip" -o "$immich_zip"
msg_info "Updating ${APP} web and microservices"
unzip -q "$immich_zip"
mv "$APP-$RELEASE"/ "$SRC_DIR"
mkdir -p "$ML_DIR"
cd "$SRC_DIR"/server
$STD npm install -g node-gyp node-pre-gyp
$STD npm ci
$STD npm run build
$STD npm prune --omit=dev --omit=optional
cd "$SRC_DIR"/open-api/typescript-sdk
$STD npm ci
$STD npm run build
cd "$SRC_DIR"/web
$STD npm ci
$STD npm run build
cd "$SRC_DIR"
cp -a server/{node_modules,dist,bin,resources,package.json,package-lock.json,start*.sh} "$APP_DIR"/
cp -a web/build "$APP_DIR"/www
cp LICENSE "$APP_DIR"
msg_ok "Updated ${APP} web and microservices"
cd "$SRC_DIR"/machine-learning
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"
msg_info "Updating Immich CLI"
$STD npm install --build-from-source sharp
rm -rf "$APP_DIR"/node_modules/@img/sharp-{libvips*,linuxmusl-x64}
$STD npm i -g @immich/cli
msg_ok "Updated Immich CLI"
chown -R immich:immich "$INSTALL_DIR"
echo "$RELEASE" >/opt/"${APP}"_version.txt
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Cleaning up"
rm -f "$immich_zip"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
else
msg_ok "${APP} is already at v${RELEASE}"
fi 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="$(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
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 DATABASE;"
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"
rm -rf "${APP_DIR:?}"/*
mkdir -p "$ML_DIR"
rm -rf "$SRC_DIR"
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "latest" "$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
$STD npm install -g node-gyp node-pre-gyp
$STD npm ci
$STD npm run build
$STD npm prune --omit=dev --omit=optional
cd "$SRC_DIR"/open-api/typescript-sdk
$STD npm ci
$STD npm run build
cd "$SRC_DIR"/web
$STD npm ci
$STD npm run build
cd "$SRC_DIR"
cp -a server/{node_modules,dist,bin,resources,package.json,package-lock.json,start*.sh} "$APP_DIR"/
cp -a web/build "$APP_DIR"/www
cp LICENSE "$APP_DIR"
msg_ok "Updated ${APP} web and microservices"
cd "$SRC_DIR"/machine-learning
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"
msg_info "Updating Immich CLI"
$STD npm install --build-from-source sharp
rm -rf "$APP_DIR"/node_modules/@img/sharp-{libvips*,linuxmusl-x64}
$STD npm i -g @immich/cli
msg_ok "Updated Immich CLI"
chown -R immich:immich "$INSTALL_DIR"
echo "$RELEASE" >/opt/"${APP}"_version.txt
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 systemctl restart immich-ml immich-web
exit exit
} }

47
ct/itsm-ng.sh Normal file
View File

@@ -0,0 +1,47 @@
#!/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: Florianb63
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://itsm-ng.com/
APP="ITSM-NG"
var_tags="${var_tags:-asset-management;foss}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/itsm-ng/config_db.php ]]; then
msg_error "No ${APP} Installation Found!"
exit 1
fi
msg_info "Updating ${APP} LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated Successfully"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}" var_disk="${var_disk:-8}"
var_os="${var_os:-ubuntu}" var_os="${var_os:-ubuntu}"
var_version="${var_version:-22.04}" var_version="${var_version:-24.04}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -20,19 +20,19 @@ color
catch_errors catch_errors
function update_script() { function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /usr/lib/jellyfin ]]; then if [[ ! -d /usr/lib/jellyfin ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
msg_info "Updating ${APP} LXC" msg_info "Updating ${APP} LXC"
$STD apt-get update $STD apt-get update
$STD apt-get -y upgrade $STD apt-get -y upgrade
$STD apt-get -y --with-new-pkgs upgrade jellyfin jellyfin-server $STD apt-get -y --with-new-pkgs upgrade jellyfin jellyfin-server
msg_ok "Updated ${APP} LXC" msg_ok "Updated ${APP} LXC"
exit exit
} }
start start
@@ -42,4 +42,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8096${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8096${CL}"

View File

@@ -70,6 +70,7 @@ function update_script() {
systemctl stop jellyseerr systemctl stop jellyseerr
rm -rf dist .next node_modules rm -rf dist .next node_modules
export CYPRESS_INSTALL_BINARY=0 export CYPRESS_INSTALL_BINARY=0
cd /opt/jellyseerr
$STD pnpm install --frozen-lockfile $STD pnpm install --frozen-lockfile
export NODE_OPTIONS="--max-old-space-size=3072" export NODE_OPTIONS="--max-old-space-size=3072"
$STD pnpm build $STD pnpm build

View File

@@ -20,16 +20,53 @@ color
catch_errors catch_errors
function update_script() { function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
msg_info "Updating ${APP} LXC" INSTALL_DIR="/opt/jupyter"
$STD apt-get update VENV_PYTHON="${INSTALL_DIR}/.venv/bin/python"
$STD apt-get install -y upgrade VENV_JUPYTER="${INSTALL_DIR}/.venv/bin/jupyter"
$STD pip3 install jupyter --upgrade SERVICE_FILE="/etc/systemd/system/jupyternotebook.service"
msg_ok "Updated Successfully"
exit if [[ ! -x "$VENV_JUPYTER" ]]; then
msg_info "Migrating to uv venv"
PYTHON_VERSION="3.12" setup_uv
mkdir -p "$INSTALL_DIR"
cd "$INSTALL_DIR"
$STD uv venv .venv
$STD "$VENV_PYTHON" -m ensurepip --upgrade
$STD "$VENV_PYTHON" -m pip install --upgrade pip
$STD "$VENV_PYTHON" -m pip install jupyter
msg_ok "Migrated to uv and installed Jupyter"
else
msg_info "Updating Jupyter"
$STD "$VENV_PYTHON" -m pip install --upgrade pip
$STD "$VENV_PYTHON" -m pip install --upgrade jupyter
msg_ok "Jupyter updated"
fi
if [[ -f "$SERVICE_FILE" && "$(grep ExecStart "$SERVICE_FILE")" != *".venv/bin/jupyter"* ]]; then
msg_info "Updating systemd service to use .venv"
cat <<EOF >"$SERVICE_FILE"
[Unit]
Description=Jupyter Notebook Server
After=network.target
[Service]
Type=simple
WorkingDirectory=${INSTALL_DIR}
ExecStart=${VENV_JUPYTER} notebook --ip=0.0.0.0 --port=8888 --allow-root
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reexec
systemctl restart jupyternotebook
msg_ok "Service updated and restarted"
fi
exit
} }
start start
@@ -39,4 +76,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8888${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8888${CL}"

66
ct/kapowarr.sh Normal file
View File

@@ -0,0 +1,66 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Casvt/Kapowarr
APP="Kapowarr"
var_tags="${var_tags:-Arr}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}"
var_disk="${var_disk:-2}"
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 [[ ! -f /etc/systemd/system/kapowarr.service ]]; then
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
msg_info "Stopping $APP"
systemctl stop kapowarr
msg_ok "Stopped $APP"
msg_info "Creating Backup"
mv /opt/kapowarr/db /opt/
msg_ok "Backup Created"
fetch_and_deploy_gh_release "kapowarr" "Casvt/Kapowarr"
msg_info "Updating $APP to ${RELEASE}"
mv /opt/db /opt/kapowarr
msg_ok "Updated $APP to ${RELEASE}"
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
}
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}:5656${CL}"

54
ct/librespeed-rust.sh Normal file
View File

@@ -0,0 +1,54 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Joseph Stubberfield (stubbers)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/librespeed/speedtest-rust
APP="Librespeed-Rust"
var_tags="${var_tags:-network}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var/lib/librespeed-rs ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/librespeed/speedtest-rust/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "v([^"]+).*/\1/')
if [[ "${RELEASE}" != "$(cat ~/.librespeed 2>/dev/null)" ]] || [[ ! -f ~/.librespeed ]]; then
msg_info "Stopping Services"
systemctl stop librespeed-rs
msg_ok "Services Stopped"
fetch_and_deploy_gh_release "librespeed-rust" "librespeed/speedtest-rust" "binary" "latest" "/opt/librespeed-rust" "librespeed-rs-x86_64-unknown-linux-gnu.deb"
msg_info "Starting Service"
systemctl start librespeed-rs
msg_ok "Started Service"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

View File

@@ -37,6 +37,7 @@ function update_script() {
msg_info "Updating ${APP} to ${RELEASE}" msg_info "Updating ${APP} to ${RELEASE}"
mv /opt/linkwarden/.env /opt/.env mv /opt/linkwarden/.env /opt/.env
[ -d /opt/linkwarden/data ] && mv /opt/linkwarden/data /opt/data.bak
rm -rf /opt/linkwarden rm -rf /opt/linkwarden
fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden" fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden"
cd /opt/linkwarden cd /opt/linkwarden
@@ -47,6 +48,7 @@ function update_script() {
$STD yarn prisma:generate $STD yarn prisma:generate
$STD yarn web:build $STD yarn web:build
$STD yarn prisma:deploy $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} to ${RELEASE}"
msg_info "Starting ${APP}" msg_info "Starting ${APP}"

View File

@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="MeTube" APP="MeTube"
var_tags="${var_tags:-media;youtube}" var_tags="${var_tags:-media;youtube}"
var_cpu="${var_cpu:-1}" var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}" var_disk="${var_disk:-10}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-12}"
@@ -23,40 +23,97 @@ function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /opt/metube ]]; then if [[ ! -d /opt/metube ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
msg_info "Stopping ${APP} Service" msg_info "Stopping ${APP} Service"
systemctl stop metube systemctl stop metube
msg_ok "Stopped ${APP} Service" msg_ok "Stopped ${APP} Service"
msg_info "Updating ${APP} to latest Git" msg_info "Backing up Old Installation"
cd /opt if [[ -d /opt/metube_bak ]]; then
if [ -d metube_bak ]; then rm -rf /opt/metube_bak
rm -rf metube_bak
fi fi
mv metube metube_bak mv /opt/metube /opt/metube_bak
msg_ok "Backup created"
msg_info "Cloning Latest ${APP} Release"
$STD git clone https://github.com/alexta69/metube /opt/metube $STD git clone https://github.com/alexta69/metube /opt/metube
msg_ok "Cloned ${APP}"
msg_info "Building Frontend"
cd /opt/metube/ui cd /opt/metube/ui
$STD npm install $STD npm install
$STD node_modules/.bin/ng build $STD node_modules/.bin/ng build
cd /opt/metube msg_ok "Built Frontend"
cp /opt/metube_bak/.env /opt/metube/
$STD pip3 install pipenv
$STD pipenv install
if [ -d "/opt/metube_bak" ]; then PYTHON_VERSION="3.13" setup_uv
rm -rf /opt/metube_bak
msg_info "Setting up Python Environment (uv)"
$STD uv venv /opt/metube/.venv
$STD /opt/metube/.venv/bin/python -m ensurepip --upgrade
$STD /opt/metube/.venv/bin/python -m pip install --upgrade pip
$STD /opt/metube/.venv/bin/python -m pip install pipenv
msg_ok "Python Environment Ready"
msg_info "Installing Backend Requirements"
cd /opt/metube
$STD /opt/metube/.venv/bin/pipenv install
msg_ok "Installed Backend"
msg_info "Restoring Environment File"
if [[ -f /opt/metube_bak/.env ]]; then
cp /opt/metube_bak/.env /opt/metube/.env
fi fi
msg_ok "Updated ${APP} to latest Git" msg_ok "Restored .env"
if [[ ! -d /opt/metube/.venv ]]; then
msg_info "Migrating to uv-based environment"
PYTHON_VERSION="3.13" setup_uv
$STD uv venv /opt/metube/.venv
$STD /opt/metube/.venv/bin/python -m ensurepip --upgrade
$STD /opt/metube/.venv/bin/python -m pip install --upgrade pip
$STD /opt/metube/.venv/bin/python -m pip install pipenv
$STD /opt/metube/.venv/bin/pipenv install
$STD /opt/metube/.venv/bin/pipenv update yt-dlp
msg_info "Patching systemd Service"
cat <<EOF >/etc/systemd/system/metube.service
[Unit]
Description=Metube - YouTube Downloader
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/metube
EnvironmentFile=/opt/metube/.env
ExecStart=/opt/metube/.venv/bin/pipenv run python3 app/main.py
Restart=always
User=root
[Install]
WantedBy=multi-user.target
EOF
msg_ok "Patched systemd Service"
fi
$STD systemctl daemon-reload
msg_ok "Service Updated"
msg_info "Cleaning up"
rm -rf /opt/metube_bak
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned Up"
msg_info "Starting ${APP} Service" msg_info "Starting ${APP} Service"
systemctl start metube systemctl enable -q --now metube
sleep 1 sleep 1
msg_ok "Started ${APP} Service" msg_ok "Started ${APP} Service"
msg_ok "Updated Successfully!\n"
exit msg_ok "Updated Successfully!"
} }
start start
@@ -66,4 +123,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8081${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8081${CL}"

View File

@@ -27,16 +27,33 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
FEATURE_RICH_VERSION="2025-04-22T22-12-26Z"
RELEASE=$(curl -fsSL https://api.github.com/repos/minio/minio/releases/latest | grep '"tag_name"' | awk -F '"' '{print $4}') RELEASE=$(curl -fsSL https://api.github.com/repos/minio/minio/releases/latest | grep '"tag_name"' | awk -F '"' '{print $4}')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then CURRENT_VERSION=""
[[ -f /opt/${APP}_version.txt ]] && CURRENT_VERSION=$(cat /opt/${APP}_version.txt)
RELEASE=$(curl -fsSL https://api.github.com/repos/minio/minio/releases/latest | grep '"tag_name"' | awk -F '"' '{print $4}')
if [[ "${CURRENT_VERSION}" == "${FEATURE_RICH_VERSION}" && "${RELEASE}" != "${FEATURE_RICH_VERSION}" ]]; then
echo
echo "You are currently running the last feature-rich community version: ${FEATURE_RICH_VERSION}"
echo "WARNING: Updating to the latest version will REMOVE most management features from the Console UI."
echo "Do you still want to upgrade to the latest version? [y/N]: "
read -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
msg_ok "No update performed. Staying on the feature-rich version."
exit
fi
fi
if [[ "${CURRENT_VERSION}" != "${RELEASE}" ]]; then
msg_info "Stopping ${APP}" msg_info "Stopping ${APP}"
systemctl stop minio systemctl stop minio
msg_ok "${APP} Stopped" msg_ok "${APP} Stopped"
msg_info "Updating ${APP} to ${RELEASE}" msg_info "Updating ${APP} to ${RELEASE}"
mv /usr/local/bin/minio /usr/local/bin/minio_bak mv /usr/local/bin/minio /usr/local/bin/minio_bak
curl -fsSL "https://dl.min.io/server/minio/release/linux-amd64/minio" -o $(basename "https://dl.min.io/server/minio/release/linux-amd64/minio") curl -fsSL "https://dl.min.io/server/minio/release/linux-amd64/minio" -o /usr/local/bin/minio
mv minio /usr/local/bin/
chmod +x /usr/local/bin/minio chmod +x /usr/local/bin/minio
echo "${RELEASE}" >/opt/${APP}_version.txt echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}" msg_ok "Updated ${APP}"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}" var_ram="${var_ram:-512}"
var_disk="${var_disk:-3}" var_disk="${var_disk:-3}"
var_os="${var_os:-alpine}" var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}" var_version="${var_version:-3.22}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -38,6 +38,8 @@ function update_script() {
TMP_TAR=$(mktemp --suffix=.tgz) TMP_TAR=$(mktemp --suffix=.tgz)
curl -fL# -o "${TMP_TAR}" "https://github.com/ollama/ollama/releases/download/${RELEASE}/ollama-linux-amd64.tgz" curl -fL# -o "${TMP_TAR}" "https://github.com/ollama/ollama/releases/download/${RELEASE}/ollama-linux-amd64.tgz"
msg_info "Updating Ollama to ${RELEASE}" msg_info "Updating Ollama to ${RELEASE}"
rm -rf /usr/local/lib/ollama
rm -rf /usr/local/bin/ollama
tar -xzf "${TMP_TAR}" -C /usr/local/lib/ollama tar -xzf "${TMP_TAR}" -C /usr/local/lib/ollama
ln -sf /usr/local/lib/ollama/bin/ollama /usr/local/bin/ollama ln -sf /usr/local/lib/ollama/bin/ollama /usr/local/bin/ollama
echo "${RELEASE}" >/opt/Ollama_version.txt echo "${RELEASE}" >/opt/Ollama_version.txt

52
ct/onlyoffice.sh Normal file
View File

@@ -0,0 +1,52 @@
#!/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: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.onlyoffice.com/
APP="ONLYOFFICE"
var_tags="${var_tags:-word;excel;powerpoint;pdf}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var/www/onlyoffice ]]; then
msg_error "No valid ${APP} installation found!"
exit 1
fi
msg_info "Updating $APP"
$STD apt-get update
$STD apt-get -y --only-upgrade install onlyoffice-documentserver
msg_ok "Updated $APP"
if systemctl is-enabled --quiet onlyoffice-documentserver; then
msg_info "Restarting $APP"
$STD systemctl restart onlyoffice-documentserver
msg_ok "$APP restarted"
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}${CL}"

View File

@@ -33,6 +33,8 @@ function update_script() {
OLLAMA_VERSION=$(ollama -v | awk '{print $NF}') OLLAMA_VERSION=$(ollama -v | awk '{print $NF}')
RELEASE=$(curl -s https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}') RELEASE=$(curl -s https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
if [ "$OLLAMA_VERSION" != "$RELEASE" ]; then if [ "$OLLAMA_VERSION" != "$RELEASE" ]; then
rm -rf /usr/lib/ollama
rm -rf /usr/bin/ollama
curl -fsSLO https://ollama.com/download/ollama-linux-amd64.tgz curl -fsSLO https://ollama.com/download/ollama-linux-amd64.tgz
tar -C /usr -xzf ollama-linux-amd64.tgz tar -C /usr -xzf ollama-linux-amd64.tgz
rm -rf ollama-linux-amd64.tgz rm -rf ollama-linux-amd64.tgz

View File

@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Source: https://github.com/plankanban/planka # Source: https://github.com/plankanban/planka
APP="PLANKA" APP="PLANKA"
var_tags="${var_tags:-Arr}" var_tags="${var_tags:-Todo,kanban}"
var_cpu="${var_cpu:-1}" var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}" var_disk="${var_disk:-4}"
@@ -41,19 +41,19 @@ function update_script() {
mkdir -p /opt/planka-backup/background-images mkdir -p /opt/planka-backup/background-images
mkdir -p /opt/planka-backup/attachments mkdir -p /opt/planka-backup/attachments
mv /opt/planka/planka/.env /opt/planka-backup mv /opt/planka/planka/.env /opt/planka-backup
mv /opt/planka/planka/public/favicons/* /opt/planka-backup/favicons/ [ -n "$(ls -A /opt/planka/planka/public/favicons 2>/dev/null)" ] && mv /opt/planka/planka/public/favicons/* /opt/planka-backup/favicons/
mv /opt/planka/planka/public/user-avatars/* /opt/planka-backup/user-avatars/ [ -n "$(ls -A /opt/planka/planka/public/user-avatars 2>/dev/null)" ] && mv /opt/planka/planka/public/user-avatars/* /opt/planka-backup/user-avatars/
mv /opt/planka/planka/public/background-images/* /opt/planka-backup/background-images/ [ -n "$(ls -A /opt/planka/planka/public/background-images 2>/dev/null)" ] && mv /opt/planka/planka/public/background-images/* /opt/planka-backup/background-images/
mv /opt/planka/planka/private/attachments/* /opt/planka-backup/attachments/ [ -n "$(ls -A /opt/planka/planka/private/attachments 2>/dev/null)" ] && mv /opt/planka/planka/private/attachments/* /opt/planka-backup/attachments/
rm -rf /opt/planka rm -rf /opt/planka
fetch_and_deploy_gh_release "planka" "plankanban/planka" "prebuild" "latest" "/opt/planka" "planka-prebuild.zip" fetch_and_deploy_gh_release "planka" "plankanban/planka" "prebuild" "latest" "/opt/planka" "planka-prebuild.zip"
cd /opt/planka/planka cd /opt/planka/planka
$STD npm install $STD npm install
mv /opt/planka-backup/.env /opt/planka/planka/ mv /opt/planka-backup/.env /opt/planka/planka/
mv /opt/planka-backup/favicons/* /opt/planka/planka/public/favicons/ [ -n "$(ls -A /opt/planka-backup/favicons 2>/dev/null)" ] && mv /opt/planka-backup/favicons/* /opt/planka/planka/public/favicons/
mv /opt/planka-backup/user-avatars/* /opt/planka/planka/public/user-avatars/ [ -n "$(ls -A /opt/planka-backup/user-avatars 2>/dev/null)" ] && mv /opt/planka-backup/user-avatars/* /opt/planka/planka/public/user-avatars/
mv /opt/planka-backup/background-images/* /opt/planka/planka/public/background-images/ [ -n "$(ls -A /opt/planka-backup/background-images 2>/dev/null)" ] && mv /opt/planka-backup/background-images/* /opt/planka/planka/public/background-images/
mv /opt/planka-backup/attachments/* /opt/planka/planka/private/attachments/ [ -n "$(ls -A /opt/planka-backup/attachments 2>/dev/null)" ] && mv /opt/planka-backup/attachments/* /opt/planka/planka/private/attachments/
msg_ok "Updated $APP to ${RELEASE}" msg_ok "Updated $APP to ${RELEASE}"
msg_info "Starting $APP" msg_info "Starting $APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}" var_disk="${var_disk:-8}"
var_os="${var_os:-ubuntu}" var_os="${var_os:-ubuntu}"
var_version="${var_version:-22.04}" var_version="${var_version:-24.04}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -20,26 +20,69 @@ color
catch_errors catch_errors
function update_script() { function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -f /etc/systemd/system/prometheus-pve-exporter.service ]]; then if [[ ! -f /etc/systemd/system/prometheus-pve-exporter.service ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit 1
fi fi
msg_info "Stopping ${APP}"
systemctl stop prometheus-pve-exporter
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP}" msg_info "Stopping ${APP}"
$STD pip install prometheus-pve-exporter --default-timeout=300 --upgrade --root-user-action=ignore systemctl stop prometheus-pve-exporter
msg_ok "Updated ${APP}" msg_ok "Stopped ${APP}"
msg_info "Starting ${APP}" export PVE_VENV_PATH="/opt/prometheus-pve-exporter/.venv"
systemctl start prometheus-pve-exporter export PVE_EXPORTER_BIN="${PVE_VENV_PATH}/bin/pve_exporter"
msg_ok "Started ${APP}"
msg_ok "Updated Successfully" if [[ ! -d "$PVE_VENV_PATH" || ! -x "$PVE_EXPORTER_BIN" ]]; then
exit PYTHON_VERSION="3.12" setup_uv
msg_info "Migrating to uv/venv"
rm -rf "$PVE_VENV_PATH"
mkdir -p /opt/prometheus-pve-exporter
cd /opt/prometheus-pve-exporter
$STD uv venv "$PVE_VENV_PATH"
$STD "$PVE_VENV_PATH/bin/python" -m ensurepip --upgrade
$STD "$PVE_VENV_PATH/bin/python" -m pip install --upgrade pip
$STD "$PVE_VENV_PATH/bin/python" -m pip install prometheus-pve-exporter
msg_ok "Migrated to uv/venv"
else
msg_info "Updating Prometheus Proxmox VE Exporter"
PYTHON_VERSION="3.12" setup_uv
$STD "$PVE_VENV_PATH/bin/python" -m pip install --upgrade prometheus-pve-exporter
msg_ok "Updated Prometheus Proxmox VE Exporter"
fi
local service_file="/etc/systemd/system/prometheus-pve-exporter.service"
if ! grep -q "${PVE_VENV_PATH}/bin/pve_exporter" "$service_file"; then
msg_info "Updating systemd service"
cat <<EOF >"$service_file"
[Unit]
Description=Prometheus Proxmox VE Exporter
Documentation=https://github.com/znerol/prometheus-pve-exporter
After=syslog.target network.target
[Service]
User=root
Restart=always
Type=simple
ExecStart=${PVE_VENV_PATH}/bin/pve_exporter \\
--config.file=/opt/prometheus-pve-exporter/pve.yml \\
--web.listen-address=0.0.0.0:9221
ExecReload=/bin/kill -HUP \$MAINPID
[Install]
WantedBy=multi-user.target
EOF
$STD systemctl daemon-reload
msg_ok "Updated systemd service"
fi
msg_info "Starting ${APP}"
systemctl start prometheus-pve-exporter
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
exit 0
} }
start start
@@ -49,4 +92,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9221${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9221${CL}"

View File

@@ -31,7 +31,7 @@ function update_script() {
touch /opt/${APP}_version.txt touch /opt/${APP}_version.txt
mkdir -p $HOME/.config/qBittorrent/ mkdir -p $HOME/.config/qBittorrent/
mkdir -p /opt/qbittorrent/ mkdir -p /opt/qbittorrent/
mv /.config/qBittorrent $HOME/.config/ [ -d "/.config/qBittorrent" ] && mv /.config/qBittorrent "$HOME/.config/"
$STD apt-get remove --purge -y qbittorrent-nox $STD apt-get remove --purge -y qbittorrent-nox
sed -i 's@ExecStart=/usr/bin/qbittorrent-nox@ExecStart=/opt/qbittorrent/qbittorrent-nox@g' /etc/systemd/system/qbittorrent-nox.service sed -i 's@ExecStart=/usr/bin/qbittorrent-nox@ExecStart=/opt/qbittorrent/qbittorrent-nox@g' /etc/systemd/system/qbittorrent-nox.service
systemctl daemon-reload systemctl daemon-reload
@@ -67,4 +67,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}" var_disk="${var_disk:-8}"
var_os="${var_os:-ubuntu}" var_os="${var_os:-ubuntu}"
var_version="${var_version:-22.04}" var_version="${var_version:-24.04}"
var_unprivileged="${var_unprivileged:-0}" var_unprivileged="${var_unprivileged:-0}"
header_info "$APP" header_info "$APP"
@@ -44,4 +44,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/super${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/super${CL}"

View File

@@ -3,9 +3,9 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://triliumnext.github.io/Docs/ # Source: https://github.com/TriliumNext/Trilium
APP="Trilium" APP="Trilium Notes"
var_tags="${var_tags:-notes}" var_tags="${var_tags:-notes}"
var_cpu="${var_cpu:-1}" var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}" var_ram="${var_ram:-512}"
@@ -27,57 +27,52 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
if [[ ! -f /opt/${APP}_version.txt ]]; then touch /opt/${APP}_version.txt; fi RELEASE=$(curl -fsSL https://api.github.com/repos/TriliumNext/Trilium/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
RELEASE=$(curl -fsSL https://api.github.com/repos/TriliumNext/Notes/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') if [[ "${RELEASE}" != "$(cat ~/.Trilium 2>/dev/null)" ]] || [[ ! -f ~/.Trilium ]]; then
if [[ "v${RELEASE}" != "$(cat /opt/${APP}_version.txt 2>/dev/null)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
if [[ -d /opt/trilium/db ]]; then
if [[ -d /opt/trilium/db ]]; then DB_PATH="/opt/trilium/db"
DB_PATH="/opt/trilium/db" DB_RESTORE_PATH="/opt/trilium/db"
DB_RESTORE_PATH="/opt/trilium/db" elif [[ -d /opt/trilium/assets/db ]]; then
elif [[ -d /opt/trilium/assets/db ]]; then DB_PATH="/opt/trilium/assets/db"
DB_PATH="/opt/trilium/assets/db" DB_RESTORE_PATH="/opt/trilium/assets/db"
DB_RESTORE_PATH="/opt/trilium/assets/db" else
msg_error "Database not found in either /opt/trilium/db or /opt/trilium/assets/db"
exit 1
fi
msg_info "Stopping ${APP}"
systemctl stop trilium
sleep 1
msg_ok "Stopped ${APP}"
msg_info "Backing up Database"
mkdir -p /opt/trilium_backup
cp -r "${DB_PATH}" /opt/trilium_backup/
rm -rf /opt/trilium
msg_ok "Backed up Database"
fetch_and_deploy_gh_release "Trilium" "TriliumNext/Trilium" "prebuild" "latest" "/opt/trilium" "TriliumNotes-Server-*linux-x64.tar.xz"
msg_info "Restoring Database"
mkdir -p "$(dirname "${DB_RESTORE_PATH}")"
cp -r /opt/trilium_backup/$(basename "${DB_PATH}") "${DB_RESTORE_PATH}"
msg_ok "Restored Database"
msg_info "Cleaning up"
rm -rf /opt/trilium_backup
msg_ok "Cleaned"
msg_info "Starting ${APP}"
systemctl start trilium
sleep 1
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else else
msg_error "Database not found in either /opt/trilium/db or /opt/trilium/assets/db" msg_ok "No update required. ${APP} is already at ${RELEASE}"
exit 1
fi fi
msg_info "Stopping ${APP}" exit
systemctl stop trilium
sleep 1
msg_ok "Stopped ${APP}"
msg_info "Updating to ${RELEASE}"
mkdir -p /opt/trilium_backup
cp -r "${DB_PATH}" /opt/trilium_backup/
rm -rf /opt/trilium
cd /tmp
curl -fsSL "https://github.com/TriliumNext/Notes/releases/download/v${RELEASE}/TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz" -o "TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz"
tar -xf "TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz"
mv "TriliumNextNotes-Server-${RELEASE}-linux-x64" /opt/trilium
# Restore database
mkdir -p "$(dirname "${DB_RESTORE_PATH}")"
cp -r /opt/trilium_backup/$(basename "${DB_PATH}") "${DB_RESTORE_PATH}"
echo "v${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated to ${RELEASE}"
msg_info "Cleaning up"
rm -rf "/tmp/TriliumNextNotes-Server-${RELEASE}-linux-x64.tar.xz"
rm -rf /opt/trilium_backup
msg_ok "Cleaned"
msg_info "Starting ${APP}"
systemctl start trilium
sleep 1
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
} }
start start

View File

@@ -60,7 +60,6 @@ function update_script() {
msg_info "Cleaning Up" msg_info "Cleaning Up"
rm -rf "$BACKUP_FILE" rm -rf "$BACKUP_FILE"
rm /tmp/"$RELEASE".zip
msg_ok "Cleanup Completed" msg_ok "Cleanup Completed"
msg_ok "Update Successful" msg_ok "Update Successful"
else else

View File

@@ -20,18 +20,24 @@ color
catch_errors catch_errors
function update_script() { function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -f /etc/apt/trusted.gpg.d/php.gpg ]]; then if [[ ! -f /etc/apt/trusted.gpg.d/php.gpg ]]; then
msg_error "No ${APP} Installation Found!" 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 exit
fi
msg_info "Updating OS"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated OS"
msg_info "Updating $APP LXC"
$STD yunohost tools update
$STD yunohost tools upgrade system
$STD yunohost tools upgrade apps
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -41,4 +47,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

@@ -9,7 +9,7 @@ APP="Zigbee2MQTT"
var_tags="${var_tags:-smarthome;zigbee;mqtt}" var_tags="${var_tags:-smarthome;zigbee;mqtt}"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}" var_disk="${var_disk:-5}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-0}" var_unprivileged="${var_unprivileged:-0}"
@@ -27,16 +27,28 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
if [[ -f ~/.zigbee2mqtt ]]; then
CURRENT="$(cat ~/.zigbee2mqtt)"
elif [[ -f /opt/${APP}_version.txt ]]; then
CURRENT="$(cat /opt/${APP}_version.txt)"
rm -f /opt/${APP}_version.txt
else
CURRENT=""
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Koenkk/zigbee2mqtt/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') RELEASE=$(curl -fsSL https://api.github.com/repos/Koenkk/zigbee2mqtt/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then if [[ "$RELEASE" != "$CURRENT" ]]; then
if ! command -v jq &>/dev/null; then
$STD apt-get update
$STD apt-get install -y jq
fi
NODE_VERSION=24 NODE_MODULE="pnpm@$(curl -fsSL https://raw.githubusercontent.com/Koenkk/zigbee2mqtt/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
msg_info "Stopping Service" msg_info "Stopping Service"
systemctl stop zigbee2mqtt systemctl stop zigbee2mqtt
msg_ok "Stopped Service" msg_ok "Stopped Service"
msg_info "Updating pnpm"
$STD npm install -g pnpm@10.4.1
msg_ok "Updated pnpm"
msg_info "Creating Backup" msg_info "Creating Backup"
rm -rf /opt/${APP}_backup*.tar.gz rm -rf /opt/${APP}_backup*.tar.gz
mkdir -p /opt/z2m_backup mkdir -p /opt/z2m_backup
@@ -44,12 +56,9 @@ function update_script() {
mv /opt/zigbee2mqtt/data /opt/z2m_backup mv /opt/zigbee2mqtt/data /opt/z2m_backup
msg_ok "Backup Created" msg_ok "Backup Created"
fetch_and_deploy_gh_release "Zigbee2MQTT" "Koenkk/zigbee2mqtt" "tarball" "latest" "/opt/zigbee2mqtt"
msg_info "Updating ${APP} to v${RELEASE}" msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
curl -fsSL "https://github.com/Koenkk/zigbee2mqtt/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/Koenkk/zigbee2mqtt/archive/refs/tags/${RELEASE}.zip")
$STD unzip ${RELEASE}.zip
rm -rf /opt/zigbee2mqtt
mv zigbee2mqtt-${RELEASE} /opt/zigbee2mqtt
rm -rf /opt/zigbee2mqtt/data rm -rf /opt/zigbee2mqtt/data
mv /opt/z2m_backup/data /opt/zigbee2mqtt mv /opt/z2m_backup/data /opt/zigbee2mqtt
cd /opt/zigbee2mqtt cd /opt/zigbee2mqtt
@@ -63,9 +72,7 @@ function update_script() {
msg_info "Cleaning up" msg_info "Cleaning up"
rm -rf /opt/z2m_backup rm -rf /opt/z2m_backup
rm -rf /opt/${RELEASE}.zip
msg_ok "Cleaned up" msg_ok "Cleaned up"
echo "${RELEASE}" >/opt/${APP}_version.txt
else else
msg_ok "No update required. ${APP} is already at v${RELEASE}." msg_ok "No update required. ${APP} is already at v${RELEASE}."
fi fi

View File

@@ -40,9 +40,9 @@ function update_script() {
msg_info "Updating ${APP} to ${RELEASE}" msg_info "Updating ${APP} to ${RELEASE}"
cp /opt/zipline/.env /opt/ cp /opt/zipline/.env /opt/
mkdir -p /opt/zipline-upload mkdir -p /opt/zipline-uploads
if [ -d /opt/zipline/upload ] && [ "$(ls -A /opt/zipline/upload)" ]; then if [ -d /opt/zipline/uploads ] && [ "$(ls -A /opt/zipline/uploads)" ]; then
cp -R /opt/zipline/upload/* /opt/zipline-upload/ cp -R /opt/zipline/uploads/* /opt/zipline-uploads/
fi fi
curl -fsSL "https://github.com/diced/zipline/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/diced/zipline/archive/refs/tags/v${RELEASE}.zip") curl -fsSL "https://github.com/diced/zipline/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/diced/zipline/archive/refs/tags/v${RELEASE}.zip")
$STD unzip v"${RELEASE}".zip $STD unzip v"${RELEASE}".zip

View File

@@ -1,5 +0,0 @@
{
"extends": ["next/core-web-vitals"],
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"]
}

51
frontend/.vscode/settings.json generated vendored Normal file
View File

@@ -0,0 +1,51 @@
{
// Disable the default formatter, use eslint instead
"prettier.enable": false,
"editor.formatOnSave": false,
// Auto fix
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.organizeImports": "never"
},
// Silent the stylistic rules in you IDE, but still auto fix them
"eslint.rules.customizations": [
{ "rule": "style/*", "severity": "off", "fixable": true },
{ "rule": "format/*", "severity": "off", "fixable": true },
{ "rule": "*-indent", "severity": "off", "fixable": true },
{ "rule": "*-spacing", "severity": "off", "fixable": true },
{ "rule": "*-spaces", "severity": "off", "fixable": true },
{ "rule": "*-order", "severity": "off", "fixable": true },
{ "rule": "*-dangle", "severity": "off", "fixable": true },
{ "rule": "*-newline", "severity": "off", "fixable": true },
{ "rule": "*quotes", "severity": "off", "fixable": true },
{ "rule": "*semi", "severity": "off", "fixable": true }
],
// Enable eslint for all supported languages
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"vue",
"html",
"markdown",
"json",
"json5",
"jsonc",
"yaml",
"toml",
"xml",
"gql",
"graphql",
"astro",
"svelte",
"css",
"less",
"scss",
"pcss",
"postcss"
]
}

281
frontend/README.md Normal file
View File

@@ -0,0 +1,281 @@
# Proxmox VE Helper-Scripts Frontend
> 🚀 **Modern frontend for the Community-Scripts Proxmox VE Helper-Scripts repository**
A comprehensive, user-friendly interface built with Next.js that provides access to 300+ automation scripts for Proxmox Virtual Environment management. This frontend serves as the official website for the Community-Scripts organization's Proxmox VE Helper-Scripts repository.
![Next.js](https://img.shields.io/badge/Next.js-15.2.4-black?style=flat-square&logo=next.js)
![React](https://img.shields.io/badge/React-19.0.0-blue?style=flat-square&logo=react)
![TypeScript](https://img.shields.io/badge/TypeScript-5.8.2-blue?style=flat-square&logo=typescript)
![Tailwind CSS](https://img.shields.io/badge/Tailwind-3.4.17-06B6D4?style=flat-square&logo=tailwindcss)
![License](https://img.shields.io/badge/License-MIT-green?style=flat-square)
## 🌟 Features
### Core Functionality
- **📜 Script Management**: Browse, search, and filter 300+ Proxmox VE scripts
- **📱 Responsive Design**: Mobile-first approach with modern UI/UX
- **🔍 Advanced Search**: Fuzzy search with category filtering
- **📊 Analytics Integration**: Built-in analytics for usage tracking
- **🌙 Dark/Light Mode**: Theme switching with system preference detection
- **⚡ Performance Optimized**: Static site generation for lightning-fast loading
### Technical Features
- **🎨 Modern UI Components**: Built with Radix UI and shadcn/ui
- **📈 Data Visualization**: Charts and metrics using Chart.js
- **🔄 State Management**: React Query for efficient data fetching
- **📝 Type Safety**: Full TypeScript implementation
- **🚀 Static Export**: Optimized for GitHub Pages deployment
## 🛠️ Tech Stack
### Frontend Framework
- **[Next.js 15.2.4](https://nextjs.org/)** - React framework with App Router
- **[React 19.0.0](https://react.dev/)** - Latest React with concurrent features
- **[TypeScript 5.8.2](https://www.typescriptlang.org/)** - Type-safe JavaScript
### Styling & UI
- **[Tailwind CSS 3.4.17](https://tailwindcss.com/)** - Utility-first CSS framework
- **[Radix UI](https://www.radix-ui.com/)** - Unstyled, accessible UI components
- **[shadcn/ui](https://ui.shadcn.com/)** - Re-usable components built on Radix UI
- **[Framer Motion](https://www.framer.com/motion/)** - Animation library
- **[Lucide React](https://lucide.dev/)** - Icon library
### Data & State Management
- **[TanStack Query 5.71.1](https://tanstack.com/query)** - Powerful data synchronization
- **[Zod 3.24.2](https://zod.dev/)** - TypeScript-first schema validation
- **[nuqs 2.4.1](https://nuqs.47ng.com/)** - Type-safe search params state manager
### Development Tools
- **[Vitest 3.1.1](https://vitest.dev/)** - Fast unit testing framework
- **[React Testing Library](https://testing-library.com/react)** - Simple testing utilities
- **[ESLint](https://eslint.org/)** - Code linting and formatting
- **[Prettier](https://prettier.io/)** - Code formatting
### Additional Libraries
- **[Chart.js](https://www.chartjs.org/)** - Data visualization
- **[Fuse.js](https://fusejs.io/)** - Fuzzy search
- **[date-fns](https://date-fns.org/)** - Date utility library
- **[Next Themes](https://github.com/pacocoursey/next-themes)** - Theme management
## 🚀 Getting Started
### Prerequisites
- **Node.js 18+** (recommend using the latest LTS version)
- **npm**, **yarn**, **pnpm**, or **bun** package manager
- **Git** for version control
### Installation
1. **Clone the repository**
```bash
git clone https://github.com/community-scripts/ProxmoxVE.git
cd ProxmoxVE/frontend
```
2. **Install dependencies**
```bash
# Using npm
npm install
# Using yarn
yarn install
# Using pnpm
pnpm install
# Using bun
bun install
```
3. **Start the development server**
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```
4. **Open your browser**
Navigate to [http://localhost:3000](http://localhost:3000) to see the application running.
### Environment Configuration
The application uses the following environment variables:
- `BASE_PATH`: Set to "ProxmoxVE" for GitHub Pages deployment
- Analytics configuration is handled in `src/config/siteConfig.tsx`
## 🧪 Development
### Available Scripts
```bash
# Development
npm run dev # Start development server with Turbopack
npm run build # Build for production
npm run start # Start production server (after build)
# Code Quality
npm run lint # Run ESLint
npm run typecheck # Run TypeScript type checking
npm run format:write # Format code with Prettier
npm run format:check # Check code formatting
# Deployment
npm run deploy # Build and deploy to GitHub Pages
```
### Development Workflow
1. **Feature Development**
- Create a new branch for your feature
- Follow the established TypeScript and React patterns
- Use the existing component library (shadcn/ui)
- Ensure responsive design principles
2. **Code Standards**
- Follow TypeScript strict mode
- Use functional components with hooks
- Implement proper error boundaries
- Write descriptive variable and function names
- Use early returns for better readability
3. **Styling Guidelines**
- Use Tailwind CSS utility classes
- Follow mobile-first responsive design
- Implement dark/light mode considerations
- Use CSS variables from the design system
4. **Testing**
- Write unit tests for utility functions
- Test React components with React Testing Library
- Ensure accessibility standards are met
- Run tests before committing
### Component Development
The project uses a component-driven development approach:
```typescript
// Example component structure
import { cn } from "@/lib/utils";
import { Button } from "@/components/ui/button";
interface ComponentProps {
title: string;
className?: string;
}
export const Component = ({ title, className }: ComponentProps) => {
return (
<div className={cn("default-classes", className)}>
<Button>{title}</Button>
</div>
);
};
```
### Configuration for Static Export
The application is configured for static export in `next.config.mjs`:
```javascript
const nextConfig = {
output: "export",
basePath: `/ProxmoxVE`,
images: {
unoptimized: true // Required for static export
}
};
```
## 🤝 Contributing
We welcome contributions from the community! Here's how you can help:
### Getting Started
1. **Fork the repository** on GitHub
2. **Clone your fork** locally
3. **Create a new branch** for your feature or bugfix
4. **Make your changes** following our coding standards
5. **Submit a pull request** with a clear description
### Contribution Guidelines
#### Code Style
- Follow the existing TypeScript and React patterns
- Use descriptive variable and function names
- Implement proper error handling
- Write self-documenting code with appropriate comments
#### Component Guidelines
- Use functional components with hooks
- Implement proper TypeScript types
- Follow accessibility best practices
- Ensure responsive design
- Use the existing design system components
#### Pull Request Process
1. Update documentation if needed
2. Update the README if you've added new features
3. Request review from maintainers
### Areas for Contribution
- **🐛 Bug fixes**: Report and fix issues
- **✨ New features**: Enhance functionality
- **📚 Documentation**: Improve guides and examples
- **🎨 UI/UX**: Improve design and user experience
- **♿ Accessibility**: Enhance accessibility features
- **🚀 Performance**: Optimize loading and runtime performance
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 🙏 Acknowledgments
- **[tteck](https://github.com/tteck)** - Original creator of the Proxmox VE Helper-Scripts
- **[Community-Scripts Organization](https://github.com/community-scripts)** - Maintaining and expanding the project
- **[Proxmox Community](https://forum.proxmox.com/)** - For continuous feedback and support
- **All Contributors** - Thank you for your valuable contributions!
## 📚 Additional Resources
- **[Proxmox VE Documentation](https://pve.proxmox.com/pve-docs/)**
- **[Community Scripts Repository](https://github.com/community-scripts/ProxmoxVE)**
- **[Discord Community](https://discord.gg/2wvnMDgdnU)**
- **[GitHub Discussions](https://github.com/community-scripts/ProxmoxVE/discussions)**
## 🔗 Links
- **🌐 Live Website**: [https://community-scripts.github.io/ProxmoxVE/](https://community-scripts.github.io/ProxmoxVE/)
- **💬 Discord Server**: [https://discord.gg/2wvnMDgdnU](https://discord.gg/2wvnMDgdnU)
- **📝 Change Log**: [https://github.com/community-scripts/ProxmoxVE/blob/main/CHANGELOG.md](https://github.com/community-scripts/ProxmoxVE/blob/main/CHANGELOG.md)
---
**Made with ❤️ by the Community-Scripts team and contributors**

View File

@@ -0,0 +1,41 @@
import antfu from "@antfu/eslint-config";
export default antfu(
{
type: "app",
typescript: true,
formatters: true,
next: true,
stylistic: {
indent: 2,
semi: true,
quotes: "double",
},
ignores: ["src/components/ui/**", "README.md", "public/json/**"],
},
{
rules: {
"ts/no-redeclare": "off",
"ts/consistent-type-definitions": ["error", "type"],
"no-console": ["warn"],
"antfu/no-top-level-await": ["off"],
"node/prefer-global/process": ["off"],
"node/no-process-env": ["error"],
"perfectionist/sort-imports": [
"error",
{
type: "line-length",
order: "desc",
},
],
"unicorn/filename-case": [
"error",
{
case: "kebabCase",
ignore: ["README.md"],
},
],
},
},
);

File diff suppressed because it is too large Load Diff

30
frontend/package.json generated
View File

@@ -1,22 +1,18 @@
{ {
"name": "proxmox-helper-scripts-website", "name": "proxmox-helper-scripts-website",
"type": "module",
"version": "1.0.0", "version": "1.0.0",
"license": "MIT",
"private": true, "private": true,
"author": { "author": {
"name": "Bram Suurd", "name": "Bram Suurd",
"url": "https://github.com/community-scripts" "url": "https://github.com/community-scripts"
}, },
"type": "module", "license": "MIT",
"scripts": { "scripts": {
"dev": "next dev --turbopack", "dev": "next dev --turbopack",
"build": "next build", "build": "next build",
"start": "next start", "start": "next start",
"lint": "next lint", "lint": "eslint . --fix",
"test": "vitest",
"deploy": "next build && touch out/.nojekyll && git add out/ && git commit -m \"Deploy\" && git subtree push --prefix out origin gh-pages",
"format:write": "prettier --write \"**/*.{ts,tsx,mdx}\" --cache",
"format:check": "prettier --check \"**/*.{ts,tsx,mdx}\" --cache",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"dependencies": { "dependencies": {
@@ -45,7 +41,7 @@
"lucide-react": "^0.453.0", "lucide-react": "^0.453.0",
"mini-svg-data-uri": "^1.4.4", "mini-svg-data-uri": "^1.4.4",
"next": "15.2.4", "next": "15.2.4",
"next-themes": "^0.3.0", "next-themes": "^0.4.4",
"nuqs": "^2.4.1", "nuqs": "^2.4.1",
"pocketbase": "^0.21.5", "pocketbase": "^0.21.5",
"prettier-plugin-organize-imports": "^4.1.0", "prettier-plugin-organize-imports": "^4.1.0",
@@ -53,7 +49,7 @@
"react-chartjs-2": "^5.3.0", "react-chartjs-2": "^5.3.0",
"react-code-blocks": "^0.1.6", "react-code-blocks": "^0.1.6",
"react-datepicker": "^7.6.0", "react-datepicker": "^7.6.0",
"react-day-picker": "8.10.1", "react-day-picker": "^9.4.3",
"react-dom": "19.0.0", "react-dom": "19.0.0",
"react-icons": "^5.5.0", "react-icons": "^5.5.0",
"react-simple-typewriter": "^5.0.1", "react-simple-typewriter": "^5.0.1",
@@ -64,9 +60,10 @@
"zod": "^3.24.2" "zod": "^3.24.2"
}, },
"devDependencies": { "devDependencies": {
"@antfu/eslint-config": "^4.16.1",
"@eslint-react/eslint-plugin": "^1.52.2",
"@next/eslint-plugin-next": "^15.3.4",
"@tanstack/eslint-plugin-query": "^5.68.0", "@tanstack/eslint-plugin-query": "^5.68.0",
"@testing-library/dom": "^10.4.0",
"@testing-library/react": "^16.2.0",
"@types/node": "^22.13.16", "@types/node": "^22.13.16",
"@types/react": "npm:types-react@19.0.0-rc.1", "@types/react": "npm:types-react@19.0.0-rc.1",
"@types/react-dom": "npm:types-react-dom@19.0.0-rc.1", "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1",
@@ -75,6 +72,9 @@
"@vitejs/plugin-react": "^4.3.4", "@vitejs/plugin-react": "^4.3.4",
"eslint": "^9.23.0", "eslint": "^9.23.0",
"eslint-config-next": "15.0.2", "eslint-config-next": "15.0.2",
"eslint-plugin-format": "^1.0.1",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.20",
"jsdom": "^25.0.1", "jsdom": "^25.0.1",
"postcss": "^8.5.3", "postcss": "^8.5.3",
"prettier": "^3.5.3", "prettier": "^3.5.3",
@@ -83,11 +83,13 @@
"tailwindcss-animate": "^1.0.7", "tailwindcss-animate": "^1.0.7",
"tailwindcss-animated": "^1.1.2", "tailwindcss-animated": "^1.1.2",
"typescript": "^5.8.2", "typescript": "^5.8.2",
"vite-tsconfig-paths": "^5.1.4", "vite-tsconfig-paths": "^5.1.4"
"vitest": "^3.1.1"
}, },
"overrides": { "overrides": {
"@types/react": "npm:types-react@19.0.0-rc.1", "@types/react": "npm:types-react@19.0.0-rc.1",
"@types/react-dom": "npm:types-react-dom@19.0.0-rc.1" "@types/react-dom": "npm:types-react-dom@19.0.0-rc.1",
"date-fns": "^4.1.0",
"react": "19.0.0",
"react-dom": "19.0.0"
} }
} }

View File

@@ -11,7 +11,7 @@
"interface_port": null, "interface_port": null,
"documentation": null, "documentation": null,
"website": null, "website": null,
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/proxmox.svg", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/proxmox.webp",
"config_path": "/opt/iptag/iptag.conf", "config_path": "/opt/iptag/iptag.conf",
"description": "This script automatically adds IP address as tags to LXC containers or VM's using a systemd service. The service also updates the tags if a LXC/VM IP address is changed.", "description": "This script automatically adds IP address as tags to LXC containers or VM's using a systemd service. The service also updates the tags if a LXC/VM IP address is changed.",
"install_methods": [ "install_methods": [

View File

@@ -32,10 +32,6 @@
"password": null "password": null
}, },
"notes": [ "notes": [
{
"text": "Only supported on Debian 12 LXCs",
"type": "warning"
},
{ {
"text": "After the script finishes, reboot the LXC then run `tailscale up` in the LXC console", "text": "After the script finishes, reboot the LXC then run `tailscale up` in the LXC console",
"type": "info" "type": "info"

View File

@@ -34,7 +34,7 @@
"ram": 256, "ram": 256,
"hdd": 1, "hdd": 1,
"os": "alpine", "os": "alpine",
"version": "3.21" "version": "3.22"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 2048, "ram": 2048,
"hdd": 8, "hdd": 8,
"os": "ubuntu", "os": "ubuntu",
"version": "22.04" "version": "24.04"
} }
} }
], ],

View File

@@ -21,9 +21,9 @@
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 256, "ram": 256,
"hdd": 0.5, "hdd": 1,
"os": "alpine", "os": "alpine",
"version": "3.21" "version": "3.22"
} }
}, },
{ {
@@ -32,9 +32,9 @@
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 256, "ram": 256,
"hdd": 0.5, "hdd": 1,
"os": "alpine", "os": "alpine",
"version": "3.21" "version": "3.22"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 256, "ram": 256,
"hdd": 2, "hdd": 2,
"os": "alpine", "os": "alpine",
"version": "3.21" "version": "3.22"
} }
}, },
{ {
@@ -34,7 +34,7 @@
"ram": 256, "ram": 256,
"hdd": 2, "hdd": 2,
"os": "alpine", "os": "alpine",
"version": "3.21" "version": "3.22"
} }
} }
], ],

View File

@@ -6,7 +6,7 @@
], ],
"date_created": "2024-05-02", "date_created": "2024-05-02",
"type": "ct", "type": "ct",
"updateable": false, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": null, "interface_port": null,
"documentation": null, "documentation": null,
@@ -21,9 +21,9 @@
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 512, "ram": 512,
"hdd": 0.5, "hdd": 1,
"os": "alpine", "os": "alpine",
"version": "3.21" "version": "3.22"
} }
} }
], ],

View File

@@ -6,7 +6,7 @@
], ],
"date_created": "2025-01-27", "date_created": "2025-01-27",
"type": "vm", "type": "vm",
"updateable": false, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": null, "interface_port": null,
"documentation": null, "documentation": null,

View File

@@ -8,7 +8,7 @@
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 3000, "interface_port": 8080,
"documentation": "https://release-argus.io/docs/overview/", "documentation": "https://release-argus.io/docs/overview/",
"website": "https://release-argus.io/", "website": "https://release-argus.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/argus.webp", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/argus.webp",

View File

@@ -11,7 +11,7 @@
"interface_port": 80, "interface_port": 80,
"documentation": "https://docs.baby-buddy.net/", "documentation": "https://docs.baby-buddy.net/",
"website": "https://github.com/babybuddy/babybuddy", "website": "https://github.com/babybuddy/babybuddy",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/baby-buddy.svg", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/baby-buddy.webp",
"config_path": "/opt/babybuddy/babybuddy/settings/production.py", "config_path": "/opt/babybuddy/babybuddy/settings/production.py",
"description": "Baby Buddy is an open-source web application designed to assist caregivers in tracking various aspects of a baby's daily routine, including sleep, feedings, diaper changes, tummy time, and more. By recording this data, caregivers can better understand and anticipate their baby's needs, reducing guesswork in daily care. The application offers a user-friendly dashboard for data entry and visualization, supports multiple users, and provides features like timers and reminders. Additionally, Baby Buddy can be integrated with platforms like Home Assistant and Grafana for enhanced functionality.", "description": "Baby Buddy is an open-source web application designed to assist caregivers in tracking various aspects of a baby's daily routine, including sleep, feedings, diaper changes, tummy time, and more. By recording this data, caregivers can better understand and anticipate their baby's needs, reducing guesswork in daily care. The application offers a user-friendly dashboard for data entry and visualization, supports multiple users, and provides features like timers and reminders. Additionally, Baby Buddy can be integrated with platforms like Home Assistant and Grafana for enhanced functionality.",
"install_methods": [ "install_methods": [

View File

@@ -34,7 +34,7 @@
"ram": 1024, "ram": 1024,
"hdd": 3, "hdd": 3,
"os": "alpine", "os": "alpine",
"version": "3.21" "version": "3.22"
} }
} }
], ],

35
frontend/public/json/booklore.json generated Normal file
View File

@@ -0,0 +1,35 @@
{
"name": "BookLore",
"slug": "booklore",
"categories": [
13
],
"date_created": "2025-06-27",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 6060,
"documentation": "https://github.com/adityachandelgit/BookLore",
"website": "https://github.com/adityachandelgit/BookLore",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/booklore.webp",
"config_path": "/opt/booklore_storage/.env",
"description": "BookLore is a self-hosted digital library for managing and reading books, offering a beautiful interface and support for metadata management. Built with a modern tech stack, it provides support for importing, organizing, and reading EPUBs and PDFs, while also managing cover images and book metadata.",
"install_methods": [
{
"type": "default",
"script": "ct/booklore.sh",
"resources": {
"cpu": 3,
"ram": 2048,
"hdd": 7,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -19,8 +19,8 @@
"type": "default", "type": "default",
"script": "ct/cloudflare-ddns.sh", "script": "ct/cloudflare-ddns.sh",
"resources": { "resources": {
"cpu": 1, "cpu": 2,
"ram": 512, "ram": 1024,
"hdd": 2, "hdd": 2,
"os": "Debian", "os": "Debian",
"version": "12" "version": "12"

40
frontend/public/json/convertx.json generated Normal file
View File

@@ -0,0 +1,40 @@
{
"name": "ConvertX",
"slug": "convertx",
"categories": [
9
],
"date_created": "2025-06-26",
"type": "ct",
"updateable": true,
"privileged": false,
"config_path": "/opt/convertx/.env",
"interface_port": 3000,
"documentation": "https://github.com/C4illin/ConvertX",
"website": "https://github.com/C4illin/ConvertX",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/convertx.webp",
"description": "ConvertX is a self-hosted online file converter supporting over 1000 formats, including images, audio, video, documents, and more, powered by FFmpeg, GraphicsMagick, and other libraries.",
"install_methods": [
{
"type": "default",
"script": "ct/convertx.sh",
"resources": {
"cpu": 2,
"ram": 4096,
"hdd": 20,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Complete setup via the web interface at http://<container-ip>:3000. Create and secure the admin account immediately.",
"type": "info"
}
]
}

View File

@@ -6,7 +6,7 @@
], ],
"date_created": "2024-05-02", "date_created": "2024-05-02",
"type": "vm", "type": "vm",
"updateable": false, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": null, "interface_port": null,
"documentation": null, "documentation": null,

View File

@@ -1,35 +1,35 @@
{ {
"name": "Debian", "name": "Debian",
"slug": "debian", "slug": "debian",
"categories": [ "categories": [
2 2
], ],
"date_created": "2024-05-02", "date_created": "2024-05-02",
"type": "ct", "type": "ct",
"updateable": false, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": null, "interface_port": null,
"documentation": null, "documentation": null,
"website": "https://www.debian.org/", "website": "https://www.debian.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/debian.webp", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/debian.webp",
"config_path": "", "config_path": "",
"description": "Debian Linux is a distribution that emphasizes free software. It supports many hardware platforms.", "description": "Debian Linux is a distribution that emphasizes free software. It supports many hardware platforms.",
"install_methods": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/debian.sh", "script": "ct/debian.sh",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 512, "ram": 512,
"hdd": 2, "hdd": 2,
"os": "debian", "os": "debian",
"version": "12" "version": "12"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [] "notes": []
} }

View File

@@ -7,7 +7,7 @@
], ],
"date_created": "2025-01-20", "date_created": "2025-01-20",
"type": "vm", "type": "vm",
"updateable": false, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": null, "interface_port": null,
"documentation": null, "documentation": null,

View File

@@ -34,7 +34,7 @@
"ram": 1024, "ram": 1024,
"hdd": 2, "hdd": 2,
"os": "alpine", "os": "alpine",
"version": "3.21" "version": "3.22"
} }
} }
], ],

View File

@@ -20,8 +20,8 @@
"script": "ct/docmost.sh", "script": "ct/docmost.sh",
"resources": { "resources": {
"cpu": 3, "cpu": 3,
"ram": 3072, "ram": 4096,
"hdd": 7, "hdd": 8,
"os": "debian", "os": "debian",
"version": "12" "version": "12"
} }

View File

@@ -23,7 +23,7 @@
"ram": 2048, "ram": 2048,
"hdd": 8, "hdd": 8,
"os": "ubuntu", "os": "ubuntu",
"version": "22.04" "version": "24.04"
} }
} }
], ],

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