Compare commits

..

93 Commits

Author SHA1 Message Date
b0bd2f4804 Update CHANGELOG.md (#5098)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-11 01:15:34 +01:00
3aefe199f7 Update versions.json (#5097)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-11 02:14:59 +02:00
677008c779 Update CHANGELOG.md (#5094)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-10 19:13:25 +01:00
b8ba409e5c Element Synapse: switched from development to production mode and fixed update (#5066)
* Update elementsynapse.sh

* Update elementsynapse-install.sh

* Update elementsynapse.sh

removed comment
2025-06-10 20:13:00 +02:00
7cf8300b47 Update CHANGELOG.md (#5093)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-10 18:37:20 +01:00
77fb5ea516 Update CHANGELOG.md (#5092)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-10 18:37:00 +01:00
e92dfe1b2b Update dolibarr-install.sh (#5091) 2025-06-10 19:36:48 +02:00
61bfa16645 Update alpine-tinyauth-install.sh (#5090) 2025-06-10 19:36:33 +02:00
84c295a10b Update CHANGELOG.md (#5086)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-10 15:02:17 +01:00
ed834bf424 Immich: Update JSON (#5085)
- Provide more clarity around OpenVINO, hardware transcoding, and how to
change upload locations
2025-06-10 16:01:48 +02:00
b1f8992933 Update versions.json (#5084)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-10 14:07:47 +02:00
201f7c4651 Update CHANGELOG.md (#5081)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-10 08:24:46 +01:00
2574e41ee8 Prevent api from posing if disabled (#5080) 2025-06-10 09:24:20 +02:00
2aeb7cf79a Update CHANGELOG.md (#5079)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-10 01:15:38 +01:00
98c277f471 Update versions.json (#5078)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-10 02:14:55 +02:00
78a2201a93 Update CHANGELOG.md (#5076)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-09 20:21:31 +01:00
2de03f5734 Remove GoMFT from website temporarily (#5065) 2025-06-09 21:04:22 +02:00
c59f9f421c Update minarca.json (#5070) 2025-06-09 21:03:03 +02:00
598acc2048 Update versions.json (#5071)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-09 14:07:42 +02:00
6e6b279b88 Update CHANGELOG.md (#5069)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-09 08:19:41 +01:00
943a5f4d8f Authelia: Fix the URL of the container (#5064)
* Update authelia.sh

* Update authelia.json
2025-06-09 09:19:15 +02:00
4efa882558 Update CHANGELOG.md (#5068)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-09 01:16:16 +01:00
eff985ca02 Update versions.json (#5067)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-09 02:15:39 +02:00
ff239ff3cd Update CHANGELOG.md (#5061)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-08 21:16:48 +01:00
45bb824101 Update CHANGELOG.md (#5060)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-08 22:16:28 +02:00
1956c8740b Update date in json (#5059)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-08 21:15:16 +01:00
f6638b095d Minarca (#5058) 2025-06-08 22:14:41 +02:00
6a1738c52a Update CHANGELOG.md (#5057)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-08 16:10:46 +01:00
a9e3520df1 zot: fix missing var (Dev -> Main) (#5056) 2025-06-08 17:10:20 +02:00
08230e9089 Update CHANGELOG.md (#5055)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-08 14:29:18 +01:00
a5c6984087 karakeep: Add more configuration defaults (#5054) 2025-06-08 15:28:50 +02:00
99174cb9c2 Update versions.json (#5053)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-08 14:06:49 +02:00
336e70f059 Update CHANGELOG.md (#5049)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-08 01:16:43 +01:00
ce8b9aa5b4 Update versions.json (#5048)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-08 02:16:07 +02:00
70d6815d91 Remove storage checks (#5047) 2025-06-07 23:32:38 +02:00
75273e86b6 Align read -p text (#5046) 2025-06-07 23:32:22 +02:00
37a2f6a715 Update CHANGELOG.md (#5045)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-07 19:58:31 +01:00
4b7c734b9a Fix typo in build.func (#5041) 2025-06-07 20:57:55 +02:00
590db0d148 Update CHANGELOG.md (#5044)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-07 19:20:43 +01:00
50ad6410d5 Update CHANGELOG.md (#5043)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-07 19:20:22 +01:00
85b80bfb22 declare pingvin-share as updateable (#5038) 2025-06-07 20:20:14 +02:00
33e49b7556 fix alpine-it-tools update (#5039) 2025-06-07 20:19:56 +02:00
0a6f7e6426 Update versions.json (#5036)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-07 14:06:43 +02:00
5fd5d78a2a Update CHANGELOG.md (#5031)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-07 01:15:20 +01:00
ab32878b63 Update versions.json (#5030)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-07 02:14:48 +02:00
ee7090f271 Update lyrionmusicserver.json (#5028) 2025-06-06 23:29:01 +02:00
df6bd2a68a Update versions.json (#5021)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-06 14:07:32 +02:00
e46e9a3372 Update CHANGELOG.md (#5020)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-06 12:30:31 +01:00
6c08814cc5 zipline: fix old upload copy from v3 to v4 (#5015)
* zipline: fix old upload copy from v3 to v4

* rm for install
2025-06-06 13:30:01 +02:00
4cca5062af Update CHANGELOG.md (#5019)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-06 11:07:32 +01:00
dc2b585e6b Update CHANGELOG.md (#5018)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-06 11:06:07 +01:00
cc4f5c4478 Update date in json (#5017)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-06 11:06:02 +01:00
01ced07bff Zot-Registry (#5016)
* 'Add new script'

* fix curl call

* update 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-06-06 12:05:28 +02:00
85e13c9ac5 Rename metube.json to metube.json.bak (#5014) 2025-06-06 09:35:05 +02:00
1ac4b0c10f Update emby.json (#4998) 2025-06-06 07:59:14 +02:00
781471f37a Update CHANGELOG.md (#5011)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-06 01:15:20 +01:00
e2790814b8 Update versions.json (#5010)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-06 02:14:46 +02:00
f5705621b2 Update CHANGELOG.md (#5007)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-05 21:16:50 +01:00
a28a4fd752 Update CHANGELOG.md (#5006)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-05 21:15:50 +01:00
b890fae808 Update date in json (#5005)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-05 21:15:45 +01:00
8e88379c1b lyrionmusicserver (#4992)
* 'Add new script'

* Update lyrionmusicserver.sh

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>
2025-06-05 22:15:11 +02:00
b2307f1bb9 Update CHANGELOG.md (#5004)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-05 21:04:32 +01:00
db9ffe3105 update Zitadel PSQL (#5000) 2025-06-05 22:04:04 +02:00
2c1e101135 Update versions.json (#4995)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-05 14:07:41 +02:00
a991908a37 Update CHANGELOG.md (#4994)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-05 13:51:46 +02:00
f0206a6252 Update cron-update-lxcs.json (#4990)
the cronjob doesn't work with single quotes
2025-06-05 12:01:28 +02:00
e8061a9f6e Zipline fix (#4989) 2025-06-05 11:57:41 +02:00
64c47bd335 Update CHANGELOG.md (#4987)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-05 09:06:30 +01:00
ec573be7e0 Update homarr.sh (#4974) 2025-06-05 10:05:20 +02:00
4e53abbd48 Update CHANGELOG.md (#4986)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-05 09:00:24 +01:00
338d351c29 Update phpMyAdmin for MariaDB and MySQL LXC's (#4983)
* Update mariadb-install.sh

* Update
2025-06-05 09:59:32 +02:00
835893e589 Update CHANGELOG.md (#4985)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-05 08:59:22 +01:00
1e81c11e74 Update date in json (#4984)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-05 08:59:09 +01:00
27384ad89a gitea-mirror (#4967)
* 'Add new script'

* Update gitea-mirror.sh

* Update gitea-mirror-install.sh

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-06-05 09:58:45 +02:00
27d3909df5 Update CHANGELOG.md (#4982)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-05 08:14:55 +01:00
2e3f416242 add FUSE to rclone (#4972)
* Update rclone-install.sh

fuse3 is needed for mounting

* Update alpine-rclone.sh

activate FUSE by default

* Update rclone.sh

activate FUSE by default

* Update alpine-rclone-install.sh

install fuse3 which is needed for mounting
2025-06-05 09:13:33 +02:00
b91cbbcbe9 Update CHANGELOG.md (#4981)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-05 08:11:55 +01:00
3f43cd5575 Fix clean-lxcs.sh type categorization (#4980) 2025-06-05 09:11:13 +02:00
1564d4d6d3 Update CHANGELOG.md (#4978)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-05 01:15:36 +01:00
077db6c52f Update versions.json (#4977)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-05 02:14:54 +02:00
a0d2bece1d Tianji: Update dependencies (#4968)
* Update tianji-install.sh

* Also check jq in update
2025-06-04 21:24:44 +02:00
0178742308 Update CHANGELOG.md (#4973)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-04 20:21:16 +01:00
d2482e5c82 Pulse: add polkit for sudoless web updates (#4970) 2025-06-04 21:16:07 +02:00
2400f98f75 Update wavelog.json (#4965) 2025-06-04 14:39:18 +02:00
176946bd45 Update versions.json (#4966)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-04 14:07:57 +02:00
a25009bdb1 Update CHANGELOG.md (#4962)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-04 09:10:29 +01:00
03eff3a2e1 [refactor] Seelf (#4954)
* Refactor seelf

* Update

* Update

* Update
2025-06-04 10:10:05 +02:00
ff12d802cc Update CHANGELOG.md (#4959)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-04 06:02:44 +01:00
02b753eb12 fix: show specific port 7655 in Pulse container setup output (#4951)
- Replace generic (:your_port) with actual port 7655 in ct/pulse.sh
- Provides users with correct access URL immediately after setup
- Fixes incomplete access information shown at container creation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-04 07:02:07 +02:00
c9eaaee0c0 Update CHANGELOG.md (#4957)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-04 01:15:48 +01:00
f154249dde Update versions.json (#4956)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-04 02:15:02 +02:00
9ef7274199 Update CHANGELOG.md (#4953)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-03 23:37:24 +01:00
e9477e7a07 Update netbox.json (#4952)
Website link lead to commercial product website. Community version is only referenced in the FAQ of the pricing page.

Updated link to point to product page for community version.
2025-06-04 00:36:59 +02:00
139 changed files with 2555 additions and 1996 deletions

View File

@ -14,6 +14,120 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
## 2025-06-11
## 2025-06-10
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Element Synapse: switched from development to production mode and fixed update [@Frankmaaan](https://github.com/Frankmaaan) ([#5066](https://github.com/community-scripts/ProxmoxVE/pull/5066))
- Tinyauth: Fix creation of service file [@tremor021](https://github.com/tremor021) ([#5090](https://github.com/community-scripts/ProxmoxVE/pull/5090))
- Dolibarr: Fix typo in SQL command [@tremor021](https://github.com/tremor021) ([#5091](https://github.com/community-scripts/ProxmoxVE/pull/5091))
### 🧰 Maintenance
- #### 📡 API
- [core] Prevent API form sending Data when disabled [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#5080](https://github.com/community-scripts/ProxmoxVE/pull/5080))
### 🌐 Website
- #### 📝 Script Information
- Immich: Update JSON [@vhsdream](https://github.com/vhsdream) ([#5085](https://github.com/community-scripts/ProxmoxVE/pull/5085))
## 2025-06-09
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Authelia: Fix the URL of the container [@tremor021](https://github.com/tremor021) ([#5064](https://github.com/community-scripts/ProxmoxVE/pull/5064))
### 🌐 Website
- GoMFT: Remove from website temporarily [@tremor021](https://github.com/tremor021) ([#5065](https://github.com/community-scripts/ProxmoxVE/pull/5065))
## 2025-06-08
### 🆕 New Scripts
- Minarca ([#5058](https://github.com/community-scripts/ProxmoxVE/pull/5058))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- zot: fix missing var (Dev -> Main) [@MickLesk](https://github.com/MickLesk) ([#5056](https://github.com/community-scripts/ProxmoxVE/pull/5056))
- #### ✨ New Features
- karakeep: Add more configuration defaults [@vhsdream](https://github.com/vhsdream) ([#5054](https://github.com/community-scripts/ProxmoxVE/pull/5054))
## 2025-06-07
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- alpine-it-tools fix update [@CrazyWolf13](https://github.com/CrazyWolf13) ([#5039](https://github.com/community-scripts/ProxmoxVE/pull/5039))
### 🧰 Maintenance
- #### 💾 Core
- Fix typo in build.func [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#5041](https://github.com/community-scripts/ProxmoxVE/pull/5041))
## 2025-06-06
### 🆕 New Scripts
- Zot-Registry ([#5016](https://github.com/community-scripts/ProxmoxVE/pull/5016))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- zipline: fix old upload copy from v3 to v4 [@MickLesk](https://github.com/MickLesk) ([#5015](https://github.com/community-scripts/ProxmoxVE/pull/5015))
## 2025-06-05
### 🆕 New Scripts
- Lyrion Music Server ([#4992](https://github.com/community-scripts/ProxmoxVE/pull/4992))
- gitea-mirror ([#4967](https://github.com/community-scripts/ProxmoxVE/pull/4967))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Zipline: Fix PostgreSQL install [@tremor021](https://github.com/tremor021) ([#4989](https://github.com/community-scripts/ProxmoxVE/pull/4989))
- Homarr: add nodejs upgrade [@CrazyWolf13](https://github.com/CrazyWolf13) ([#4974](https://github.com/community-scripts/ProxmoxVE/pull/4974))
- add FUSE to rclone [@Frankmaaan](https://github.com/Frankmaaan) ([#4972](https://github.com/community-scripts/ProxmoxVE/pull/4972))
- #### ✨ New Features
- Zitadel: Upgrade Install to PSQL 17 [@MickLesk](https://github.com/MickLesk) ([#5000](https://github.com/community-scripts/ProxmoxVE/pull/5000))
### 🌐 Website
- #### 📝 Script Information
- Fix clean-lxcs.sh type categorization [@bitspill](https://github.com/bitspill) ([#4980](https://github.com/community-scripts/ProxmoxVE/pull/4980))
## 2025-06-04
### 🚀 Updated Scripts
- Pulse: add polkit for sudoless web updates [@rcourtman](https://github.com/rcourtman) ([#4970](https://github.com/community-scripts/ProxmoxVE/pull/4970))
- Pulse: add correct Port for URL output [@rcourtman](https://github.com/rcourtman) ([#4951](https://github.com/community-scripts/ProxmoxVE/pull/4951))
- #### 🐞 Bug Fixes
- [refactor] Seelf [@tremor021](https://github.com/tremor021) ([#4954](https://github.com/community-scripts/ProxmoxVE/pull/4954))
## 2025-06-03
### 🚀 Updated Scripts
@ -22,6 +136,12 @@ All LXC instances created using this repository come pre-installed with Midnight
- Kasm: Swap fix [@omiinaya](https://github.com/omiinaya) ([#4937](https://github.com/community-scripts/ProxmoxVE/pull/4937))
### 🌐 Website
- #### 📝 Script Information
- netbox: correct website URL [@theincrediblenoone](https://github.com/theincrediblenoone) ([#4952](https://github.com/community-scripts/ProxmoxVE/pull/4952))
## 2025-06-02
### 🆕 New Scripts

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -27,8 +27,6 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
PYTHON_VERSION="3.12" setup_uv
RELEASE=$(curl -fsSL https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Services"
@ -45,16 +43,10 @@ function update_script() {
mv /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
mv /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
cd /opt/adventurelog/backend/server
$STD uv venv --python "$UV_PYTHON_VERSION" .venv
if grep -q "ExecStart=.*python3 manage.py runserver" /etc/systemd/system/adventurelog-backend.service; then
sed -i "s|ExecStart=.*python3 manage.py runserver|ExecStart=$(pwd)/.venv/bin/python manage.py runserver|" /etc/systemd/system/adventurelog-backend.service
systemctl daemon-reload
fi
$STD uv pip install --upgrade pip --python=.venv/bin/python
$STD uv pip install -r requirements.txt --python=.venv/bin/python
$STD uv run --python=.venv/bin/python python manage.py collectstatic --noinput
$STD uv run --python=.venv/bin/python python manage.py migrate
$STD pip install --upgrade pip
$STD pip install -r requirements.txt
$STD python3 manage.py collectstatic --noinput
$STD python3 manage.py migrate
mv /opt/adventurelog-backup/frontend/.env /opt/adventurelog/frontend/.env
cd /opt/adventurelog/frontend

View File

@ -21,8 +21,6 @@ catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [ ! -d /usr/share/nginx/html ]; then
msg_error "No ${APP} Installation Found!"

View File

@ -13,6 +13,7 @@ var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}"
var_unprivileged="${var_unprivileged:-1}"
var_fuse="${var_fuse:-yes}"
header_info "$APP"
variables
@ -21,9 +22,6 @@ catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [ ! -d /opt/rclone ]; then
msg_error "No ${APP} Installation Found!"
exit 1

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -20,45 +20,29 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/archivebox ]]; then
msg_error "No ${APP} Installation Found!"
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/archivebox ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ${APP}"
systemctl stop archivebox
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP}"
cd /opt/archivebox/data
pip install --upgrade --ignore-installed archivebox
sudo -u archivebox archivebox init
msg_ok "Updated ${APP}"
msg_info "Starting ${APP}"
systemctl start archivebox
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
exit
fi
msg_info "Stopping ${APP}"
systemctl stop archivebox
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP}"
cd /opt/archivebox
$STD uv venv --python "$UV_PYTHON_VERSION" .venv
if [[ -f /opt/archivebox/uv.lock ]]; then
cp /opt/archivebox/uv.lock /opt/archivebox/data/ || true
fi
cd /opt/archivebox/data
$STD ../.venv/bin/uv sync
msg_info "Running ArchiveBox Setup"
sudo -u archivebox ../.venv/bin/playwright install-deps chromium
sudo -u archivebox ../.venv/bin/playwright install chromium
sudo -u archivebox ../.venv/bin/archivebox init
msg_ok "ArchiveBox Updated"
if grep -q "ExecStart=/usr/local/bin/archivebox" /etc/systemd/system/archivebox.service; then
sed -i "s|ExecStart=/usr/local/bin/archivebox|ExecStart=/opt/archivebox/.venv/bin/archivebox|" /etc/systemd/system/archivebox.service
systemctl daemon-reload
fi
msg_info "Starting ${APP}"
systemctl start archivebox
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
exit
}
start
@ -68,4 +52,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}:8000/admin/login${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000/admin/login${CL}"

View File

@ -55,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}:9091${CL}"
echo -e "${TAB}${GATEWAY}${BGN}https://YOUR_AUTHELIA_URL${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -20,18 +20,18 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var/lib/bazarr/ ]]; then
msg_error "No ${APP} Installation Found!"
header_info
check_container_storage
check_container_resources
if [[ ! -d /var/lib/bazarr/ ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
exit
}
start
@ -41,4 +41,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}:6767${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6767${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) | Co-Author: remz1337
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -135,4 +135,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}:8083${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8083${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -74,4 +74,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}:5000${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts
# Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -4,7 +4,7 @@
# Author: tteck (tteckster)
# Co-Author: MickLesk
# License: MIT
# https://github.com/community-scripts/ProxmoxVE/raw/python_to_uv/LICENSE
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# This sets verbose mode if the global variable is set to "yes"
# if [ "$VERBOSE" == "yes" ]; then set -x; fi

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -20,18 +20,18 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/deluged.service ]]; then
msg_error "No ${APP} Installation Found!"
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/deluged.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
pip3 install deluge[all] --upgrade
msg_ok "Updated $APP LXC"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
pip3 install deluge[all] --upgrade
msg_ok "Updated $APP LXC"
exit
}
start
@ -41,4 +41,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}:8112${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8112${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -47,7 +47,7 @@ function update_script() {
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
if [[ -f /systemd/system/synapse-admin.service ]]; then
if [[ -f /etc/systemd/system/synapse-admin.service ]]; then
msg_info "Updating Synapse-Admin"
RELEASE=$(curl -fsSL https://api.github.com/repos/etkecc/synapse-admin/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
@ -58,7 +58,16 @@ function update_script() {
curl -fsSL "https://github.com/etkecc/synapse-admin/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar xzf "$temp_file" -C /opt/synapse-admin --strip-components=1
cd /opt/synapse-admin
$STD yarn global add serve
$STD yarn install --ignore-engines
$STD yarn build
mv ./dist ../ && \
rm -rf * && \
mv ../dist ./
if [[ -z $(grep "ExecStart=/usr/local/bin/serve" /etc/systemd/system/synapse-admin.service) ]]; then
sed -i 's|^ExecStart=.*|ExecStart=/usr/local/bin/serve -s dist -l 5173|' /etc/systemd/system/synapse-admin.service
systemctl reenable synapse-admin
fi
systemctl start synapse-admin
echo "${RELEASE}" >/opt/"${APP}"_version.txt
rm -f "$temp_file"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -25,57 +25,22 @@ function update_script() {
check_container_resources
if [[ ! -f /etc/systemd/system/esphomeDashboard.service ]]; then
msg_error "No ${APP} Installation Found!"
exit 1
exit
fi
msg_info "Stopping ${APP}"
msg_info "Stopping ESPHome"
systemctl stop esphomeDashboard
msg_ok "Stopped ${APP}"
msg_ok "Stopped ESPHome"
VENV_PATH="/opt/esphome/.venv"
ESPHOME_BIN="${VENV_PATH}/bin/esphome"
export PYTHON_VERSION="3.12"
if [[ ! -d "$VENV_PATH" || ! -x "$ESPHOME_BIN" ]]; then
PYTHON_VERSION="3.12" setup_uv
msg_info "Migrating to uv/venv"
rm -rf "$VENV_PATH"
mkdir -p /opt/esphome
cd /opt/esphome
$STD uv venv "$VENV_PATH"
$STD "$VENV_PATH/bin/python" -m ensurepip --upgrade
$STD "$VENV_PATH/bin/python" -m pip install --upgrade pip
$STD "$VENV_PATH/bin/python" -m pip install esphome tornado esptool
msg_ok "Migrated to uv/venv"
else
msg_info "Updating ESPHome"
PYTHON_VERSION="3.12" setup_uv
$STD "$VENV_PATH/bin/python" -m pip install --upgrade esphome tornado esptool
msg_ok "Updated ESPHome"
msg_info "Updating ESPHome"
if [[ -d /srv/esphome ]]; then
$STD source /srv/esphome/bin/activate
fi
SERVICE_FILE="/etc/systemd/system/esphomeDashboard.service"
if ! grep -q "${VENV_PATH}/bin/esphome" "$SERVICE_FILE"; then
msg_info "Updating systemd service"
cat <<EOF >"$SERVICE_FILE"
[Unit]
Description=ESPHome Dashboard
After=network.target
$STD pip3 install -U esphome
msg_ok "Updated ESPHome"
[Service]
ExecStart=${VENV_PATH}/bin/esphome dashboard /root/config/
Restart=always
User=root
[Install]
WantedBy=multi-user.target
EOF
$STD systemctl daemon-reload
msg_ok "Updated systemd service"
fi
msg_info "Starting ${APP}"
msg_info "Starting ESPHome"
systemctl start esphomeDashboard
msg_ok "Started ${APP}"
msg_ok "Started ESPHome"
msg_ok "Updated Successfully"
exit
}
@ -87,4 +52,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}:6052${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6052${CL}"

83
ct/gitea-mirror.sh Normal file
View File

@ -0,0 +1,83 @@
#!/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: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/arunavo4/gitea-mirror
APP="gitea-mirror"
var_tags="${var_tags:-mirror;gitea}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-5}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/gitea-mirror ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/arunavo4/gitea-mirror/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 "Stopping Services"
systemctl stop gitea-mirror
msg_ok "Services Stopped"
msg_info "Backup Data"
mkdir -p /opt/gitea-mirror-backup/data
cp /opt/gitea-mirror/data/* /opt/gitea-mirror-backup/data/
msg_ok "Backup Data"
msg_info "Installing Bun"
export BUN_INSTALL=/opt/bun
curl -fsSL https://bun.sh/install | $STD bash
ln -sf /opt/bun/bin/bun /usr/local/bin/bun
ln -sf /opt/bun/bin/bun /usr/local/bin/bunx
msg_ok "Installed Bun"
rm -rf /opt/gitea-mirror
fetch_and_deploy_gh_release "arunavo4/gitea-mirror"
msg_info "Updating and rebuilding ${APP} to v${RELEASE}"
cd /opt/gitea-mirror
$STD bun run setup
$STD bun run build
APP_VERSION=$(grep -o '"version": *"[^"]*"' package.json | cut -d'"' -f4)
sudo sed -i.bak "s|^Environment=npm_package_version=.*|Environment=npm_package_version=${APP_VERSION}|" /etc/systemd/system/gitea-mirror.service
msg_ok "Updated and rebuilt ${APP} to v${RELEASE}"
msg_info "Restoring Data"
cp /opt/gitea-mirror-backup/data/* /opt/gitea-mirror/data
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Restored Data"
msg_info "Starting Service"
systemctl daemon-reload
systemctl start gitea-mirror
msg_ok "Service Started"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:4321${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Source: https://github.com/gristlabs/grist-core
APP="Grist"

6
ct/headers/gitea-mirror Normal file
View File

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

View File

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

6
ct/headers/minarca Normal file
View File

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

6
ct/headers/zot-registry Normal file
View File

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

View File

@ -92,6 +92,19 @@ EOF
cp /opt/homarr/.env /opt/homarr-data-backup/.env
msg_ok "Backup Data"
msg_info "Updating Nodejs"
$STD apt update
$STD apt upgrade nodejs -y
msg_ok "Updated Nodejs"
$STD command -v jq || $STD apt-get update && $STD apt-get install -y jq
NODE_VERSION=$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.engines.node | split(">=")[1] | split(".")[0]')
NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.packageManager | split("@")[1]')"
install_node_and_modules
rm -rf /opt/homarr
fetch_and_deploy_gh_release "homarr-labs/homarr"
msg_info "Updating and rebuilding ${APP} to v${RELEASE} (Patience)"
rm /opt/run_homarr.sh
cat <<'EOF' >/opt/run_homarr.sh
@ -117,12 +130,6 @@ node apps/nextjs/server.js & PID=$!
wait $PID
EOF
chmod +x /opt/run_homarr.sh
$STD command -v jq || $STD apt-get update && $STD apt-get install -y jq
NODE_VERSION=$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.engines.node | split(">=")[1] | split(".")[0]')
NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.packageManager | split("@")[1]')"
install_node_and_modules
rm -rf /opt/homarr
fetch_and_deploy_gh_release "homarr-labs/homarr"
mv /opt/homarr-data-backup/.env /opt/homarr/.env
cd /opt/homarr
$STD pnpm install --recursive --frozen-lockfile --shamefully-hoist

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -20,44 +20,44 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/homer ]]; then
msg_error "No ${APP} Installation Found!"
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/homer ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ${APP}"
systemctl stop homer
msg_ok "Stopped ${APP}"
msg_info "Backing up assets directory"
cd ~
mkdir -p assets-backup
cp -R /opt/homer/assets/. assets-backup
msg_ok "Backed up assets directory"
msg_info "Updating ${APP}"
rm -rf /opt/homer/*
cd /opt/homer
curl -fsSL "https://github.com/bastienwirtz/homer/releases/latest/download/homer.zip" -o $(basename "https://github.com/bastienwirtz/homer/releases/latest/download/homer.zip")
$STD unzip homer.zip
msg_ok "Updated ${APP}"
msg_info "Restoring assets directory"
cd ~
cp -Rf assets-backup/. /opt/homer/assets/
msg_ok "Restored assets directory"
msg_info "Cleaning"
rm -rf assets-backup /opt/homer/homer.zip
msg_ok "Cleaned"
msg_info "Starting ${APP}"
systemctl start homer
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
exit
fi
msg_info "Stopping ${APP}"
systemctl stop homer
msg_ok "Stopped ${APP}"
msg_info "Backing up assets directory"
cd ~
mkdir -p assets-backup
cp -R /opt/homer/assets/. assets-backup
msg_ok "Backed up assets directory"
msg_info "Updating ${APP}"
rm -rf /opt/homer/*
cd /opt/homer
curl -fsSL "https://github.com/bastienwirtz/homer/releases/latest/download/homer.zip" -o $(basename "https://github.com/bastienwirtz/homer/releases/latest/download/homer.zip")
$STD unzip homer.zip
msg_ok "Updated ${APP}"
msg_info "Restoring assets directory"
cd ~
cp -Rf assets-backup/. /opt/homer/assets/
msg_ok "Restored assets directory"
msg_info "Cleaning"
rm -rf assets-backup /opt/homer/homer.zip
msg_ok "Cleaned"
msg_info "Starting ${APP}"
systemctl start homer
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
exit
}
start

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -27,9 +27,6 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
setup_uv
STAGING_DIR=/opt/staging
BASE_DIR=${STAGING_DIR}/base-images
SOURCE_DIR=${STAGING_DIR}/image-source
@ -254,16 +251,23 @@ EOF
msg_ok "Updated ${APP} web and microservices"
cd "$SRC_DIR"/machine-learning
export VIRTUAL_ENV="${ML_DIR}/ml-venv"
$STD uv venv "$VIRTUAL_ENV"
$STD python3 -m venv "$ML_DIR"/ml-venv
if [[ -f ~/.openvino ]]; then
msg_info "Updating HW-accelerated machine-learning"
uv -q sync --extra openvino --no-cache --active
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so"
(
source "$ML_DIR"/ml-venv/bin/activate
$STD pip3 install -U uv
uv -q sync --extra openvino --no-cache --active
)
patchelf --clear-execstack "$ML_DIR"/ml-venv/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so
msg_ok "Updated HW-accelerated machine-learning"
else
msg_info "Updating machine-learning"
uv -q sync --extra cpu --no-cache --active
(
source "$ML_DIR"/ml-venv/bin/activate
$STD pip3 install -U uv
uv -q sync --extra cpu --no-cache --active
)
msg_ok "Updated machine-learning"
fi
cd "$SRC_DIR"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Dave-code-creater (Tan Dat, Ta)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -20,16 +20,16 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
header_info
check_container_storage
check_container_resources
msg_info "Updating ${APP} LXC"
$STD apt-get update
$STD apt-get install -y upgrade
$STD pip3 install jupyter --upgrade
msg_ok "Updated Successfully"
exit
msg_info "Updating ${APP} LXC"
$STD apt-get update
$STD apt-get install -y upgrade
$STD pip3 install jupyter --upgrade
msg_ok "Updated Successfully"
exit
}
start
@ -39,4 +39,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}:8888${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8888${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -20,51 +20,51 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
header_info
check_container_storage
check_container_resources
if [[ ! -f "/opt/kometa/kometa.py" ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Kometa-Team/Kometa/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/kometa_version.txt)" ]] || [[ ! -f /opt/kometa_version.txt ]]; then
msg_info "Updating $APP"
msg_info "Stopping $APP"
systemctl stop kometa
msg_ok "Stopped $APP"
msg_info "Updating $APP to ${RELEASE}"
cd /tmp
temp_file=$(mktemp)
if [[ ! -f "/opt/kometa/kometa.py" ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Kometa-Team/Kometa/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/Kometa-Team/Kometa/archive/refs/tags/v${RELEASE}.tar.gz" -o ""$temp_file""
tar -xzf "$temp_file"
cp /opt/kometa/config/config.yml /opt
rm -rf /opt/kometa
mv Kometa-${RELEASE} /opt/kometa
cd /opt/kometa
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
$STD pip install -r requirements.txt --ignore-installed
mkdir -p config/assets
cp /opt/config.yml config/config.yml
echo "${RELEASE}" >/opt/kometa_version.txt
msg_ok "Updated $APP to ${RELEASE}"
if [[ "${RELEASE}" != "$(cat /opt/kometa_version.txt)" ]] || [[ ! -f /opt/kometa_version.txt ]]; then
msg_info "Updating $APP"
msg_info "Stopping $APP"
systemctl stop kometa
msg_ok "Stopped $APP"
msg_info "Starting $APP"
systemctl start kometa
msg_ok "Started $APP"
msg_info "Updating $APP to ${RELEASE}"
cd /tmp
temp_file=$(mktemp)
RELEASE=$(curl -fsSL https://api.github.com/repos/Kometa-Team/Kometa/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/Kometa-Team/Kometa/archive/refs/tags/v${RELEASE}.tar.gz" -o ""$temp_file""
tar -xzf "$temp_file"
cp /opt/kometa/config/config.yml /opt
rm -rf /opt/kometa
mv Kometa-${RELEASE} /opt/kometa
cd /opt/kometa
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
$STD pip install -r requirements.txt --ignore-installed
mkdir -p config/assets
cp /opt/config.yml config/config.yml
echo "${RELEASE}" >/opt/kometa_version.txt
msg_ok "Updated $APP to ${RELEASE}"
msg_info "Cleaning Up"
rm -f $temp_file
msg_ok "Cleanup Completed"
msg_info "Starting $APP"
systemctl start kometa
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
msg_info "Cleaning Up"
rm -f $temp_file
msg_ok "Cleanup Completed"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}
start
@ -74,4 +74,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access the LXC at following IP address:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}${IP}${CL}"
echo -e "${TAB}${GATEWAY}${BGN}${IP}${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck | Co-Author: MountyMapleSyrup (MountyMapleSyrup)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -20,27 +20,27 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/LazyLibrarian/ ]]; then
msg_error "No ${APP} Installation Found!"
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/LazyLibrarian/ ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping LazyLibrarian"
systemctl stop lazylibrarian
msg_ok "LazyLibrarian Stopped"
msg_info "Updating $APP LXC"
$STD git -C /opt/LazyLibrarian pull origin master
msg_ok "Updated $APP LXC"
msg_info "Starting LazyLibrarian"
systemctl start lazylibrarian
msg_ok "Started LazyLibrarian"
msg_ok "Updated Successfully"
exit
fi
msg_info "Stopping LazyLibrarian"
systemctl stop lazylibrarian
msg_ok "LazyLibrarian Stopped"
msg_info "Updating $APP LXC"
$STD git -C /opt/LazyLibrarian pull origin master
msg_ok "Updated $APP LXC"
msg_info "Starting LazyLibrarian"
systemctl start lazylibrarian
msg_ok "Started LazyLibrarian"
msg_ok "Updated Successfully"
exit
}
start
@ -50,4 +50,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}:5299${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5299${CL}"

61
ct/lyrionmusicserver.sh Normal file
View File

@ -0,0 +1,61 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Omar Minaya
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://lyrion.org/getting-started/
APP="Lyrion Music Server"
var_tags="${var_tags:-media}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-3}"
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 /lib/systemd/system/lyrionmusicserver.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
DEB_URL=$(curl -s 'https://lyrion.org/getting-started/' | grep -oP '<a\s[^>]*href="\K[^"]*amd64\.deb(?="[^>]*>)' | head -n 1)
RELEASE=$(echo "$DEB_URL" | grep -oP 'lyrionmusicserver_\K[0-9.]+(?=_amd64\.deb)')
DEB_FILE="/tmp/lyrionmusicserver_${RELEASE}_amd64.deb"
if [[ ! -f /opt/lyrion_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/lyrion_version.txt)" ]]; then
msg_info "Updating $APP to ${RELEASE}"
curl -fsSL -o "$DEB_FILE" "$DEB_URL"
$STD apt install "$DEB_FILE" -y
systemctl restart lyrion
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to ${RELEASE}"
msg_info "Cleaning up"
$STD rm -f "$DEB_FILE"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
else
msg_ok "$APP is already up to date (${RELEASE})"
fi
}
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 the web interface at:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9000${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -53,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}:8081${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8081${CL}"

View File

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

54
ct/minarca.sh Normal file
View File

@ -0,0 +1,54 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://minarca.org/en_CA
APP="Minarca"
var_tags="${var_tags:-backup}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
var_fuse="${var_fuse:-yes}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/minarca-server ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ${APP}"
systemctl stop minarca-server
msg_ok "${APP} Stopped"
msg_info "Updating ${APP} LXC"
$STD apt-get update
$STD apt-get upgrade -y
msg_ok "Updated ${APP} LXC"
msg_info "Starting ${APP}"
systemctl start minarca-server
msg_ok "Restarted ${APP}"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -20,17 +20,17 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/motioneye.service ]]; then
msg_error "No ${APP} Installation Found!"
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/motioneye.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP} LXC"
$STD pip install motioneye --upgrade
msg_ok "Updated Successfully"
exit
fi
msg_info "Updating ${APP} LXC"
$STD pip install motioneye --upgrade
msg_ok "Updated Successfully"
exit
}
start
@ -40,4 +40,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}:8765${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8765${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: davalanche
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -29,7 +29,7 @@ function update_script() {
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Updating ${APP} to ${RELEASE}"
rm -rf /opt/mylar3/* /opt/mylar3/.*
curl -fsSL "https://github.com/mylar3/mylar3/archive/refs/tags/${RELEASE}.tar.gz" | tar -xz --strip-components=1 -C /opt/mylar3
curl -fsSL "https://github.com/mylar3/mylar3/archive/refs/tags/${RELEASE}.tar.gz" | tar -xz --strip-components=1 -C /opt/mylar3
systemctl restart mylar3
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
@ -46,4 +46,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}:8090${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: bvdberg01
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -20,27 +20,27 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/octoprint ]]; then
msg_error "No ${APP} Installation Found!"
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/octoprint ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping OctoPrint"
systemctl stop octoprint
msg_ok "Stopped OctoPrint"
msg_info "Updating OctoPrint"
source /opt/octoprint/bin/activate
$STD pip3 install octoprint --upgrade
msg_ok "Updated OctoPrint"
msg_info "Starting OctoPrint"
systemctl start octoprint
msg_ok "Started OctoPrint"
msg_ok "Updated Successfully"
exit
fi
msg_info "Stopping OctoPrint"
systemctl stop octoprint
msg_ok "Stopped OctoPrint"
msg_info "Updating OctoPrint"
source /opt/octoprint/bin/activate
$STD pip3 install octoprint --upgrade
msg_ok "Updated OctoPrint"
msg_info "Starting OctoPrint"
systemctl start octoprint
msg_ok "Started OctoPrint"
msg_ok "Updated Successfully"
exit
}
start
@ -50,4 +50,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}:5000${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: havardthom
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -20,16 +20,16 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/pialert ]]; then
msg_error "No ${APP} Installation Found!"
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/pialert ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
bash -c "$(curl -fsSL https://github.com/leiweibau/Pi.Alert/raw/main/install/pialert_update.sh)" -s --lxc
msg_ok "Updated $APP"
exit
fi
bash -c "$(curl -fsSL https://github.com/leiweibau/Pi.Alert/raw/main/install/pialert_update.sh)" -s --lxc
msg_ok "Updated $APP"
exit
}
start

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Andy Grunwald (andygrunwald)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -20,69 +20,26 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/prometheus-pve-exporter.service ]]; then
msg_error "No ${APP} Installation Found!"
exit 1
fi
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/prometheus-pve-exporter.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ${APP}"
systemctl stop prometheus-pve-exporter
msg_ok "Stopped ${APP}"
msg_info "Stopping ${APP}"
systemctl stop prometheus-pve-exporter
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP}"
$STD pip install prometheus-pve-exporter --default-timeout=300 --upgrade --root-user-action=ignore
msg_ok "Updated ${APP}"
export PVE_VENV_PATH="/opt/prometheus-pve-exporter/.venv"
export PVE_EXPORTER_BIN="${PVE_VENV_PATH}/bin/pve_exporter"
if [[ ! -d "$PVE_VENV_PATH" || ! -x "$PVE_EXPORTER_BIN" ]]; then
PYTHON_VERSION="3.12" setup_uv
msg_info "Migrating to uv/venv"
rm -rf "$PVE_VENV_PATH"
mkdir -p /opt/prometheus-pve-exporter
cd /opt/prometheus-pve-exporter
$STD uv venv "$PVE_VENV_PATH"
$STD "$PVE_VENV_PATH/bin/python" -m ensurepip --upgrade
$STD "$PVE_VENV_PATH/bin/python" -m pip install --upgrade pip
$STD "$PVE_VENV_PATH/bin/python" -m pip install prometheus-pve-exporter
msg_ok "Migrated to uv/venv"
else
msg_info "Updating Prometheus Proxmox VE Exporter"
PYTHON_VERSION="3.12" setup_uv
$STD "$PVE_VENV_PATH/bin/python" -m pip install --upgrade prometheus-pve-exporter
msg_ok "Updated Prometheus Proxmox VE Exporter"
fi
local service_file="/etc/systemd/system/prometheus-pve-exporter.service"
if ! grep -q "${PVE_VENV_PATH}/bin/pve_exporter" "$service_file"; then
msg_info "Updating systemd service"
cat <<EOF >"$service_file"
[Unit]
Description=Prometheus Proxmox VE Exporter
Documentation=https://github.com/znerol/prometheus-pve-exporter
After=syslog.target network.target
[Service]
User=root
Restart=always
Type=simple
ExecStart=${PVE_VENV_PATH}/bin/pve_exporter \\
--config.file=/opt/prometheus-pve-exporter/pve.yml \\
--web.listen-address=0.0.0.0:9221
ExecReload=/bin/kill -HUP \$MAINPID
[Install]
WantedBy=multi-user.target
EOF
$STD systemctl daemon-reload
msg_ok "Updated systemd service"
fi
msg_info "Starting ${APP}"
systemctl start prometheus-pve-exporter
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
exit 0
msg_info "Starting ${APP}"
systemctl start prometheus-pve-exporter
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
exit
}
start
@ -92,4 +49,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}:9221${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9221${CL}"

View File

@ -67,4 +67,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}(:your_port)${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7655${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: tremor021
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -20,25 +20,25 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/radicale ]]; then
msg_error "No ${APP} Installation Found!"
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/radicale ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP}"
python3 -m venv /opt/radicale
source /opt/radicale/bin/activate
python3 -m pip install --upgrade https://github.com/Kozea/Radicale/archive/master.tar.gz
msg_ok "Updated ${APP}"
msg_info "Starting Service"
systemctl enable -q --now radicale
msg_ok "Started Service"
exit
fi
msg_info "Updating ${APP}"
python3 -m venv /opt/radicale
source /opt/radicale/bin/activate
python3 -m pip install --upgrade https://github.com/Kozea/Radicale/archive/master.tar.gz
msg_ok "Updated ${APP}"
msg_info "Starting Service"
systemctl enable -q --now radicale
msg_ok "Started Service"
exit
}
start
@ -48,4 +48,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}:5232${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5232${CL}"

View File

@ -13,6 +13,7 @@ var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
var_fuse="${var_fuse:-yes}"
header_info "$APP"
variables

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) | Co-Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -20,44 +20,44 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/sabnzbd ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
setup_uv
RELEASE=$(curl -fsSL https://api.github.com/repos/sabnzbd/sabnzbd/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_ok "No update required. ${APP} is already at ${RELEASE}"
exit
fi
msg_info "Updating $APP to ${RELEASE}"
systemctl stop sabnzbd
cp -r /opt/sabnzbd /opt/sabnzbd_backup_$(date +%s)
temp_file=$(mktemp)
curl -fsSL "https://github.com/sabnzbd/sabnzbd/releases/download/${RELEASE}/SABnzbd-${RELEASE}-src.tar.gz" -o "$temp_file"
tar -xzf "$temp_file" -C /opt/sabnzbd --strip-components=1
rm -f "$temp_file"
if [[ ! -d /opt/sabnzbd/venv ]]; then
msg_info "Migrating SABnzbd to uv virtual environment"
$STD uv venv /opt/sabnzbd/venv
msg_ok "Created uv venv at /opt/sabnzbd/venv"
if grep -q "ExecStart=python3 SABnzbd.py" /etc/systemd/system/sabnzbd.service; then
sed -i "s|ExecStart=python3 SABnzbd.py|ExecStart=/opt/sabnzbd/venv/bin/python SABnzbd.py|" /etc/systemd/system/sabnzbd.service
systemctl daemon-reload
msg_ok "Updated SABnzbd service to use uv venv"
if [[ ! -d /opt/sabnzbd ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
fi
$STD uv pip install --upgrade pip --python=/opt/sabnzbd/venv/bin/python
$STD uv pip install -r /opt/sabnzbd/requirements.txt --python=/opt/sabnzbd/venv/bin/python
echo "${RELEASE}" >/opt/${APP}_version.txt
systemctl start sabnzbd
msg_ok "Updated ${APP} to ${RELEASE}"
exit
setup_uv
RELEASE=$(curl -fsSL https://api.github.com/repos/sabnzbd/sabnzbd/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_ok "No update required. ${APP} is already at ${RELEASE}"
exit
fi
msg_info "Updating $APP to ${RELEASE}"
systemctl stop sabnzbd
cp -r /opt/sabnzbd /opt/sabnzbd_backup_$(date +%s)
temp_file=$(mktemp)
curl -fsSL "https://github.com/sabnzbd/sabnzbd/releases/download/${RELEASE}/SABnzbd-${RELEASE}-src.tar.gz" -o "$temp_file"
tar -xzf "$temp_file" -C /opt/sabnzbd --strip-components=1
rm -f "$temp_file"
if [[ ! -d /opt/sabnzbd/venv ]]; then
msg_info "Migrating SABnzbd to uv virtual environment"
$STD uv venv /opt/sabnzbd/venv
msg_ok "Created uv venv at /opt/sabnzbd/venv"
if grep -q "ExecStart=python3 SABnzbd.py" /etc/systemd/system/sabnzbd.service; then
sed -i "s|ExecStart=python3 SABnzbd.py|ExecStart=/opt/sabnzbd/venv/bin/python SABnzbd.py|" /etc/systemd/system/sabnzbd.service
systemctl daemon-reload
msg_ok "Updated SABnzbd service to use uv venv"
fi
fi
$STD uv pip install --upgrade pip --python=/opt/sabnzbd/venv/bin/python
$STD uv pip install -r /opt/sabnzbd/requirements.txt --python=/opt/sabnzbd/venv/bin/python
echo "${RELEASE}" >/opt/${APP}_version.txt
systemctl start sabnzbd
msg_ok "Updated ${APP} to ${RELEASE}"
exit
}
start
@ -68,3 +68,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}:7777${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

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: tremor021
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/YuukanOO/seelf
@ -20,49 +20,31 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/seelf ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/YuukanOO/seelf/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
msg_info "Updating $APP"
msg_info "Stopping $APP"
systemctl stop seelf
msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}. Patience"
export PATH=$PATH:/usr/local/go/bin
source ~/.bashrc
curl -fsSL "https://github.com/YuukanOO/seelf/archive/refs/tags/v${RELEASE}.tar.gz" -o $(basename "https://github.com/YuukanOO/seelf/archive/refs/tags/v${RELEASE}.tar.gz")
tar -xzf v${RELEASE}.tar.gz
cp -r seelf-${RELEASE}/ /opt/seelf
cd /opt/seelf
$STD make build
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting $APP"
systemctl start seelf
msg_ok "Started $APP"
# Cleaning up
msg_info "Cleaning Up"
rm -f ~/*.tar.gz
rm -rf ~/seelf-${RELEASE}
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}"
fi
if [[ ! -d /opt/seelf ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if fetch_and_deploy_gh_release "YuukanOO/seelf"; then
msg_ok "$APP already at the latest version. No update required."
else
msg_info "Stopping $APP"
systemctl stop seelf
msg_ok "Stopped $APP"
msg_info "Updating $APP"
cd /opt/seelf
$STD make build
msg_ok "Updated $APP"
msg_info "Starting $APP"
systemctl start seelf
msg_ok "Started $APP"
fi
exit
}
start

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -20,43 +20,43 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/tasmocompiler ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/benzino77/tasmocompiler/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 "Stopping $APP"
systemctl stop tasmocompiler
msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
cd /opt
rm -rf /opt/tasmocompiler
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/tasmocompiler ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/benzino77/tasmocompiler/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/benzino77/tasmocompiler/archive/refs/tags/v${RELEASE}.tar.gz" -o $(basename "https://github.com/benzino77/tasmocompiler/archive/refs/tags/v${RELEASE}.tar.gz")
tar xzf v${RELEASE}.tar.gz
mv tasmocompiler-${RELEASE}/ /opt/tasmocompiler/
cd /opt/tasmocompiler
$STD yarn install
export NODE_OPTIONS=--openssl-legacy-provider
$STD npm i
$STD yarn build
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting $APP"
systemctl start tasmocompiler
msg_ok "Started $APP"
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_info "Cleaning up"
rm -r "/opt/v${RELEASE}.tar.gz"
msg_ok "Cleaned"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping $APP"
systemctl stop tasmocompiler
msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
cd /opt
rm -rf /opt/tasmocompiler
RELEASE=$(curl -fsSL https://api.github.com/repos/benzino77/tasmocompiler/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/benzino77/tasmocompiler/archive/refs/tags/v${RELEASE}.tar.gz" -o $(basename "https://github.com/benzino77/tasmocompiler/archive/refs/tags/v${RELEASE}.tar.gz")
tar xzf v${RELEASE}.tar.gz
mv tasmocompiler-${RELEASE}/ /opt/tasmocompiler/
cd /opt/tasmocompiler
$STD yarn install
export NODE_OPTIONS=--openssl-legacy-provider
$STD npm i
$STD yarn build
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting $APP"
systemctl start tasmocompiler
msg_ok "Started $APP"
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_info "Cleaning up"
rm -r "/opt/v${RELEASE}.tar.gz"
msg_ok "Cleaned"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -20,18 +20,18 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/Tautulli/ ]]; then
msg_error "No ${APP} Installation Found!"
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/Tautulli/ ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
exit
}
start
@ -41,4 +41,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}:8181${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8181${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -26,6 +26,9 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
if ! command -v node >/dev/null || [[ "$(/usr/bin/env node -v | grep -oP '^v\K[0-9]+')" != "22" ]]; then
msg_info "Installing Node.js 22"
$STD apt-get purge -y nodejs

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -41,4 +41,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}:8888${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8888${CL}"

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -20,15 +20,15 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/web-check ]]; then
msg_error "No ${APP} Installation Found!"
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/web-check ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "Currently we don't provide an update function for this ${APP}."
exit
fi
msg_error "Currently we don't provide an update function for this ${APP}."
exit
}
start
@ -38,4 +38,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

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/python_to_uv/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -41,7 +41,9 @@ function update_script() {
msg_info "Updating ${APP} to ${RELEASE}"
cp /opt/zipline/.env /opt/
mkdir -p /opt/zipline-upload
cp -R /opt/zipline/upload/* /opt/zipline-upload/
if [ -d /opt/zipline/upload ] && [ "$(ls -A /opt/zipline/upload)" ]; then
cp -R /opt/zipline/upload/* /opt/zipline-upload/
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
rm -R /opt/zipline

59
ct/zot-registry.sh Normal file
View File

@ -0,0 +1,59 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://zotregistry.dev/
APP="Zot-Registry"
var_tags="${var_tags:-registry;oci}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-5}"
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 /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)}')
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
chown root:root /usr/bin/zot
echo "${RELEASE}" >~/.${APP}
systemctl restart zot
msg_ok "Updated Zot to ${RELEASE}"
else
msg_ok "Zot is already up to date (${RELEASE})"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

View File

@ -8,7 +8,7 @@
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 9091,
"interface_port": 443,
"documentation": "https://www.authelia.com/integration/deployment/bare-metal/",
"website": "https://www.authelia.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/authelia.webp",

View File

@ -5,7 +5,7 @@
1
],
"date_created": "2024-04-29",
"type": "addon",
"type": "pve",
"updateable": false,
"privileged": false,
"interface_port": null,

View File

@ -37,7 +37,7 @@
"type": "info"
},
{
"text": "To exclude LXCs from updating, edit the crontab using `crontab -e` and add CTID as shown in the example below:\n\n\n\n`0 0 * * 0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c '$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/update-lxcs-cron.sh)' -s 103 111 >>/var/log/update-lxcs-cron.log 2>/dev/null`",
"text": "To exclude LXCs from updating, edit the crontab using `crontab -e` and add CTID as shown in the example below:\n\n\n\n`0 0 * * 0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/update-lxcs-cron.sh)\" -s 103 111 >>/var/log/update-lxcs-cron.log 2>/dev/null`",
"type": "info"
}
]

View File

@ -6,7 +6,7 @@
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": false,
"updateable": true,
"privileged": false,
"interface_port": 8096,
"documentation": "https://emby.media/support/articles/Home.html",

View File

@ -0,0 +1,35 @@
{
"name": "Gitea-Mirror",
"slug": "gitea-mirror",
"categories": [
7
],
"date_created": "2025-06-05",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 4321,
"documentation": "https://github.com/arunavo4/gitea-mirror/",
"config_path": "/etc/systemd/system/gitea-mirror.service",
"website": "https://github.com/arunavo4/gitea-mirror/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/gitea-mirror.webp",
"description": "Gitea Mirror auto-syncs GitHub repos to your self-hosted Gitea, with a sleek Web UI and easy Docker deployment. ",
"install_methods": [
{
"type": "default",
"script": "ct/gitea-mirror.sh",
"resources": {
"cpu": 1,
"ram": 1024,
"hdd": 5,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@ -33,15 +33,15 @@
},
"notes": [
{
"text": "During installation, HW-accelerated machine-learning (with OpenVINO) is an available option. This also allows for HW-accelerated transcoding, but it must be enabled in Video Transcoding Settings",
"text": "During installation, you will be prompted with the option to install Intel OpenVINO for hardware-accelerated machine-learning. If you opt in, increase your LXC RAM after installation, as OpenVINO is memory-intensive",
"type": "info"
},
{
"text": "If using OpenVINO HW machine-learning, increase RAM because OpenVINO is memory-intensive",
"text": "HW-accelerated video transcoding is supported, but must be enabled in Immich Settings",
"type": "info"
},
{
"text": "To change upload location, edit 'IMMICH_MEDIA_LOCATION' in `/opt/immich/.env`",
"text": "To change upload location, edit 'IMMICH_MEDIA_LOCATION' in `/opt/immich/.env`, and create the symlink 'upload' in /opt/immich/app & /opt/immich/app/machine-learning to your new upload location",
"type": "info"
}
]

View File

@ -0,0 +1,35 @@
{
"name": "Lyrion Music Server",
"slug": "lyrionmusicserver",
"categories": [
13
],
"date_created": "2025-06-05",
"type": "ct",
"updateable": true,
"privileged": false,
"config_path": "/etc/default/lyrionmusicserver",
"interface_port": 9000,
"documentation": "https://lyrion.org/",
"website": "https://lyrion.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/lyrion-media-server.webp",
"description": "Lyrion Music Server is an open-source server software to stream local music collections, internet radio, and music services to Squeezebox and compatible audio players.",
"install_methods": [
{
"type": "default",
"script": "ct/lyrionmusicserver.sh",
"resources": {
"cpu": 1,
"ram": 1024,
"hdd": 3,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@ -0,0 +1,35 @@
{
"name": "Minarca",
"slug": "minarca",
"categories": [
7
],
"date_created": "2025-06-08",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8080,
"documentation": "https://nexus.ikus-soft.com/repository/archive/minarca/6.0.3/doc/index.html",
"config_path": "/etc/minarca/minarca-server.conf",
"website": "https://minarca.org/en_CA",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/minarca.webp",
"description": "Minarca is a self-hosted open source data backup software that allows you to manage your computer and server backups for free from a direct online accessible centralized view of your data with easy retrieval.",
"install_methods": [
{
"type": "default",
"script": "ct/minarca.sh",
"resources": {
"cpu": 2,
"ram": 4096,
"hdd": 10,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "admin",
"password": "admin123"
},
"notes": []
}

View File

@ -10,7 +10,7 @@
"privileged": false,
"interface_port": 443,
"documentation": "https://netboxlabs.com/docs/netbox/en/stable/",
"website": "https://netboxlabs.com/",
"website": "https://netboxlabs.com/products/netbox/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/netbox.webp",
"config_path": "/opt/netbox/netbox/netbox/configuration.py",
"description": "NetBox is the source of truth for everything on your network, from physical components like power systems and cabling to virtual assets like IP addresses and VLANs. Network automation and observability tools depend on NetBoxs authoritative data to roll out configurations, monitor changes, and accelerate operations across the enterprise",

View File

@ -6,7 +6,7 @@
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": false,
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://stonith404.github.io/pingvin-share/introduction",

File diff suppressed because it is too large Load Diff

View File

@ -33,7 +33,7 @@
},
"notes": [
{
"text": "Database credentials: `cat wavelog.creds`",
"text": "Database credentials: `cat ~/wavelog.creds`",
"type": "info"
}
]

View File

@ -0,0 +1,35 @@
{
"name": "Zot Registry",
"slug": "zot",
"categories": [
13
],
"date_created": "2025-06-06",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8080,
"documentation": "https://zotregistry.dev/docs/intro/",
"website": "https://zotregistry.dev/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/zot-registry.webp",
"config_path": "/etc/zot/config.json",
"description": "Zot is a cloud-native OCI image registry focused on extensibility, maintainability, and performance. It supports advanced features such as Web UI, security scanning, authentication via htpasswd and OIDC, and more.",
"install_methods": [
{
"type": "default",
"script": "ct/zot-registry.sh",
"resources": {
"cpu": 1,
"ram": 2048,
"hdd": 5,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@ -18,10 +18,11 @@ msg_info "Installing Dependencies"
$STD apt-get install -y \
gdal-bin \
libgdal-dev \
git
git \
python3-venv \
python3-pip
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv
NODE_VERSION="22" NODE_MODULE="pnpm@latest" install_node_and_modules
PG_VERSION="16" PG_MODULES="postgis" install_postgresql
@ -78,13 +79,11 @@ DISABLE_REGISTRATION=False
EOF
cd /opt/adventurelog/backend/server
mkdir -p /opt/adventurelog/backend/server/media
$STD uv venv /opt/adventurelog/backend/server/.venv
$STD /opt/adventurelog/backend/server/.venv/bin/python -m ensurepip --upgrade
$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install --upgrade pip
$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install -r requirements.txt
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage collectstatic --noinput
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage migrate
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage download-countries
$STD pip install --upgrade pip
$STD pip install -r requirements.txt
$STD python3 manage.py collectstatic --noinput
$STD python3 manage.py migrate
$STD python3 manage.py download-countries
cat <<EOF >/opt/adventurelog/frontend/.env
PUBLIC_SERVER_URL=http://$LOCAL_IP:8000
BODY_SIZE_LIMIT=Infinity
@ -97,8 +96,7 @@ echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed AdventureLog"
msg_info "Setting up Django Admin"
cd /opt/adventurelog/backend/server
$STD .venv/bin/python -m manage shell <<EOF
$STD python3 /opt/adventurelog/backend/server/manage.py shell <<EOF
from django.contrib.auth import get_user_model
UserModel = get_user_model()
user = UserModel.objects.create_user('$DJANGO_ADMIN_USER', password='$DJANGO_ADMIN_PASS')
@ -122,7 +120,7 @@ After=network.target postgresql.service
[Service]
WorkingDirectory=/opt/adventurelog/backend/server
ExecStart=/opt/adventurelog/backend/server/.venv/bin/python -m manage runserver 0.0.0.0:8000
ExecStart=python3 manage.py runserver 0.0.0.0:8000
Restart=always
EnvironmentFile=/opt/adventurelog/backend/server/.env

View File

@ -15,7 +15,7 @@ update_os
msg_info "Installing dependencies"
$STD apk add --no-cache \
apache2-utils
apache2-utils fuse3
msg_ok "Installed dependencies"
msg_info "Installing rclone"

View File

@ -49,7 +49,7 @@ EOF
sed -i -e 's/\$/\$\$/g' /opt/tinyauth/.env
cat <<EOF >/etc/init.d/tinyauth
cat <<'EOF' >/etc/init.d/tinyauth
#!/sbin/openrc-run
description="Tinyauth Service"

View File

@ -25,38 +25,34 @@ $STD apt-get install -y \
ripgrep
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv
msg_info "Installing Python Dependencies"
$STD apt-get install -y \
python3-pip \
python3-ldap \
python3-msgpack \
python3-regex
msg_ok "Installed Python Dependencies"
NODE_VERSION="22" install_node_and_modules
msg_info "Installing ArchiveBox"
msg_info "Installing Playwright"
$STD pip install playwright
$STD playwright install-deps chromium
msg_ok "Installed Playwright"
msg_info "Installing Chromium and ArchiveBox"
mkdir -p /opt/archivebox/{data,.npm,.cache,.local}
adduser --system --shell /bin/bash --gecos 'Archive Box User' --group --disabled-password --home /home/archivebox archivebox
sudo -u archivebox bash
cd /opt/archivebox
$STD uv venv /opt/archivebox/.venv
$STD /opt/archivebox/.venv/bin/python -m ensurepip --upgrade
$STD /opt/archivebox/.venv/bin/python -m pip install --upgrade pip
$STD /opt/archivebox/.venv/bin/python -m pip install archivebox playwright
chown -R archivebox:archivebox /opt/archivebox
chmod -R 755 /opt/archivebox
sudo -u archivebox /opt/archivebox/.venv/bin/playwright install-deps chromium
sudo -u archivebox /opt/archivebox/.venv/bin/playwright install chromium
msg_ok "Installed ArchiveBox & Playwright"
msg_info "Initial ArchiveBox Setup"
$STD adduser --system --shell /bin/bash --gecos 'Archive Box User' --group --disabled-password --home /home/archivebox archivebox
chown -R archivebox:archivebox /opt/archivebox/{data,.npm,.cache,.local}
chmod -R 755 /opt/archivebox/data
$STD pip install archivebox
cd /opt/archivebox/data
expect <<EOF
set timeout -1
log_user 0
spawn sudo -u archivebox /opt/archivebox/.venv/bin/playwright install chromium
expect eof
spawn sudo -u archivebox /opt/archivebox/.venv/bin/archivebox setup
spawn sudo -u archivebox playwright install chromium
spawn sudo -u archivebox archivebox setup
expect "Username"
send "\r"
@ -72,7 +68,7 @@ send "helper-scripts.com\r"
expect eof
EOF
msg_ok "Initialized ArchiveBox"
msg_ok "Installed ArchiveBox"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/archivebox.service
@ -83,13 +79,12 @@ After=network.target
[Service]
User=archivebox
WorkingDirectory=/opt/archivebox/data
ExecStart=/opt/archivebox/.venv/bin/archivebox server 0.0.0.0:8000
ExecStart=/usr/local/bin/archivebox server 0.0.0.0:8000
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now archivebox
msg_ok "Created Service"

View File

@ -19,7 +19,8 @@ $STD apt-get install -y \
uwsgi-plugin-python3 \
libopenjp2-7-dev \
libpq-dev \
nginx
nginx \
python3
msg_ok "Installed Dependencies"
setup_uv
@ -31,13 +32,9 @@ mkdir -p /opt/{babybuddy,data}
curl -fsSL "https://github.com/babybuddy/babybuddy/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar zxf "$temp_file" --strip-components=1 -C /opt/babybuddy
cd /opt/babybuddy
setup_uv
$STD uv venv /opt/babybuddy/.venv
$STD /opt/babybuddy/.venv/bin/python -m ensurepip --upgrade
$STD /opt/babybuddy/.venv/bin/python -m pip install --upgrade pip
$STD /opt/babybuddy/.venv/bin/python -m pip install -r requirements.txt
$STD uv venv .venv
$STD source .venv/bin/activate
$STD uv pip install -r requirements.txt
cp babybuddy/settings/production.example.py babybuddy/settings/production.py
SECRET_KEY=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)
ALLOWED_HOSTS=$(hostname -I | tr ' ' ',' | sed 's/,$//')",127.0.0.1,localhost"
@ -47,8 +44,7 @@ sed -i \
babybuddy/settings/production.py
export DJANGO_SETTINGS_MODULE=babybuddy.settings.production
cd /opt/babybuddy
$STD /opt/babybuddy/.venv/bin/python -m manage migrate
$STD python manage.py migrate
chown -R www-data:www-data /opt/data
chmod 640 /opt/data/db.sqlite3
chmod 750 /opt/data
@ -97,7 +93,7 @@ server {
EOF
ln -sf /etc/nginx/sites-available/babybuddy /etc/nginx/sites-enabled/babybuddy
rm -f /etc/nginx/sites-enabled/default
rm /etc/nginx/sites-enabled/default
systemctl enable -q --now nginx
service nginx reload
msg_ok "Configured NGINX"

View File

@ -13,18 +13,20 @@ setting_up_container
network_check
update_os
PYTHON_VERSION="3.12" setup_uv
msg_info "Setup Python3"
$STD apt-get install -y \
python3 \
python3-dev \
python3-pip
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Setup Python3"
msg_info "Installing Bazarr"
mkdir -p /var/lib/bazarr/
curl -fsSL "https://github.com/morpheus65535/bazarr/releases/latest/download/bazarr.zip" -o "bazarr.zip"
$STD unzip bazarr -d /opt/bazarr
chmod 775 /opt/bazarr /var/lib/bazarr/
cd /opt/bazarr
$STD uv venv /opt/bazarr/.venv
$STD /opt/bazarr/.venv/bin/python -m ensurepip --upgrade
$STD /opt/bazarr/.venv/bin/python -m pip install --upgrade pip
$STD /opt/bazarr/.venv/bin/python -m pip install -r requirements.txt
$STD python3 -m pip install -q -r /opt/bazarr/requirements.txt
msg_ok "Installed Bazarr"
msg_info "Creating Service"
@ -39,7 +41,7 @@ UMask=0002
Restart=on-failure
RestartSec=5
Type=simple
ExecStart=/opt/bazarr/.venv/bin/python /opt/bazarr/bazarr.py
ExecStart=/usr/bin/python3 /opt/bazarr/bazarr.py
KillSignal=SIGINT
TimeoutStopSec=20
SyslogIdentifier=bazarr

View File

@ -15,10 +15,13 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y imagemagick calibre
$STD apt-get install -y imagemagick
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv
msg_info "Installing Python Dependencies"
$STD apt-get -y install python3-pip
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Installed Python Dependencies"
msg_info "Installing Kepubify"
mkdir -p /opt/kepubify
@ -29,10 +32,10 @@ msg_ok "Installed Kepubify"
msg_info "Installing Calibre-Web"
mkdir -p /opt/calibre-web
$STD apt-get install -y calibre
$STD curl -fsSL https://github.com/janeczku/calibre-web/raw/master/library/metadata.db -o /opt/calibre-web/metadata.db
cd /opt/calibre-web
$STD uv venv /opt/calibre-web/.venv
$STD uv pip install calibreweb jsonschema
$STD pip install calibreweb
$STD pip install jsonschema
msg_ok "Installed Calibre-Web"
msg_info "Creating Service"
@ -44,7 +47,7 @@ After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/calibre-web
ExecStart=/opt/calibre-web/.venv/bin/cps
ExecStart=/usr/local/bin/cps
TimeoutStopSec=20
KillMode=process
Restart=on-failure

View File

@ -43,19 +43,24 @@ $STD apt-get install -y \
ca-certificates
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv
msg_info "Setup Python3"
$STD apt-get install -y \
python3 \
python3-dev \
python3-pip
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Setup Python3"
NODE_VERSION="22" install_node_and_modules
msg_info "Installing Change Detection"
mkdir -p /opt/changedetection
cd /opt/changedetection
$STD uv venv /opt/changedetection/.venv
$STD uv pip install changedetection.io
mkdir /opt/changedetection
$STD pip3 install changedetection.io
msg_ok "Installed Change Detection"
msg_info "Installing Browserless & Playwright"
mkdir /opt/browserless
$STD /opt/paperless/.venv/bin/uv pip install playwright
$STD python3 -m pip install playwright
$STD git clone https://github.com/browserless/chrome /opt/browserless
$STD npm install --prefix /opt/browserless
$STD /opt/browserless/node_modules/playwright-core/cli.js install --with-deps &>/dev/null
@ -112,7 +117,7 @@ Type=simple
WorkingDirectory=/opt/changedetection
Environment=WEBDRIVER_URL=http://127.0.0.1:4444/wd/hub
Environment=PLAYWRIGHT_DRIVER_URL=ws://localhost:3000/chrome?launch={"defaultViewport":{"height":720,"width":1280},"headless":false,"stealth":true}&blockAds=true
ExecStart=/opt/changedetection/.venv/bin/changedetection.io -d /opt/changedetection -p 5000
ExecStart=changedetection.io -d /opt/changedetection -p 5000
[Install]
WantedBy=multi-user.target
EOF

View File

@ -13,7 +13,7 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies (Patience)"
msg_info "Installing Dependencies (a lot of patience)"
$STD apt-get install -y \
git \
sed \
@ -23,8 +23,6 @@ $STD apt-get install -y \
software-properties-common
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv
msg_info "Setting up TemurinJDK"
mkdir -p /etc/apt/keyrings
curl -fsSL "https://packages.adoptium.net/artifactory/api/gpg/key/public" | tee /etc/apt/keyrings/adoptium.asc
@ -34,11 +32,20 @@ $STD apt-get install -y temurin-{8,11,17,21}-jre
sudo update-alternatives --set java /usr/lib/jvm/temurin-21-jre-amd64/bin/java
msg_ok "Installed TemurinJDK"
msg_info "Setup Python3"
$STD apt-get install -y \
python3 \
python3-dev \
python3-pip \
python3-venv
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Setup Python3"
msg_info "Installing Craty-Controller (Patience)"
useradd crafty -m -s /bin/bash
cd /opt
mkdir -p /opt/crafty-controller/crafty /opt/crafty-controller/server
RELEASE=$(curl -fsSL "https://gitlab.com/api/v4/projects/20430749/releases" | grep -o '"tag_name":"v[^\"]*"' | head -n 1 | sed 's/"tag_name":"v//;s/"//')
RELEASE=$(curl -fsSL "https://gitlab.com/api/v4/projects/20430749/releases" | grep -o '"tag_name":"v[^"]*"' | head -n 1 | sed 's/"tag_name":"v//;s/"//')
echo "${RELEASE}" >"/opt/crafty-controller_version.txt"
curl -fsSL "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip" -o "crafty-4-v${RELEASE}.zip"
$STD unzip crafty-4-v${RELEASE}.zip
@ -46,11 +53,12 @@ cp -a crafty-4-v${RELEASE}/. /opt/crafty-controller/crafty/crafty-4/
rm -rf crafty-4-v${RELEASE}
cd /opt/crafty-controller/crafty
$STD uv venv /opt/crafty-controller/crafty/.venv
python3 -m venv .venv
chown -R crafty:crafty /opt/crafty-controller/
$STD sudo -u crafty bash -c '
source /opt/crafty-controller/crafty/.venv/bin/activate
cd /opt/crafty-controller/crafty/crafty-4
uv pip install --no-cache-dir -r requirements.txt
pip3 install --no-cache-dir -r requirements.txt
'
msg_ok "Installed Craft-Controller and dependencies"
@ -75,8 +83,8 @@ $STD systemctl enable -q --now crafty-controller
sleep 10
{
echo "Crafty-Controller-Credentials"
echo "Username: $(grep -oP '(?<="username": \")[^\"]*' /opt/crafty-controller/crafty/crafty-4/app/config/default-creds.txt)"
echo "Password: $(grep -oP '(?<="password": \")[^\"]*' /opt/crafty-controller/crafty/crafty-4/app/config/default-creds.txt)"
echo "Username: $(grep -oP '(?<="username": ")[^"]*' /opt/crafty-controller/crafty/crafty-4/app/config/default-creds.txt)"
echo "Password: $(grep -oP '(?<="password": ")[^"]*' /opt/crafty-controller/crafty/crafty-4/app/config/default-creds.txt)"
} >>~/crafty-controller.creds
msg_ok "Crafty-Controller service started"

View File

@ -14,23 +14,24 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y python3-libtorrent build-essential
$STD apt-get install -y python3-libtorrent
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv
msg_info "Setup Python3"
$STD apt-get install -y \
python3 \
python3-dev \
python3-pip
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Setup Python3"
msg_info "Installing Deluge"
mkdir -p /opt/deluge
cd /opt/deluge
$STD uv venv /opt/deluge/.venv
$STD /opt/prometheus-pve-exporter/.venv/bin/python -m ensurepip --upgrade
$STD /opt/prometheus-pve-exporter/.venv/bin/python -m pip install --upgrade pip
$STD /opt/prometheus-pve-exporter/.venv/bin/python -m pip install deluge libtorrent
$STD pip install deluge[all]
msg_ok "Installed Deluge"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/deluged.service
[Unit]
service_path="/etc/systemd/system/deluged.service"
echo "[Unit]
Description=Deluge Bittorrent Client Daemon
Documentation=man:deluged
After=network-online.target
@ -38,16 +39,15 @@ After=network-online.target
[Service]
Type=simple
UMask=007
ExecStart=/opt/deluge/.venv/bin/deluged -d
ExecStart=/usr/local/bin/deluged -d
Restart=on-failure
TimeoutStopSec=300
[Install]
WantedBy=multi-user.target
EOF
WantedBy=multi-user.target" >$service_path
cat <<EOF >/etc/systemd/system/deluge-web.service
[Unit]
service_path="/etc/systemd/system/deluge-web.service"
echo "[Unit]
Description=Deluge Bittorrent Client Web Interface
Documentation=man:deluge-web
After=deluged.service
@ -56,13 +56,11 @@ Wants=deluged.service
[Service]
Type=simple
UMask=027
ExecStart=/opt/deluge/.venv/bin/deluge-web -d
ExecStart=/usr/local/bin/deluge-web -d
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
WantedBy=multi-user.target" >$service_path
systemctl enable --now -q deluged.service
systemctl enable --now -q deluge-web.service
msg_ok "Created Service"

View File

@ -23,12 +23,13 @@ $STD apt-get install -y \
libc6 \
make \
cmake \
jq
jq \
python3 \
python3-bcrypt
msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="turbo@1.9.3" install_node_and_modules
PG_VERSION="16" install_postgresql
PYTHON_VERSION="3.12" setup_uv
msg_info "Setting up PostgreSQL"
DB_NAME="documenso_db"
@ -54,10 +55,6 @@ curl -fsSL "https://github.com/documenso/documenso/archive/refs/tags/v${RELEASE}
$STD unzip v${RELEASE}.zip
mv documenso-${RELEASE} /opt/documenso
cd /opt/documenso
$STD uv venv /opt/documenso/.venv
$STD /opt/documenso/.venv/bin/python -m ensurepip --upgrade
$STD /opt/documenso/.venv/bin/python -m pip install --upgrade pip
$STD /opt/documenso/.venv/bin/python -m pip install bcrypt
mv .env.example /opt/documenso/.env
sed -i \
-e "s|^NEXTAUTH_SECRET=.*|NEXTAUTH_SECRET='$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)'|" \
@ -81,7 +78,7 @@ echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed Documenso"
msg_info "Create User"
PASSWORD_HASH=$(/opt/documenso/.venv/bin/python3 -c "import bcrypt; print(bcrypt.hashpw(b'helper-scripts', bcrypt.gensalt(rounds=12)).decode())")
PASSWORD_HASH=$(python3 -c "import bcrypt; print(bcrypt.hashpw(b'helper-scripts', bcrypt.gensalt(rounds=12)).decode())")
$STD sudo -u postgres psql -d documenso_db -c "INSERT INTO \"User\" (name, email, \"emailVerified\", password, \"identityProvider\", roles, \"createdAt\", \"lastSignedIn\", \"updatedAt\", \"customerId\") VALUES ('helper-scripts', 'helper-scripts@local.com', '2025-01-20 17:14:45.058', '$PASSWORD_HASH', 'DOCUMENSO', ARRAY['USER', 'ADMIN']::\"Role\"[], '2025-01-20 16:04:05.543', '2025-01-20 16:14:55.249', '2025-01-20 16:14:55.25', NULL) RETURNING id;"
$STD npm run prisma:migrate-deploy
msg_ok "User created"

View File

@ -23,7 +23,7 @@ install_mariadb
msg_info "Setting up Database"
ROOT_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
$STD mariadb -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$ROOT_PASS'); flush privileges;"
$STD mariadb -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$ROOT_PASS'; flush privileges;"
{
echo "Dolibarr DB Credentials"
echo "MariaDB Root Password: $ROOT_PASS"

View File

@ -54,7 +54,12 @@ RELEASE=$(curl -fsSL https://api.github.com/repos/etkecc/synapse-admin/releases/
curl -fsSL "https://github.com/etkecc/synapse-admin/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar xzf "$temp_file" -C /opt/synapse-admin --strip-components=1
cd /opt/synapse-admin
$STD yarn global add serve
$STD yarn install --ignore-engines
$STD yarn build
mv ./dist ../ && \
rm -rf * && \
mv ../dist ./
msg_ok "Installed Element Synapse"
msg_info "Creating Service"
@ -67,7 +72,7 @@ Requires=matrix-synapse.service
[Service]
Type=simple
WorkingDirectory=/opt/synapse-admin
ExecStart=/usr/bin/yarn start --host
ExecStart=/usr/local/bin/serve -s dist -l 5173
Restart=always
[Install]

View File

@ -17,34 +17,34 @@ msg_info "Installing Dependencies"
$STD apt-get install -y git
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv
msg_info "Setup Python3"
$STD apt-get install -y \
python3 \
python3-dev \
python3-pip \
python3-venv
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Setup Python3"
msg_info "Setting up Virtual Environment"
mkdir -p /opt/esphome
mkdir -p /root/config
cd /opt/esphome
$STD uv venv /opt/esphome/.venv
$STD /opt/esphome/.venv/bin/python -m ensurepip --upgrade
$STD /opt/esphome/.venv/bin/python -m pip install --upgrade pip
$STD /opt/esphome/.venv/bin/python -m pip install esphome tornado esptool
msg_ok "Setup and Installed ESPHome"
msg_info "Installing ESPHome"
mkdir /root/config
$STD pip install esphome tornado esptool
msg_ok "Installed ESPHome"
msg_info "Creating Service"
mkdir -p /root/config
cat <<EOF >/etc/systemd/system/esphomeDashboard.service
[Unit]
Description=ESPHome Dashboard
After=network.target
[Service]
ExecStart=/opt/esphome/.venv/bin/esphome dashboard /root/config/
ExecStart=/usr/local/bin/esphome dashboard /root/config/
Restart=always
User=root
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now esphomeDashboard
msg_ok "Created Service"

View File

@ -0,0 +1,70 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/arunavo4/gitea-mirror
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing dependencies"
$STD apt-get install -y \
build-essential \
openssl \
sqlite3 \
unzip
msg_ok "Installed Dependencies"
msg_info "Installing Bun"
export BUN_INSTALL=/opt/bun
curl -fsSL https://bun.sh/install | $STD bash
ln -sf /opt/bun/bin/bun /usr/local/bin/bun
ln -sf /opt/bun/bin/bun /usr/local/bin/bunx
msg_ok "Installed Bun"
fetch_and_deploy_gh_release "arunavo4/gitea-mirror"
msg_info "Installing gitea-mirror"
cd /opt/gitea-mirror
$STD bun run setup
$STD bun run build
msg_ok "Installed gitea-mirror"
msg_info "Creating Services"
JWT_SECRET=$(openssl rand -hex 32)
APP_VERSION=$(grep -o '"version": *"[^"]*"' package.json | cut -d'"' -f4)
cat <<EOF >/etc/systemd/system/gitea-mirror.service
[Unit]
Description=Gitea Mirror
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/gitea-mirror
ExecStart=/usr/local/bin/bun dist/server/entry.mjs
Restart=on-failure
RestartSec=10
Environment=NODE_ENV=production
Environment=HOST=0.0.0.0
Environment=PORT=4321
Environment=DATABASE_URL=file:/opt/gitea-mirror/data/gitea-mirror.db
Environment=JWT_SECRET=${JWT_SECRET}
Environment=npm_package_version=${APP_VERSION}
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now gitea-mirror
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

@ -14,10 +14,12 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y make ca-certificates
$STD apt-get install -y \
make \
ca-certificates \
python3.11-venv
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv
NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
msg_info "Installing Grist"
@ -26,24 +28,20 @@ export CYPRESS_INSTALL_BINARY=0
export NODE_OPTIONS="--max-old-space-size=2048"
cd /opt
curl -fsSL "https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
$STD unzip "v${RELEASE}.zip"
mv "grist-core-${RELEASE}" /opt/grist
cd /opt/grist
$STD uv venv /opt/grist/sandbox_venv3
$STD /opt/grist/sandbox_venv3/bin/python -m ensurepip --upgrade
$STD /opt/grist/sandbox_venv3/bin/python -m pip install --upgrade pip
$STD /opt/grist/sandbox_venv3/bin/python -m pip install -r sandbox/requirements.txt
$STD unzip v$RELEASE.zip
mv grist-core-${RELEASE} grist
cd grist
$STD yarn install
$STD yarn run build:prod
ln -sf /opt/grist/sandbox_venv3/bin/python3 /opt/grist/sandbox_venv3/bin/python
$STD yarn run install:python
cat <<EOF >/opt/grist/.env
NODE_ENV=production
GRIST_HOST=0.0.0.0
EOF
echo "${RELEASE}" >/opt/grist_version.txt
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Grist"
msg_info "Creating Service"
msg_info "Create Service"
cat <<EOF >/etc/systemd/system/grist.service
[Unit]
Description=Grist
@ -51,10 +49,9 @@ After=network.target
[Service]
Type=exec
WorkingDirectory=/opt/grist
WorkingDirectory=/opt/grist
ExecStart=/usr/bin/yarn run start:prod
EnvironmentFile=-/opt/grist/.env
Restart=always
[Install]
WantedBy=multi-user.target
@ -67,7 +64,7 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -rf "/opt/v${RELEASE}.zip"
rm -rf /opt/v${RELEASE}.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@ -13,6 +13,19 @@ setting_up_container
network_check
update_os
msg_info "Setup Python3"
$STD apt-get install -y \
python3 \
python3-dev \
python3-pip \
python3-venv
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Setup Python3"
msg_info "Installing runlike"
$STD pip install runlike
msg_ok "Installed runlike"
get_latest_release() {
curl -fsSL https://api.github.com/repos/$1/releases/latest | grep '"tag_name":' | cut -d'"' -f4
}
@ -23,8 +36,8 @@ PORTAINER_LATEST_VERSION=$(get_latest_release "portainer/portainer")
msg_info "Installing Docker $DOCKER_LATEST_VERSION"
DOCKER_CONFIG_PATH='/etc/docker/daemon.json'
mkdir -p $(dirname "$DOCKER_CONFIG_PATH")
echo -e '{\n "log-driver": "journald"\n}' >"$DOCKER_CONFIG_PATH"
mkdir -p $(dirname $DOCKER_CONFIG_PATH)
echo -e '{\n "log-driver": "journald"\n}' >/etc/docker/daemon.json
$STD sh <(curl -fsSL https://get.docker.com)
msg_ok "Installed Docker $DOCKER_LATEST_VERSION"

View File

@ -13,11 +13,12 @@ setting_up_container
network_check
update_os
PYTHON_VERSION="3.12" setup_uv
msg_info "Installing Dependencies"
$STD apt-get install -y pip
msg_ok "Installed Dependencies"
msg_info "Installing Homer"
mkdir -p /opt/homer
$STD uv venv /opt/homer/.venv
cd /opt/homer
curl -fsSL "https://github.com/bastienwirtz/homer/releases/latest/download/homer.zip" -o "homer.zip"
$STD unzip homer.zip
@ -33,7 +34,7 @@ After=network-online.target
[Service]
Type=simple
WorkingDirectory=/opt/homer
ExecStart=/opt/homer/.venv/bin/python3 -m http.server 8010
ExecStart=python3 -m http.server 8010
[Install]
WantedBy=multi-user.target
EOF

View File

@ -13,8 +13,6 @@ setting_up_container
network_check
update_os
setup_uv
msg_info "Configuring apt and installing dependencies"
echo "deb http://deb.debian.org/debian testing main contrib" >/etc/apt/sources.list.d/immich.list
cat <<EOF >/etc/apt/preferences.d/immich
@ -29,6 +27,7 @@ $STD apt-get install --no-install-recommends -y \
redis \
autoconf \
build-essential \
python3-venv \
python3-dev \
cmake \
jq \
@ -88,7 +87,7 @@ msg_ok "Dependencies Installed"
NODE_VERSION="22" install_node_and_modules
PG_VERSION="16" install_postgresql
read -r -p "Install OpenVINO dependencies for Intel HW-accelerated machine-learning? " prompt
read -r -p "${TAB3}Install OpenVINO dependencies for Intel HW-accelerated machine-learning? " prompt
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Installing OpenVINO dependencies"
touch ~/.openvino
@ -305,19 +304,25 @@ cp LICENSE "$APP_DIR"
msg_ok "Installed Immich Web Components"
cd "$SRC_DIR"/machine-learning
export VIRTUAL_ENV="${ML_DIR}/ml-venv"
$STD uv venv "$VIRTUAL_ENV"
$STD python3 -m venv "$ML_DIR/ml-venv"
if [[ -f ~/.openvino ]]; then
msg_info "Installing HW-accelerated machine-learning"
uv -q sync --no-cache --extra openvino --active
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so"
(
source "$ML_DIR"/ml-venv/bin/activate
$STD pip3 install uv
uv -q sync --extra openvino --no-cache --active
)
patchelf --clear-execstack "$ML_DIR"/ml-venv/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so
msg_ok "Installed HW-accelerated machine-learning"
else
msg_info "Installing machine-learning"
uv -q sync --no-cache --extra cpu --active
(
source "$ML_DIR"/ml-venv/bin/activate
$STD pip3 install uv
uv -q sync --extra cpu --no-cache --active
)
msg_ok "Installed machine-learning"
fi
cd "$SRC_DIR"
cp -a machine-learning/{ann,immich_ml} "$ML_DIR"
if [[ -f ~/.openvino ]]; then
@ -391,7 +396,7 @@ set -a
. ${INSTALL_DIR}/.env
set +a
python3 -m immich_ml
python -m immich_ml
EOF
chmod +x "$ML_DIR"/ml_start.sh
cat <<EOF >/etc/systemd/system/"${APPLICATION}"-web.service

View File

@ -13,16 +13,15 @@ setting_up_container
network_check
update_os
PYTHON_VERSION="3.12" setup_uv
msg_info "Installing Dependencies"
$STD apt-get install -y \
python3 \
python3-pip
msg_ok "Installed Dependencies"
msg_info "Installing Jupyter"
mkdir -p /opt/jupyter
cd /opt/jupyter
$STD uv venv /opt/jupyter/.venv
$STD /opt/jupyter/.venv/bin/python -m ensurepip --upgrade
$STD /opt/jupyter/.venv/bin/python -m pip install --upgrade pip
$STD /opt/jupyter/.venv/bin/python -m pip install jupyter
msg_ok "Installed Jupyter"
msg_info "Setting up Jupyter Notebook"
$STD pip3 install jupyter
msg_ok "Setup Jupyter Notebook"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/jupyternotebook.service
@ -32,8 +31,7 @@ After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/jupyter
ExecStart=/opt/jupyter/.venv/bin/jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root
ExecStart=jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root
Restart=always
RestartSec=10
@ -41,7 +39,6 @@ RestartSec=10
WantedBy=multi-user.target
EOF
systemctl enable -q --now jupyternotebook
msg_ok "Created Service"
motd_ssh
customize

View File

@ -91,10 +91,26 @@ BROWSER_WEB_URL="http://127.0.0.1:9222"
# If you're planning to use ollama for tagging, uncomment the following lines:
# OLLAMA_BASE_URL="<OLLAMA_ADDR>"
# OLLAMA_KEEP_ALIVE="5m"
# You can change the models used by uncommenting the following lines, and changing them according to your needs:
# INFERENCE_TEXT_MODEL="gpt-4o-mini"
# INFERENCE_IMAGE_MODEL="gpt-4o-mini"
# Additional inference defaults
# INFERENCE_CONTEXT_LENGTH="2048"
# INFERENCE_ENABLE_AUTO_TAGGING=true
# INFERENCE_ENABLE_AUTO_SUMMARIZATION=false
# Crawler defaults
# CRAWLER_NUM_WORKERS="1"
# CRAWLER_DOWNLOAD_BANNER_IMAGE=true
# CRAWLER_STORE_SCREENSHOT=true
# CRAWLER_FULL_PAGE_SCREENSHOT=false
# CRAWLER_FULL_PAGE_ARCHIVE=false
# CRAWLER_VIDEO_DOWNLOAD=false
# CRAWLER_VIDEO_DOWNLOAD_MAX_SIZE="50"
# CRAWLER_ENABLE_ADBLOCKER=true
EOF
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed karakeep"

View File

@ -13,28 +13,28 @@ setting_up_container
network_check
update_os
PYTHON_VERSION="3.12" setup_uv
msg_info "Setup Python 3"
$STD apt-get install python3-pip -y
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Setup Python 3"
msg_info "Installing Kometa"
tmp_file=$(mktemp)
msg_info "Setup Kometa"
temp_file=$(mktemp)
RELEASE=$(curl -fsSL https://api.github.com/repos/Kometa-Team/Kometa/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/Kometa-Team/Kometa/archive/refs/tags/v${RELEASE}.tar.gz" -o "$tmp_file"
tar -xzf "$tmp_file"
mv "Kometa-${RELEASE}" /opt/kometa
curl -fsSL "https://github.com/Kometa-Team/Kometa/archive/refs/tags/v${RELEASE}.tar.gz" -o """$temp_file"""
tar -xzf "$temp_file"
mv Kometa-"${RELEASE}" /opt/kometa
cd /opt/kometa
$STD uv venv /home/wger/.venv
$STD /opt/kometa/.venv/bin/python -m ensurepip --upgrade
$STD /opt/kometa/.venv/bin/python -m pip install --upgrade pip
$STD /opt/kometa/.venv/bin/python -m pip install -r requirements.txt
$STD pip install -r requirements.txt --ignore-installed
mkdir -p config/assets
cp config/config.yml.template config/config.yml
echo "$RELEASE" >/opt/kometa_version.txt
msg_ok "Installed Kometa"
echo "${RELEASE}" >/opt/kometa_version.txt
msg_ok "Setup Kometa"
read -p "${TAB3}Enter your TMDb API key: " TMDBKEY
read -p "${TAB3}nter your TMDb API key: " TMDBKEY
read -p "${TAB3}Enter your Plex URL: " PLEXURL
read -p "${TAB3}Enter your Plex token: " PLEXTOKEN
sed -i -e "s#url: http://192.168.1.12:32400#url: $PLEXURL#g" /opt/kometa/config/config.yml
sed -i -e "s#url: http://192.168.1.12:32400#url: $PLEXURL #g" /opt/kometa/config/config.yml
sed -i -e "s/token: ####################/token: $PLEXTOKEN/g" /opt/kometa/config/config.yml
sed -i -e "s/apikey: ################################/apikey: $TMDBKEY/g" /opt/kometa/config/config.yml
@ -47,21 +47,21 @@ After=network-online.target
[Service]
Type=simple
WorkingDirectory=/opt/kometa
ExecStart=/opt/kometa/.venv/bin/python kometa.py
ExecStart=/usr/bin/python3 kometa.py
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now kometa
systemctl enable --now -q kometa
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
rm -f "$tmp_file"
rm -f "$temp_file"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@ -14,24 +14,29 @@ setting_up_container
network_check
update_os
PYTHON_VERSION="3.12" setup_uv
msg_info "Installing Dependencies"
$STD apt-get install -y \
git \
libpng-dev \
libjpeg-dev \
libtiff-dev \
imagemagick
git \
libpng-dev \
libjpeg-dev \
libtiff-dev \
imagemagick
msg_ok "Installed Dependencies"
msg_info "Setup Python3"
$STD apt-get install -y \
pip \
python3-irc
$STD pip install jaraco.stream
$STD pip install python-Levenshtein
$STD pip install soupsieve
$STD pip install pypdf
msg_ok "Setup Python3"
msg_info "Installing LazyLibrarian"
$STD git clone https://gitlab.com/LazyLibrarian/LazyLibrarian /opt/LazyLibrarian
cd /opt/LazyLibrarian
$STD uv venv /opt/LazyLibrarian/.venv
$STD /opt/LazyLibrarian/.venv/bin/python -m ensurepip --upgrade
$STD /opt/LazyLibrarian/.venv/bin/python -m pip install --upgrade pip
$STD /opt/LazyLibrarian/.venv/bin/python -m pip install . jaraco.stream python-Levenshtein soupsieve pypdf
$STD pip install .
msg_ok "Installed LazyLibrarian"
msg_info "Creating Service"
@ -39,20 +44,17 @@ cat <<EOF >/etc/systemd/system/lazylibrarian.service
[Unit]
Description=LazyLibrarian Daemon
After=syslog.target network.target
[Service]
Type=simple
WorkingDirectory=/opt/LazyLibrarian
ExecStart=/opt/LazyLibrarian/.venv/bin/python LazyLibrarian.py
UMask=0002
Restart=on-failure
Type=simple
ExecStart=/usr/bin/python3 /opt/LazyLibrarian/LazyLibrarian.py
TimeoutStopSec=20
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now lazylibrarian
systemctl enable --now -q lazylibrarian
msg_ok "Created Service"
motd_ssh

View File

@ -0,0 +1,32 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Omar Minaya
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://lyrion.org/getting-started/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Setup Lyrion Music Server"
DEB_URL=$(curl -fsSL 'https://lyrion.org/getting-started/' | grep -oP '<a\s[^>]*href="\K[^"]*amd64\.deb(?="[^>]*>)' | head -n 1)
RELEASE=$(echo "$DEB_URL" | grep -oP 'lyrionmusicserver_\K[0-9.]+(?=_amd64\.deb)')
DEB_FILE="/tmp/lyrionmusicserver_${RELEASE}_amd64.deb"
curl -fsSL -o "$DEB_FILE" "$DEB_URL"
$STD apt install "$DEB_FILE" -y
echo "${RELEASE}" >"/opt/lyrion_version.txt"
msg_ok "Setup Lyrion Music Server v${RELEASE}"
motd_ssh
customize
msg_info "Cleaning up"
$STD rm -f "$DEB_FILE"
$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