Compare commits

...

206 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
21d2159f22 Update CHANGELOG.md (#7076)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-22 00:12:57 +00:00
community-scripts-pr-app[bot]
a42ceeac98 Update versions.json (#7075)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-22 02:12:34 +02:00
community-scripts-pr-app[bot]
6e7ad44d36 Update CHANGELOG.md (#7071)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 18:54:24 +00:00
CanbiZ
9ea852ffad tianji: add uv deps (#7066) 2025-08-21 20:53:56 +02:00
community-scripts-pr-app[bot]
d4bd7a6fda Update date in json (#7070)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-08-21 18:05:06 +00:00
community-scripts-pr-app[bot]
316f4043d4 Update CHANGELOG.md (#7069)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 18:04:58 +00:00
push-app-to-main[bot]
f799c90712 'Add new script' (#7052)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2025-08-21 20:04:40 +02:00
community-scripts-pr-app[bot]
7de8934105 Update CHANGELOG.md (#7068)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 18:04:30 +00:00
CanbiZ
15dedc1e16 zitadel: installer for v4 (#7058) 2025-08-21 20:04:09 +02:00
community-scripts-pr-app[bot]
13f46d2c58 Update CHANGELOG.md (#7065)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 17:50:27 +00:00
CanbiZ
ff7e7a6e10 Paperless-NGX: create direction for nltk (#7064) 2025-08-21 19:50:03 +02:00
community-scripts-pr-app[bot]
c49519a7de Update versions.json (#7057)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 14:05:19 +02:00
community-scripts-pr-app[bot]
8ce4776a87 Update CHANGELOG.md (#7055)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 11:44:47 +00:00
Chris
9cda1a8680 Immich: hotfix - revert 7035 (#7054) 2025-08-21 13:44:26 +02:00
community-scripts-pr-app[bot]
c9b5e27d74 Update CHANGELOG.md (#7051)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 08:13:24 +00:00
CanbiZ
70ec048aa9 duplicati: fix release pattern (#7049)
* duplicati: fix pattern

* Update duplicati.sh
2025-08-21 10:12:59 +02:00
community-scripts-pr-app[bot]
89af0c466b Update CHANGELOG.md (#7050)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 08:03:06 +00:00
CanbiZ
93a1710e20 technitiumdns: fix unbound variable (#7047) 2025-08-21 10:02:48 +02:00
community-scripts-pr-app[bot]
91a5c9c48f Update CHANGELOG.md (#7045)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 07:15:24 +00:00
CanbiZ
e85353856b [core]: improve binary globbing for gh releases (#7044) 2025-08-21 09:14:59 +02:00
community-scripts-pr-app[bot]
bf99523a94 Update CHANGELOG.md (#7041)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 00:11:36 +00:00
community-scripts-pr-app[bot]
c1b3321801 Update versions.json (#7040)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 02:11:13 +02:00
community-scripts-pr-app[bot]
beb9189c72 Update CHANGELOG.md (#7038)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-20 20:23:50 +00:00
community-scripts-pr-app[bot]
186c82d156 Update CHANGELOG.md (#7036)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-20 19:48:09 +00:00
Chris
9d431458ca Immich: fix small issue with immich-admin "start" script (#7035) 2025-08-20 21:47:44 +02:00
community-scripts-pr-app[bot]
9c86eea347 Update CHANGELOG.md (#7034)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-20 18:49:44 +00:00
Tobias
e20af295f0 fix: verbose (#7023) 2025-08-20 20:49:17 +02:00
community-scripts-pr-app[bot]
68832d71fa Update CHANGELOG.md (#7033)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-20 18:19:08 +00:00
CanbiZ
2e13483f19 Post-Install, change pve-test for trixie (#7031)
* Postinstall, Change pve-test

* MSG improved
2025-08-20 20:18:48 +02:00
community-scripts-pr-app[bot]
c7643ae88c Update CHANGELOG.md (#7032)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-20 18:08:55 +00:00
Slaviša Arežina
f16f7a130a Fix update (#7027) 2025-08-20 20:08:33 +02:00
community-scripts-pr-app[bot]
94a8fe7132 Update CHANGELOG.md (#7029)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-20 15:29:42 +00:00
CanbiZ
059d297305 remove unneeded line in paperless 2025-08-20 17:29:21 +02:00
CanbiZ
2bd2a763a1 merge setup_gs from VED to VE 2025-08-20 17:27:19 +02:00
Slaviša Arežina
452ba92a6f Update wastebin.sh (#7024) 2025-08-20 15:54:53 +02:00
community-scripts-pr-app[bot]
d27a875987 Update CHANGELOG.md (#7022)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-20 13:34:07 +00:00
Slaviša Arežina
14418411f6 Bugfix (#7018) 2025-08-20 15:33:44 +02:00
community-scripts-pr-app[bot]
f13c8ff3ce Update CHANGELOG.md (#7021)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-20 13:31:06 +00:00
Slaviša Arežina
28dc145811 Update barcode-buddy-install.sh (#7020) 2025-08-20 15:30:43 +02:00
community-scripts-pr-app[bot]
170543bb66 Update CHANGELOG.md (#7019)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-20 13:18:33 +00:00
CanbiZ
c783024ef0 Refactor: Paperless-ngx (#6938)
* Refactor: Paperless-NGX

* Refactor: Paperless-ngx

* Update paperless-ngx.json

* VED -> VE

* harmonize with VED

* finalize

* Update paperless-ngx.json

* finalize

* fix: casing

---------

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-08-20 15:18:05 +02:00
community-scripts-pr-app[bot]
19403a627b Update CHANGELOG.md (#7016)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-20 12:00:35 +00:00
CanbiZ
cc08395a1d Feature: Netdata support PVE9 (#7012) 2025-08-20 14:00:10 +02:00
community-scripts-pr-app[bot]
d5093a3d9d Update CHANGELOG.md (#7015)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-20 11:59:55 +00:00
Slaviša Arežina
52c4f3e0c2 Refactor (#7008) 2025-08-20 13:59:32 +02:00
community-scripts-pr-app[bot]
76a4ec9e06 Update CHANGELOG.md (#7014)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-20 11:07:20 +00:00
CanbiZ
bebf6f65aa PBS: ifupdown2 reload (#7013) 2025-08-20 13:06:54 +02:00
community-scripts-pr-app[bot]
34582c4dc4 Update CHANGELOG.md (#7005)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-20 00:12:25 +00:00
community-scripts-pr-app[bot]
4495878c4f Update versions.json (#7004)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-20 02:12:00 +02:00
community-scripts-pr-app[bot]
3c33e8b826 Update CHANGELOG.md (#7001)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 19:56:10 +00:00
CanbiZ
be6cc7ddbb Refactor: Tdarr (#6969) 2025-08-19 21:55:42 +02:00
community-scripts-pr-app[bot]
615049ce5c Update CHANGELOG.md (#6999)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 17:41:37 +00:00
community-scripts-pr-app[bot]
f9e5c46b21 Update CHANGELOG.md (#6998)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 17:41:19 +00:00
community-scripts-pr-app[bot]
913102d66f Update CHANGELOG.md (#6997)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 17:41:09 +00:00
community-scripts-pr-app[bot]
07628f3b76 Update CHANGELOG.md (#6996)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 17:40:56 +00:00
CanbiZ
291d364158 [web]: update logos from reactive-resume & slskd (#6990) 2025-08-19 19:40:44 +02:00
community-scripts-pr-app[bot]
98c4a2ccae Update CHANGELOG.md (#6995)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 17:40:34 +00:00
CanbiZ
c60098d8eb [core]: create_lxc - fix offline issue with alpine packages (#6994) 2025-08-19 19:40:12 +02:00
CanbiZ
7df1dbaf17 quickfix: mapfile for _standard_ mapping
there was an issue, that when debian-12-standard% not available, it uses debian-12-turnkey-xxxx
2025-08-19 16:24:26 +02:00
community-scripts-pr-app[bot]
304c90a1af Update CHANGELOG.md (#6988)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 13:02:05 +00:00
Slaviša Arežina
01fe1b1f62 Refactor (#6958) 2025-08-19 15:01:41 +02:00
community-scripts-pr-app[bot]
fd85e71fcf Update CHANGELOG.md (#6987)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 12:52:00 +00:00
CanbiZ
66c03ce1b4 Refactor: Glances (+ Feature Bump) (#6976)
* Refactor: Glances

* Update glances.json

* Update glances.json
2025-08-19 14:51:33 +02:00
community-scripts-pr-app[bot]
067f9eb209 Update CHANGELOG.md (#6986)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 12:44:44 +00:00
Chris
cd3dbc864f Immich: Bump version to 1.138.1 (#6984) 2025-08-19 14:44:25 +02:00
community-scripts-pr-app[bot]
f42f06343d Update CHANGELOG.md (#6985)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 12:44:16 +00:00
CanbiZ
e46648ecdc [core]: add new features to create_lxc (#6979) 2025-08-19 14:43:54 +02:00
community-scripts-pr-app[bot]
206751f517 Update versions.json (#6982)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 14:17:26 +02:00
community-scripts-pr-app[bot]
6a06afcbb9 Update CHANGELOG.md (#6983)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 12:06:45 +00:00
Slaviša Arežina
bd3e93215b Refactor: TeddyCloud (#6963)
* Refactor

* Update
2025-08-19 14:06:24 +02:00
community-scripts-pr-app[bot]
94b9aa4025 Update CHANGELOG.md (#6981)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 12:06:07 +00:00
Slaviša Arežina
36523dfd33 Refactor: Technitium DNS (#6968)
* Refactor

* Update json

* Update
2025-08-19 14:05:37 +02:00
community-scripts-pr-app[bot]
618fa65bc2 Update CHANGELOG.md (#6980)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 12:03:20 +00:00
CanbiZ
1dd417fdaa [core]: extend setup_uv to work with alpine (#6978) 2025-08-19 14:03:00 +02:00
community-scripts-pr-app[bot]
4480a70ceb Update CHANGELOG.md (#6977)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 11:28:52 +00:00
CanbiZ
5d423888d9 Debian 13 VM (#6970) 2025-08-19 13:28:25 +02:00
Slaviša Arežina
81876d6992 Update wallos-install.sh (#6973) 2025-08-19 12:33:43 +02:00
community-scripts-pr-app[bot]
b777d74dce Update CHANGELOG.md (#6967)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 07:34:49 +00:00
Slaviša Arežina
c904da6b94 Fix release fetching (#6961) 2025-08-19 09:34:23 +02:00
community-scripts-pr-app[bot]
4591b58e66 Update CHANGELOG.md (#6966)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 07:20:25 +00:00
community-scripts-pr-app[bot]
8f7cd0bff9 Update CHANGELOG.md (#6965)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 07:20:05 +00:00
community-scripts-pr-app[bot]
60318fd77b Update date in json (#6964)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-08-19 07:20:03 +00:00
push-app-to-main[bot]
50c41cec72 Swizzin (#6962)
* 'Add new script'

* clear \n

* add outsource info in json

---------

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-08-19 09:19:40 +02:00
community-scripts-pr-app[bot]
ef2e9803d0 Update CHANGELOG.md (#6957)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 05:49:34 +00:00
Azamat
e428a05b45 Update hev-socks5-server-install.sh (#6953)
Update hev-socks5-server-install.sh
Change branch name from master to main.

https://raw.githubusercontent.com/heiher/${APPLICATION}/refs/heads/master/conf/main.yml <= 404 Not found

https://raw.githubusercontent.com/heiher/hev-socks5-server/refs/heads/main/conf/main.yml <= Correct link
2025-08-19 07:49:13 +02:00
community-scripts-pr-app[bot]
37e5f7272e Update CHANGELOG.md (#6955)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 00:14:19 +00:00
community-scripts-pr-app[bot]
5560c4eb12 Update versions.json (#6954)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-19 02:13:55 +02:00
community-scripts-pr-app[bot]
be6e2e3cb1 Update CHANGELOG.md (#6949)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-18 20:15:16 +00:00
CanbiZ
7086a15321 OpenWRT: add info for VLAN-aware in frontend (#6944) 2025-08-18 22:14:53 +02:00
community-scripts-pr-app[bot]
23f29b14fe Update CHANGELOG.md (#6948)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-18 20:12:47 +00:00
Slaviša Arežina
9aafb65a98 Refactor: Traefik (#6940)
* Refactor

* typo

---------

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-08-18 22:12:22 +02:00
community-scripts-pr-app[bot]
296f4577d0 Update CHANGELOG.md (#6947)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-18 19:05:52 +00:00
Slaviša Arežina
1ea1429874 Refactor: Traccar (#6942)
* Refactor

* Update
2025-08-18 21:05:30 +02:00
community-scripts-pr-app[bot]
3f70f92fbb Update CHANGELOG.md (#6946)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-18 18:16:41 +00:00
CanbiZ
23c6994835 Keycloak: fix update function (#6943)
* Keycloak: fix update function

* fix issue with .keycloak file

* Update keycloak-install.sh

* remove double command

---------

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-08-18 20:16:14 +02:00
community-scripts-pr-app[bot]
70cd362d3e Update CHANGELOG.md (#6945)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-18 17:59:15 +00:00
Slaviša Arežina
aed25098e5 Refactor (#6939) 2025-08-18 19:58:50 +02:00
community-scripts-pr-app[bot]
a79392149e Update .app files (#6937)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-08-18 16:29:33 +02:00
community-scripts-pr-app[bot]
f32647a3d3 Update CHANGELOG.md (#6936)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-18 14:26:56 +00:00
Chris
bb3c77f1b6 Immich: add message to indicate image-processing library update check (#6935) 2025-08-18 16:26:27 +02:00
community-scripts-pr-app[bot]
66a582dd09 Update CHANGELOG.md (#6932)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-18 12:32:22 +00:00
CanbiZ
06eb76c5d9 CopyParty (#6929)
* CopyParty

* add conf path in json

* change category to files
2025-08-18 14:32:00 +02:00
community-scripts-pr-app[bot]
a37f921aff Update versions.json (#6931)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-18 14:05:58 +02:00
community-scripts-pr-app[bot]
5c7e221efa Update .app files (#6925)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-08-18 09:50:06 +02:00
community-scripts-pr-app[bot]
7e00889967 Update CHANGELOG.md (#6927)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-18 07:49:51 +00:00
community-scripts-pr-app[bot]
f1d855e331 Update CHANGELOG.md (#6926)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-18 07:49:40 +00:00
Gabriel David Pragin
a33bbd603d fix: unbound env variable (#6922) 2025-08-18 09:49:29 +02:00
community-scripts-pr-app[bot]
472ad02d44 Update date in json (#6924)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-08-18 07:49:21 +00:00
push-app-to-main[bot]
aed2fbc4b1 Twingate-Connector (#6921) 2025-08-18 09:48:59 +02:00
community-scripts-pr-app[bot]
dabb49d7eb Update CHANGELOG.md (#6920)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-18 06:22:34 +00:00
Slaviša Arežina
61b7b96780 Refactor (#6916) 2025-08-18 08:22:09 +02:00
community-scripts-pr-app[bot]
a72885b4c1 Update CHANGELOG.md (#6918)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-18 00:17:01 +00:00
community-scripts-pr-app[bot]
58fe2df6b4 Update versions.json (#6917)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-18 02:16:37 +02:00
community-scripts-pr-app[bot]
5c8bd4b124 Update versions.json (#6914)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-17 14:04:58 +02:00
community-scripts-pr-app[bot]
b6d7ad7c38 Update CHANGELOG.md (#6910)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-17 00:15:44 +00:00
community-scripts-pr-app[bot]
dd4d518052 Update versions.json (#6909)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-17 02:15:22 +02:00
community-scripts-pr-app[bot]
a99650f969 Update CHANGELOG.md (#6905)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-16 20:54:02 +00:00
Slaviša Arežina
842d73de82 Refactor (#6902) 2025-08-16 22:53:43 +02:00
community-scripts-pr-app[bot]
65f731d88b Update CHANGELOG.md (#6904)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-16 20:40:43 +00:00
Slaviša Arežina
363685d3d3 Refactor (#6900) 2025-08-16 22:40:14 +02:00
community-scripts-pr-app[bot]
ff77960aa6 Update CHANGELOG.md (#6903)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-16 20:39:58 +00:00
Slaviša Arežina
8d4a81d28e Update wireguard.sh (#6898) 2025-08-16 22:39:38 +02:00
community-scripts-pr-app[bot]
faf10a9d5b Update versions.json (#6895)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-16 14:04:52 +02:00
community-scripts-pr-app[bot]
1b931becaa Update CHANGELOG.md (#6894)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-16 06:31:26 +00:00
WarLord185
905198116d Tandoor Images Fix (#6892) 2025-08-16 08:31:02 +02:00
community-scripts-pr-app[bot]
8d65b4624f Update CHANGELOG.md (#6890)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-16 00:13:16 +00:00
community-scripts-pr-app[bot]
4e17190721 Update versions.json (#6889)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-16 02:12:57 +02:00
community-scripts-pr-app[bot]
9337e2de3c Update CHANGELOG.md (#6888)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 21:24:24 +00:00
community-scripts-pr-app[bot]
c7a7ea763b Update CHANGELOG.md (#6887)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 21:18:28 +00:00
BEN YOUSSEF Hamza
ce71992dd6 Add missing default user & pass for RabbitMQ (#6883) 2025-08-15 23:18:01 +02:00
Slaviša Arežina
f68b80fe4a Update watchyourlan.sh (#6886) 2025-08-15 22:09:56 +02:00
community-scripts-pr-app[bot]
79adb4ef9b Update CHANGELOG.md (#6881)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 12:42:29 +00:00
Chris
8dda5ac31f Immich: pin Vectorchord release; adjust extension update commands (#6878) 2025-08-15 14:42:08 +02:00
community-scripts-pr-app[bot]
7d901bc594 Update versions.json (#6879)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 14:05:10 +02:00
community-scripts-pr-app[bot]
b6dce8cff1 Update CHANGELOG.md (#6876)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 10:57:39 +00:00
community-scripts-pr-app[bot]
1b43202a79 Update CHANGELOG.md (#6875)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 10:57:26 +00:00
Slaviša Arežina
66687c0d21 Refactor: WatchYourLAN (#6871)
* Refactor

* Update
2025-08-15 12:57:16 +02:00
community-scripts-pr-app[bot]
39b9cfcffc Update CHANGELOG.md (#6874)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 10:57:07 +00:00
Slaviša Arežina
24f4d2f488 Refactor (#6872) 2025-08-15 12:57:00 +02:00
Slaviša Arežina
ee74400626 Refactor (#6869) 2025-08-15 12:56:46 +02:00
Slaviša Arežina
032709e107 Update zitadel-install.sh (#6867) 2025-08-15 09:07:01 +02:00
community-scripts-pr-app[bot]
65d60fbf1e Update CHANGELOG.md (#6868)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 06:42:28 +00:00
Chris
c7b80448dc Immich v1.138.0 (#6813) 2025-08-15 08:42:01 +02:00
community-scripts-pr-app[bot]
d7a60f6027 Update CHANGELOG.md (#6866)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 00:14:39 +00:00
community-scripts-pr-app[bot]
241ae98c0b Update versions.json (#6865)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 02:14:16 +02:00
community-scripts-pr-app[bot]
63f24a8e61 Update CHANGELOG.md (#6862)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 21:46:40 +00:00
Chris
1cb87c4087 Immich: hotfix (#6861) 2025-08-14 23:43:58 +02:00
community-scripts-pr-app[bot]
5c22f9775e Update CHANGELOG.md (#6860)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 21:41:58 +00:00
Chris
a403da9f47 Pulse: v4.3.2+ (#6859)
- please send help
2025-08-14 23:41:36 +02:00
community-scripts-pr-app[bot]
4ce7335482 Update CHANGELOG.md (#6858)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 20:54:09 +00:00
Slaviša Arežina
bc52b1a7d7 Refactor: Zitadel (#6826) 2025-08-14 22:53:45 +02:00
community-scripts-pr-app[bot]
1c5ff8b26a Update CHANGELOG.md (#6857)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 20:52:04 +00:00
Slaviša Arežina
967b2a313f Refactor: WordPress (#6837)
* Refactor

* Update wordpress-install.sh

* Update wordpress-install.sh
2025-08-14 22:51:44 +02:00
Slaviša Arežina
50410acf8d Refactor: WireGuard (#6839)
* Refactor

* Make WGDashboard optional
2025-08-14 22:51:31 +02:00
community-scripts-pr-app[bot]
ab07afb7bd Update CHANGELOG.md (#6855)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 20:01:41 +00:00
Luis Palacios Derqui
eee083c7e0 ProxmoxVE svg logo (#6846) 2025-08-14 22:01:20 +02:00
community-scripts-pr-app[bot]
31ef36d744 Update CHANGELOG.md (#6854)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 19:36:49 +00:00
steadfasterX
13afa93ddf rustdeskserver: fix API version file (#6847) 2025-08-14 21:36:27 +02:00
community-scripts-pr-app[bot]
7c631eec00 Update CHANGELOG.md (#6853)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 19:07:04 +00:00
Slaviša Arežina
82d1a872c7 Refactor (#6832) 2025-08-14 21:06:44 +02:00
community-scripts-pr-app[bot]
0c23782485 Update CHANGELOG.md (#6852)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 19:06:12 +00:00
Slaviša Arežina
ef7c774a24 Refactor (#6829) 2025-08-14 21:05:44 +02:00
Michel Roegl-Brunner
c12ec76181 jenkins.json update (#6824) 2025-08-14 21:03:58 +02:00
community-scripts-pr-app[bot]
a805e40b04 Update CHANGELOG.md (#6851)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 18:20:45 +00:00
Chris
727b713893 Immich: quickfix #6836 (#6848) 2025-08-14 20:20:21 +02:00
community-scripts-pr-app[bot]
5cedb8469e Update CHANGELOG.md (#6845)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 16:01:29 +00:00
Slaviša Arežina
c612a4daa8 Refactor: WikiJS (#6840)
* Refactor

* Update docs URL
2025-08-14 18:01:06 +02:00
community-scripts-pr-app[bot]
87b7166924 Update CHANGELOG.md (#6842)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 15:12:51 +00:00
elvito
9b9faf7a53 Bugfix Searxng Redis replaced with Valkey in installscript (#6831) 2025-08-14 17:12:28 +02:00
community-scripts-pr-app[bot]
51a1d3c0ef Update CHANGELOG.md (#6835)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 12:15:52 +00:00
community-scripts-pr-app[bot]
8b1c2d6e68 Update CHANGELOG.md (#6834)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 12:15:35 +00:00
Slaviša Arežina
21c2ef2915 Refactor (#6822) 2025-08-14 14:15:24 +02:00
Slaviša Arežina
6796e609d0 Refactor (#6823) 2025-08-14 14:15:12 +02:00
Slaviša Arežina
723ac08abb Update (#6825) 2025-08-14 14:14:59 +02:00
community-scripts-pr-app[bot]
35c4c363a0 Update versions.json (#6830)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 14:06:10 +02:00
community-scripts-pr-app[bot]
32f99aee54 Update CHANGELOG.md (#6827)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 11:37:14 +00:00
Slaviša Arežina
1803ea0323 Refactor (#6820) 2025-08-14 13:36:50 +02:00
community-scripts-pr-app[bot]
fcf14a93c2 Update CHANGELOG.md (#6816)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 00:15:01 +00:00
community-scripts-pr-app[bot]
549e1ee01e Update versions.json (#6815)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 02:14:37 +02:00
community-scripts-pr-app[bot]
c4b7966303 Update CHANGELOG.md (#6811)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 21:17:21 +00:00
community-scripts-pr-app[bot]
2ed4d91f3c Update CHANGELOG.md (#6810)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 21:17:09 +00:00
CanbiZ
6a5685505a emby: fix update output (#6791) 2025-08-13 23:16:56 +02:00
CanbiZ
7cc1eaa259 archivebox: fix wrong formatted uv command (#6794) 2025-08-13 23:16:49 +02:00
community-scripts-pr-app[bot]
0db53c98e0 Update CHANGELOG.md (#6809)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 19:00:56 +00:00
community-scripts-pr-app[bot]
0faf32c4d0 Update CHANGELOG.md (#6808)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 19:00:17 +00:00
Slaviša Arežina
5c564b4bd1 Update (#6803) 2025-08-13 21:00:08 +02:00
Slaviša Arežina
5b81fc1aaa Fixed install and update functions (#6806) 2025-08-13 20:59:56 +02:00
Slaviša Arežina
047c7fe53c AgentDVR: Added update function (#6804)
* Update

* Update json
2025-08-13 20:59:43 +02:00
community-scripts-pr-app[bot]
c759269f0a Update CHANGELOG.md (#6801)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 14:58:17 +00:00
Chris
7540314f53 Palmr: fix release version parsing (#6800)
- increase RAM resources
2025-08-13 16:57:48 +02:00
community-scripts-pr-app[bot]
8d73af0106 Update CHANGELOG.md (#6798)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 13:12:09 +00:00
CanbiZ
f1cdef1f9b myspeed: fix update process if no data exist (#6795) 2025-08-13 15:11:41 +02:00
community-scripts-pr-app[bot]
79f3662636 Update CHANGELOG.md (#6797)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 13:11:26 +00:00
CanbiZ
c43e5318ae crafty-controller: fix update output (#6793) 2025-08-13 15:11:05 +02:00
community-scripts-pr-app[bot]
7e32903f10 Update CHANGELOG.md (#6796)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 12:29:18 +00:00
Slaviša Arežina
ba5c318276 GLPI: Fix timezone command (#6783)
* FIx timezone command

* Update glpi-install.sh
2025-08-13 14:28:50 +02:00
community-scripts-pr-app[bot]
634fcb5abb Update versions.json (#6790)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 14:05:34 +02:00
community-scripts-pr-app[bot]
5d29a4f11c Update CHANGELOG.md (#6779)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 00:14:52 +00:00
community-scripts-pr-app[bot]
cf62139e07 Update versions.json (#6778)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 02:14:25 +02:00
community-scripts-pr-app[bot]
716f1f05ec Update CHANGELOG.md (#6777)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-12 19:09:50 +00:00
Chris
47d773d088 Pulse: binary path changed AGAIN; other fixes (#6770)
- Pretty much reverts the path change from yesterday
- Checks for and removes the /opt/pulse/bin and
/opt/pulse/frontend-modern dirs if they exist
- Disables shell access for pulse user for better security
2025-08-12 21:09:25 +02:00
community-scripts-pr-app[bot]
f9eb0cfa40 Update CHANGELOG.md (#6776)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-12 19:00:07 +00:00
GaminnLinux
2b164f8281 fix alpine syncthing config not being created (#6773) 2025-08-12 20:59:42 +02:00
community-scripts-pr-app[bot]
6937ca1c67 Update versions.json (#6766)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-12 14:06:23 +02:00
community-scripts-pr-app[bot]
af6c1ae680 Update CHANGELOG.md (#6764)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-12 09:38:50 +00:00
Maximilian Bosche
75335f3362 change owner of hortusfox folder (#6763) 2025-08-12 11:38:24 +02:00
130 changed files with 3413 additions and 1694 deletions

View File

@@ -10,8 +10,211 @@
> [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2025-08-22
## 2025-08-21
### 🆕 New Scripts
- LiteLLM ([#7052](https://github.com/community-scripts/ProxmoxVE/pull/7052))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- tianji: add uv deps [@MickLesk](https://github.com/MickLesk) ([#7066](https://github.com/community-scripts/ProxmoxVE/pull/7066))
- Zitadel: installer for v4 [@MickLesk](https://github.com/MickLesk) ([#7058](https://github.com/community-scripts/ProxmoxVE/pull/7058))
- Paperless-NGX: create direction for nltk [@MickLesk](https://github.com/MickLesk) ([#7064](https://github.com/community-scripts/ProxmoxVE/pull/7064))
- Immich: hotfix - revert 7035 [@vhsdream](https://github.com/vhsdream) ([#7054](https://github.com/community-scripts/ProxmoxVE/pull/7054))
- duplicati: fix release pattern [@MickLesk](https://github.com/MickLesk) ([#7049](https://github.com/community-scripts/ProxmoxVE/pull/7049))
- technitiumdns: fix unbound variable [@MickLesk](https://github.com/MickLesk) ([#7047](https://github.com/community-scripts/ProxmoxVE/pull/7047))
- [core]: improve binary globbing for gh releases [@MickLesk](https://github.com/MickLesk) ([#7044](https://github.com/community-scripts/ProxmoxVE/pull/7044))
## 2025-08-20
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Post-Install, change pve-test for trixie [@MickLesk](https://github.com/MickLesk) ([#7031](https://github.com/community-scripts/ProxmoxVE/pull/7031))
- Immich: fix small issue with immich-admin "start" script [@vhsdream](https://github.com/vhsdream) ([#7035](https://github.com/community-scripts/ProxmoxVE/pull/7035))
- WasteBin: Small fixes [@tremor021](https://github.com/tremor021) ([#7018](https://github.com/community-scripts/ProxmoxVE/pull/7018))
- Komga: Fix update [@tremor021](https://github.com/tremor021) ([#7027](https://github.com/community-scripts/ProxmoxVE/pull/7027))
- Barcode Buddy: Fix missing dependency [@tremor021](https://github.com/tremor021) ([#7020](https://github.com/community-scripts/ProxmoxVE/pull/7020))
- PBS: ifupdown2 reload [@MickLesk](https://github.com/MickLesk) ([#7013](https://github.com/community-scripts/ProxmoxVE/pull/7013))
- #### ✨ New Features
- Feature: Netdata support PVE9 (Debian 13 Trixie) [@MickLesk](https://github.com/MickLesk) ([#7012](https://github.com/community-scripts/ProxmoxVE/pull/7012))
- #### 🔧 Refactor
- Refactor: RustDesk Server [@tremor021](https://github.com/tremor021) ([#7008](https://github.com/community-scripts/ProxmoxVE/pull/7008))
- ghost: fix: verbose [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7023](https://github.com/community-scripts/ProxmoxVE/pull/7023))
- Refactor: Paperless-ngx [@MickLesk](https://github.com/MickLesk) ([#6938](https://github.com/community-scripts/ProxmoxVE/pull/6938))
## 2025-08-19
### 🆕 New Scripts
- Debian 13 VM [@MickLesk](https://github.com/MickLesk) ([#6970](https://github.com/community-scripts/ProxmoxVE/pull/6970))
- Swizzin ([#6962](https://github.com/community-scripts/ProxmoxVE/pull/6962))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- [core]: create_lxc - fix offline issue with alpine packages [@MickLesk](https://github.com/MickLesk) ([#6994](https://github.com/community-scripts/ProxmoxVE/pull/6994))
- OpenObserve: Fix release fetching [@tremor021](https://github.com/tremor021) ([#6961](https://github.com/community-scripts/ProxmoxVE/pull/6961))
- Update hev-socks5-server-install.sh [@iAzamat2](https://github.com/iAzamat2) ([#6953](https://github.com/community-scripts/ProxmoxVE/pull/6953))
- #### ✨ New Features
- Refactor: Glances (+ Feature Bump) [@MickLesk](https://github.com/MickLesk) ([#6976](https://github.com/community-scripts/ProxmoxVE/pull/6976))
- [core]: add new features to create_lxc [@MickLesk](https://github.com/MickLesk) ([#6979](https://github.com/community-scripts/ProxmoxVE/pull/6979))
- [core]: extend setup_uv to work with alpine [@MickLesk](https://github.com/MickLesk) ([#6978](https://github.com/community-scripts/ProxmoxVE/pull/6978))
- Immich: Bump version to 1.138.1 [@vhsdream](https://github.com/vhsdream) ([#6984](https://github.com/community-scripts/ProxmoxVE/pull/6984))
- #### 🔧 Refactor
- Refactor: Tdarr [@MickLesk](https://github.com/MickLesk) ([#6969](https://github.com/community-scripts/ProxmoxVE/pull/6969))
- Refactor: The Lounge [@tremor021](https://github.com/tremor021) ([#6958](https://github.com/community-scripts/ProxmoxVE/pull/6958))
- Refactor: TeddyCloud [@tremor021](https://github.com/tremor021) ([#6963](https://github.com/community-scripts/ProxmoxVE/pull/6963))
- Refactor: Technitium DNS [@tremor021](https://github.com/tremor021) ([#6968](https://github.com/community-scripts/ProxmoxVE/pull/6968))
### 🌐 Website
- #### 📝 Script Information
- [web]: update logos from reactive-resume & slskd [@MickLesk](https://github.com/MickLesk) ([#6990](https://github.com/community-scripts/ProxmoxVE/pull/6990))
## 2025-08-18
### 🆕 New Scripts
- CopyParty [@MickLesk](https://github.com/MickLesk) ([#6929](https://github.com/community-scripts/ProxmoxVE/pull/6929))
- Twingate-Connector ([#6921](https://github.com/community-scripts/ProxmoxVE/pull/6921))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Keycloak: fix update function [@MickLesk](https://github.com/MickLesk) ([#6943](https://github.com/community-scripts/ProxmoxVE/pull/6943))
- Immich: add message to indicate image-processing library update check [@vhsdream](https://github.com/vhsdream) ([#6935](https://github.com/community-scripts/ProxmoxVE/pull/6935))
- fix(uptimekuma): unbound env variable [@vidonnus](https://github.com/vidonnus) ([#6922](https://github.com/community-scripts/ProxmoxVE/pull/6922))
- #### 🔧 Refactor
- Refactor: Traefik [@tremor021](https://github.com/tremor021) ([#6940](https://github.com/community-scripts/ProxmoxVE/pull/6940))
- Refactor: Traccar [@tremor021](https://github.com/tremor021) ([#6942](https://github.com/community-scripts/ProxmoxVE/pull/6942))
- Refactor: Umami [@tremor021](https://github.com/tremor021) ([#6939](https://github.com/community-scripts/ProxmoxVE/pull/6939))
- Refactor: GoMFT [@tremor021](https://github.com/tremor021) ([#6916](https://github.com/community-scripts/ProxmoxVE/pull/6916))
### 🌐 Website
- #### 📝 Script Information
- OpenWRT: add info for VLAN-aware in frontend [@MickLesk](https://github.com/MickLesk) ([#6944](https://github.com/community-scripts/ProxmoxVE/pull/6944))
## 2025-08-17
## 2025-08-16
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Wireguard: Fix WGDashboard not updating [@tremor021](https://github.com/tremor021) ([#6898](https://github.com/community-scripts/ProxmoxVE/pull/6898))
- Tandoor Images Fix [@WarLord185](https://github.com/WarLord185) ([#6892](https://github.com/community-scripts/ProxmoxVE/pull/6892))
- #### 🔧 Refactor
- Refactor: Uptime Kuma [@tremor021](https://github.com/tremor021) ([#6902](https://github.com/community-scripts/ProxmoxVE/pull/6902))
- Refactor: Wallos [@tremor021](https://github.com/tremor021) ([#6900](https://github.com/community-scripts/ProxmoxVE/pull/6900))
## 2025-08-15
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Immich: pin Vectorchord release; adjust extension update commands [@vhsdream](https://github.com/vhsdream) ([#6878](https://github.com/community-scripts/ProxmoxVE/pull/6878))
- #### ✨ New Features
- Bump Immich to v1.138.0 [@vhsdream](https://github.com/vhsdream) ([#6813](https://github.com/community-scripts/ProxmoxVE/pull/6813))
- #### 🔧 Refactor
- Refactor: Wavelog [@tremor021](https://github.com/tremor021) ([#6869](https://github.com/community-scripts/ProxmoxVE/pull/6869))
- Refactor: WatchYourLAN [@tremor021](https://github.com/tremor021) ([#6871](https://github.com/community-scripts/ProxmoxVE/pull/6871))
- Refactor: Watcharr [@tremor021](https://github.com/tremor021) ([#6872](https://github.com/community-scripts/ProxmoxVE/pull/6872))
### 🌐 Website
- #### 📝 Script Information
- Add missing default user & pass for RabbitMQ [@hbenyoussef](https://github.com/hbenyoussef) ([#6883](https://github.com/community-scripts/ProxmoxVE/pull/6883))
## 2025-08-14
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Bugfix Searxng Redis replaced with Valkey in installscript [@elvito](https://github.com/elvito) ([#6831](https://github.com/community-scripts/ProxmoxVE/pull/6831))
- Spoolman: Use environment variables to control host and port [@tremor021](https://github.com/tremor021) ([#6825](https://github.com/community-scripts/ProxmoxVE/pull/6825))
- Pulse: v4.3.2+ [@vhsdream](https://github.com/vhsdream) ([#6859](https://github.com/community-scripts/ProxmoxVE/pull/6859))
- rustdeskserver: fix API version file [@steadfasterX](https://github.com/steadfasterX) ([#6847](https://github.com/community-scripts/ProxmoxVE/pull/6847))
- Immich: quickfix #6836 [@vhsdream](https://github.com/vhsdream) ([#6848](https://github.com/community-scripts/ProxmoxVE/pull/6848))
- #### 🔧 Refactor
- Refactor: WikiJS [@tremor021](https://github.com/tremor021) ([#6840](https://github.com/community-scripts/ProxmoxVE/pull/6840))
- Refactor: Zoraxy [@tremor021](https://github.com/tremor021) ([#6823](https://github.com/community-scripts/ProxmoxVE/pull/6823))
- Refactor: Zitadel [@tremor021](https://github.com/tremor021) ([#6826](https://github.com/community-scripts/ProxmoxVE/pull/6826))
- Refactor: WordPress [@tremor021](https://github.com/tremor021) ([#6837](https://github.com/community-scripts/ProxmoxVE/pull/6837))
- Refactor: WireGuard [@tremor021](https://github.com/tremor021) ([#6839](https://github.com/community-scripts/ProxmoxVE/pull/6839))
- Refactor: yt-dlp-webui [@tremor021](https://github.com/tremor021) ([#6832](https://github.com/community-scripts/ProxmoxVE/pull/6832))
- Refactor: Zipline [@tremor021](https://github.com/tremor021) ([#6829](https://github.com/community-scripts/ProxmoxVE/pull/6829))
- Refactor: Zot-Registry [@tremor021](https://github.com/tremor021) ([#6822](https://github.com/community-scripts/ProxmoxVE/pull/6822))
- Refactor: Zwave-JS-UI [@tremor021](https://github.com/tremor021) ([#6820](https://github.com/community-scripts/ProxmoxVE/pull/6820))
### 🧰 Maintenance
- #### 📂 Github
- ProxmoxVE svg logo [@LuisPalacios](https://github.com/LuisPalacios) ([#6846](https://github.com/community-scripts/ProxmoxVE/pull/6846))
## 2025-08-13
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- emby: fix update output [@MickLesk](https://github.com/MickLesk) ([#6791](https://github.com/community-scripts/ProxmoxVE/pull/6791))
- archivebox: fix wrong formatted uv command [@MickLesk](https://github.com/MickLesk) ([#6794](https://github.com/community-scripts/ProxmoxVE/pull/6794))
- Outline: Fixes for install and update procedures [@tremor021](https://github.com/tremor021) ([#6806](https://github.com/community-scripts/ProxmoxVE/pull/6806))
- Palmr: fix release version parsing // increase RAM [@vhsdream](https://github.com/vhsdream) ([#6800](https://github.com/community-scripts/ProxmoxVE/pull/6800))
- myspeed: fix update process if no data exist [@MickLesk](https://github.com/MickLesk) ([#6795](https://github.com/community-scripts/ProxmoxVE/pull/6795))
- crafty-controller: fix update output [@MickLesk](https://github.com/MickLesk) ([#6793](https://github.com/community-scripts/ProxmoxVE/pull/6793))
- GLPI: Fix timezone command [@tremor021](https://github.com/tremor021) ([#6783](https://github.com/community-scripts/ProxmoxVE/pull/6783))
- #### ✨ New Features
- Docker LXC: Add Portainer info [@tremor021](https://github.com/tremor021) ([#6803](https://github.com/community-scripts/ProxmoxVE/pull/6803))
- AgentDVR: Added update function [@tremor021](https://github.com/tremor021) ([#6804](https://github.com/community-scripts/ProxmoxVE/pull/6804))
## 2025-08-12
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Pulse: binary path changed AGAIN; other fixes [@vhsdream](https://github.com/vhsdream) ([#6770](https://github.com/community-scripts/ProxmoxVE/pull/6770))
- fix alpine syncthing config not being created [@GamerHun1238](https://github.com/GamerHun1238) ([#6773](https://github.com/community-scripts/ProxmoxVE/pull/6773))
- change owner of hortusfox directory [@snow2k9](https://github.com/snow2k9) ([#6763](https://github.com/community-scripts/ProxmoxVE/pull/6763))
## 2025-08-11
### 🚀 Updated Scripts

View File

@@ -27,7 +27,30 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "Currently we don't provide an update function for this ${APP}."
RELEASE=$(curl -fsSL "https://www.ispyconnect.com/api/Agent/DownloadLocation4?platform=Linux64&fromVersion=0" | grep -o 'https://.*\.zip')
if [[ "${RELEASE}" != "$(cat ~/.agentdvr 2>/dev/null)" ]] || [[ ! -f ~/.agentdvr ]]; then
msg_info "Stopping service"
systemctl stop AgentDVR
msg_ok "Service stopped"
msg_info "Updating $APP"
cd /opt/agentdvr/agent
curl -fsSL "$RELEASE" -o $(basename "$RELEASE")
$STD unzip -o Agent_Linux64*.zip
chmod +x ./Agent
echo $RELEASE > ~/.agentdvr
rm -rf Agent_Linux64*.zip
msg_ok "Updated $APP"
msg_info "Starting service"
systemctl start AgentDVR
msg_ok "Service started"
msg_ok "Updated $APP successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -42,7 +42,7 @@ function update_script() {
msg_info "Updating ArchiveBox"
cd /opt/archivebox/data
uv --system pip install --upgrade --ignore-installed archivebox
$STD uv pip install --system --upgrade --no-reinstall archivebox
sudo -u archivebox archivebox init
msg_ok "Updated ArchiveBox"

View File

@@ -68,10 +68,10 @@ function update_script() {
msg_ok "Started Crafty-Controller"
msg_ok "Updated Successfully"
exit
else
msg_ok "No update required. Crafty-Controller is already at v${RELEASE}."
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start

View File

@@ -90,3 +90,5 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} If you installed Portainer, access it at the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:9443${CL}"

View File

@@ -34,7 +34,7 @@ function update_script() {
systemctl stop duplicati
msg_ok "Stopped $APP"
fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "linux-x64-gui.deb"
fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "duplicati-*-linux-x64-gui.deb"
msg_info "Starting $APP"
systemctl start duplicati

View File

@@ -41,8 +41,10 @@ function update_script() {
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
exit
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}
start

View File

@@ -28,83 +28,14 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! dpkg -l | grep -q "^ii.*build-essential"; then
$STD apt-get install -y build-essential
fi
if [[ ! -f "/usr/bin/node" ]]; then
mkdir -p /etc/apt/keyrings
curl -fsSL "https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key" | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
$STD apt-get update
$STD apt-get install -y nodejs
fi
RELEASE=$(curl -fsSL "https://api.github.com/repos/StarFleetCPTN/GoMFT/releases/latest" | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
if [[ "${RELEASE}" != "$(cat ~/.gomft)" ]] || [[ ! -f ~/.gomft ]]; then
msg_info "Stopping $APP"
systemctl stop gomft
msg_ok "Stopped $APP"
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
temp_file=$(mktemp)
curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar -xzf "$temp_file"
cp -rf "GoMFT-${RELEASE}"/* /opt/gomft/
cd /opt/gomft
$STD npm install
$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
export CGO_ENABLED=1
export GOOS=linux
$STD go build -o gomft
chmod +x /opt/gomft/gomft
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to ${RELEASE}"
msg_info "Cleaning Up"
rm -f "$temp_file"
rm -rf "$HOME/GoMFT-v.${RELEASE}/"
msg_ok "Cleanup Complete"
fetch_and_deploy_gh_release "gomft" "StarFleetCPTN/GoMFT" "singlefile" "latest" "/opt/gomft" "gomft*linux-amd64"
msg_info "Starting $APP"
systemctl start gomft

6
ct/headers/litellm Normal file
View File

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

6
ct/headers/swizzin Normal file
View File

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

View File

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

View File

@@ -47,6 +47,7 @@ function update_script() {
$STD php asatru migrate --no-interaction
$STD php asatru plants:attributes
$STD php asatru calendar:classes
chown -R www-data:www-data /opt/hortusfox
msg_ok "Updated HortusFox"
msg_info "Starting Service"

View File

@@ -52,13 +52,14 @@ function update_script() {
if [[ -f ~/.immich_library_revisions ]]; then
libraries=("libjxl" "libheif" "libraw" "imagemagick" "libvips")
cd "$BASE_DIR"
msg_info "Checking for updates to custom image-processing libraries"
$STD git pull
for library in "${libraries[@]}"; do
compile_"$library"
done
msg_ok "Image-processing libraries updated"
msg_ok "Image-processing libraries up to date"
fi
RELEASE="1.137.3"
RELEASE="1.138.1"
#RELEASE=$(curl -fsSL https://api.github.com/repos/immich-app/immich/releases?per_page=1 | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ -f ~/.immich && "$RELEASE" == "$(cat ~/.immich)" ]]; then
msg_ok "No update required. ${APP} is already at v${RELEASE}"
@@ -74,7 +75,8 @@ function update_script() {
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) }')"
VCHORD_RELEASE="0.4.3"
# VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
if [[ ! -f ~/.vchord_version ]] || [[ "$VCHORD_RELEASE" != "$(cat ~/.vchord_version)" ]]; then
msg_info "Updating VectorChord"
@@ -91,7 +93,8 @@ function update_script() {
$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;"
$STD sudo -u postgres psql -d immich -c "REINDEX INDEX face_index;"
$STD sudo -u postgres psql -d immich -c "REINDEX INDEX clip_index;"
fi
echo "$VCHORD_RELEASE" >~/.vchord_version
rm ./vchord.deb
@@ -106,10 +109,10 @@ function update_script() {
#!/usr/bin/env bash
set -a
. "$INSTALL_DIR"/.env
. ${INSTALL_DIR}/.env
set +a
/usr/bin/node "$APP_DIR"/dist/main.js "\$@"
/usr/bin/node ${APP_DIR}/dist/main.js "\$@"
EOF
chmod +x "$INSTALL_DIR"/start.sh
fi
@@ -180,7 +183,10 @@ EOF
msg_ok "Updated Immich CLI"
chown -R immich:immich "$INSTALL_DIR"
echo "$RELEASE" >/opt/"${APP}"_version.txt
if [[ ! -f ~/.debian_version.bak ]]; then
cp /etc/debian_version ~/.debian_version.bak
sed -i 's/.*/13.0/' /etc/debian_version
fi
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Cleaning up"

View File

@@ -27,38 +27,50 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping Keycloak"
systemctl stop keycloak
msg_ok "Stopped Keycloak"
msg_info "Updating packages"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated packages"
msg_info "Backup old Keycloak"
cd /opt
mv keycloak keycloak.old
tar -czf keycloak_conf_backup.tar.gz keycloak.old/conf
msg_ok "Backup done"
fetch_and_deploy_gh_release "keycloak" "keycloak/keycloak" "prebuild" "latest" "/opt/keycloak" "keycloak-*.tar.gz"
msg_info "Updating ${APP}"
cd /opt
mv keycloak_conf_backup.tar.gz keycloak/conf
cp -r keycloak.old/providers keycloak
cp -r keycloak.old/themes keycloak
rm -rf keycloak.old
msg_ok "Updated ${APP} LXC"
msg_info "Restarting Keycloak"
systemctl restart keycloak
msg_ok "Restarted Keycloak"
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/keycloak/keycloak/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.keycloak_app 2>/dev/null)" ]] || [[ ! -f ~/.keycloak_app ]]; then
msg_info "Stopping Keycloak"
systemctl stop keycloak
msg_ok "Stopped Keycloak"
msg_info "Updating packages"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated packages"
msg_info "Backup old Keycloak"
cd /opt
mv keycloak keycloak.old
msg_ok "Backup done"
fetch_and_deploy_gh_release "keycloak_app" "keycloak/keycloak" "prebuild" "latest" "/opt/keycloak" "keycloak-*.tar.gz"
msg_info "Updating ${APP}"
cd /opt
cp -a keycloak.old/conf/. keycloak/conf/
cp -a keycloak.old/providers/. keycloak/providers/ 2>/dev/null || true
cp -a keycloak.old/themes/. keycloak/themes/ 2>/dev/null || true
msg_ok "Updated ${APP} LXC"
msg_info "Restarting Keycloak"
systemctl restart keycloak
msg_ok "Restarted Keycloak"
msg_info "Cleaning up"
rm -rf keycloak.old
msg_ok "Cleanup complete"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
build_container
description

View File

@@ -29,7 +29,7 @@ function update_script() {
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/gotson/komga/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f ~/.komga ]] || [[ "${RELEASE}" != "$(cat ~/.komga)" ]]; then
if [[ ! -f ~/.komga-org ]] || [[ "${RELEASE}" != "$(cat ~/.komga-org)" ]]; then
msg_info "Stopping ${APP}"
systemctl stop komga
msg_ok "Stopped ${APP}"

60
ct/litellm.sh Normal file
View File

@@ -0,0 +1,60 @@
#!/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: stout01
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/BerriAI/litellm
APP="LiteLLM"
var_tags="${var_tags:-ai;interface}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
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 [[ ! -f /etc/systemd/system/litellm.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ${APP}"
systemctl stop litellm
msg_ok "Stopped ${APP}"
VENV_PATH="/opt/litellm/.venv"
PYTHON_VERSION="3.13" setup_uv
msg_info "Updating $APP"
$STD "$VENV_PATH/bin/python" -m pip install --upgrade litellm[proxy] prisma
msg_info "Updating DB Schema"
$STD uv --directory=/opt/litellm run litellm --config /opt/litellm/litellm.yaml --use_prisma_db_push --skip_server_startup
msg_ok "DB Schema Updated"
msg_info "Starting ${APP}"
systemctl start litellm
msg_ok "Started ${APP}"
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}:4000${CL}"

View File

@@ -44,7 +44,10 @@ function update_script() {
msg_info "Updating ${APP} to ${RELEASE}"
cd /opt/myspeed
$STD npm install
cp -r /opt/myspeed_bak/data/* /opt/myspeed/data/
if [[ -d /opt/myspeed_bak/data ]]; then
mkdir -p /opt/myspeed/data/
cp -r /opt/myspeed_bak/data/* /opt/myspeed/data/
fi
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting ${APP} Service"

View File

@@ -30,7 +30,7 @@ function update_script() {
msg_info "Updating $APP"
systemctl stop openobserve
LATEST=$(curl -fsSL https://api.github.com/repos/openobserve/openobserve/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
tar zxvf <(curl -fsSL https://github.com/openobserve/openobserve/releases/download/$LATEST/openobserve-${LATEST}-linux-amd64.tar.gz) -C /opt/openobserve
$STD tar zxvf <(curl -fsSL https://downloads.openobserve.ai/releases/openobserve/$LATEST/openobserve-$LATEST-linux-amd64.tar.gz) -C /opt/openobserve
systemctl start openobserve
msg_ok "Updated $APP"
exit

View File

@@ -42,11 +42,12 @@ function update_script() {
msg_info "Updating ${APP} to ${RELEASE}"
cd /opt/outline
mv /opt/.env /opt/outline
export NODE_ENV=development
export NODE_OPTIONS="--max-old-space-size=3584"
$STD yarn install --frozen-lockfile
export NODE_ENV=production
$STD yarn build
mv /opt/.env /opt/outline
msg_ok "Updated ${APP}"
msg_info "Starting Services"

View File

@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="Palmr"
var_tags="${var_tags:-files}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-4096}"
var_ram="${var_ram:-6144}"
var_disk="${var_disk:-6}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
@@ -28,19 +28,18 @@ function update_script() {
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/kyantech/palmr/releases/latest | jq '.tag_name' | sed 's/^v//')
RELEASE=$(curl -fsSL https://api.github.com/repos/kyantech/palmr/releases/latest | jq '.tag_name' | sed 's/^"v//;s/"$//')
if [[ "${RELEASE}" != "$(cat ~/.palmr 2>/dev/null)" ]] || [[ ! -f ~/.palmr ]]; then
msg_info "Stopping Services"
systemctl stop palmr-frontend palmr-backend
msg_ok "Stopped Services"
cp /opt/palmr/apps/server/.env /opt/palmr.env
rm -rf /opt/palmr
fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr"
PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)"
NODE_VERSION="20" NODE_MODULE="$PNPM" setup_nodejs
msg_info "Updating ${APP}"
cd /opt/palmr/apps/server
mv /opt/palmr.env /opt/palmr/apps/server/.env

View File

@@ -9,7 +9,7 @@ APP="Paperless-ngx"
var_tags="${var_tags:-document;management}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_disk="${var_disk:-12}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
@@ -20,70 +20,115 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/paperless ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/paperless-ngx/paperless-ngx/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/paperless-ngx/paperless-ngx/releases/latest | jq -r .tag_name | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.paperless 2>/dev/null)" ]] || [[ ! -f ~/.paperless ]]; then
msg_info "Stopping all Paperless-ngx Services"
systemctl stop paperless-consumer paperless-webserver paperless-scheduler paperless-task-queue
msg_ok "Stopped all Paperless-ngx Services"
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 2 \
"1" "Update Paperless-ngx to $RELEASE" ON \
"2" "Paperless-ngx Credentials" OFF \
3>&1 1>&2 2>&3)
header_info
check_container_storage
check_container_resources
if [ "$UPD" == "1" ]; then
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
if [[ "$(gs --version 2>/dev/null)" != "10.04.0" ]]; then
msg_info "Updating Ghostscript (Patience)"
cd /tmp
curl -fsSL "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10040/ghostscript-10.04.0.tar.gz" -o $(basename "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10040/ghostscript-10.04.0.tar.gz")
tar -xzf ghostscript-10.04.0.tar.gz
cd ghostscript-10.04.0
$STD ./configure
$STD make
$STD sudo make install
rm -rf /tmp/ghostscript*
msg_ok "Ghostscript updated to 10.04.0"
fi
msg_info "Stopping all Paperless-ngx Services"
systemctl stop paperless-consumer paperless-webserver paperless-scheduler paperless-task-queue.service
msg_ok "Stopped all Paperless-ngx Services"
if grep -q "uv run" /etc/systemd/system/paperless-webserver.service; then
msg_info "Backing up data"
mkdir -p /opt/paperless/backup
cp -r /opt/paperless/data /opt/paperless/backup/
cp -r /opt/paperless/media /opt/paperless/backup/
cp -r /opt/paperless/paperless.conf /opt/paperless/backup/
msg_ok "Backup completed"
PYTHON_VERSION="3.13" setup_uv
fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "latest" "/opt/paperless" "paperless*tar.xz"
fetch_and_deploy_gh_release "jbig2enc" "ie13/jbig2enc" "tarball" "latest" "/opt/jbig2enc"
setup_gs
msg_info "Updating to ${RELEASE}"
cd ~
curl -fsSL "https://github.com/paperless-ngx/paperless-ngx/releases/download/$RELEASE/paperless-ngx-$RELEASE.tar.xz" -o $(basename "https://github.com/paperless-ngx/paperless-ngx/releases/download/$RELEASE/paperless-ngx-$RELEASE.tar.xz")
tar -xf paperless-ngx-$RELEASE.tar.xz
cp -r /opt/paperless/paperless.conf paperless-ngx/
cp -r paperless-ngx/* /opt/paperless/
cp -r /opt/paperless/backup/* /opt/paperless/
cd /opt/paperless
$STD pip install -r requirements.txt
$STD uv sync --all-extras
cd /opt/paperless/src
$STD /usr/bin/python3 manage.py migrate
echo "${RELEASE}" >/opt/${APP}_version.txt
$STD uv run -- python manage.py migrate
msg_ok "Updated to ${RELEASE}"
msg_info "Cleaning up"
cd ~
rm paperless-ngx-$RELEASE.tar.xz
rm -rf paperless-ngx
msg_ok "Cleaned"
msg_info "Starting all Paperless-ngx Services"
systemctl start paperless-consumer paperless-webserver paperless-scheduler paperless-task-queue.service
sleep 1
msg_ok "Started all Paperless-ngx Services"
msg_ok "Updated Successfully!\n"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
msg_warn "You are about to migrate your Paperless-ngx installation to uv!"
msg_custom "🔒" "It is strongly recommended to take a Proxmox snapshot first:"
echo -e " 1. Stop the container: pct stop <CTID>"
echo -e " 2. Create a snapshot: pct snapshot <CTID> pre-paperless-uv-migration"
echo -e " 3. Start the container again\n"
read -rp "Have you created a snapshot? [y/N]: " confirm
if [[ ! "$confirm" =~ ^([yY]|[yY][eE][sS])$ ]]; then
msg_error "Migration aborted. Please create a snapshot first."
exit 1
fi
msg_info "Migrating old Paperless-ngx installation to uv"
rm -rf /opt/paperless/venv
find /opt/paperless -name "__pycache__" -type d -exec rm -rf {} +
declare -A PATCHES=(
["paperless-consumer.service"]="ExecStart=uv run -- python manage.py document_consumer"
["paperless-scheduler.service"]="ExecStart=uv run -- celery --app paperless beat --loglevel INFO"
["paperless-task-queue.service"]="ExecStart=uv run -- celery --app paperless worker --loglevel INFO"
["paperless-webserver.service"]="ExecStart=uv run -- granian --interface asgi --ws \"paperless.asgi:application\""
)
for svc in "${!PATCHES[@]}"; do
path=$(systemctl show -p FragmentPath "$svc" | cut -d= -f2)
if [[ -n "$path" && -f "$path" ]]; then
sed -i "s|^ExecStart=.*|${PATCHES[$svc]}|" "$path"
if [[ "$svc" == "paperless-webserver.service" ]]; then
grep -q "^Environment=GRANIAN_HOST=" "$path" ||
sed -i '/^\[Service\]/a Environment=GRANIAN_HOST=::' "$path"
grep -q "^Environment=GRANIAN_PORT=" "$path" ||
sed -i '/^\[Service\]/a Environment=GRANIAN_PORT=8000' "$path"
grep -q "^Environment=GRANIAN_WORKERS=" "$path" ||
sed -i '/^\[Service\]/a Environment=GRANIAN_WORKERS=1' "$path"
fi
msg_ok "Patched $svc"
else
msg_error "Service file for $svc not found!"
fi
done
$STD systemctl daemon-reload
msg_info "Backing up data"
mkdir -p /opt/paperless/backup
cp -r /opt/paperless/data /opt/paperless/backup/
cp -r /opt/paperless/media /opt/paperless/backup/
cp -r /opt/paperless/paperless.conf /opt/paperless/backup/
msg_ok "Backup completed"
PYTHON_VERSION="3.13" setup_uv
fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "latest" "/opt/paperless" "paperless*tar.xz"
fetch_and_deploy_gh_release "jbig2enc" "ie13/jbig2enc" "tarball" "latest" "/opt/jbig2enc"
setup_gs
msg_info "Updating Paperless-ngx"
cp -r /opt/paperless/backup/* /opt/paperless/
cd /opt/paperless
$STD uv sync --all-extras
cd /opt/paperless/src
$STD uv run -- python manage.py migrate
msg_ok "Paperless-ngx migration and update to ${RELEASE} completed"
fi
exit
fi
if [ "$UPD" == "2" ]; then
cat paperless.creds
exit
msg_info "Starting all Paperless-ngx Services"
systemctl start paperless-consumer paperless-webserver paperless-scheduler paperless-task-queue
sleep 1
msg_ok "Started all Paperless-ngx Services"
msg_ok "Updated Successfully!\n"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
@@ -94,3 +139,4 @@ msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000${CL}"

View File

@@ -1,7 +1,7 @@
#!/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: rcourtman
# Author: rcourtman & vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/rcourtman/Pulse
@@ -34,21 +34,30 @@ function update_script() {
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/rcourtman/Pulse/releases/latest | jq -r '.tag_name' | sed 's/^v//')
SERVICE_PATH="/etc/systemd/system"
if [[ "${RELEASE}" != "$(cat ~/.pulse 2>/dev/null)" ]] || [[ ! -f ~/.pulse ]]; then
msg_info "Stopping ${APP}"
systemctl stop pulse
systemctl stop pulse*.service
msg_ok "Stopped ${APP}"
if [[ -f /opt/pulse/pulse ]]; then
rm -f /opt/pulse/pulse
fi
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
chown -R pulse:pulse /etc/pulse /opt/pulse
sed -i 's|pulse/pulse|pulse/bin/pulse|' /etc/systemd/system/pulse.service
if [[ -f "$SERVICE_PATH"/pulse.service ]]; then
mv "$SERVICE_PATH"/pulse.service "$SERVICE_PATH"/pulse-backend.service
fi
sed -i -e 's|pulse/pulse|pulse/bin/pulse|' \
-e 's/^Environment="API.*$//' "$SERVICE_PATH"/pulse-backend.service
systemctl daemon-reload
if [[ -f /opt/pulse/pulse ]]; then
rm -rf /opt/pulse/{pulse,frontend-modern}
if grep -q 'pulse-home:/bin/bash' /etc/passwd; then
usermod -s /usr/sbin/nologin pulse
fi
msg_info "Starting ${APP}"
systemctl start pulse
systemctl start pulse-backend
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"

View File

@@ -28,13 +28,10 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if [[ ! -f /opt/rustdeskapi_version.txt ]]; then
touch /opt/rustdeskapi_version.txt
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
APIRELEASE=$(curl -fsSL https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/rustdesk_version.txt)" ]] || [[ "${APIRELEASE}" != "$(cat /opt/rustdesk-api.txt)" ]] || [[ ! -f /opt/rustdesk_version.txt ]] || [[ ! -f /opt/rustdesk-api.txt ]]; then
if [[ "${RELEASE}" != "$(cat ~/.rustdesk-hbbr)" ]] || [[ "${APIRELEASE}" != "$(cat ~/.rustdesk-api)" ]] || [[ ! -f ~/.rustdesk-hbbr ]] || [[ ! -f ~/.rustdesk-api ]]; then
msg_info "Stopping $APP"
systemctl stop rustdesk-hbbr
systemctl stop rustdesk-hbbs
@@ -43,28 +40,15 @@ function update_script() {
fi
msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
TEMPDIR=$(mktemp -d)
curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-hbbr_${RELEASE}_amd64.deb" \
-o "${TEMPDIR}/rustdesk-server-hbbr_${RELEASE}_amd64.deb"
curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-hbbs_${RELEASE}_amd64.deb" \
-o "${TEMPDIR}/rustdesk-server-hbbs_${RELEASE}_amd64.deb"
curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-utils_${RELEASE}_amd64.deb" \
-o "${TEMPDIR}/rustdesk-server-utils_${RELEASE}_amd64.deb"
curl -fsSL "https://github.com/lejianwen/rustdesk-api/releases/download/v${APIRELEASE}/rustdesk-api-server_${APIRELEASE}_amd64.deb" \
-o "${TEMPDIR}/rustdesk-api-server_${APIRELEASE}_amd64.deb"
$STD dpkg -i $TEMPDIR/*.deb
echo "${RELEASE}" >/opt/rustdesk_version.txt
echo "${APIRELEASE}" >/opt/rustdeskapi_version.txt
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Cleaning Up"
rm -rf $TEMPDIR
msg_ok "Cleanup Completed"
fetch_and_deploy_gh_release "rustdesk-hbbr" "rustdesk/rustdesk-server" "binary" "latest" "/opt/rustdesk" "rustdesk-server-hbbr*amd64.deb"
fetch_and_deploy_gh_release "rustdesk-hbbs" "rustdesk/rustdesk-server" "binary" "latest" "/opt/rustdesk" "rustdesk-server-hbbs*amd64.deb"
fetch_and_deploy_gh_release "rustdesk-utils" "rustdesk/rustdesk-server" "binary" "latest" "/opt/rustdesk" "rustdesk-server-utils*amd64.deb"
fetch_and_deploy_gh_release "rustdesk-api" "lejianwen/rustdesk-api" "binary" "latest" "/opt/rustdesk" "rustdesk-api-server*amd64.deb"
msg_info "Starting services"
systemctl start -q rustdesk-* --all
msg_ok "Services started"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"

43
ct/swizzin.sh Normal file
View File

@@ -0,0 +1,43 @@
#!/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: EEJoshua
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://swizzin.ltd/
APP="Swizzin"
var_tags="${var_tags:-seedbox}"
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 ! command -v sudo box >/dev/null 2>&1; then
msg_error "No ${APP} installation found!"
exit
fi
msg_info "Running 'sudo box update' inside the container"
$STD sudo box update
msg_ok "Update finished"
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}If installed panel, access through the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

@@ -20,18 +20,30 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/tdarr ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/tdarr ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
rm -rf /opt/tdarr/Tdarr_Updater
cd /opt/tdarr
RELEASE=$(curl -fsSL https://f000.backblazeb2.com/file/tdarrs/versions.json | grep -oP '(?<="Tdarr_Updater": ")[^"]+' | grep linux_x64 | head -n 1)
curl -fsSL "$RELEASE" -o Tdarr_Updater.zip
$STD unzip Tdarr_Updater.zip
chmod +x Tdarr_Updater
$STD ./Tdarr_Updater
msg_ok "Updated $APP LXC"
msg_info "Cleaning up"
rm -rf /opt/tdarr/Tdarr_Updater.zip
msg_ok "Cleaned"
msg_ok "$APP has been successfully updated!"
exit
}
start
@@ -41,4 +53,4 @@ 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}:8265${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8265${CL}"

View File

@@ -27,17 +27,20 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP}"
if ! dpkg -s aspnetcore-runtime-8.0 >/dev/null 2>&1; then
curl -fsSL "https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb" -o $(basename "https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb")
$STD dpkg -i packages-microsoft-prod.deb
$STD apt-get update
$STD apt-get install -y aspnetcore-runtime-8.0
rm packages-microsoft-prod.deb
RELEASE=$(curl -fsSL https://technitium.com/dns/ | grep -oP 'Version \K[\d.]+')
if [[ ! -f ~/.technitium || "${RELEASE}" != "$(cat ~/.technitium)" ]]; then
msg_info "Updating ${APP}"
curl -fsSL "https://download.technitium.com/dns/DnsServerPortable.tar.gz" -o /opt/DnsServerPortable.tar.gz
$STD tar zxvf /opt/DnsServerPortable.tar.gz -C /opt/technitium/dns/
msg_ok "Updated Successfully"
msg_info "Cleaning up"
rm -f /opt/DnsServerPortable.tar.gz
msg_ok "Cleaned up"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}."
fi
$STD bash <(curl -fsSL https://download.technitium.com/dns/install.sh)
msg_ok "Updated Successfully"
exit
}

View File

@@ -26,32 +26,34 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE="$(curl -fsSL https://api.github.com/repos/toniebox-reverse-engineering/teddycloud/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
VERSION="${RELEASE#tc_v}"
if [[ ! -f "/opt/${APP}_version.txt" || "${VERSION}" != "$(cat /opt/${APP}_version.txt)" ]]; then
if [[ ! -f ~/.teddycloud || "${RELEASE}" != "$(cat ~/.teddycloud)" ]]; then
msg_info "Stopping ${APP}"
systemctl stop teddycloud
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP} to v${VERSION}"
cd /opt
msg_info "Creating backup"
mv /opt/teddycloud /opt/teddycloud_bak
curl -fsSL "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip" -o $(basename "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip")
$STD unzip -d /opt/teddycloud teddycloud.amd64.release_v${VERSION}.zip
msg_ok "Backup created"
fetch_and_deploy_gh_release "teddycloud" "toniebox-reverse-engineering/teddycloud" "prebuild" "latest" "/opt/teddycloud" "teddycloud.amd64.release*.zip"
msg_info "Restoring data"
cp -R /opt/teddycloud_bak/certs /opt/teddycloud_bak/config /opt/teddycloud_bak/data /opt/teddycloud
echo "${VERSION}" >"/opt/${APP}_version.txt"
msg_ok "Updated ${APP} to v${VERSION}"
msg_ok "Data restored"
msg_info "Starting ${APP}"
systemctl start teddycloud
msg_ok "Started ${APP}"
msg_info "Cleaning up"
rm -rf /opt/teddycloud.amd64.release_v${VERSION}.zip
rm -rf /opt/teddycloud_bak
msg_ok "Cleaned"
msg_ok "Updated successfully"
else
msg_ok "No update required. ${APP} is already at v${VERSION}"
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -27,33 +27,15 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! dpkg -l build-essential >/dev/null 2>&1; then
$STD apt-get update
$STD apt-get install -y build-essential
fi
if ! npm list -g node-gyp >/dev/null 2>&1; then
$STD npm install -g node-gyp
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/thelounge/thelounge-deb/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 [[ ! -f ~/.thelounge ]] || [[ "${RELEASE}" != "$(cat ~/.thelounge)" ]]; then
msg_info "Stopping Service"
systemctl stop thelounge
msg_ok "Stopped Service"
msg_info "Updating ${APP} to v${RELEASE}"
$STD apt-get install --only-upgrade nodejs
cd /opt
curl -fsSL "https://github.com/thelounge/thelounge-deb/releases/download/v${RELEASE}/thelounge_${RELEASE}_all.deb" -o $(basename "https://github.com/thelounge/thelounge-deb/releases/download/v${RELEASE}/thelounge_${RELEASE}_all.deb")
dpkg -i ./thelounge_${RELEASE}_all.deb
msg_ok "Updated ${APP} to v${RELEASE}"
fetch_and_deploy_gh_release "thelounge" "thelounge/thelounge-deb" "binary"
msg_info "Starting Service"
systemctl start thelounge
msg_ok "Started Service"
msg_info "Cleaning up"
rm -rf "/opt/thelounge_${RELEASE}_all.deb"
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}."

View File

@@ -27,7 +27,42 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "Currently we don't provide an update function for this ${APP}."
RELEASE=$(curl -fsSL https://api.github.com/repos/traccar/traccar/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.traccar)" ]] || [[ ! -f ~/.traccar ]]; then
msg_info "Stopping service"
systemctl stop traccar
msg_ok "Service stopped"
msg_info "Creating backup"
mv /opt/traccar/conf/traccar.xml /opt
[[ -d /opt/traccar/data ]] && mv /opt/traccar/data /opt
[[ -d /opt/traccar/media ]] && mv /opt/traccar/media /opt
msg_ok "Backup created"
rm -rf /opt/traccar
fetch_and_deploy_gh_release "traccar" "traccar/traccar" "prebuild" "latest" "/opt/traccar" "traccar-linux-64*.zip"
cd /opt/traccar
$STD ./traccar.run
msg_info "Restoring data"
mv /opt/traccar.xml /opt/traccar/conf
[[ -d /opt/data ]] && mv /opt/data /opt/traccar
[[ -d /opt/media ]] && mv /opt/media /opt/traccar
msg_ok "Data restored"
msg_info "Starting ${APP}"
systemctl start traccar
msg_ok "Started ${APP}"
msg_info "Cleaning up"
[ -f README.txt ] || [ -f traccar.run ] && rm -f README.txt traccar.run
msg_ok "Cleaned up"
msg_ok "Successfully updated ${APP}"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}
@@ -38,4 +73,4 @@ 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}:8082${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8082${CL}"

View File

@@ -27,16 +27,20 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/traefik/traefik/releases | grep -oP '"tag_name":\s*"v\K[\d.]+?(?=")' | sort -V | tail -n 1)
msg_info "Updating $APP LXC"
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
curl -fsSL "https://github.com/traefik/traefik/releases/download/v${RELEASE}/traefik_v${RELEASE}_linux_amd64.tar.gz" -o $(basename "https://github.com/traefik/traefik/releases/download/v${RELEASE}/traefik_v${RELEASE}_linux_amd64.tar.gz")
tar -C /tmp -xzf traefik*.tar.gz
mv /tmp/traefik /usr/bin/
rm -rf traefik*.tar.gz
systemctl restart traefik.service
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP LXC"
RELEASE=$(curl -fsSL https://api.github.com/repos/traefik/traefik/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat ~/.traefik)" ]] || [[ ! -f ~/.traefik ]]; then
msg_info "Stopping service"
systemctl stop traefik
msg_ok "Service stopped"
fetch_and_deploy_gh_release "traefik" "traefik/traefik" "prebuild" "latest" "/usr/bin" "traefik_v*_linux_amd64.tar.gz"
msg_info "Starting ${APP}"
systemctl start traefik
msg_ok "Started ${APP}"
msg_ok "Successfully updated ${APP}"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi

44
ct/twingate-connector.sh Normal file
View File

@@ -0,0 +1,44 @@
#!/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: twingate-andrewb
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.twingate.com/docs/
APP="Twingate-Connector"
var_tags="${var_tags:-network;connector;twingate}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-3}"
var_os="${var_os:-ubuntu}"
var_version="${var_version:-24.04}"
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 /lib/systemd/system/twingate-connector.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP}"
$STD apt update
$STD apt install -yq twingate-connector
$STD systemctl restart twingate-connector
msg_ok "Updated Successfully"
exit
}
start
build_container
description
msg_ok "All Finished! If you need to update your access or refresh tokens, they can be found in /etc/twingate/connector.conf"

View File

@@ -32,11 +32,12 @@ function update_script() {
systemctl stop umami
msg_ok "Stopped $APP"
fetch_and_deploy_gh_release "umami" "umami-software/umami" "tarball"
msg_info "Updating ${APP}"
cd /opt/umami
git pull
yarn install
yarn build
$STD yarn install
$STD yarn run build
msg_ok "Updated ${APP}"
msg_info "Starting ${APP}"
@@ -54,4 +55,4 @@ 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}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -34,27 +34,29 @@ function update_script() {
echo "Installed NPM..."
fi
fi
LATEST=$(curl -fsSL https://api.github.com/repos/louislam/uptime-kuma/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
msg_info "Stopping ${APP}"
$STD sudo systemctl stop uptime-kuma
msg_ok "Stopped ${APP}"
cd /opt/uptime-kuma
RELEASE=$(curl -fsSL https://api.github.com/repos/louislam/uptime-kuma/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
if [[ ! -f ~/.uptime-kuma ]] || [[ "${RELEASE}" != "$(cat ~/.uptime-kuma)" ]]; then
msg_info "Stopping ${APP}"
$STD systemctl stop uptime-kuma
msg_ok "Stopped ${APP}"
msg_info "Pulling ${APP} ${LATEST}"
$STD git fetch --all
$STD git checkout $LATEST --force
msg_ok "Pulled ${APP} ${LATEST}"
fetch_and_deploy_gh_release "uptime-kuma" "louislam/uptime-kuma" "tarball"
cd /opt/uptime-kuma
msg_info "Updating ${APP} to ${LATEST}"
$STD npm install --production
$STD npm run download-dist
msg_ok "Updated ${APP}"
msg_info "Updating ${APP} to ${RELEASE}"
$STD npm install --omit dev
$STD npm run download-dist
msg_ok "Updated ${APP}"
msg_info "Starting ${APP}"
$STD sudo systemctl start uptime-kuma
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
msg_info "Starting ${APP}"
$STD sudo systemctl start uptime-kuma
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -27,17 +27,19 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/ellite/Wallos/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
msg_info "Updating ${APP} to ${RELEASE}"
cd /opt
curl -fsSL "https://github.com/ellite/Wallos/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/ellite/Wallos/archive/refs/tags/v${RELEASE}.zip")
if [[ ! -f ~/.wallos ]] || [[ "${RELEASE}" != "$(cat ~/.wallos)" ]]; then
msg_info "Creating backup"
mkdir -p /opt/logos
mv /opt/wallos/db/wallos.db /opt/wallos.db
mv /opt/wallos/images/uploads/logos /opt/logos/
$STD unzip v${RELEASE}.zip
msg_ok "Backup created"
rm -rf /opt/wallos
mv Wallos-${RELEASE} /opt/wallos
fetch_and_deploy_gh_release "wallos" "ellite/Wallos" "tarball"
msg_info "Configuring ${APP}"
rm -rf /opt/wallos/db/wallos.empty.db
mv /opt/wallos.db /opt/wallos/db/wallos.db
mv /opt/logos/* /opt/wallos/images/uploads/logos
@@ -48,16 +50,12 @@ function update_script() {
chmod -R 755 /opt/wallos
mkdir -p /var/log/cron
$STD curl http://localhost/endpoints/db/migrate.php
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}"
msg_ok "Configured ${APP}"
msg_info "Reload Apache2"
systemctl reload apache2
msg_ok "Apache2 Reloaded"
msg_info "Cleaning Up"
rm -R /opt/v${RELEASE}.zip
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"

View File

@@ -27,6 +27,10 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! [[ $(dpkg -s zstd 2>/dev/null) ]]; then
$STD apt-get update
$STD apt-get install -y zstd
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
# Dirty-Fix 03/2025 for missing APP_version.txt on old installations, set to pre-latest release
msg_info "Running Migration"
@@ -66,8 +70,9 @@ EOF
temp_file=$(mktemp)
curl -fsSL "https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst" -o "$temp_file"
tar -xf $temp_file
cp -f wastebin /opt/wastebin/
cp -f wastebin* /opt/wastebin/
chmod +x /opt/wastebin/wastebin
chmod +x /opt/wastebin/wastebin-ctl
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated Wastebin"

View File

@@ -27,22 +27,20 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/sbondCo/Watcharr/releases/latest | 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 [[ "${RELEASE}" != "$(cat ~/.watcharr)" ]] || [[ ! -f ~/.watcharr ]]; then
msg_info "Updating $APP"
msg_info "Stopping $APP"
systemctl stop watcharr
msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
temp_file=$(mktemp)
temp_folder=$(mktemp -d)
curl -fsSL "https://github.com/sbondCo/Watcharr/archive/refs/tags/v${RELEASE}.tar.gz" -o ""$temp_file""
tar -xzf "$temp_file" -C "$temp_folder"
rm -f /opt/watcharr/server/watcharr
rm -rf /opt/watcharr/server/ui
cp -rf ${temp_folder}/Watcharr-${RELEASE}/* /opt/watcharr
fetch_and_deploy_gh_release "watcharr" "sbondCo/Watcharr" "tarball"
msg_info "Updating $APP to v${RELEASE}"
cd /opt/watcharr
export GOOS=linux
$STD npm i
@@ -57,12 +55,6 @@ function update_script() {
systemctl start watcharr
msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -f ${temp_file}
rm -rf ${temp_folder}
msg_ok "Cleanup Completed"
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"

View File

@@ -27,17 +27,28 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP"
systemctl stop watchyourlan.service
cp -R /data/config.yaml config.yaml
RELEASE=$(curl -fsSL https://api.github.com/repos/aceberg/WatchYourLAN/releases/latest | grep -o '"tag_name": *"[^"]*"' | cut -d '"' -f 4)
curl -fsSL "https://github.com/aceberg/WatchYourLAN/releases/download/$RELEASE/watchyourlan_${RELEASE}_linux_amd64.deb" -o $(basename "https://github.com/aceberg/WatchYourLAN/releases/download/$RELEASE/watchyourlan_${RELEASE}_linux_amd64.deb")
dpkg -i watchyourlan_${RELEASE}_linux_amd64.deb
cp -R config.yaml /data/config.yaml
sed -i 's|/etc/watchyourlan/config.yaml|/data/config.yaml|' /lib/systemd/system/watchyourlan.service
rm watchyourlan_${RELEASE}_linux_amd64.deb config.yaml
systemctl enable -q --now watchyourlan
msg_ok "Updated $APP"
RELEASE=$(curl -fsSL https://api.github.com/repos/aceberg/WatchYourLAN/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
msg_info "Stopping service"
systemctl stop watchyourlan.service
msg_ok "Service stopped"
cp -R /data/config.yaml ~/config.yaml
fetch_and_deploy_gh_release "watchyourlan" "aceberg/WatchYourLAN" "binary"
cp -R config.yaml /data/config.yaml
sed -i 's|/etc/watchyourlan/config.yaml|/data/config.yaml|' /lib/systemd/system/watchyourlan.service
msg_info "Cleaning up"
rm ~/config.yaml
msg_ok "Cleaned up"
msg_info "Starting service"
systemctl enable -q --now watchyourlan
msg_ok "Service started"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -27,23 +27,26 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/wavelog/wavelog/releases/latest | grep "tag_name" | cut -d '"' -f 4)
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
RELEASE=$(curl -fsSL https://api.github.com/repos/wavelog/wavelog/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
if [[ ! -f ~/.wavelog ]] || [[ "${RELEASE}" != "$(cat ~/.wavelog)" ]]; then
msg_info "Stopping Services"
systemctl stop apache2
msg_ok "Services Stopped"
msg_info "Updating ${APP} to ${RELEASE}"
msg_info "Creating backup"
cp /opt/wavelog/application/config/config.php /opt/config.php
cp /opt/wavelog/application/config/database.php /opt/database.php
cp -r /opt/wavelog/userdata /opt/userdata
if [[ -f /opt/wavelog/assets/js/sections/custom.js ]]; then
cp /opt/wavelog/assets/js/sections/custom.js /opt/custom.js
fi
curl -fsSL "https://github.com/wavelog/wavelog/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/wavelog/wavelog/archive/refs/tags/${RELEASE}.zip")
$STD unzip ${RELEASE}.zip
msg_ok "Backup created"
rm -rf /opt/wavelog
mv wavelog-${RELEASE}/ /opt/wavelog
fetch_and_deploy_gh_release "wavelog" "wavelog/wavelog" "tarball"
msg_info "Updating ${APP} to ${RELEASE}"
rm -rf /opt/wavelog/install
mv /opt/config.php /opt/wavelog/application/config/config.php
mv /opt/database.php /opt/wavelog/application/config/database.php
@@ -55,16 +58,12 @@ function update_script() {
chown -R www-data:www-data /opt/wavelog/
find /opt/wavelog/ -type d -exec chmod 755 {} \;
find /opt/wavelog/ -type f -exec chmod 664 {} \;
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}"
msg_info "Starting Services"
systemctl start apache2
msg_ok "Started Services"
msg_info "Cleaning Up"
rm -rf ${RELEASE}.zip
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"

View File

@@ -27,8 +27,9 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Requarks/wiki/releases/latest | 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 [[ "${RELEASE}" != "$(cat ~/.wikijs)" ]] || [[ ! -f ~/.wikijs ]]; then
msg_info "Verifying whether ${APP}' new release is v3.x+ and current install uses SQLite."
SQLITE_INSTALL=$([ -f /opt/wikijs/db.sqlite ] && echo "true" || echo "false")
if [[ "${SQLITE_INSTALL}" == "true" && "${RELEASE}" =~ ^3.* ]]; then
@@ -47,13 +48,9 @@ function update_script() {
cp -R /opt/wikijs/{config.yml,/data} /opt/wikijs-backup
msg_ok "Backed up Data"
msg_info "Updating ${APP}"
rm -rf /opt/wikijs/*
cd /opt/wikijs
curl -fsSL "https://github.com/requarks/wiki/releases/download/v${RELEASE}/wiki-js.tar.gz" -o $(basename "https://github.com/requarks/wiki/releases/download/v${RELEASE}/wiki-js.tar.gz")
tar -xzf wiki-js.tar.gz
msg_ok "Updated ${APP}"
fetch_and_deploy_gh_release "wikijs" "requarks/wiki" "prebuild" "latest" "/opt/wikijs" "wiki-js.tar.gz"
msg_info "Restoring Data"
cp -R /opt/wikijs-backup/* /opt/wikijs
$SQLITE_INSTALL && $STD npm rebuild sqlite3
@@ -64,9 +61,9 @@ function update_script() {
msg_ok "Started ${APP}"
msg_info "Cleaning Up"
rm -rf /opt/wikijs/wiki-js.tar.gz
rm -rf /opt/wikijs-backup
msg_ok "Cleanup Completed"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"

View File

@@ -30,10 +30,12 @@ function update_script() {
fi
apt-get update
apt-get -y upgrade
sleep 2
cd /etc/wgdashboard/src
./wgd.sh update
./wgd.sh start
if [[ -d /etc/wgdashboard ]]; then
sleep 2
cd /etc/wgdashboard/src
./wgd.sh update
./wgd.sh start
fi
exit
}
@@ -43,5 +45,5 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} WGDashboard Access it using the following URL:${CL}"
echo -e "${INFO}${YW}Access WGDashboard (if installed) using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:10086${CL}"

View File

@@ -28,21 +28,20 @@ function update_script() {
exit
fi
msg_info "Updating yt-dlp"
$STD yt-dlp -U
msg_ok "Updated yt-dlp"
RELEASE=$(curl -fsSL https://api.github.com/repos/marcopiovanello/yt-dlp-web-ui/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/yt-dlp-webui_version.txt)" ]] || [[ ! -f /opt/yt-dlp-webui_version.txt ]]; then
if [[ "${RELEASE}" != "$(cat ~/.yt-dlp-webui)" ]] || [[ ! -f ~/.yt-dlp-webui ]]; then
msg_info "Stopping $APP"
systemctl stop yt-dlp-webui
msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
msg_info "Updating yt-dlp"
$STD yt-dlp -U
msg_ok "Updated yt-dlp"
rm -rf /usr/local/bin/yt-dlp-webui
curl -fsSL "https://github.com/marcopiovanello/yt-dlp-web-ui/releases/download/v${RELEASE}/yt-dlp-webui_linux-amd64" -o "/usr/local/bin/yt-dlp-webui"
chmod +x /usr/local/bin/yt-dlp-webui
msg_ok "Updated $APP LXC"
fetch_and_deploy_gh_release "yt-dlp-webui" "marcopiovanello/yt-dlp-web-ui" "singlefile" "latest" "/usr/local/bin" "yt-dlp-webui_linux-amd64"
msg_info "Starting $APP"
systemctl start yt-dlp-webui
@@ -60,4 +59,4 @@ 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}:3033${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3033${CL}"

View File

@@ -32,36 +32,32 @@ function update_script() {
$STD npm install -g pnpm@latest
msg_ok "Installed pnpm"
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/diced/zipline/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 [[ ! -f ~/.zipline ]] || [[ "${RELEASE}" != "$(cat ~/.zipline)" ]]; then
msg_info "Stopping ${APP}"
systemctl stop zipline
msg_ok "${APP} Stopped"
msg_info "Updating ${APP} to ${RELEASE}"
cp /opt/zipline/.env /opt/
mkdir -p /opt/zipline-uploads
if [ -d /opt/zipline/uploads ] && [ "$(ls -A /opt/zipline/uploads)" ]; then
cp -R /opt/zipline/uploads/* /opt/zipline-uploads/
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")
$STD unzip v"${RELEASE}".zip
cp /opt/zipline/.env /opt/
rm -R /opt/zipline
mv zipline-"${RELEASE}" /opt/zipline
fetch_and_deploy_gh_release "zipline" "diced/zipline" "tarball"
msg_info "Updating ${APP} to ${RELEASE}"
cd /opt/zipline
mv /opt/.env /opt/zipline/.env
$STD pnpm install
$STD pnpm build
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}"
msg_info "Starting ${APP}"
systemctl start zipline
msg_ok "Started ${APP}"
msg_info "Cleaning Up"
rm -rf v"${RELEASE}".zip
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"

View File

@@ -27,27 +27,24 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/zitadel/zitadel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt | grep -oP '\d+\.\d+\.\d+')" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
if [[ ! -f ~/.zitadel ]] || [[ "${RELEASE}" != "$(cat ~/.zitadel)" ]]; then
msg_info "Stopping $APP"
systemctl stop zitadel
msg_ok "Stopped $APP"
rm -f /usr/local/bin/zitadel
fetch_and_deploy_gh_release "zitadel" "zitadel/zitadel" "prebuild" "latest" "/usr/local/bin" "zitadel-linux-amd64.tar.gz"
msg_info "Updating $APP to ${RELEASE}"
cd /tmp
curl -fsSL "https://github.com/zitadel/zitadel/releases/download/v$RELEASE/zitadel-linux-amd64.tar.gz" | tar -xz
mv zitadel-linux-amd64/zitadel /usr/local/bin
$STD zitadel setup --masterkeyFile /opt/zitadel/.masterkey --config /opt/zitadel/config.yaml --init-projections=true
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to ${RELEASE}"
msg_info "Starting $APP"
systemctl start zitadel
msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -rf /tmp/zitadel-linux-amd64
msg_ok "Cleanup Completed"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"

View File

@@ -27,17 +27,21 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/tobychui/zoraxy/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
msg_info "Updating $APP to ${RELEASE}"
RELEASE=$(curl -fsSL https://api.github.com/repos/tobychui/zoraxy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f ~/.zoraxy ]] || [[ "${RELEASE}" != "$(cat ~/.zoraxy)" ]]; then
msg_info "Stopping service"
systemctl stop zoraxy
curl -fsSL "https://github.com/tobychui/zoraxy/releases/download/${RELEASE}/zoraxy_linux_amd64" -o $(basename "https://github.com/tobychui/zoraxy/releases/download/${RELEASE}/zoraxy_linux_amd64")
msg_ok "Service stopped"
rm -rf /opt/zoraxy/zoraxy
mv zoraxy_linux_amd64 /opt/zoraxy/zoraxy
chmod +x /opt/zoraxy/zoraxy
fetch_and_deploy_gh_release "zoraxy" "tobychui/zoraxy" "singlefile" "latest" "/opt/zoraxy" "zoraxy_linux_amd64"
msg_info "Starting service"
systemctl start zoraxy
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP"
msg_ok "Service started"
msg_ok "Updated successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi

View File

@@ -23,25 +23,29 @@ function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /usr/bin/zot ]]; then
msg_error "No ${APP} installation found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/project-zot/zot/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
RELEASE=$(curl -fsSL https://api.github.com/repos/project-zot/zot/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
if [[ ! -f ~/.${APP} ]] || [[ "${RELEASE}" != "$(cat ~/.${APP})" ]]; then
msg_info "Stopping Zot service"
systemctl stop zot
msg_ok "Stopped Zot service"
msg_info "Updating Zot to ${RELEASE}"
curl -fsSL "https://github.com/project-zot/zot/releases/download/${RELEASE}/zot-linux-amd64" -o /usr/bin/zot
chmod +x /usr/bin/zot
rm -f /usr/bin/zot
fetch_and_deploy_gh_release "zot" "project-zot/zot" "singlefile" "latest" "/usr/bin" "zot-linux-amd64"
msg_info "Configuring Zot Registry"
chown root:root /usr/bin/zot
echo "${RELEASE}" >~/.${APP}
systemctl restart zot
msg_ok "Updated Zot to ${RELEASE}"
msg_ok "Configured Zot Registry"
msg_info "Starting service"
systemctl start zot
msg_ok "Service started"
msg_ok "Updated successfuly"
else
msg_ok "Zot is already up to date (${RELEASE})"
fi

View File

@@ -27,27 +27,24 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/zwave-js/zwave-js-ui/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
RELEASE=$(curl -fsSL https://api.github.com/repos/zwave-js/zwave-js-ui/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f ~/.zwave-js-ui ]] || [[ "${RELEASE}" != "$(cat ~/.zwave-js-ui)" ]]; then
msg_info "Stopping Service"
systemctl stop zwave-js-ui
msg_ok "Stopped Service"
msg_info "Updating Z-Wave JS UI"
rm -rf /opt/zwave-js-ui/*
cd /opt/zwave-js-ui
curl -fsSL "https://github.com/zwave-js/zwave-js-ui/releases/download/${RELEASE}/zwave-js-ui-${RELEASE}-linux.zip" -o $(basename "https://github.com/zwave-js/zwave-js-ui/releases/download/${RELEASE}/zwave-js-ui-${RELEASE}-linux.zip")
$STD unzip zwave-js-ui-${RELEASE}-linux.zip
msg_ok "Updated Z-Wave JS UI"
fetch_and_deploy_gh_release "zwave-js-ui" "zwave-js/zwave-js-ui" "prebuild" "latest" "/opt/zwave-js-ui" "zwave-js-ui*-linux.zip"
msg_info "Starting Service"
systemctl start zwave-js-ui
msg_ok "Started Service"
msg_info "Cleanup"
rm -rf /opt/zwave-js-ui/zwave-js-ui-${RELEASE}-linux.zip
rm -rf /opt/zwave-js-ui/store
msg_ok "Cleaned"
msg_ok "Updated Successfully!\n"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}."

View File

@@ -6,7 +6,7 @@
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": false,
"updateable": true,
"privileged": true,
"interface_port": 8090,
"documentation": "https://www.ispyconnect.com/docs/agent/about",

View File

@@ -0,0 +1,40 @@
{
"name": "Copyparty",
"slug": "copyparty",
"categories": [
11
],
"date_created": "2025-08-18",
"type": "addon",
"updateable": true,
"privileged": false,
"interface_port": null,
"documentation": "https://github.com/9001/copyparty?tab=readme-ov-file#the-browser",
"website": "https://github.com/9001/copyparty",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/copyparty.webp",
"config_path": "/etc/copyparty.conf",
"description": "Copyparty is a lightweight, portable HTTP file server with a browser-based interface. It supports drag-and-drop uploads, downloads, deduplication, media playback, and advanced search, making it ideal for quickly sharing and managing files.",
"install_methods": [
{
"type": "default",
"script": "tools/addon/copyparty.sh",
"resources": {
"cpu": null,
"ram": null,
"hdd": null,
"os": null,
"version": null
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Execute within the Proxmox shell or in LXC",
"type": "info"
}
]
}

View File

@@ -0,0 +1,48 @@
{
"name": "Debian 13",
"slug": "debian-13-vm",
"categories": [
2
],
"date_created": "2025-08-19",
"type": "vm",
"updateable": true,
"privileged": false,
"interface_port": null,
"documentation": null,
"website": "https://www.debian.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/debian.webp",
"config_path": "",
"description": "Debian 13 (Trixie) Linux is a distribution that emphasizes free software. It supports many hardware platforms",
"install_methods": [
{
"type": "default",
"script": "vm/debian-13-vm.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 4,
"os": null,
"version": null
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "VM has no root password set. To login type in user `root` and just press enter",
"type": "info"
},
{
"text": "After installation, checkout: ´https://github.com/community-scripts/ProxmoxVE/discussions/836´ for useful Debian commands",
"type": "info"
},
{
"text": "If you use Cloud-init, checkout after installation: ´https://github.com/community-scripts/ProxmoxVE/discussions/272´",
"type": "info"
}
]
}

View File

@@ -6,7 +6,7 @@
],
"date_created": "2024-05-02",
"type": "addon",
"updateable": false,
"updateable": true,
"privileged": false,
"interface_port": 61208,
"documentation": "https://glances.readthedocs.io/en/latest/",
@@ -33,12 +33,8 @@
},
"notes": [
{
"text": "Execute within an existing LXC Console",
"type": "warning"
},
{
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
"type": "warning"
"text": "Execute within an existing LXC Console (Debian / Ubuntu / Alpine supported)",
"type": "info"
}
]
}

View File

@@ -2,7 +2,7 @@
"name": "Jenkins",
"slug": "jenkins",
"categories": [
22
20
],
"date_created": "2024-12-26",
"type": "ct",

View File

@@ -0,0 +1,40 @@
{
"name": "LiteLLM",
"slug": "litellm",
"categories": [
20
],
"date_created": "2025-08-21",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 4000,
"documentation": "https://docs.litellm.ai/",
"config_path": "/opt/litellm/litellm.yaml",
"website": "https://www.litellm.ai/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/litellm-light.webp",
"description": "LLM proxy to call 100+ LLMs in a unified interface & track spend, set budgets per virtual key/user",
"install_methods": [
{
"type": "default",
"script": "ct/litellm.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 4,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "admin",
"password": "sk-1234"
},
"notes": [
{
"text": "Update master key in the config file",
"type": "info"
}
]
}

View File

@@ -9,7 +9,7 @@
"updateable": true,
"privileged": false,
"interface_port": 5080,
"documentation": null,
"documentation": "https://openobserve.ai/docs/",
"website": "https://openobserve.ai/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/openobserve.webp",
"config_path": "/opt/openobserve/data/.env",

View File

@@ -32,5 +32,10 @@
"username": null,
"password": null
},
"notes": []
"notes": [
{
"text": "If you use VLANs (default LAN is set to VLAN 999), make sure the Proxmox Linux Bridge is configured as VLAN-aware, otherwise the VM may fail to start.",
"type": "info"
}
]
}

View File

@@ -20,7 +20,7 @@
"script": "ct/palmr.sh",
"resources": {
"cpu": 4,
"ram": 4096,
"ram": 6144,
"hdd": 6,
"os": "Debian",
"version": "12"
@@ -32,6 +32,10 @@
"password": null
},
"notes": [
{
"text": "This LXC is very memory-hungry when updating; it requires at least 6GB RAM, but RAM may be reduced to as low as 2GB when running normally",
"type": "warning"
},
{
"text": "To use a bind mount for storage, create symlinks to your mount for both `uploads` and `temp-uploads` in `/opt/palmr_data`",
"type": "info"

View File

@@ -9,7 +9,7 @@
"updateable": true,
"privileged": false,
"interface_port": 8000,
"documentation": null,
"documentation": "https://docs.paperless-ngx.com/",
"website": "https://docs.paperless-ngx.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/paperless-ngx.webp",
"config_path": "/opt/paperless/paperless.conf",
@@ -21,19 +21,19 @@
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 10,
"hdd": 12,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"username": "admin",
"password": null
},
"notes": [
{
"text": "Show Login Credentials, type `update` in the LXC console",
"text": "Show Login Credentials, type `cat ~/paperless.creds` in the LXC console",
"type": "info"
},
{

View File

@@ -39,6 +39,10 @@
{
"text": "After installation, access the web interface to configure your Proxmox connection details through the built-in setup wizard",
"type": "Info"
},
{
"text": "Configure authentication in the Web UI => Settings => Security",
"type": "Info"
}
]
}

View File

@@ -28,8 +28,8 @@
}
],
"default_credentials": {
"username": null,
"password": null
"username": "proxmox",
"password": "proxmox"
},
"notes": []
}

View File

@@ -11,8 +11,8 @@
"interface_port": 3000,
"documentation": "https://docs.rxresume.org/",
"website": "https://rxresume.org",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/png/reactive-resume-light.png",
"config_path": "/opt/reactive-resume/.env",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/reactive-resume.webp",
"config_path": "/opt/reactive-resume/.env",
"description": "A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever.",
"install_methods": [
{
@@ -33,4 +33,3 @@
},
"notes": []
}

View File

@@ -11,8 +11,8 @@
"interface_port": 5030,
"documentation": "https://github.com/slskd/slskd/tree/master/docs",
"website": "https://github.com/slskd/slskd",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/png/slskd.png",
"config_path": "/opt/slskd/config/slskd.yml",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/slskd.webp",
"config_path": "/opt/slskd/config/slskd.yml",
"description": "A modern client-server application for the Soulseek file sharing network. ",
"install_methods": [
{
@@ -42,4 +42,3 @@
}
]
}

View File

@@ -9,7 +9,7 @@
"updateable": true,
"privileged": false,
"interface_port": 7912,
"documentation": null,
"documentation": "https://github.com/Donkie/Spoolman/wiki/Installation",
"website": "https://github.com/Donkie/Spoolman",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/spoolman.webp",
"config_path": "/opt/spoolman/.env",

View File

@@ -0,0 +1,52 @@
{
"name": "Swizzin",
"slug": "swizzin",
"categories": [
15
],
"date_created": "2025-08-19",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": "https://swizzin.ltd/getting-started",
"config_path": "/etc/swizzin/",
"website": "https://swizzin.ltd/",
"logo": "https://swizzin.ltd/img/logo-sm.png",
"description": "Swizzin is a light-weight, modular, and user-friendly seedbox solution for Debian-based servers. It allows for the easy installation and management of a wide variety of applications commonly used for torrenting and media management, such as rTorrent, Sonarr, Radarr, and Plex, all accessible through a command-line utility or a web-based dashboard.",
"install_methods": [
{
"type": "default",
"script": "ct/swizzin.sh",
"resources": {
"cpu": 2,
"ram": 4096,
"hdd": 20,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Installation might take a long time if choosing to install many apps. Be patient.",
"type": "info"
},
{
"text": "Swizzin is a management suite, not a single application. Use the 'box' command inside the container to install/manage individual apps like rTorrent, Sonarr, etc. A full list can be found in documentation.",
"type": "info"
},
{
"text": "It is very recommended to install at least the 'panel' for web access, and 'nginx' for easy access to other apps.",
"type": "warning"
},
{
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
"type": "warning"
}
]
}

View File

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

View File

@@ -31,10 +31,5 @@
"username": null,
"password": null
},
"notes": [
{
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
"type": "warning"
}
]
"notes": []
}

View File

@@ -6,10 +6,10 @@
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": false,
"updateable": true,
"privileged": false,
"interface_port": 8082,
"documentation": null,
"documentation": "https://www.traccar.org/documentation/",
"website": "https://www.traccar.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/traccar.webp",
"config_path": "/opt/traccar/conf/traccar.xml",

View File

@@ -9,7 +9,7 @@
"updateable": true,
"privileged": false,
"interface_port": 8080,
"documentation": null,
"documentation": "https://doc.traefik.io/",
"website": "https://traefik.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/traefik.webp",
"config_path": "/etc/traefik/traefik.yaml",

View File

@@ -0,0 +1,44 @@
{
"name": "twingate-connector",
"slug": "twingate-connector",
"categories": [
4
],
"date_created": "2025-08-18",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": null,
"documentation": "https://www.twingate.com/docs/",
"config_path": "/etc/twingate/connector.conf",
"website": "https://www.twingate.com",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/twingate.webp",
"description": "Twingate Connectors are lightweight software components that establish secure, least-privileged access between private network resources and authorized users without exposing the network to the internet. They act as outbound-only bridges between your protected resources and the Twingate infrastructure, ensuring zero-trust access without the need for a VPN.",
"install_methods": [
{
"type": "default",
"script": "ct/twingate-connector.sh",
"resources": {
"cpu": 1,
"ram": 1024,
"hdd": 3,
"os": "Ubuntu",
"version": "24.04"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "You can get your Twingate access or refresh tokens from the Twingate Admin Console. `https://auth.twingate.com/signup-v2`",
"type": "info"
},
{
"text": "If you need to update your access or refresh tokens, they can be found in /etc/twingate/connector.conf",
"type": "info"
}
]
}

View File

@@ -1,40 +1,40 @@
{
"name": "Umami",
"slug": "umami",
"categories": [
9
],
"date_created": "2024-05-09",
"type": "ct",
"updateable": false,
"privileged": false,
"interface_port": 3000,
"documentation": null,
"website": "https://umami.is/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/umami.webp",
"config_path": "/opt/umami/.env",
"description": "Umami makes it easy to collect, analyze, and understand your web data while maintaining visitor privacy and data ownership.",
"install_methods": [
{
"type": "default",
"script": "ct/umami.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 12,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "admin",
"password": "umami"
},
"notes": [
{
"text": "To view the database credentials : `cat umami.creds`",
"type": "info"
}
]
"name": "Umami",
"slug": "umami",
"categories": [
9
],
"date_created": "2024-05-09",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://umami.is/docs",
"website": "https://umami.is/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/umami.webp",
"config_path": "/opt/umami/.env",
"description": "Umami makes it easy to collect, analyze, and understand your web data while maintaining visitor privacy and data ownership.",
"install_methods": [
{
"type": "default",
"script": "ct/umami.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 12,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "admin",
"password": "umami"
},
"notes": [
{
"text": "To view the database credentials : `cat umami.creds`",
"type": "info"
}
]
}

View File

@@ -1,35 +1,35 @@
{
"name": "Uptime Kuma",
"slug": "uptimekuma",
"categories": [
9
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3001,
"documentation": null,
"website": "https://github.com/louislam/uptime-kuma#uptime-kuma",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/uptime-kuma.webp",
"config_path": "",
"description": "Uptime Kuma is a monitoring and alerting system that tracks the availability and performance of servers, websites, and other internet-connected devices. It can be self-hosted and is open-source, offering a visually appealing interface for monitoring and receiving notifications about downtime events.",
"install_methods": [
{
"type": "default",
"script": "ct/uptimekuma.sh",
"resources": {
"cpu": 1,
"ram": 1024,
"hdd": 4,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
"name": "Uptime Kuma",
"slug": "uptimekuma",
"categories": [
9
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3001,
"documentation": "https://github.com/louislam/uptime-kuma/wiki",
"website": "https://github.com/louislam/uptime-kuma#uptime-kuma",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/uptime-kuma.webp",
"config_path": "",
"description": "Uptime Kuma is a monitoring and alerting system that tracks the availability and performance of servers, websites, and other internet-connected devices. It can be self-hosted and is open-source, offering a visually appealing interface for monitoring and receiving notifications about downtime events.",
"install_methods": [
{
"type": "default",
"script": "ct/uptimekuma.sh",
"resources": {
"cpu": 1,
"ram": 1024,
"hdd": 4,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

File diff suppressed because it is too large Load Diff

View File

@@ -12,7 +12,7 @@
"documentation": "https://github.com/wavelog/wavelog/wiki",
"website": "https://www.wavelog.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/wavelog.webp",
"config_path": "",
"config_path": "/opt/wavelog/application/config/config.php",
"description": "Wavelog is a self-hosted PHP application that allows you to log your amateur radio contacts anywhere. All you need is a web browser and active internet connection.",
"install_methods": [
{

View File

@@ -1,35 +1,35 @@
{
"name": "Wiki.js",
"slug": "wikijs",
"categories": [
12
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": null,
"website": "https://js.wiki/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/wiki-js.webp",
"config_path": "/opt/wikijs/config.yml",
"description": "Wiki.js is a free, open-source, and modern wiki application built using Node.js. It is designed to be fast, easy to use, and flexible, with a range of features for collaboration, knowledge management, and content creation. Wiki.js supports Markdown syntax for editing pages, and includes features such as version control, page history, and access control, making it easy to manage content and collaborate with others. The software is fully customizable, with a range of themes and extensions available, and can be deployed on a local server or in the cloud, making it an ideal choice for small teams and organizations looking to create and manage a wiki. Wiki.js provides a modern, user-friendly interface, and supports a range of data sources, including local file systems, databases, and cloud storage services.",
"install_methods": [
{
"type": "default",
"script": "ct/wikijs.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 7,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
"name": "Wiki.js",
"slug": "wikijs",
"categories": [
12
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://docs.requarks.io/",
"website": "https://js.wiki/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/wiki-js.webp",
"config_path": "/opt/wikijs/config.yml",
"description": "Wiki.js is a free, open-source, and modern wiki application built using Node.js. It is designed to be fast, easy to use, and flexible, with a range of features for collaboration, knowledge management, and content creation. Wiki.js supports Markdown syntax for editing pages, and includes features such as version control, page history, and access control, making it easy to manage content and collaborate with others. The software is fully customizable, with a range of themes and extensions available, and can be deployed on a local server or in the cloud, making it an ideal choice for small teams and organizations looking to create and manage a wiki. Wiki.js provides a modern, user-friendly interface, and supports a range of data sources, including local file systems, databases, and cloud storage services.",
"install_methods": [
{
"type": "default",
"script": "ct/wikijs.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 7,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -46,6 +46,10 @@
{
"text": "Wireguard and WGDashboard are not the same. More info: `https://docs.wgdashboard.dev/what-is-wireguard-what-is-wgdashboard.html`",
"type": "info"
},
{
"text": "WGDashboard installation is optional.`",
"type": "info"
}
]
}

View File

@@ -9,7 +9,7 @@
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": null,
"documentation": "https://zipline.diced.sh/docs/get-started",
"website": "https://zipline.diced.sh/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/zipline.webp",
"config_path": "/opt/zipline/.env",

View File

@@ -1,35 +1,35 @@
{
"name": "Zoraxy",
"slug": "zoraxy",
"categories": [
4
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8000,
"documentation": null,
"website": "https://zoraxy.aroz.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/zoraxy.webp",
"config_path": "",
"description": "Zoraxy is an all in one homelab network routing solution.",
"install_methods": [
{
"type": "default",
"script": "ct/zoraxy.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 6,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
"name": "Zoraxy",
"slug": "zoraxy",
"categories": [
4
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8000,
"documentation": "https://github.com/tobychui/zoraxy/wiki",
"website": "https://zoraxy.aroz.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/zoraxy.webp",
"config_path": "",
"description": "Zoraxy is an all in one homelab network routing solution.",
"install_methods": [
{
"type": "default",
"script": "ct/zoraxy.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 6,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -29,6 +29,7 @@ cd /opt/agentdvr/agent
curl -fsSL "$RELEASE" -o $(basename "$RELEASE")
$STD unzip Agent_Linux64*.zip
chmod +x ./Agent
echo $RELEASE > ~/.agentdvr
msg_ok "Installed AgentDVR"
msg_info "Creating Service"

View File

@@ -15,6 +15,9 @@ update_os
msg_info "Setup Syncthing"
$STD apk add --no-cache syncthing
rc-service syncthing start
sleep 3
rc-service syncthing stop
sed -i "{s/127.0.0.1:8384/0.0.0.0:8384/g}" /var/lib/syncthing/.local/state/syncthing/config.xml
msg_ok "Setup Syncthing"

View File

@@ -14,7 +14,9 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y redis
$STD apt-get install -y \
redis \
sqlite3
msg_ok "Installed Dependencies"
PHP_VERSION="8.2" PHP_APACHE="YES" PHP_MODULE="redis, sqlite3" setup_php

View File

@@ -20,7 +20,7 @@ $STD apt-get install -y \
libfontconfig1
msg_ok "Installed Dependencies"
fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "linux-x64-gui.deb"
fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "duplicati-*-linux-x64-gui.deb"
msg_info "Configuring duplicati"
DECRYPTKEY=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)

View File

@@ -50,7 +50,7 @@ echo "ghost-user ALL=(ALL) NOPASSWD:ALL" | tee /etc/sudoers.d/ghost-user
mkdir -p /var/www/ghost
chown -R ghost-user:ghost-user /var/www/ghost
chmod 775 /var/www/ghost
sudo -u ghost-user -H sh -c "cd /var/www/ghost && ghost install --db=mysql --dbhost=localhost --dbuser=$DB_USER --dbpass=$DB_PASS --dbname=ghost --url=http://localhost:2368 --no-prompt --no-setup-nginx --no-setup-ssl --no-setup-mysql --enable --start --ip 0.0.0.0"
$STD sudo -u ghost-user -H sh -c "cd /var/www/ghost && ghost install --db=mysql --dbhost=localhost --dbuser=$DB_USER --dbpass=$DB_PASS --dbname=ghost --url=http://localhost:2368 --no-prompt --no-setup-nginx --no-setup-ssl --no-setup-mysql --enable --start --ip 0.0.0.0"
rm /etc/sudoers.d/ghost-user
msg_ok "Creating Service"

View File

@@ -28,7 +28,7 @@ msg_info "Setting up database"
DB_NAME=glpi_db
DB_USER=glpi
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql mysql
mariadb-tzinfo-to-sql /usr/share/zoneinfo | mariadb mysql
$STD mariadb -u root -e "CREATE DATABASE $DB_NAME;"
$STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
$STD mariadb -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost';"

View File

@@ -18,64 +18,13 @@ $STD apt-get install -y \
sqlite3 \
rclone \
tzdata \
ca-certificates \
build-essential \
git
ca-certificates
msg_ok "Installed Dependencies"
setup_go
NODE_VERSION="22" setup_nodejs
fetch_and_deploy_gh_release "gomft" "StarFleetCPTN/GoMFT" "singlefile" "latest" "/opt/gomft" "gomft*linux-amd64"
msg_info "Setup ${APPLICATION} (Patience)"
temp_file=$(mktemp)
RELEASE=$(curl -fsSL https://api.github.com/repos/StarFleetCPTN/GoMFT/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar -xzf "$temp_file"
mv GoMFT-"${RELEASE}"/ /opt/gomft
cd /opt/gomft
TEMPL_VERSION="$(awk '/github.com\/a-h\/templ/{print $2}' go.mod)"
$STD go install github.com/a-h/templ/cmd/templ@${TEMPL_VERSION}
cp /opt/gomft/components/file_metadata/search/file_metadata_search_content.templ{,.bak}
# 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 go build -o gomft main.go
chmod +x /opt/gomft/gomft
msg_info "Configuring ${APPLICATION}"
JWT_SECRET_KEY=$(openssl rand -base64 24 | tr -d '/+=')
cat <<EOF >/opt/gomft/.env
SERVER_ADDRESS=:8080
DATA_DIR=/opt/gomft/data/gomft
@@ -95,9 +44,7 @@ EMAIL_REQUIRE_AUTH=true
EMAIL_USERNAME=smtp_username
EMAIL_PASSWORD=smtp_password
EOF
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
msg_ok "Setup ${APPLICATION}"
msg_ok "Configured ${APPLICATION}"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/gomft.service
@@ -108,8 +55,9 @@ After=network.target
[Service]
Type=simple
User=root
EnvironmentFile=/opt/gomft/.env
WorkingDirectory=/opt/gomft
ExecStart=/opt/gomft/./gomft
ExecStart=/opt/gomft/gomft
Restart=always
[Install]
@@ -122,7 +70,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -f "$temp_file"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -19,7 +19,7 @@ curl -L -o "${APPLICATION}" "https://github.com/heiher/${APPLICATION}/releases/d
mv ${APPLICATION} /opt/${APPLICATION}
chmod +x /opt/${APPLICATION}
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
curl -L -o "main.yml" "https://raw.githubusercontent.com/heiher/${APPLICATION}/refs/heads/master/conf/main.yml"
curl -L -o "main.yml" "https://raw.githubusercontent.com/heiher/${APPLICATION}/refs/heads/main/conf/main.yml"
sed -i 's/^#auth:/auth:/; s/^# file: conf\/auth.txt/ file: \/root\/hev.creds/' main.yml
mkdir -p /etc/${APPLICATION}
USERNAME="admin"

View File

@@ -88,6 +88,7 @@ cat <<EOF >/etc/apache2/sites-available/hortusfox.conf
CustomLog \${APACHE_LOG_DIR}/hortusfox_access.log combined
</VirtualHost>
EOF
chown -R www-data:www-data /opt/hortusfox
$STD a2dissite 000-default
$STD a2ensite hortusfox
$STD a2enmod rewrite

View File

@@ -115,7 +115,8 @@ NODE_VERSION="22" setup_nodejs
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
msg_info "Setting up Postgresql Database"
VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
VCHORD_RELEASE="0.4.3"
# VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
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
rm vchord.deb
@@ -282,7 +283,7 @@ GEO_DIR="${INSTALL_DIR}/geodata"
mkdir -p "$INSTALL_DIR"
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${ML_DIR}","${INSTALL_DIR}"/cache}
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.137.3" "$SRC_DIR"
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.138.1" "$SRC_DIR"
msg_info "Installing ${APPLICATION} (more patience please)"
@@ -455,6 +456,8 @@ systemctl enable -q --now "$APPLICATION"-ml.service "$APPLICATION"-web.service
msg_ok "Created user, env file, scripts and services"
sed -i "$ a VERSION_ID=12" /etc/os-release # otherwise the motd_ssh function will fail
cp /etc/debian_version ~/.debian_version.bak
sed -i 's/.*/13.0/' /etc/debian_version
motd_ssh
customize

View File

@@ -25,7 +25,7 @@ $STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCO
$STD sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;"
msg_ok "Configured PostgreSQL"
fetch_and_deploy_gh_release "keycloak" "keycloak/keycloak" "prebuild" "latest" "/opt/keycloak" "keycloak-*.tar.gz"
fetch_and_deploy_gh_release "keycloak_app" "keycloak/keycloak" "prebuild" "latest" "/opt/keycloak" "keycloak-*.tar.gz"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/keycloak.service

View File

@@ -0,0 +1,80 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: stout01
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/BerriAI/litellm
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
PG_VERSION="17" setup_postgresql
PYTHON_VERSION="3.13" setup_uv
msg_info "Setting up PostgreSQL"
DB_NAME="litellm_db"
DB_USER="litellm"
DB_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC';"
{
echo "${APPLICATION} Credentials"
echo "Database Name: $DB_NAME"
echo "Database User: $DB_USER"
echo "Database Password: $DB_PASS"
} >>~/litellm.creds
msg_ok "Set up PostgreSQL"
msg_info "Setting up Virtual Environment"
mkdir -p /opt/litellm
cd /opt/litellm
$STD uv venv /opt/litellm/.venv
$STD /opt/litellm/.venv/bin/python -m ensurepip --upgrade
$STD /opt/litellm/.venv/bin/python -m pip install --upgrade pip
$STD /opt/litellm/.venv/bin/python -m pip install litellm[proxy] prisma
msg_ok "Installed LiteLLM"
msg_info "Configuring LiteLLM"
mkdir -p /opt
cat <<EOF >/opt/litellm/litellm.yaml
general_settings:
master_key: sk-1234
database_url: postgresql://$DB_USER:$DB_PASS@127.0.0.1:5432/$DB_NAME
store_model_in_db: true
EOF
uv --directory=/opt/litellm run litellm --config /opt/litellm/litellm.yaml --use_prisma_db_push --skip_server_startup
msg_ok "Configured LiteLLM"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/litellm.service
[Unit]
Description=LiteLLM
[Service]
Type=simple
ExecStart=uv --directory=/opt/litellm run litellm --config /opt/litellm/litellm.yaml
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now litellm
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -54,11 +54,11 @@ sed -i "s/user:pass@postgres/${DB_USER}:${DB_PASS}@localhost/g" /opt/outline/.en
sed -i 's/redis:6379/localhost:6379/g' /opt/outline/.env
sed -i "5s#URL=#URL=http://${LOCAL_IP}#g" /opt/outline/.env
sed -i 's/FORCE_HTTPS=true/FORCE_HTTPS=false/g' /opt/outline/.env
$STD yarn install --frozen-lockfile
export NODE_OPTIONS="--max-old-space-size=3584"
$STD yarn build
sed -i 's/NODE_ENV=development/NODE_ENV=production/g' /opt/outline/.env
$STD yarn install --frozen-lockfile
export NODE_ENV=production
sed -i 's/NODE_ENV=development/NODE_ENV=production/g' /opt/outline/.env
$STD yarn build
msg_ok "Configured Outline"
msg_info "Creating Service"

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# Author: tteck (tteckster) | MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://docs.paperless-ngx.com/
@@ -29,22 +29,16 @@ $STD apt-get install -y \
automake \
libtool \
pkg-config \
git \
libtiff-dev \
libpng-dev \
libleptonica-dev
msg_ok "Installed Dependencies"
PG_VERSION="16" setup_postgresql
msg_info "Setup Python3"
$STD apt-get install -y \
python3 \
python3-pip \
python3-dev \
python3-setuptools \
python3-wheel
msg_ok "Setup Python3"
PYTHON_VERSION="3.13" setup_uv
fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "latest" "/opt/paperless" "paperless*tar.xz"
fetch_and_deploy_gh_release "jbig2enc" "ie13/jbig2enc" "tarball" "latest" "/opt/jbig2enc"
setup_gs
msg_info "Installing OCR Dependencies (Patience)"
$STD apt-get install -y \
@@ -57,50 +51,18 @@ $STD apt-get install -y \
zlib1g \
tesseract-ocr \
tesseract-ocr-eng
cd /tmp
curl -fsSL "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10040/ghostscript-10.04.0.tar.gz" -o "ghostscript-10.04.0.tar.gz"
$STD tar -xzf ghostscript-10.04.0.tar.gz
cd ghostscript-10.04.0
$STD ./configure
$STD make
$STD sudo make install
msg_ok "Installed OCR Dependencies"
msg_info "Installing JBIG2"
$STD git clone https://github.com/ie13/jbig2enc /opt/jbig2enc
msg_info "Setup JBIG2"
cd /opt/jbig2enc
$STD bash ./autogen.sh
$STD bash ./configure
$STD make
$STD make install
rm -rf /opt/jbig2enc
cd /
msg_ok "Installed JBIG2"
msg_info "Installing Paperless-ngx (Patience)"
Paperlessngx=$(curl -fsSL "https://github.com/paperless-ngx/paperless-ngx/releases/latest" | grep "title>Release" | cut -d " " -f 5)
cd /opt
$STD curl -fsSL "https://github.com/paperless-ngx/paperless-ngx/releases/download/$Paperlessngx/paperless-ngx-$Paperlessngx.tar.xz" -o "paperless-ngx-$Paperlessngx.tar.xz"
$STD tar -xf "paperless-ngx-$Paperlessngx.tar.xz" -C /opt/
mv paperless-ngx paperless
rm "paperless-ngx-$Paperlessngx.tar.xz"
cd /opt/paperless
$STD pip install --upgrade pip
$STD pip install -r requirements.txt
curl -fsSL "https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/paperless.conf.example" -o /opt/paperless/paperless.conf
mkdir -p {consume,data,media,static}
sed -i -e 's|#PAPERLESS_REDIS=redis://localhost:6379|PAPERLESS_REDIS=redis://localhost:6379|' /opt/paperless/paperless.conf
sed -i -e "s|#PAPERLESS_CONSUMPTION_DIR=../consume|PAPERLESS_CONSUMPTION_DIR=/opt/paperless/consume|" /opt/paperless/paperless.conf
sed -i -e "s|#PAPERLESS_DATA_DIR=../data|PAPERLESS_DATA_DIR=/opt/paperless/data|" /opt/paperless/paperless.conf
sed -i -e "s|#PAPERLESS_MEDIA_ROOT=../media|PAPERLESS_MEDIA_ROOT=/opt/paperless/media|" /opt/paperless/paperless.conf
sed -i -e "s|#PAPERLESS_STATICDIR=../static|PAPERLESS_STATICDIR=/opt/paperless/static|" /opt/paperless/paperless.conf
echo "${Paperlessngx}" >/opt/"${APPLICATION}"_version.txt
msg_ok "Installed Paperless-ngx"
msg_info "Installing Natural Language Toolkit (Patience)"
$STD python3 -m nltk.downloader -d /usr/share/nltk_data all
msg_ok "Installed Natural Language Toolkit"
msg_info "Setting up PostgreSQL database"
DB_NAME=paperlessdb
DB_USER=paperless
@@ -115,36 +77,37 @@ echo "" >>~/paperless.creds
echo -e "Paperless-ngx Database User: \e[32m$DB_USER\e[0m" >>~/paperless.creds
echo -e "Paperless-ngx Database Password: \e[32m$DB_PASS\e[0m" >>~/paperless.creds
echo -e "Paperless-ngx Database Name: \e[32m$DB_NAME\e[0m" >>~/paperless.creds
sed -i -e 's|#PAPERLESS_DBHOST=localhost|PAPERLESS_DBHOST=localhost|' /opt/paperless/paperless.conf
sed -i -e 's|#PAPERLESS_DBPORT=5432|PAPERLESS_DBPORT=5432|' /opt/paperless/paperless.conf
sed -i -e "s|#PAPERLESS_DBNAME=paperless|PAPERLESS_DBNAME=$DB_NAME|" /opt/paperless/paperless.conf
sed -i -e "s|#PAPERLESS_DBUSER=paperless|PAPERLESS_DBUSER=$DB_USER|" /opt/paperless/paperless.conf
sed -i -e "s|#PAPERLESS_DBPASS=paperless|PAPERLESS_DBPASS=$DB_PASS|" /opt/paperless/paperless.conf
sed -i -e "s|#PAPERLESS_SECRET_KEY=change-me|PAPERLESS_SECRET_KEY=$SECRET_KEY|" /opt/paperless/paperless.conf
cd /opt/paperless/src
$STD python3 manage.py migrate
msg_ok "Set up PostgreSQL database"
read -r -p "${TAB3}Would you like to add Adminer? <y/N> " prompt
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
msg_info "Installing Adminer"
$STD apt install -y adminer
$STD a2enconf adminer
systemctl reload apache2
IP=$(hostname -I | awk '{print $1}')
echo "" >>~/paperless.creds
echo -e "Adminer Interface: \e[32m$IP/adminer/\e[0m" >>~/paperless.creds
echo -e "Adminer System: \e[32mPostgreSQL\e[0m" >>~/paperless.creds
echo -e "Adminer Server: \e[32mlocalhost:5432\e[0m" >>~/paperless.creds
echo -e "Adminer Username: \e[32m$DB_USER\e[0m" >>~/paperless.creds
echo -e "Adminer Password: \e[32m$DB_PASS\e[0m" >>~/paperless.creds
echo -e "Adminer Database: \e[32m$DB_NAME\e[0m" >>~/paperless.creds
msg_ok "Installed Adminer"
fi
msg_info "Installing Natural Language Toolkit (Patience)"
mkdir -p /usr/share/nltk_data
$STD uv run -- python -m nltk.downloader -d /usr/share/nltk_data all
sed -i -e 's/rights="none" pattern="PDF"/rights="read|write" pattern="PDF"/' /etc/ImageMagick-6/policy.xml
msg_ok "Installed Natural Language Toolkit"
msg_info "Setup Paperless-ngx"
cd /opt/paperless
$STD uv sync --all-extras
curl -fsSL "https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/paperless.conf.example" -o /opt/paperless/paperless.conf
mkdir -p {consume,data,media,static}
sed -i \
-e 's|#PAPERLESS_REDIS=redis://localhost:6379|PAPERLESS_REDIS=redis://localhost:6379|' \
-e "s|#PAPERLESS_CONSUMPTION_DIR=../consume|PAPERLESS_CONSUMPTION_DIR=/opt/paperless/consume|" \
-e "s|#PAPERLESS_DATA_DIR=../data|PAPERLESS_DATA_DIR=/opt/paperless/data|" \
-e "s|#PAPERLESS_MEDIA_ROOT=../media|PAPERLESS_MEDIA_ROOT=/opt/paperless/media|" \
-e "s|#PAPERLESS_STATICDIR=../static|PAPERLESS_STATICDIR=/opt/paperless/static|" \
-e 's|#PAPERLESS_DBHOST=localhost|PAPERLESS_DBHOST=localhost|' \
-e 's|#PAPERLESS_DBPORT=5432|PAPERLESS_DBPORT=5432|' \
-e "s|#PAPERLESS_DBNAME=paperless|PAPERLESS_DBNAME=$DB_NAME|" \
-e "s|#PAPERLESS_DBUSER=paperless|PAPERLESS_DBUSER=$DB_USER|" \
-e "s|#PAPERLESS_DBPASS=paperless|PAPERLESS_DBPASS=$DB_PASS|" \
-e "s|#PAPERLESS_SECRET_KEY=change-me|PAPERLESS_SECRET_KEY=$SECRET_KEY|" \
/opt/paperless/paperless.conf
cd /opt/paperless/src
$STD uv run -- python manage.py migrate
msg_ok "Setup Paperless-ngx"
msg_info "Setting up admin Paperless-ngx User & Password"
## From https://github.com/linuxserver/docker-paperless-ngx/blob/main/root/etc/cont-init.d/99-migrations
cat <<EOF | python3 /opt/paperless/src/manage.py shell
cat <<EOF | uv run -- python /opt/paperless/src/manage.py shell
from django.contrib.auth import get_user_model
UserModel = get_user_model()
user = UserModel.objects.create_user('admin', password='$DB_PASS')
@@ -152,10 +115,15 @@ user.is_superuser = True
user.is_staff = True
user.save()
EOF
echo "" >>~/paperless.creds
echo -e "Paperless-ngx WebUI User: \e[32madmin\e[0m" >>~/paperless.creds
echo -e "Paperless-ngx WebUI Password: \e[32m$DB_PASS\e[0m" >>~/paperless.creds
echo "" >>~/paperless.creds
{
echo "Paperless-ngx-Credentials"
echo "Paperless-ngx Database Name: $DB_NAME"
echo "Paperless-ngx Database User: $DB_USER"
echo "Paperless-ngx Database Password: $DB_PASS"
echo "Paperless-ngx Secret Key: $SECRET_KEY\n"
echo "Paperless-ngx WebUI User: admin"
echo "Paperless-ngx WebUI Password: $DB_PASS"
} >>~/paperless-ngx.creds
msg_ok "Set up admin Paperless-ngx User & Password"
msg_info "Creating Services"
@@ -166,7 +134,7 @@ Requires=redis.service
[Service]
WorkingDirectory=/opt/paperless/src
ExecStart=celery --app paperless beat --loglevel INFO
ExecStart=uv run -- celery --app paperless beat --loglevel INFO
[Install]
WantedBy=multi-user.target
@@ -180,7 +148,7 @@ After=postgresql.service
[Service]
WorkingDirectory=/opt/paperless/src
ExecStart=celery --app paperless worker --loglevel INFO
ExecStart=uv run -- celery --app paperless worker --loglevel INFO
[Install]
WantedBy=multi-user.target
@@ -194,7 +162,7 @@ Requires=redis.service
[Service]
WorkingDirectory=/opt/paperless/src
ExecStartPre=/bin/sleep 2
ExecStart=python3 manage.py document_consumer
ExecStart=uv run -- python manage.py document_consumer
[Install]
WantedBy=multi-user.target
@@ -209,7 +177,7 @@ Requires=redis.service
[Service]
WorkingDirectory=/opt/paperless/src
ExecStart=granian --interface asginl --ws "paperless.asgi:application"
ExecStart=uv run -- granian --interface asginl --ws "paperless.asgi:application"
Environment=GRANIAN_HOST=::
Environment=GRANIAN_PORT=8000
Environment=GRANIAN_WORKERS=1
@@ -217,13 +185,14 @@ Environment=GRANIAN_WORKERS=1
[Install]
WantedBy=multi-user.target
EOF
sed -i -e 's/rights="none" pattern="PDF"/rights="read|write" pattern="PDF"/' /etc/ImageMagick-6/policy.xml
systemctl daemon-reload
$STD systemctl enable -q --now paperless-webserver paperless-scheduler paperless-task-queue paperless-consumer
systemctl enable -q --now paperless-webserver paperless-scheduler paperless-task-queue paperless-consumer
msg_ok "Created Services"
read -r -p "${TAB3}Would you like to add Adminer? <y/N> " prompt
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
setup_adminer
fi
motd_ssh
customize

View File

@@ -19,6 +19,8 @@ cat <<EOF >>/etc/apt/sources.list
deb http://download.proxmox.com/debian/pbs bookworm pbs-no-subscription
EOF
$STD apt-get update
export DEBIAN_FRONTEND=noninteractive
export IFUPDOWN2_NO_IFRELOAD=1
$STD apt-get install -y proxmox-backup-server
msg_ok "Installed Proxmox Backup Server"

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: rcourtman
# Author: rcourtman & vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/rcourtman/Pulse
@@ -21,7 +21,7 @@ $STD apt-get install -y \
msg_ok "Installed Dependencies"
msg_info "Creating User"
if useradd -r -m -d /opt/pulse-home -s /bin/bash pulse; then
if useradd -r -m -d /opt/pulse-home -s /usr/sbin/nologin pulse; then
msg_ok "Created User"
else
msg_error "User creation failed"
@@ -34,7 +34,7 @@ chown -R pulse:pulse /etc/pulse /opt/pulse
msg_ok "Installed Pulse"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/pulse.service
cat <<EOF >/etc/systemd/system/pulse-backend.service
[Unit]
Description=Pulse Monitoring Server
After=network.target
@@ -55,7 +55,7 @@ Environment="PULSE_DATA_DIR=/etc/pulse"
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now pulse
systemctl enable -q --now pulse-backend
msg_ok "Created Service"
motd_ssh

View File

@@ -13,21 +13,12 @@ setting_up_container
network_check
update_os
msg_info "Setup RustDesk"
fetch_and_deploy_gh_release "rustdesk-hbbr" "rustdesk/rustdesk-server" "binary" "latest" "/opt/rustdesk" "rustdesk-server-hbbr*amd64.deb"
fetch_and_deploy_gh_release "rustdesk-hbbs" "rustdesk/rustdesk-server" "binary" "latest" "/opt/rustdesk" "rustdesk-server-hbbs*amd64.deb"
fetch_and_deploy_gh_release "rustdesk-utils" "rustdesk/rustdesk-server" "binary" "latest" "/opt/rustdesk" "rustdesk-server-utils*amd64.deb"
fetch_and_deploy_gh_release "rustdesk-api" "lejianwen/rustdesk-api" "binary" "latest" "/opt/rustdesk" "rustdesk-api-server*amd64.deb"
RELEASE=$(curl -fsSL https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest | grep "tag_name" | awk -F '"' '{print $4}')
APIRELEASE=$(curl -fsSL https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
TEMPDIR=$(mktemp -d)
curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-hbbr_${RELEASE}_amd64.deb" \
-o "${TEMPDIR}/rustdesk-server-hbbr_${RELEASE}_amd64.deb"
curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-hbbs_${RELEASE}_amd64.deb" \
-o "${TEMPDIR}/rustdesk-server-hbbs_${RELEASE}_amd64.deb"
curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-utils_${RELEASE}_amd64.deb" \
-o "${TEMPDIR}/rustdesk-server-utils_${RELEASE}_amd64.deb"
curl -fsSL "https://github.com/lejianwen/rustdesk-api/releases/download/v${APIRELEASE}/rustdesk-api-server_${APIRELEASE}_amd64.deb" \
-o "${TEMPDIR}/rustdesk-api-server_${APIRELEASE}_amd64.deb"
$STD dpkg -i "${TEMPDIR}"/*.deb
msg_info "Configuring RustDesk Server"
ADMINPASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
cd /var/lib/rustdesk-api
$STD rustdesk-api reset-admin-pwd $ADMINPASS
@@ -37,14 +28,12 @@ $STD rustdesk-api reset-admin-pwd $ADMINPASS
echo "Username: admin"
echo "Password: $ADMINPASS"
} >>~/rustdesk.creds
echo "${RELEASE}" >/opt/rustdesk_version.txt
msg_ok "Setup RustDesk"
msg_ok "Configured RustDesk Server"
motd_ssh
customize
msg_info "Cleaning up"
rm -rf $TEMPDIR
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -13,34 +13,36 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies (Patience)"
msg_info "Installing SearXNG dependencies"
echo "deb http://deb.debian.org/debian bookworm-backports main" > /etc/apt/sources.list.d/backports.list
$STD apt-get update
$STD apt-get install -y \
redis-server \
build-essential \
libffi-dev \
libssl-dev \
git
msg_ok "Installed Dependencies"
python3-dev python3-babel python3-venv python-is-python3 \
uwsgi uwsgi-plugin-python3 \
git build-essential libxslt-dev zlib1g-dev libffi-dev libssl-dev sudo valkey
msg_ok "Installed dependencies"
msg_info "Setup Python3"
$STD apt-get install -y \
python3 \
python3-{pip,venv,yaml,dev}
$STD pip install --upgrade pip setuptools wheel
$STD pip install pyyaml
msg_ok "Setup Python3"
msg_info "Creating user and preparing directories"
useradd --system --shell /bin/bash --home-dir "/usr/local/searxng" --comment 'Privacy-respecting metasearch engine' searxng || true
mkdir -p /usr/local/searxng
chown -R searxng:searxng /usr/local/searxng
msg_ok "User and directories ready"
msg_info "Setup SearXNG"
mkdir -p /usr/local/searxng /etc/searxng
useradd -d /etc/searxng searxng
chown searxng:searxng /usr/local/searxng /etc/searxng
$STD git clone https://github.com/searxng/searxng.git /usr/local/searxng/searxng-src
cd /usr/local/searxng/
sudo -u searxng python3 -m venv /usr/local/searxng/searx-pyenv
source /usr/local/searxng/searx-pyenv/bin/activate
$STD pip install --upgrade pip setuptools wheel
$STD pip install pyyaml
$STD pip install --use-pep517 --no-build-isolation -e /usr/local/searxng/searxng-src
msg_info "Cloning SearXNG source"
$STD sudo -H -u searxng git clone https://github.com/searxng/searxng /usr/local/searxng/searxng-src
msg_ok "Cloned SearXNG"
msg_info "Creating Python virtual environment"
sudo -H -u searxng bash -c "
python3 -m venv /usr/local/searxng/searx-pyenv &&
. /usr/local/searxng/searx-pyenv/bin/activate &&
$STD pip install -U pip setuptools wheel pyyaml &&
$STD pip install --use-pep517 --no-build-isolation -e /usr/local/searxng/searxng-src
"
msg_ok "Python environment ready"
msg_info "Configuring SearXNG settings"
mkdir -p /etc/searxng
SECRET_KEY=$(openssl rand -hex 32)
cat <<EOF >/etc/searxng/settings.yml
# SearXNG settings
@@ -56,8 +58,8 @@ server:
secret_key: "${SECRET_KEY}"
limiter: false
image_proxy: true
redis:
url: "redis://127.0.0.1:6379/0"
valkey:
url: "valkey://localhost:6379/0"
ui:
static_use_hash: true
enabled_plugins:
@@ -78,16 +80,17 @@ engines:
shortcut: ddg
display_error_messages: true
EOF
chown searxng:searxng /etc/searxng/settings.yml
chmod 640 /etc/searxng/settings.yml
msg_ok "Setup SearXNG"
msg_ok "Configured settings"
msg_info "Set up web services"
cat <<EOF >/etc/systemd/system/searxng.service
[Unit]
Description=SearXNG service
After=network.target redis-server.service
Wants=redis-server.service
After=network.target valkey-server.service
Wants=valkey-server.service
[Service]
Type=simple

View File

@@ -43,17 +43,19 @@ echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Spoolman"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/spoolman.service
cat <<'EOF' >/etc/systemd/system/spoolman.service
[Unit]
Description=Spoolman
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/spoolman
EnvironmentFile=/opt/spoolman/.env
ExecStart=uvicorn spoolman.main:app --host 0.0.0.0 --port 7912
ExecStart=uvicorn spoolman.main:app --host "${SPOOLMAN_HOST}" --port "${SPOOLMAN_PORT}"
Restart=always
User=root
[Install]
WantedBy=multi-user.target
EOF

View File

@@ -0,0 +1,34 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: EEJoshua
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://swizzin.ltd/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_warn "WARNING: This script will run an external installer from a third-party source (https://swizzin.ltd/)."
msg_warn "The following code is NOT maintained or audited by our repository."
msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:"
msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://s5n.sh"
echo
read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM
if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then
msg_error "Aborted by user. No changes have been made."
exit 10
fi
bash <(curl -sL s5n.sh)
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -73,7 +73,7 @@ POSTGRES_USER=$DB_USER
POSTGRES_PASSWORD=$DB_PASS
STATIC_URL=/staticfiles/
MEDIA_URL=/mediafiles/
MEDIA_URL=/media/
EOF
TANDOOR_VERSION="$(curl -s https://api.github.com/repos/TandoorRecipes/recipes/releases/latest | jq -r .tag_name)"
@@ -125,7 +125,7 @@ server {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_pass http://unix:/opt/tandoor/tandoor.sock;
}
}

View File

@@ -17,6 +17,16 @@ msg_info "Installing Dependencies"
$STD apt-get install -y handbrake-cli
msg_ok "Installed Dependencies"
msg_info "Installing Tdarr"
mkdir -p /opt/tdarr
cd /opt/tdarr
RELEASE=$(curl -fsSL https://f000.backblazeb2.com/file/tdarrs/versions.json | grep -oP '(?<="Tdarr_Updater": ")[^"]+' | grep linux_x64 | head -n 1)
curl -fsSL "$RELEASE" -o Tdarr_Updater.zip
$STD unzip Tdarr_Updater.zip
chmod +x Tdarr_Updater
$STD ./Tdarr_Updater
msg_ok "Installed Tdarr"
msg_info "Setting Up Hardware Acceleration"
$STD apt-get -y install {va-driver-all,ocl-icd-libopencl1,intel-opencl-icd,vainfo,intel-gpu-tools}
if [[ "$CTTYPE" == "0" ]]; then
@@ -25,29 +35,14 @@ if [[ "$CTTYPE" == "0" ]]; then
chmod 660 /dev/dri/*
$STD adduser $(id -u -n) video
$STD adduser $(id -u -n) render
fi
msg_ok "Set Up Hardware Acceleration"
msg_info "Installing Tdarr"
mkdir -p /opt/tdarr
cd /opt/tdarr
RELEASE=$(curl -fsSL https://f000.backblazeb2.com/file/tdarrs/versions.json | grep -oP '(?<="Tdarr_Updater": ")[^"]+' | grep linux_x64 | head -n 1)
curl -fsSL "$RELEASE" -o $(basename "$RELEASE")
$STD unzip Tdarr_Updater.zip
rm -rf Tdarr_Updater.zip
chmod +x Tdarr_Updater
./Tdarr_Updater &>/dev/null
if [[ "$CTTYPE" == "0" ]]; then
sed -i -e 's/^sgx:x:104:$/render:x:104:root/' -e 's/^render:x:106:root$/sgx:x:106:/' /etc/group
else
sed -i -e 's/^sgx:x:104:$/render:x:104:/' -e 's/^render:x:106:$/sgx:x:106:/' /etc/group
fi
msg_ok "Set Up Hardware Acceleration"
msg_ok "Installed Tdarr"
msg_info "Creating Service"
service_path="/etc/systemd/system/tdarr-server.service"
echo "[Unit]
cat <<EOF >/etc/systemd/system/tdarr-server.service
[Unit]
Description=Tdarr Server Daemon
After=network.target
# Enable if using ZFS, edit and enable if other FS mounting is required to access directory
@@ -56,20 +51,20 @@ After=network.target
[Service]
User=root
Group=root
Type=simple
WorkingDirectory=/opt/tdarr/Tdarr_Server
ExecStartPre=/opt/tdarr/Tdarr_Updater
ExecStartPre=/opt/tdarr/Tdarr_Updater
ExecStart=/opt/tdarr/Tdarr_Server/Tdarr_Server
TimeoutStopSec=20
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target" >$service_path
WantedBy=multi-user.target
EOF
service_path="/etc/systemd/system/tdarr-node.service"
echo "[Unit]
cat <<EOF >/etc/systemd/system/tdarr-node.service
[Unit]
Description=Tdarr Node Daemon
After=network.target
Requires=tdarr-server.service
@@ -77,7 +72,6 @@ Requires=tdarr-server.service
[Service]
User=root
Group=root
Type=simple
WorkingDirectory=/opt/tdarr/Tdarr_Node
ExecStart=/opt/tdarr/Tdarr_Node/Tdarr_Node
@@ -86,16 +80,16 @@ KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target" >$service_path
systemctl enable --now -q tdarr-server.service
systemctl enable --now -q tdarr-node.service
WantedBy=multi-user.target
EOF
systemctl enable --now -q tdarr-server tdarr-node
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
rm -rf Tdarr_Updater.zip
rm -rf /opt/tdarr/Tdarr_Updater.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -21,14 +21,24 @@ $STD apt-get update
$STD apt-get install -y aspnetcore-runtime-8.0
msg_ok "Installed ASP.NET Core Runtime"
RELEASE=$(curl -fsSL https://technitium.com/dns/ | grep -oP 'Version \K[\d.]+')
msg_info "Installing Technitium DNS"
$STD bash <(curl -fsSL https://download.technitium.com/dns/install.sh)
mkdir -p /opt/technitium/dns
curl -fsSL "https://download.technitium.com/dns/DnsServerPortable.tar.gz" -o /opt/DnsServerPortable.tar.gz
$STD tar zxvf /opt/DnsServerPortable.tar.gz -C /opt/technitium/dns/
echo "${RELEASE}" > ~/.technitium
msg_ok "Installed Technitium DNS"
msg_info "Creating service"
cp /opt/technitium/dns/systemd.service /etc/systemd/system/technitium.service
systemctl enable -q --now technitium
msg_ok "Service created"
motd_ssh
customize
msg_info "Cleaning up"
rm -f /opt/DnsServerPortable.tar.gz
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -20,15 +20,7 @@ $STD apt-get install -y \
ca-certificates
msg_ok "Installed Dependencies"
msg_info "Installing TeddyCloud"
RELEASE="$(curl -fsSL https://api.github.com/repos/toniebox-reverse-engineering/teddycloud/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
VERSION="${RELEASE#tc_v}"
curl -fsSL "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip" -o "teddycloud.amd64.release_v${VERSION}.zip"
$STD unzip -d "/opt/teddycloud-${VERSION}" "teddycloud.amd64.release_v${VERSION}.zip"
ln -fns "/opt/teddycloud-${VERSION}" /opt/teddycloud
rm -rf teddycloud.amd64.release_v${VERSION}.zip
echo "${VERSION}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed TeddyCloud"
fetch_and_deploy_gh_release "teddycloud" "toniebox-reverse-engineering/teddycloud" "prebuild" "latest" "/opt/teddycloud" "teddycloud.amd64.release*.zip"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/teddycloud.service
@@ -53,7 +45,6 @@ motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get --yes autoremove
$STD apt-get --yes autoclean
rm -rf "teddycloud.amd64.release_v${VERSION}.zip"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -13,26 +13,12 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
build-essential
msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="yarn@latest,node-gyp" setup_nodejs
msg_info "Installing The Lounge"
cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/thelounge/thelounge-deb/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/thelounge/thelounge-deb/releases/download/v${RELEASE}/thelounge_${RELEASE}_all.deb" -o "./thelounge_${RELEASE}_all.deb"
$STD dpkg -i ./thelounge_${RELEASE}_all.deb
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed The Lounge"
fetch_and_deploy_gh_release "thelounge" "thelounge/thelounge-deb" "binary"
motd_ssh
customize
msg_info "Cleaning up"
rm -rf /opt/thelounge_${RELEASE}_all.deb
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

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