Compare commits

..

110 Commits

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

* Update install/onlyoffice-install.sh

* Update onlyoffice-install.sh

* add info for credentials

* Update onlyoffice.sh

* curl

* naming

---------

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

* Improvements

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

* Update alpine-zigbee2mqtt.sh

* Update jsons

---------

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

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

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

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

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

* fix: correct name of Homeassistant VM for PiMox

* follow to #5254

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

---------

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

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

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

* Update immich-install.sh

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

* Formatting

* add create_lxc patches

* Update install.func

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

View File

@ -14,8 +14,113 @@ 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-25
### 🚀 Updated Scripts
- #### ✨ New Features
- YunoHost: add Update-Function [@MickLesk](https://github.com/MickLesk) ([#5450](https://github.com/community-scripts/ProxmoxVE/pull/5450))
## 2025-06-24
### 🆕 New Scripts
- ONLYOFFICE Docs ([#5420](https://github.com/community-scripts/ProxmoxVE/pull/5420))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- GoMFT: tmpl bugfix to work with current version until a new release pushed [@MickLesk](https://github.com/MickLesk) ([#5435](https://github.com/community-scripts/ProxmoxVE/pull/5435))
- Update all Alpine Scripts to atleast 1GB HDD [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#5418](https://github.com/community-scripts/ProxmoxVE/pull/5418))
- #### ✨ New Features
- general: update all alpine scripts to version 3.22 [@MickLesk](https://github.com/MickLesk) ([#5428](https://github.com/community-scripts/ProxmoxVE/pull/5428))
- Minio: use latest version or latest feature rich version [@MickLesk](https://github.com/MickLesk) ([#5423](https://github.com/community-scripts/ProxmoxVE/pull/5423))
- [core]: Improve GitHub release fetch robustness with split timeouts and retry logic [@MickLesk](https://github.com/MickLesk) ([#5422](https://github.com/community-scripts/ProxmoxVE/pull/5422))
- #### 💥 Breaking Changes
- bump scripts (Installer) from Ubuntu 22.04 to Ubuntu 24.04 (agentdvr, emby, jellyfin, plex, shinobi) [@MickLesk](https://github.com/MickLesk) ([#5434](https://github.com/community-scripts/ProxmoxVE/pull/5434))
- #### 🔧 Refactor
- Refactor: MeTube to uv based install [@MickLesk](https://github.com/MickLesk) ([#5411](https://github.com/community-scripts/ProxmoxVE/pull/5411))
- Refactor: Prometheus PVE Exporter to uv based install [@MickLesk](https://github.com/MickLesk) ([#5412](https://github.com/community-scripts/ProxmoxVE/pull/5412))
- Refactor: ESPHome to uv based install [@MickLesk](https://github.com/MickLesk) ([#5413](https://github.com/community-scripts/ProxmoxVE/pull/5413))
## 2025-06-23
### 🆕 New Scripts
- Alpine-Forgejo by @Johann3s-H [@MickLesk](https://github.com/MickLesk) ([#5396](https://github.com/community-scripts/ProxmoxVE/pull/5396))
### 🚀 Updated Scripts
- [core]: tools.func -> autoupdate npm to newest version on install [@MickLesk](https://github.com/MickLesk) ([#5397](https://github.com/community-scripts/ProxmoxVE/pull/5397))
- #### 🐞 Bug Fixes
- PLANKA: Fix the update procedure [@tremor021](https://github.com/tremor021) ([#5391](https://github.com/community-scripts/ProxmoxVE/pull/5391))
- changed trilium github repo [@miggi92](https://github.com/miggi92) ([#5390](https://github.com/community-scripts/ProxmoxVE/pull/5390))
- changedetection: fix: hermetic msedge [@CrazyWolf13](https://github.com/CrazyWolf13) ([#5388](https://github.com/community-scripts/ProxmoxVE/pull/5388))
### 🌐 Website
- #### 📝 Script Information
- MariaDB: Add information about Adminer on website [@tremor021](https://github.com/tremor021) ([#5400](https://github.com/community-scripts/ProxmoxVE/pull/5400))
## 2025-06-22
### 🚀 Updated Scripts
- [core]: fix timing issues while template update & timezone setup at create new LXC [@MickLesk](https://github.com/MickLesk) ([#5358](https://github.com/community-scripts/ProxmoxVE/pull/5358))
- alpine: increase hdd to 1gb [@MickLesk](https://github.com/MickLesk) ([#5377](https://github.com/community-scripts/ProxmoxVE/pull/5377))
- #### 🐞 Bug Fixes
- fix: casing and naming error after #5254 [@GoetzGoerisch](https://github.com/GoetzGoerisch) ([#5380](https://github.com/community-scripts/ProxmoxVE/pull/5380))
- fix: install_adminer > setup_adminer [@MickLesk](https://github.com/MickLesk) ([#5356](https://github.com/community-scripts/ProxmoxVE/pull/5356))
- gitea: Update gitea.sh to stop update failures [@tystuyfzand](https://github.com/tystuyfzand) ([#5361](https://github.com/community-scripts/ProxmoxVE/pull/5361))
- #### 🔧 Refactor
- Immich: unpin release; use fetch & deploy function for update [@vhsdream](https://github.com/vhsdream) ([#5355](https://github.com/community-scripts/ProxmoxVE/pull/5355))
## 2025-06-21
## 2025-06-20
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Immich: remove unneeded tmp_file [@MickLesk](https://github.com/MickLesk) ([#5332](https://github.com/community-scripts/ProxmoxVE/pull/5332))
- Huntarr: Fix duplicate update status messages [@tremor021](https://github.com/tremor021) ([#5336](https://github.com/community-scripts/ProxmoxVE/pull/5336))
- fix planka Tags [@CrazyWolf13](https://github.com/CrazyWolf13) ([#5311](https://github.com/community-scripts/ProxmoxVE/pull/5311))
- PLANKA: Better DB password generate [@tremor021](https://github.com/tremor021) ([#5313](https://github.com/community-scripts/ProxmoxVE/pull/5313))
- Immich: Hotfix for #5299 [@vhsdream](https://github.com/vhsdream) ([#5300](https://github.com/community-scripts/ProxmoxVE/pull/5300))
- changedetection: add msedge as Browser dependency [@Niklas04](https://github.com/Niklas04) ([#5301](https://github.com/community-scripts/ProxmoxVE/pull/5301))
- #### ✨ New Features
- (turnkey) Add OpenLDAP as a TurnKey option [@mhaligowski](https://github.com/mhaligowski) ([#5305](https://github.com/community-scripts/ProxmoxVE/pull/5305))
- #### 🔧 Refactor
- [core]: unify misc/*.func scripts with centralized logic from core.func [@MickLesk](https://github.com/MickLesk) ([#5316](https://github.com/community-scripts/ProxmoxVE/pull/5316))
- Refactor: migrate AdventureLog update to uv and GitHub release logic [@MickLesk](https://github.com/MickLesk) ([#5318](https://github.com/community-scripts/ProxmoxVE/pull/5318))
- Refactor: migrate Jupyter Notebook to uv-based installation with update support [@MickLesk](https://github.com/MickLesk) ([#5320](https://github.com/community-scripts/ProxmoxVE/pull/5320))
### 🌐 Website
- #### 📝 Script Information
- Argus: fix wrong port on website [@MickLesk](https://github.com/MickLesk) ([#5322](https://github.com/community-scripts/ProxmoxVE/pull/5322))
## 2025-06-19
### 🆕 New Scripts

View File

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

View File

@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-ubuntu}"
var_version="${var_version:-22.04}"
var_version="${var_version:-24.04}"
var_unprivileged="${var_unprivileged:-0}"
header_info "$APP"
@ -20,15 +20,15 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/agentdvr ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "Currently we don't provide an update function for this ${APP}."
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/agentdvr ]]; then
msg_error "No ${APP} Installation Found!"
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}:8090${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"

View File

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

View File

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

View File

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

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -52,6 +52,7 @@ function update_script() {
$STD /opt/browserless/node_modules/playwright-core/cli.js install --with-deps
# Update Chrome separately, as it has to be done with the force option. Otherwise the installation of other browsers will not be done if Chrome is already installed.
$STD /opt/browserless/node_modules/playwright-core/cli.js install --force chrome
$STD /opt/browserless/node_modules/playwright-core/cli.js install --force msedge
$STD /opt/browserless/node_modules/playwright-core/cli.js install chromium firefox webkit
$STD npm run build --prefix /opt/browserless
$STD npm run build:function --prefix /opt/browserless
@ -74,4 +75,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

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

View File

@ -25,22 +25,57 @@ function update_script() {
check_container_resources
if [[ ! -f /etc/systemd/system/esphomeDashboard.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
exit 1
fi
msg_info "Stopping ESPHome"
msg_info "Stopping ${APP}"
systemctl stop esphomeDashboard
msg_ok "Stopped ESPHome"
msg_ok "Stopped ${APP}"
msg_info "Updating ESPHome"
if [[ -d /srv/esphome ]]; then
$STD source /srv/esphome/bin/activate
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"
fi
$STD pip3 install -U esphome
msg_ok "Updated ESPHome"
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
msg_info "Starting ESPHome"
[Service]
ExecStart=${VENV_PATH}/bin/esphome dashboard /root/config/
Restart=always
User=root
[Install]
WantedBy=multi-user.target
EOF
$STD systemctl daemon-reload
msg_ok "Updated systemd service"
fi
msg_info "Starting ${APP}"
systemctl start esphomeDashboard
msg_ok "Started ESPHome"
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
exit
}
@ -52,4 +87,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}"

View File

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

View File

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

View File

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

6
ct/headers/onlyoffice Normal file
View File

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

View File

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

View File

@ -181,113 +181,114 @@ function update_script() {
fi
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/immich-app/immich/releases?per_page=1 | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping ${APP} services"
systemctl stop immich-web
systemctl stop immich-ml
msg_ok "Stopped ${APP}"
INSTALL_DIR="/opt/${APP}"
UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
SRC_DIR="${INSTALL_DIR}/source"
APP_DIR="${INSTALL_DIR}/app"
ML_DIR="${APP_DIR}/machine-learning"
GEO_DIR="${INSTALL_DIR}/geodata"
VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
if [[ ! -f ~/.vchord_version ]] || [[ "$VCHORD_RELEASE" != "$(cat ~/.vchord_version)" ]]; then
msg_info "Updating VectorChord"
if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
$STD sudo -u postgres pg_dumpall --clean --if-exists --username=postgres | gzip >/etc/postgresql/immich-db-vchord0.3.0.sql.gz
chown postgres /etc/postgresql/immich-db-vchord0.3.0.sql.gz
$STD sudo -u postgres gunzip --stdout /etc/postgresql/immich-db-vchord0.3.0.sql.gz |
sed -e "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
-e "/vchordrq.prewarm_dim/d" |
sudo -u postgres psql
fi
curl -fsSL "https://github.com/tensorchord/vectorchord/releases/download/${VCHORD_RELEASE}/postgresql-16-vchord_${VCHORD_RELEASE}-1_amd64.deb" -o vchord.deb
$STD apt install -y ./vchord.deb
$STD sudo -u postgres psql -d immich -c "ALTER EXTENSION vchord UPDATE;"
systemctl restart postgresql
if [[ ! -f ~/.vchord-version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
$STD sudo -u postgres psql -d immich -c "REINDEX DATABASE;"
fi
echo "$VCHORD_RELEASE" >~/.vchord_version
rm ./vchord.deb
msg_ok "Updated VectorChord to v${VCHORD_RELEASE}"
fi
cp "$ML_DIR"/ml_start.sh "$INSTALL_DIR"
rm -rf "${APP_DIR:?}"/*
rm -rf "$SRC_DIR"
immich_zip=$(mktemp)
curl -fsSL "https://github.com/immich-app/immich/archive/refs/tags/v${RELEASE}.zip" -o "$immich_zip"
msg_info "Updating ${APP} web and microservices"
unzip -q "$immich_zip"
mv "$APP-$RELEASE"/ "$SRC_DIR"
mkdir -p "$ML_DIR"
cd "$SRC_DIR"/server
$STD npm install -g node-gyp node-pre-gyp
$STD npm ci
$STD npm run build
$STD npm prune --omit=dev --omit=optional
cd "$SRC_DIR"/open-api/typescript-sdk
$STD npm ci
$STD npm run build
cd "$SRC_DIR"/web
$STD npm ci
$STD npm run build
cd "$SRC_DIR"
cp -a server/{node_modules,dist,bin,resources,package.json,package-lock.json,start*.sh} "$APP_DIR"/
cp -a web/build "$APP_DIR"/www
cp LICENSE "$APP_DIR"
msg_ok "Updated ${APP} web and microservices"
cd "$SRC_DIR"/machine-learning
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
$STD /usr/local/bin/uv venv "$VIRTUAL_ENV"
if [[ -f ~/.openvino ]]; then
msg_info "Updating HW-accelerated machine-learning"
/usr/local/bin/uv -q sync --extra openvino --no-cache --active
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so"
msg_ok "Updated HW-accelerated machine-learning"
else
msg_info "Updating machine-learning"
/usr/local/bin/uv -q sync --extra cpu --no-cache --active
msg_ok "Updated machine-learning"
fi
cd "$SRC_DIR"
cp -a machine-learning/{ann,immich_ml} "$ML_DIR"
mv "$INSTALL_DIR"/ml_start.sh "$ML_DIR"
if [[ -f ~/.openvino ]]; then
sed -i "/intra_op/s/int = 0/int = os.cpu_count() or 0/" "$ML_DIR"/immich_ml/config.py
fi
ln -sf "$APP_DIR"/resources "$INSTALL_DIR"
cd "$APP_DIR"
grep -Rl /usr/src | xargs -n1 sed -i "s|\/usr/src|$INSTALL_DIR|g"
grep -RlE "'/build'" | xargs -n1 sed -i "s|'/build'|'$APP_DIR'|g"
sed -i "s@\"/cache\"@\"$INSTALL_DIR/cache\"@g" "$ML_DIR"/immich_ml/config.py
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$APP_DIR"/upload
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$ML_DIR"/upload
ln -s "$GEO_DIR" "$APP_DIR"
msg_info "Updating Immich CLI"
$STD npm install --build-from-source sharp
rm -rf "$APP_DIR"/node_modules/@img/sharp-{libvips*,linuxmusl-x64}
$STD npm i -g @immich/cli
msg_ok "Updated Immich CLI"
chown -R immich:immich "$INSTALL_DIR"
echo "$RELEASE" >/opt/"${APP}"_version.txt
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Cleaning up"
rm -f "$immich_zip"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
else
msg_ok "${APP} is already at v${RELEASE}"
if [[ -f ~/.immich && "$RELEASE" == "$(cat ~/.immich)" ]]; then
msg_ok "No update required. ${APP} is already at v${RELEASE}"
exit
fi
msg_info "Stopping ${APP} services"
systemctl stop immich-web
systemctl stop immich-ml
msg_ok "Stopped ${APP}"
INSTALL_DIR="/opt/${APP}"
UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
SRC_DIR="${INSTALL_DIR}/source"
APP_DIR="${INSTALL_DIR}/app"
ML_DIR="${APP_DIR}/machine-learning"
GEO_DIR="${INSTALL_DIR}/geodata"
VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
if [[ ! -f ~/.vchord_version ]] || [[ "$VCHORD_RELEASE" != "$(cat ~/.vchord_version)" ]]; then
msg_info "Updating VectorChord"
if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
$STD sudo -u postgres pg_dumpall --clean --if-exists --username=postgres | gzip >/etc/postgresql/immich-db-vchord0.3.0.sql.gz
chown postgres /etc/postgresql/immich-db-vchord0.3.0.sql.gz
$STD sudo -u postgres gunzip --stdout /etc/postgresql/immich-db-vchord0.3.0.sql.gz |
sed -e "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
-e "/vchordrq.prewarm_dim/d" |
sudo -u postgres psql
fi
curl -fsSL "https://github.com/tensorchord/vectorchord/releases/download/${VCHORD_RELEASE}/postgresql-16-vchord_${VCHORD_RELEASE}-1_amd64.deb" -o vchord.deb
$STD apt install -y ./vchord.deb
$STD sudo -u postgres psql -d immich -c "ALTER EXTENSION vchord UPDATE;"
systemctl restart postgresql
if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
$STD sudo -u postgres psql -d immich -c "REINDEX DATABASE;"
fi
echo "$VCHORD_RELEASE" >~/.vchord_version
rm ./vchord.deb
msg_ok "Updated VectorChord to v${VCHORD_RELEASE}"
fi
cp "$ML_DIR"/ml_start.sh "$INSTALL_DIR"
rm -rf "${APP_DIR:?}"/*
mkdir -p "$ML_DIR"
rm -rf "$SRC_DIR"
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "latest" "$SRC_DIR"
msg_info "Updating ${APP} web and microservices"
cd "$SRC_DIR"/server
if [[ "$RELEASE" == "1.135.1" ]]; then
rm ./src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts
fi
$STD npm install -g node-gyp node-pre-gyp
$STD npm ci
$STD npm run build
$STD npm prune --omit=dev --omit=optional
cd "$SRC_DIR"/open-api/typescript-sdk
$STD npm ci
$STD npm run build
cd "$SRC_DIR"/web
$STD npm ci
$STD npm run build
cd "$SRC_DIR"
cp -a server/{node_modules,dist,bin,resources,package.json,package-lock.json,start*.sh} "$APP_DIR"/
cp -a web/build "$APP_DIR"/www
cp LICENSE "$APP_DIR"
msg_ok "Updated ${APP} web and microservices"
cd "$SRC_DIR"/machine-learning
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
$STD /usr/local/bin/uv venv "$VIRTUAL_ENV"
if [[ -f ~/.openvino ]]; then
msg_info "Updating HW-accelerated machine-learning"
/usr/local/bin/uv -q sync --extra openvino --no-cache --active
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so"
msg_ok "Updated HW-accelerated machine-learning"
else
msg_info "Updating machine-learning"
/usr/local/bin/uv -q sync --extra cpu --no-cache --active
msg_ok "Updated machine-learning"
fi
cd "$SRC_DIR"
cp -a machine-learning/{ann,immich_ml} "$ML_DIR"
mv "$INSTALL_DIR"/ml_start.sh "$ML_DIR"
if [[ -f ~/.openvino ]]; then
sed -i "/intra_op/s/int = 0/int = os.cpu_count() or 0/" "$ML_DIR"/immich_ml/config.py
fi
ln -sf "$APP_DIR"/resources "$INSTALL_DIR"
cd "$APP_DIR"
grep -Rl /usr/src | xargs -n1 sed -i "s|\/usr/src|$INSTALL_DIR|g"
grep -RlE "'/build'" | xargs -n1 sed -i "s|'/build'|'$APP_DIR'|g"
sed -i "s@\"/cache\"@\"$INSTALL_DIR/cache\"@g" "$ML_DIR"/immich_ml/config.py
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$APP_DIR"/upload
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$ML_DIR"/upload
ln -s "$GEO_DIR" "$APP_DIR"
msg_info "Updating Immich CLI"
$STD npm install --build-from-source sharp
rm -rf "$APP_DIR"/node_modules/@img/sharp-{libvips*,linuxmusl-x64}
$STD npm i -g @immich/cli
msg_ok "Updated Immich CLI"
chown -R immich:immich "$INSTALL_DIR"
echo "$RELEASE" >/opt/"${APP}"_version.txt
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
systemctl restart immich-ml immich-web
exit
}

View File

@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-ubuntu}"
var_version="${var_version:-22.04}"
var_version="${var_version:-24.04}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@ -20,19 +20,19 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /usr/lib/jellyfin ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP} LXC"
$STD apt-get update
$STD apt-get -y upgrade
$STD apt-get -y --with-new-pkgs upgrade jellyfin jellyfin-server
msg_ok "Updated ${APP} LXC"
exit
header_info
check_container_storage
check_container_resources
if [[ ! -d /usr/lib/jellyfin ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP} LXC"
$STD apt-get update
$STD apt-get -y upgrade
$STD apt-get -y --with-new-pkgs upgrade jellyfin jellyfin-server
msg_ok "Updated ${APP} LXC"
exit
}
start
@ -42,4 +42,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}:8096${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8096${CL}"

View File

@ -20,16 +20,53 @@ 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
INSTALL_DIR="/opt/jupyter"
VENV_PYTHON="${INSTALL_DIR}/.venv/bin/python"
VENV_JUPYTER="${INSTALL_DIR}/.venv/bin/jupyter"
SERVICE_FILE="/etc/systemd/system/jupyternotebook.service"
if [[ ! -x "$VENV_JUPYTER" ]]; then
msg_info "Migrating to uv venv"
PYTHON_VERSION="3.12" setup_uv
mkdir -p "$INSTALL_DIR"
cd "$INSTALL_DIR"
$STD uv venv .venv
$STD "$VENV_PYTHON" -m ensurepip --upgrade
$STD "$VENV_PYTHON" -m pip install --upgrade pip
$STD "$VENV_PYTHON" -m pip install jupyter
msg_ok "Migrated to uv and installed Jupyter"
else
msg_info "Updating Jupyter"
$STD "$VENV_PYTHON" -m pip install --upgrade pip
$STD "$VENV_PYTHON" -m pip install --upgrade jupyter
msg_ok "Jupyter updated"
fi
if [[ -f "$SERVICE_FILE" && "$(grep ExecStart "$SERVICE_FILE")" != *".venv/bin/jupyter"* ]]; then
msg_info "Updating systemd service to use .venv"
cat <<EOF >"$SERVICE_FILE"
[Unit]
Description=Jupyter Notebook Server
After=network.target
[Service]
Type=simple
WorkingDirectory=${INSTALL_DIR}
ExecStart=${VENV_JUPYTER} notebook --ip=0.0.0.0 --port=8888 --allow-root
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reexec
systemctl restart jupyternotebook
msg_ok "Service updated and restarted"
fi
exit
}
start
@ -39,4 +76,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

@ -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:-1024}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
@ -23,40 +23,97 @@ 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 "Updating ${APP} to latest Git"
cd /opt
if [ -d metube_bak ]; then
rm -rf metube_bak
msg_info "Backing up Old Installation"
if [[ -d /opt/metube_bak ]]; then
rm -rf /opt/metube_bak
fi
mv metube metube_bak
mv /opt/metube /opt/metube_bak
msg_ok "Backup created"
msg_info "Cloning Latest ${APP} Release"
$STD git clone https://github.com/alexta69/metube /opt/metube
msg_ok "Cloned ${APP}"
msg_info "Building Frontend"
cd /opt/metube/ui
$STD npm install
$STD node_modules/.bin/ng build
cd /opt/metube
cp /opt/metube_bak/.env /opt/metube/
$STD pip3 install pipenv
$STD pipenv install
msg_ok "Built Frontend"
if [ -d "/opt/metube_bak" ]; then
rm -rf /opt/metube_bak
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"
msg_info "Restoring Environment File"
if [[ -f /opt/metube_bak/.env ]]; then
cp /opt/metube_bak/.env /opt/metube/.env
fi
msg_ok "Updated ${APP} to latest Git"
msg_ok "Restored .env"
if [[ ! -d /opt/metube/.venv ]]; then
msg_info "Migrating to uv-based environment"
PYTHON_VERSION="3.13" setup_uv
$STD uv venv /opt/metube/.venv
$STD /opt/metube/.venv/bin/python -m ensurepip --upgrade
$STD /opt/metube/.venv/bin/python -m pip install --upgrade pip
$STD /opt/metube/.venv/bin/python -m pip install pipenv
$STD /opt/metube/.venv/bin/pipenv install
$STD /opt/metube/.venv/bin/pipenv update yt-dlp
msg_info "Patching systemd Service"
cat <<EOF >/etc/systemd/system/metube.service
[Unit]
Description=Metube - YouTube Downloader
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/metube
EnvironmentFile=/opt/metube/.env
ExecStart=/opt/metube/.venv/bin/pipenv run python3 app/main.py
Restart=always
User=root
[Install]
WantedBy=multi-user.target
EOF
msg_ok "Patched systemd Service"
fi
$STD systemctl daemon-reload
msg_ok "Service Updated"
msg_info "Cleaning up"
rm -rf /opt/metube_bak
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned Up"
msg_info "Starting ${APP} Service"
systemctl start metube
systemctl enable -q --now metube
sleep 1
msg_ok "Started ${APP} Service"
msg_ok "Updated Successfully!\n"
exit
msg_ok "Updated Successfully!"
}
start
@ -66,4 +123,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

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

View File

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

52
ct/onlyoffice.sh Normal file
View File

@ -0,0 +1,52 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.onlyoffice.com/
APP="ONLYOFFICE"
var_tags="${var_tags:-word;excel;powerpoint;pdf}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var/www/onlyoffice ]]; then
msg_error "No valid ${APP} installation found!"
exit 1
fi
msg_info "Updating $APP"
$STD apt-get update
$STD apt-get -y --only-upgrade install onlyoffice-documentserver
msg_ok "Updated $APP"
if systemctl is-enabled --quiet onlyoffice-documentserver; then
msg_info "Restarting $APP"
$STD systemctl restart onlyoffice-documentserver
msg_ok "$APP restarted"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

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

View File

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

View File

@ -20,26 +20,69 @@ 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
fi
msg_info "Stopping ${APP}"
systemctl stop prometheus-pve-exporter
msg_ok "Stopped ${APP}"
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
msg_info "Updating ${APP}"
$STD pip install prometheus-pve-exporter --default-timeout=300 --upgrade --root-user-action=ignore
msg_ok "Updated ${APP}"
msg_info "Stopping ${APP}"
systemctl stop prometheus-pve-exporter
msg_ok "Stopped ${APP}"
msg_info "Starting ${APP}"
systemctl start prometheus-pve-exporter
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
exit
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
}
start
@ -49,4 +92,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

@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-ubuntu}"
var_version="${var_version:-22.04}"
var_version="${var_version:-24.04}"
var_unprivileged="${var_unprivileged:-0}"
header_info "$APP"
@ -44,4 +44,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}:8080/super${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/super${CL}"

View File

@ -52,7 +52,7 @@ function update_script() {
cp -r "${DB_PATH}" /opt/trilium_backup/
rm -rf /opt/trilium
cd /tmp
curl -fsSL "https://github.com/TriliumNext/Notes/releases/download/v${RELEASE}/TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz" -o "TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz"
curl -fsSL "https://github.com/TriliumNext/trilium/releases/download/v${RELEASE}/TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz" -o "TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz"
tar -xf "TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz"
mv "TriliumNextNotes-Server-${RELEASE}-linux-x64" /opt/trilium

View File

@ -20,18 +20,24 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/apt/trusted.gpg.d/php.gpg ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/apt/trusted.gpg.d/php.gpg ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating OS"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated OS"
msg_info "Updating $APP LXC"
$STD yunohost tools update
$STD yunohost tools upgrade system
$STD yunohost tools upgrade apps
msg_ok "Updated $APP LXC"
exit
}
start
@ -41,4 +47,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}${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -25,6 +25,17 @@
"os": "debian",
"version": "12"
}
},
{
"type": "alpine",
"script": "ct/alpine-forgejo.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 1,
"os": "alpine",
"version": "3.22"
}
}
],
"default_credentials": {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -34,7 +34,7 @@
"ram": 256,
"hdd": 1,
"os": "alpine",
"version": "3.21"
"version": "3.22"
}
}
],
@ -46,6 +46,10 @@
{
"text": "This script requires some extra steps after the installation, Please checkout the 'documentation'",
"type": "info"
},
{
"text": "Access Adminer Web UI at `http://<CONTAINER_IP>/adminer.php`",
"type": "info"
}
]
}

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

@ -0,0 +1,35 @@
{
"name": "MeTube",
"slug": "metube",
"categories": [
11
],
"date_created": "2025-06-24",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8081,
"documentation": null,
"website": "https://github.com/alexta69/metube",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/metube.webp",
"config_path": "/opt/metube/.env",
"description": "MeTube allows you to download videos from YouTube and dozens of other sites.",
"install_methods": [
{
"type": "default",
"script": "ct/metube.sh",
"resources": {
"cpu": 1,
"ram": 2048,
"hdd": 10,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@ -1,35 +0,0 @@
{
"name": "MeTube",
"slug": "metube",
"categories": [
11
],
"date_created": "2024-06-12",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8081,
"documentation": null,
"website": "https://github.com/alexta69/metube",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/metube.webp",
"config_path": "/opt/metube/.env",
"description": "MeTube allows you to download videos from YouTube and dozens of other sites.",
"install_methods": [
{
"type": "default",
"script": "ct/metube.sh",
"resources": {
"cpu": 1,
"ram": 1024,
"hdd": 10,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

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

View File

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

View File

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

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

@ -0,0 +1,40 @@
{
"name": "ONLYOFFICE Docs",
"slug": "onlyoffice",
"categories": [
9
],
"date_created": "2025-06-24",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": "https://helpcenter.onlyoffice.com/docs",
"website": "https://onlyoffice.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/onlyoffice.webp",
"config_path": "/etc/onlyoffice/documentserver/local.json",
"description": "ONLYOFFICE Docs is an open-source online office suite that provides collaborative editors for text documents, spreadsheets, and presentations, fully compatible with Microsoft Office formats (DOCX, XLSX, PPTX).",
"install_methods": [
{
"type": "default",
"script": "ct/onlyoffice.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 10,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "admin",
"password": "admin"
},
"notes": [
{
"text": "Database / RabbitMQ Credentials: `cat ~/onlyoffice.creds`",
"type": "info"
}
]
}

View File

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

View File

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

View File

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

View File

@ -26,7 +26,7 @@
"version": "12"
}
},
{
{
"type": "alpine",
"script": "ct/alpine-rclone.sh",
"resources": {
@ -34,7 +34,7 @@
"ram": 256,
"hdd": 1,
"os": "alpine",
"version": "3.21"
"version": "3.22"
}
}
],

View File

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

View File

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

View File

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

View File

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

View File

@ -10,7 +10,7 @@
"privileged": false,
"interface_port": 8080,
"documentation": "https://triliumnext.github.io/Docs/",
"website": "https://github.com/TriliumNext/Notes",
"website": "https://github.com/TriliumNext/trilium",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/triliumnext.webp",
"config_path": "/root/trilium-data/config.ini",
"description": "TriliumNext is an newer Fork of Trilium. TriliumNext is an open-source note-taking and personal knowledge management application. It allows users to organize and manage their notes, ideas, and information in a single place, using a hierarchical tree-like structure. Trilium offers a range of features, including rich text formatting, links, images, and attachments, making it easy to create and structure notes. The software is designed to be flexible and customizable, with a range of customization options and plugins available, including themes, export options, and more. Trilium is a self-hosted solution, and can be run on a local machine or a cloud-based server, providing users with full control over their notes and information.",

View File

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

View File

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

View File

@ -1,39 +1,279 @@
[
{
"name": "duplicati/duplicati",
"version": "v2.1.0.120-2.1.0.120_canary_2025-06-24",
"date": "2025-06-24T22:39:50Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.516",
"date": "2025-06-24T21:06:15Z"
},
{
"name": "ollama/ollama",
"version": "v0.9.3-rc1",
"date": "2025-06-24T20:26:55Z"
},
{
"name": "evcc-io/evcc",
"version": "0.204.5",
"date": "2025-06-24T19:17:16Z"
},
{
"name": "ErsatzTV/ErsatzTV",
"version": "v25.2.0",
"date": "2025-06-24T17:06:31Z"
},
{
"name": "arunavo4/gitea-mirror",
"version": "v2.18.0",
"date": "2025-06-24T08:29:55Z"
},
{
"name": "element-hq/synapse",
"version": "v1.132.0",
"date": "2025-06-17T13:49:30Z"
},
{
"name": "docker/compose",
"version": "v2.37.3",
"date": "2025-06-24T14:05:33Z"
},
{
"name": "influxdata/influxdb",
"version": "v3.2.0",
"date": "2025-06-24T13:20:53Z"
},
{
"name": "Checkmk/checkmk",
"version": "v2.4.0p5",
"date": "2025-06-24T13:06:53Z"
},
{
"name": "home-assistant/core",
"version": "2025.6.3",
"date": "2025-06-24T13:00:12Z"
},
{
"name": "rcourtman/Pulse",
"version": "v3.31.2",
"date": "2025-06-24T09:45:34Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "preview-fix-proxy-axios",
"date": "2025-06-24T08:50:22Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.2052",
"date": "2025-06-24T05:59:30Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w26-4.13.0",
"date": "2025-06-24T02:02:34Z"
},
{
"name": "meilisearch/meilisearch",
"version": "prototype-incremental-vector-store-1",
"date": "2025-06-23T21:37:47Z"
},
{
"name": "minio/minio",
"version": "RELEASE.2025-06-13T11-33-47Z",
"date": "2025-06-23T20:58:42Z"
},
{
"name": "keycloak/keycloak",
"version": "26.2.5",
"date": "2025-05-28T06:49:43Z"
},
{
"name": "esphome/esphome",
"version": "2025.6.1",
"date": "2025-06-23T19:28:09Z"
},
{
"name": "runtipi/runtipi",
"version": "v4.2.1",
"date": "2025-06-03T20:04:28Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.120.0",
"date": "2025-06-23T15:12:12Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.98.2",
"date": "2025-06-18T18:20:16Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "6.3.0-rc.2",
"date": "2025-06-23T11:31:38Z"
},
{
"name": "mattermost/mattermost",
"version": "v9.11.17",
"date": "2025-06-18T08:12:05Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.2.18",
"date": "2025-06-20T04:45:37Z"
},
{
"name": "gotson/komga",
"version": "1.22.0",
"date": "2025-06-23T03:11:37Z"
},
{
"name": "plexguide/Huntarr.io",
"version": "8.1.3",
"date": "2025-06-19T23:45:15Z"
"version": "8.1.8",
"date": "2025-06-23T00:21:30Z"
},
{
"name": "OliveTin/OliveTin",
"version": "2025.6.22",
"date": "2025-06-22T22:41:11Z"
},
{
"name": "qbittorrent/qBittorrent",
"version": "release-5.1.1",
"date": "2025-06-22T21:41:17Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v1.4.1",
"date": "2025-06-22T19:38:08Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.22.3",
"date": "2025-06-22T18:29:00Z"
},
{
"name": "clusterzx/paperless-ai",
"version": "v3.0.7",
"date": "2025-06-22T17:49:29Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "create-fumadocs-app@15.5.4",
"date": "2025-06-22T13:12:24Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "1.5.35",
"date": "2025-06-22T08:30:10Z"
},
{
"name": "inventree/InvenTree",
"version": "0.17.14",
"date": "2025-06-21T23:43:04Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.37.0",
"date": "2025-06-21T14:05:12Z"
},
{
"name": "rogerfar/rdt-client",
"version": "v2.0.114",
"date": "2025-06-21T11:20:21Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.0.7",
"date": "2025-06-21T09:24:21Z"
},
{
"name": "theonedev/onedev",
"version": "v11.11.1",
"date": "2025-06-21T09:23:39Z"
},
{
"name": "pocketbase/pocketbase",
"version": "v0.28.4",
"date": "2025-06-21T08:29:04Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.50.4",
"date": "2025-06-21T07:47:02Z"
},
{
"name": "coder/code-server",
"version": "v4.101.1",
"date": "2025-06-21T02:47:08Z"
},
{
"name": "go-gitea/gitea",
"version": "v1.24.1",
"date": "2025-06-19T19:38:29Z"
"version": "v1.24.2",
"date": "2025-06-20T20:37:55Z"
},
{
"name": "immich-app/immich",
"version": "v1.135.3",
"date": "2025-06-20T20:19:20Z"
},
{
"name": "apache/tika",
"version": "3.2.1-rc1",
"date": "2025-06-20T19:41:10Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.25.0",
"date": "2025-06-20T19:15:43Z"
},
{
"name": "mongodb/mongo",
"version": "r8.1.2-rc0",
"date": "2025-06-20T17:35:38Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v25.0",
"date": "2025-05-12T09:12:04Z"
},
{
"name": "Sonarr/Sonarr",
"version": "v4.0.15.2941",
"date": "2025-06-20T17:20:54Z"
},
{
"name": "bunkerity/bunkerweb",
"version": "testing",
"date": "2025-06-16T18:10:42Z"
},
{
"name": "zabbix/zabbix",
"version": "7.2.9",
"date": "2025-06-20T10:58:45Z"
},
{
"name": "syncthing/syncthing",
"version": "2.0.0-rc.19",
"date": "2025-06-02T17:56:25Z"
},
{
"name": "benzino77/tasmocompiler",
"version": "v12.7.0",
"date": "2025-06-20T08:31:16Z"
},
{
"name": "paperless-ngx/paperless-ngx",
"version": "v2.17.1",
"date": "2025-06-19T19:35:01Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v1.4.0",
"date": "2025-06-19T18:30:11Z"
},
{
"name": "immich-app/immich",
"version": "v1.135.1",
"date": "2025-06-19T17:55:06Z"
},
{
"name": "rclone/rclone",
"version": "v1.70.1",
"date": "2025-06-19T13:19:02Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "preview-dns-cache-manager",
"date": "2025-06-19T12:05:10Z"
},
{
"name": "icereed/paperless-gpt",
"version": "v0.21.0",
@ -44,26 +284,11 @@
"version": "2025.05.1",
"date": "2025-06-19T11:28:36Z"
},
{
"name": "mattermost/mattermost",
"version": "v9.11.17",
"date": "2025-06-18T08:12:05Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.98.2",
"date": "2025-06-18T18:20:16Z"
},
{
"name": "redis/redis",
"version": "8.2-m01-int2",
"date": "2025-06-12T08:52:10Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.2029",
"date": "2025-06-19T05:56:19Z"
},
{
"name": "prometheus-pve/prometheus-pve-exporter",
"version": "v3.5.5",
@ -79,46 +304,21 @@
"version": "v0.35.0",
"date": "2025-05-21T18:00:32Z"
},
{
"name": "keycloak/keycloak",
"version": "26.2.5",
"date": "2025-05-28T06:49:43Z"
},
{
"name": "pterodactyl/panel",
"version": "v1.11.11",
"date": "2025-06-18T18:04:50Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.22.0",
"date": "2025-06-18T16:21:38Z"
},
{
"name": "ollama/ollama",
"version": "v0.9.2",
"date": "2025-06-18T14:29:39Z"
},
{
"name": "NodeBB/NodeBB",
"version": "v3.12.7",
"date": "2025-06-18T14:22:53Z"
},
{
"name": "clusterzx/paperless-ai",
"version": "v3.0.6",
"date": "2025-06-18T14:18:13Z"
},
{
"name": "openhab/openhab-core",
"version": "5.0.0.M3",
"date": "2025-06-18T14:18:12Z"
},
{
"name": "zabbix/zabbix",
"version": "7.2.8",
"date": "2025-06-18T13:46:00Z"
},
{
"name": "Bubka/2FAuth",
"version": "v5.6.0",
@ -129,21 +329,11 @@
"version": "v10.7.0",
"date": "2025-06-18T11:57:05Z"
},
{
"name": "esphome/esphome",
"version": "2025.6.0",
"date": "2025-06-18T09:41:11Z"
},
{
"name": "forgejo/forgejo",
"version": "v11.0.2",
"date": "2025-06-18T09:38:19Z"
},
{
"name": "evcc-io/evcc",
"version": "0.204.3",
"date": "2025-06-18T08:31:58Z"
},
{
"name": "silverbulletmd/silverbullet",
"version": "2.0.0-pre3",
@ -154,31 +344,11 @@
"version": "v6.12.7",
"date": "2025-06-18T03:44:24Z"
},
{
"name": "rcourtman/Pulse",
"version": "v3.30.0",
"date": "2025-06-17T16:00:01Z"
},
{
"name": "grafana/grafana",
"version": "v11.5.6",
"date": "2025-06-17T22:00:40Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.515",
"date": "2025-06-17T19:17:56Z"
},
{
"name": "coder/code-server",
"version": "v4.100.3",
"date": "2025-06-03T21:06:41Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.36.6",
"date": "2025-06-17T18:12:31Z"
},
{
"name": "project-zot/zot",
"version": "v2.1.5",
@ -189,11 +359,6 @@
"version": "v25.05.1",
"date": "2025-06-17T14:38:04Z"
},
{
"name": "element-hq/synapse",
"version": "v1.132.0",
"date": "2025-06-17T13:49:30Z"
},
{
"name": "cloudflare/cloudflared",
"version": "2025.6.1",
@ -204,11 +369,6 @@
"version": "4.5.1",
"date": "2025-04-11T09:57:47Z"
},
{
"name": "arunavo4/gitea-mirror",
"version": "v2.16.2",
"date": "2025-06-17T11:59:34Z"
},
{
"name": "crowdsecurity/crowdsec",
"version": "v1.6.9",
@ -239,31 +399,16 @@
"version": "2.36.1",
"date": "2025-06-16T19:20:54Z"
},
{
"name": "bunkerity/bunkerweb",
"version": "testing",
"date": "2025-06-16T18:10:42Z"
},
{
"name": "goauthentik/authentik",
"version": "version/2025.6.2",
"date": "2025-06-16T17:54:39Z"
},
{
"name": "runtipi/runtipi",
"version": "v4.2.1",
"date": "2025-06-03T20:04:28Z"
},
{
"name": "emqx/emqx",
"version": "e5.9.1-alpha.1",
"date": "2025-06-16T15:34:01Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "fumadocs-openapi@9.0.12",
"date": "2025-06-16T15:09:27Z"
},
{
"name": "open-webui/open-webui",
"version": "v0.6.15",
@ -274,11 +419,6 @@
"version": "v8.1.16",
"date": "2025-06-16T13:49:37Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "6.3.0-rc.1",
"date": "2025-06-16T11:28:08Z"
},
{
"name": "home-assistant/operating-system",
"version": "15.2",
@ -289,11 +429,6 @@
"version": "v1.18.3",
"date": "2025-06-16T07:03:46Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.2.17",
"date": "2025-06-11T12:07:38Z"
},
{
"name": "jellyfin/jellyfin",
"version": "v10.10.7",
@ -319,11 +454,6 @@
"version": "v3.1.9",
"date": "2025-03-01T02:24:33Z"
},
{
"name": "syncthing/syncthing",
"version": "2.0.0-rc.19",
"date": "2025-06-02T17:56:25Z"
},
{
"name": "Prowlarr/Prowlarr",
"version": "v1.37.0.5076",
@ -359,16 +489,6 @@
"version": "v2.25.1",
"date": "2025-06-14T23:32:15Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v25.0",
"date": "2025-05-12T09:12:04Z"
},
{
"name": "theonedev/onedev",
"version": "v11.11.0",
"date": "2025-06-14T13:23:36Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.15.0",
@ -379,26 +499,6 @@
"version": "v3.3.25",
"date": "2025-06-14T02:52:44Z"
},
{
"name": "home-assistant/core",
"version": "2025.6.1",
"date": "2025-06-13T20:16:18Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.24.0",
"date": "2025-06-13T19:15:36Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.0.6",
"date": "2025-06-13T15:02:37Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w25-4.13.0",
"date": "2025-06-13T13:58:23Z"
},
{
"name": "FlowiseAI/Flowise",
"version": "flowise@3.0.2",
@ -409,21 +509,6 @@
"version": "v2025-06-12",
"date": "2025-06-12T20:59:47Z"
},
{
"name": "meilisearch/meilisearch",
"version": "latest",
"date": "2025-06-12T19:09:18Z"
},
{
"name": "Checkmk/checkmk",
"version": "v2.3.0p34",
"date": "2025-06-12T12:15:44Z"
},
{
"name": "docker/compose",
"version": "v2.37.1",
"date": "2025-06-12T09:00:21Z"
},
{
"name": "zitadel/zitadel",
"version": "v3.3.0",
@ -434,21 +519,11 @@
"version": "v1.12.0-rc.4",
"date": "2025-06-12T00:27:41Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "2.0.0-alpha-4",
"date": "2025-05-14T05:01:45Z"
},
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.8.11.0",
"date": "2025-03-10T06:39:11Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.50.3",
"date": "2025-06-11T15:19:52Z"
},
{
"name": "autobrr/autobrr",
"version": "v1.63.1",
@ -479,31 +554,16 @@
"version": "1.11.2",
"date": "2025-06-10T11:07:14Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "v1.110.11",
"date": "2025-06-10T10:00:25Z"
},
{
"name": "glanceapp/glance",
"version": "v0.8.4",
"date": "2025-06-10T07:57:14Z"
},
{
"name": "Sonarr/Sonarr",
"version": "v4.0.14.2939",
"date": "2025-03-17T19:12:37Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.84.2",
"date": "2025-06-09T23:43:27Z"
},
{
"name": "pocketbase/pocketbase",
"version": "v0.28.3",
"date": "2025-06-09T18:11:46Z"
},
{
"name": "Brandawg93/PeaNUT",
"version": "v5.8.0",
@ -539,11 +599,6 @@
"version": "v1.10.0",
"date": "2025-06-07T08:31:48Z"
},
{
"name": "OliveTin/OliveTin",
"version": "2025.6.6",
"date": "2025-06-06T21:39:22Z"
},
{
"name": "diced/zipline",
"version": "v4.1.2",
@ -609,11 +664,6 @@
"version": "2.0.0-beta.2-temp",
"date": "2025-03-28T08:45:58Z"
},
{
"name": "influxdata/influxdb",
"version": "v1.12.1rc3",
"date": "2025-06-03T14:05:52Z"
},
{
"name": "Pf2eToolsOrg/Pf2eTools",
"version": "v0.9.0",
@ -624,11 +674,6 @@
"version": "1.26.3",
"date": "2025-06-02T22:00:14Z"
},
{
"name": "inventree/InvenTree",
"version": "0.17.13",
"date": "2025-06-02T12:44:20Z"
},
{
"name": "usememos/memos",
"version": "v0.24.4",
@ -684,21 +729,11 @@
"version": "0.19.2",
"date": "2025-05-29T14:39:17Z"
},
{
"name": "duplicati/duplicati",
"version": "v2.1.0.119-2.1.0.119_canary_2025-05-29",
"date": "2025-05-29T06:14:27Z"
},
{
"name": "apache/cassandra",
"version": "cassandra-4.0.18",
"date": "2025-05-28T21:45:55Z"
},
{
"name": "mongodb/mongo",
"version": "r6.0.24",
"date": "2025-05-28T21:25:03Z"
},
{
"name": "Athou/commafeed",
"version": "5.10.0",
@ -744,16 +779,6 @@
"version": "v4.39.4",
"date": "2025-05-25T02:27:28Z"
},
{
"name": "minio/minio",
"version": "RELEASE.2025-05-24T17-08-30Z",
"date": "2025-05-24T21:42:19Z"
},
{
"name": "rogerfar/rdt-client",
"version": "v2.0.113",
"date": "2025-05-23T01:47:35Z"
},
{
"name": "0xERR0R/blocky",
"version": "v0.26.2",
@ -764,11 +789,6 @@
"version": "0.5",
"date": "2025-05-21T20:19:14Z"
},
{
"name": "apache/tika",
"version": "3.2.0-rc2",
"date": "2025-05-21T20:09:07Z"
},
{
"name": "Stirling-Tools/Stirling-PDF",
"version": "v0.46.2",
@ -809,11 +829,6 @@
"version": "2.0.4",
"date": "2025-05-16T15:09:53Z"
},
{
"name": "gotson/komga",
"version": "1.21.3",
"date": "2025-05-16T04:31:05Z"
},
{
"name": "Dolibarr/dolibarr",
"version": "18.0.7",
@ -939,11 +954,6 @@
"version": "v2.6.3",
"date": "2025-04-27T09:05:42Z"
},
{
"name": "qbittorrent/qBittorrent",
"version": "release-5.1.0",
"date": "2025-04-27T08:53:48Z"
},
{
"name": "photoprism/photoprism",
"version": "250426-27ec7a128",
@ -989,11 +999,6 @@
"version": "v2.10.0",
"date": "2025-04-18T20:46:28Z"
},
{
"name": "benzino77/tasmocompiler",
"version": "v12.6.1",
"date": "2025-04-17T17:35:02Z"
},
{
"name": "IceWhaleTech/CasaOS",
"version": "v0.4.15",
@ -1229,11 +1234,6 @@
"version": "0.7.2",
"date": "2025-01-13T22:17:18Z"
},
{
"name": "ErsatzTV/ErsatzTV",
"version": "v25.1.0",
"date": "2025-01-10T18:14:54Z"
},
{
"name": "go-vikunja/vikunja",
"version": "v0.24.6",

View File

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

View File

@ -1,40 +1,40 @@
{
"name": "YunoHost",
"slug": "yunohost",
"categories": [
2
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": false,
"privileged": false,
"interface_port": 80,
"documentation": null,
"website": "https://yunohost.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/yunohost.webp",
"config_path": "",
"description": "YunoHost is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting, while making sure it stays reliable, secure, ethical and lightweight.",
"install_methods": [
{
"type": "default",
"script": "ct/yunohost.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 20,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
"type": "warning"
}
]
"name": "YunoHost",
"slug": "yunohost",
"categories": [
2
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": null,
"website": "https://yunohost.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/yunohost.webp",
"config_path": "",
"description": "YunoHost is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting, while making sure it stays reliable, secure, ethical and lightweight.",
"install_methods": [
{
"type": "default",
"script": "ct/yunohost.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 20,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
"type": "warning"
}
]
}

View File

@ -1,51 +1,51 @@
{
"name": "Zigbee2MQTT",
"slug": "zigbee2mqtt",
"categories": [
17
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": true,
"privileged": true,
"interface_port": 9442,
"documentation": "https://www.zigbee2mqtt.io/guide/getting-started/",
"website": "https://www.zigbee2mqtt.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/zigbee2mqtt.webp",
"config_path": "/opt/zigbee2mqtt/data/configuration.yaml",
"description": "Zigbee2MQTT is an open-source software project that allows you to use Zigbee-based smart home devices (such as those sold under the Philips Hue and Ikea Tradfri brands) with MQTT-based home automation systems, like Home Assistant, Node-RED, and others. The software acts as a bridge between your Zigbee devices and MQTT, allowing you to control and monitor these devices from your home automation system.",
"install_methods": [
{
"type": "default",
"script": "ct/zigbee2mqtt.sh",
"resources": {
"cpu": 2,
"ram": 1024,
"hdd": 4,
"os": "debian",
"version": "12"
}
},
{
"type": "alpine",
"script": "ct/alpine-zigbee2mqtt.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 0.3,
"os": "alpine",
"version": "3.21"
}
}
],
"default_credentials": {
"username": null,
"password": null
"name": "Zigbee2MQTT",
"slug": "zigbee2mqtt",
"categories": [
17
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": true,
"privileged": true,
"interface_port": 9442,
"documentation": "https://www.zigbee2mqtt.io/guide/getting-started/",
"website": "https://www.zigbee2mqtt.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/zigbee2mqtt.webp",
"config_path": "/opt/zigbee2mqtt/data/configuration.yaml",
"description": "Zigbee2MQTT is an open-source software project that allows you to use Zigbee-based smart home devices (such as those sold under the Philips Hue and Ikea Tradfri brands) with MQTT-based home automation systems, like Home Assistant, Node-RED, and others. The software acts as a bridge between your Zigbee devices and MQTT, allowing you to control and monitor these devices from your home automation system.",
"install_methods": [
{
"type": "default",
"script": "ct/zigbee2mqtt.sh",
"resources": {
"cpu": 2,
"ram": 1024,
"hdd": 4,
"os": "debian",
"version": "12"
}
},
"notes": [
{
"text": "You can find the post-install guide here: `https://github.com/community-scripts/ProxmoxVE/discussions/410`",
"type": "info"
}
]
{
"type": "alpine",
"script": "ct/alpine-zigbee2mqtt.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 1,
"os": "alpine",
"version": "3.22"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "You can find the post-install guide here: `https://github.com/community-scripts/ProxmoxVE/discussions/410`",
"type": "info"
}
]
}

View File

@ -1,8 +1,7 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/seanmorley15/AdventureLog
@ -18,11 +17,10 @@ msg_info "Installing Dependencies"
$STD apt-get install -y \
gdal-bin \
libgdal-dev \
git \
python3-venv \
python3-pip
git
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
PG_VERSION="16" PG_MODULES="postgis" setup_postgresql
@ -46,15 +44,12 @@ $STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC';"
} >>~/adventurelog.creds
msg_ok "Set up PostgreSQL"
fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog"
msg_info "Installing AdventureLog (Patience)"
DJANGO_ADMIN_USER="djangoadmin"
DJANGO_ADMIN_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
LOCAL_IP="$(hostname -I | awk '{print $1}')"
cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
$STD unzip v${RELEASE}.zip
mv AdventureLog-${RELEASE} /opt/adventurelog
cat <<EOF >/opt/adventurelog/backend/server/.env
PGHOST='localhost'
PGDATABASE='${DB_NAME}'
@ -79,11 +74,13 @@ DISABLE_REGISTRATION=False
EOF
cd /opt/adventurelog/backend/server
mkdir -p /opt/adventurelog/backend/server/media
$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
$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
cat <<EOF >/opt/adventurelog/frontend/.env
PUBLIC_SERVER_URL=http://$LOCAL_IP:8000
BODY_SIZE_LIMIT=Infinity
@ -92,11 +89,11 @@ EOF
cd /opt/adventurelog/frontend
$STD pnpm i
$STD pnpm build
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed AdventureLog"
msg_info "Setting up Django Admin"
$STD python3 /opt/adventurelog/backend/server/manage.py shell <<EOF
cd /opt/adventurelog/backend/server
$STD .venv/bin/python -m manage 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')
@ -120,7 +117,7 @@ After=network.target postgresql.service
[Service]
WorkingDirectory=/opt/adventurelog/backend/server
ExecStart=python3 manage.py runserver 0.0.0.0:8000
ExecStart=/opt/adventurelog/backend/server/.venv/bin/python -m manage runserver 0.0.0.0:8000
Restart=always
EnvironmentFile=/opt/adventurelog/backend/server/.env
@ -149,7 +146,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -rf /opt/v${RELEASE}.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@ -0,0 +1,29 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Johann3s-H (An!ma)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://forgejo.org/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Forgejo"
$STD apk add --no-cache forgejo
msg_ok "Installed Forgejo"
msg_info "Enabling Forgejo Service"
$STD rc-update add forgejo default
msg_ok "Enabled Forgejo Service"
msg_info "Starting Forgejo"
$STD service forgejo start
msg_ok "Started Forgejo"
motd_ssh
customize

View File

@ -17,34 +17,34 @@ msg_info "Installing Dependencies"
$STD apt-get install -y git
msg_ok "Installed Dependencies"
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"
PYTHON_VERSION="3.12" setup_uv
msg_info "Installing ESPHome"
mkdir /root/config
$STD pip install esphome tornado esptool
msg_ok "Installed ESPHome"
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 "Creating Service"
mkdir -p /root/config
cat <<EOF >/etc/systemd/system/esphomeDashboard.service
[Unit]
Description=ESPHome Dashboard
After=network.target
[Service]
ExecStart=/usr/local/bin/esphome dashboard /root/config/
ExecStart=/opt/esphome/.venv/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

@ -19,7 +19,8 @@ $STD apt-get install -y \
rclone \
tzdata \
ca-certificates \
build-essential
build-essential \
git
msg_ok "Installed Dependencies"
setup_go
@ -32,7 +33,44 @@ curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}
tar -xzf "$temp_file"
mv GoMFT-"${RELEASE}"/ /opt/gomft
cd /opt/gomft
$STD go install github.com/a-h/templ/cmd/templ@latest
TEMPL_VERSION="$(awk '/github.com\/a-h\/templ/{print $2}' go.mod)"
$STD go install github.com/a-h/templ/cmd/templ@${TEMPL_VERSION}
cp /opt/gomft/components/file_metadata/search/file_metadata_search_content.templ{,.bak}
# dirty hack to fix templ
cat <<'EOF' >/opt/gomft/components/file_metadata/search/file_metadata_search_content.templ
package search
import (
"context"
"github.com/starfleetcptn/gomft/components/file_metadata"
"github.com/starfleetcptn/gomft/components/file_metadata/list"
)
templ FileMetadataSearchContent(ctx context.Context, data file_metadata.FileMetadataSearchData) {
<!-- Search Results -->
<div id="search-results">
if len(data.Files) > 0 {
@list.FileMetadataListPartial(ctx, file_metadata.FileMetadataListData{
Files: data.Files,
Page: data.Page,
Limit: data.Limit,
TotalCount: data.TotalCount,
TotalPages: data.TotalPages,
Filter: data.Filter,
SortBy: data.SortBy,
SortDir: data.SortDir,
}, "/files/search/partial", "#search-results-container")
} else {
<div class="p-6 text-center text-gray-500 dark:text-gray-400">
<svg class="mx-auto mb-4 w-12 h-12 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" />
</svg>
<p>No files found matching your search criteria.</p>
</div>
}
</div>
}
EOF
$STD "$HOME"/go/bin/templ generate
$STD go build -o gomft main.go
chmod +x /opt/gomft/gomft

View File

@ -273,11 +273,6 @@ rm -rf "$SOURCE"/build
} >~/.immich_library_revisions
msg_ok "Custom Photo-processing Library Compiled"
msg_info "Installing ${APPLICATION} (more patience please)"
tmp_file=$(mktemp)
RELEASE=$(curl -fsSL https://api.github.com/repos/immich-app/immich/releases?per_page=1 | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/immich-app/immich/archive/refs/tags/v${RELEASE}.zip" -o "$tmp_file"
unzip -q "$tmp_file"
INSTALL_DIR="/opt/${APPLICATION}"
UPLOAD_DIR="${INSTALL_DIR}/upload"
SRC_DIR="${INSTALL_DIR}/source"
@ -285,9 +280,12 @@ APP_DIR="${INSTALL_DIR}/app"
ML_DIR="${APP_DIR}/machine-learning"
GEO_DIR="${INSTALL_DIR}/geodata"
mkdir -p "$INSTALL_DIR"
mv "$APPLICATION-$RELEASE"/ "$SRC_DIR"
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${ML_DIR}","${INSTALL_DIR}"/cache}
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "latest" "$SRC_DIR"
msg_info "Installing ${APPLICATION} (more patience please)"
cd "$SRC_DIR"/server
$STD npm install -g node-gyp node-pre-gyp
$STD npm ci
@ -358,7 +356,6 @@ msg_ok "Installed GeoNames data"
mkdir -p /var/log/immich
touch /var/log/immich/{web.log,ml.log}
echo "$RELEASE" >/opt/"${APPLICATION}"_version.txt
msg_ok "Installed ${APPLICATION}"
msg_info "Creating user, env file, scripts & services"
@ -450,7 +447,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -f "$tmp_file"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@ -13,15 +13,19 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
python3 \
python3-pip
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv
msg_info "Setting up Jupyter Notebook"
$STD pip3 install jupyter
msg_ok "Setup Jupyter Notebook"
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
ln -s /opt/jupyter/.venv/bin/jupyter /usr/local/bin/jupyter
ln -s /opt/jupyter/.venv/bin/jupyter-lab /usr/local/bin/jupyter-lab
ln -s /opt/jupyter/.venv/bin/jupyter-notebook /usr/local/bin/jupyter-notebook
msg_ok "Installed Jupyter"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/jupyternotebook.service
@ -31,7 +35,8 @@ After=network.target
[Service]
Type=simple
ExecStart=jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root
WorkingDirectory=/opt/jupyter
ExecStart=/opt/jupyter/.venv/bin/jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root
Restart=always
RestartSec=10
@ -39,6 +44,7 @@ RestartSec=10
WantedBy=multi-user.target
EOF
systemctl enable -q --now jupyternotebook
msg_ok "Created Service"
motd_ssh
customize

View File

@ -44,7 +44,7 @@ msg_ok "Set up PostgreSQL DB"
read -r -p "${TAB3}Would you like to add Adminer? <y/N> " prompt
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
install_adminer
setup_adminer
fi
msg_info "Installing Linkwarden (Patience)"

View File

@ -1,8 +1,7 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/alexta69/metube
@ -28,14 +27,7 @@ $STD apt-get install -y --no-install-recommends \
ca-certificates
msg_ok "Installed Dependencies"
msg_info "Setup Python3"
$STD apt-get install -y \
python3 \
python3-dev \
python3-pip \
python3-venv
msg_ok "Setup Python3"
PYTHON_VERSION="3.13" setup_uv
NODE_VERSION="22" setup_nodejs
msg_info "Installing MeTube"
@ -44,8 +36,13 @@ cd /opt/metube/ui
$STD npm install
$STD node_modules/.bin/ng build
cd /opt/metube
$STD pip3 install pipenv
$STD pipenv install
$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
mkdir -p /opt/metube_downloads /opt/metube_downloads/.metube /opt/metube_downloads/music /opt/metube_downloads/videos
cat <<EOF >/opt/metube/.env
DOWNLOAD_DIR=/opt/metube_downloads
@ -65,7 +62,7 @@ After=network.target
Type=simple
WorkingDirectory=/opt/metube
EnvironmentFile=/opt/metube/.env
ExecStart=/usr/local/bin/pipenv run python3 app/main.py
ExecStart=/opt/metube/.venv/bin/pipenv run python3 app/main.py
Restart=always
User=root

View File

@ -13,31 +13,60 @@ setting_up_container
network_check
update_os
msg_info "Setup MinIO"
RELEASE=$(curl -fsSL https://api.github.com/repos/minio/minio/releases/latest | grep '"tag_name"' | awk -F '"' '{print $4}')
curl -fsSL "https://dl.min.io/server/minio/release/linux-amd64/minio" -o /usr/local/bin/minio
FEATURE_RICH_VERSION="2025-04-22T22-12-26Z"
echo
echo "MinIO recently removed many management features from the Console UI."
echo "The last feature-complete version is: $FEATURE_RICH_VERSION"
echo "Latest versions require the paid edition for full UI functionality."
echo
echo "Choose which version to install:"
echo " [N] Feature-rich community version ($FEATURE_RICH_VERSION) [Recommended]"
echo " [Y] Latest version (may lack UI features)"
echo
read -p "Install latest MinIO version? [y/N]: " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
USE_LATEST=true
else
USE_LATEST=false
fi
msg_info "Setting up MinIO"
if [[ "$USE_LATEST" == "true" ]]; then
RELEASE=$(curl -fsSL https://api.github.com/repos/minio/minio/releases/latest | grep '"tag_name"' | awk -F '"' '{print $4}')
DOWNLOAD_URL="https://dl.min.io/server/minio/release/linux-amd64/minio"
else
RELEASE="$FEATURE_RICH_VERSION"
DOWNLOAD_URL="https://dl.min.io/server/minio/release/linux-amd64/archive/minio.RELEASE.${FEATURE_RICH_VERSION}"
fi
curl -fsSL "$DOWNLOAD_URL" -o /usr/local/bin/minio
chmod +x /usr/local/bin/minio
useradd -r minio-user -s /sbin/nologin
mkdir -p /home/minio-user
chown minio-user:minio-user /home/minio-user
mkdir -p /data
chown minio-user:minio-user /data
MINIO_ADMIN_USER="minioadmin"
MINIO_ADMIN_PASSWORD="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
cat <<EOF >/etc/default/minio
MINIO_ROOT_USER=${MINIO_ADMIN_USER}
MINIO_ROOT_PASSWORD=${MINIO_ADMIN_PASSWORD}
EOF
{
echo ""
echo "MinIO-Credentials"
echo "MinIO Credentials"
echo "MinIO Admin User: $MINIO_ADMIN_USER"
echo "MinIO Admin Password: $MINIO_ADMIN_PASSWORD"
} >>~/minio.creds
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
echo "${RELEASE}" >/opt/${APPLICATION,,}_version.txt
msg_ok "Setup MinIO"
msg_info "Creating Service"
msg_info "Creating service"
cat <<EOF >/etc/systemd/system/minio.service
[Unit]
Description=MinIO
@ -57,8 +86,9 @@ LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now minio
msg_ok "Created Service"
msg_ok "Service created"
motd_ssh
customize
@ -66,4 +96,4 @@ customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
msg_ok "Cleanup complete"

View File

@ -0,0 +1,103 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
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 \
nginx \
rabbitmq-server \
ca-certificates \
software-properties-common
msg_ok "Installed Dependencies"
PG_VERSION="16" setup_postgresql
msg_info "Setup Database"
DB_NAME=onlyoffice
DB_USER=onlyoffice_user
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC'"
{
echo "ONLYOFFICE-Credentials"
echo "ONLYOFFICE Database User: $DB_USER"
echo "ONLYOFFICE Database Password: $DB_PASS"
echo "ONLYOFFICE Database Name: $DB_NAME"
} >>~/onlyoffice.creds
msg_ok "Set up Database"
msg_info "Adding ONLYOFFICE GPG Key"
GPG_TMP="/tmp/onlyoffice.gpg"
KEY_URL="https://download.onlyoffice.com/GPG-KEY-ONLYOFFICE"
TMP_KEY_CONTENT=$(mktemp)
if curl -fsSL "$KEY_URL" -o "$TMP_KEY_CONTENT" && grep -q "BEGIN PGP PUBLIC KEY BLOCK" "$TMP_KEY_CONTENT"; then
gpg --quiet --batch --yes --no-default-keyring --keyring "gnupg-ring:$GPG_TMP" --import "$TMP_KEY_CONTENT" >/dev/null 2>&1
chmod 644 "$GPG_TMP"
chown root:root "$GPG_TMP"
mv "$GPG_TMP" /usr/share/keyrings/onlyoffice.gpg
echo "deb [signed-by=/usr/share/keyrings/onlyoffice.gpg] https://download.onlyoffice.com/repo/debian squeeze main" >/etc/apt/sources.list.d/onlyoffice.list
$STD apt-get update
msg_ok "GPG Key Added"
else
msg_error "Failed to download or verify GPG key from $KEY_URL"
[[ -f "$TMP_KEY_CONTENT" ]] && rm -f "$TMP_KEY_CONTENT"
exit 1
fi
rm -f "$TMP_KEY_CONTENT"
msg_info "Preconfiguring ONLYOFFICE Debconf Settings"
RMQ_USER=onlyoffice_rmq
RMQ_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
JWT_SECRET=$(openssl rand -hex 16)
echo onlyoffice-documentserver onlyoffice/db-host string localhost | debconf-set-selections
echo onlyoffice-documentserver onlyoffice/db-user string $DB_USER | debconf-set-selections
echo onlyoffice-documentserver onlyoffice/db-pwd password $DB_PASS | debconf-set-selections
echo onlyoffice-documentserver onlyoffice/db-name string $DB_NAME | debconf-set-selections
echo onlyoffice-documentserver onlyoffice/rabbitmq-host string localhost | debconf-set-selections
echo onlyoffice-documentserver onlyoffice/rabbitmq-user string $RMQ_USER | debconf-set-selections
echo onlyoffice-documentserver onlyoffice/rabbitmq-pwd password $RMQ_PASS | debconf-set-selections
echo onlyoffice-documentserver onlyoffice/jwt-enabled boolean true | debconf-set-selections
echo onlyoffice-documentserver onlyoffice/jwt-secret password $JWT_SECRET | debconf-set-selections
echo "RabbitMQ User: $RMQ_USER" >>~/onlyoffice.creds
echo "RabbitMQ Password: $RMQ_PASS" >>~/onlyoffice.creds
echo "JWT Secret: $JWT_SECRET" >>~/onlyoffice.creds
{
echo ""
echo "ONLYOFFICE RabbitMQ Credentials"
echo "User: $RMQ_USER"
echo "Password: $RMQ_PASS"
echo "Secret: $JWT_SECRET"
} >>~/onlyoffice.creds
msg_ok "Debconf Preconfiguration Done"
msg_info "Installing ttf-mscorefonts-installer"
echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections
$STD apt-get install -y ttf-mscorefonts-installer
msg_ok "Installed Microsoft Core Fonts"
msg_info "Installing ONLYOFFICE Docs"
$STD apt-get install -y onlyoffice-documentserver
msg_ok "ONLYOFFICE Docs Installed"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@ -26,7 +26,7 @@ PG_VERSION="16" setup_postgresql
msg_info "Setting up PostgreSQL Database"
DB_NAME=planka
DB_USER=planka
DB_PASS="$(openssl rand -base64 18 | cut -c1-13)"
DB_PASS=$(openssl rand -base64 16 | tr -d '/+=')
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"

View File

@ -13,16 +13,16 @@ setting_up_container
network_check
update_os
msg_info "Setup Python3"
$STD apt-get install -y \
python3 \
python3-pip
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Setup Python3"
PYTHON_VERSION="3.12" setup_uv
msg_info "Installing Prometheus Proxmox VE Exporter"
python3 -m pip install --default-timeout=300 --quiet --root-user-action=ignore prometheus-pve-exporter
mkdir -p /opt/prometheus-pve-exporter
cd /opt/prometheus-pve-exporter
$STD uv venv /opt/prometheus-pve-exporter/.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 prometheus-pve-exporter
cat <<EOF >/opt/prometheus-pve-exporter/pve.yml
default:
user: prometheus@pve
@ -42,7 +42,7 @@ After=syslog.target network.target
User=root
Restart=always
Type=simple
ExecStart=pve_exporter \
ExecStart=/opt/prometheus-pve-exporter/.venv/bin/pve_exporter \
--config.file=/opt/prometheus-pve-exporter/pve.yml \
--web.listen-address=0.0.0.0:9221
ExecReload=/bin/kill -HUP \$MAINPID

View File

@ -15,8 +15,8 @@ update_os
msg_info "Setup TriliumNext"
cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/TriliumNext/Notes/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/TriliumNext/Notes/releases/download/v${RELEASE}/TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz" -o "TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz"
RELEASE=$(curl -fsSL https://api.github.com/repos/TriliumNext/trilium/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/TriliumNext/trilium/releases/download/v${RELEASE}/TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz" -o "TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz"
tar -xf TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz
mv TriliumNextNotes-Server-$RELEASE-linux-x64 /opt/trilium
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"

View File

@ -1,52 +1,13 @@
# Copyright (c) 2021-2025 tteck
# Copyright (c) 2021-2025 community-scripts ORG
# Author: tteck (tteckster)
# Co-Author: MickLesk
# License: MIT
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# This function sets color variables for formatting output in the terminal
color() {
# Colors
YW=$(echo "\033[33m")
BL=$(echo "\033[36m")
RD=$(echo "\033[01;31m")
GN=$(echo "\033[1;92m")
# Formatting
CL=$(echo "\033[m")
BFR="\\r\\033[K"
BOLD=$(echo "\033[1m")
TAB=" "
TAB3=" "
# System
RETRY_NUM=10
RETRY_EVERY=3
i=$RETRY_NUM
# Icons
CM="${TAB}✔️${TAB}${CL}"
CROSS="${TAB}✖️${TAB}${CL}"
INFO="${TAB}💡${TAB}${CL}"
NETWORK="${TAB}📡${TAB}${CL}"
OS="${TAB}🖥️${TAB}${CL}"
HOSTNAME="${TAB}🏠${TAB}${CL}"
GATEWAY="${TAB}🌐${TAB}${CL}"
}
# Function to set STD mode based on verbosity
set_std_mode() {
if [ "$VERBOSE" = "yes" ]; then
STD=""
else
STD="silent"
fi
}
# Silent execution function
silent() {
"$@" >/dev/null 2>&1
}
if ! command -v curl >/dev/null 2>&1; then
apk update && apk add curl >/dev/null 2>&1
fi
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/core.func)
load_functions
# This function enables IPv6 if it's not disabled and sets verbose mode
verb_ip6() {
@ -74,33 +35,15 @@ error_handler() {
echo -e "\n$error_message\n"
}
# This function displays an informational message with a yellow color.
msg_info() {
local msg="$1"
echo -ne " ${TAB}${YW}${msg}"
}
# This function displays a success message with a green color.
msg_ok() {
local msg="$1"
echo -e "${BFR}${CM}${GN}${msg}${CL}"
}
# This function displays a error message with a red color.
msg_error() {
local msg="$1"
echo -e "${BFR}${CROSS}${RD}${msg}${CL}"
}
# This function sets up the Container OS by generating the locale, setting the timezone, and checking the network connection
setting_up_container() {
msg_info "Setting up Container OS"
while [ "$i" -gt 0 ]; do
while [ $i -gt 0 ]; do
if [ "$(ip addr show | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d'/' -f1)" != "" ]; then
break
fi
echo 1>&2 -en "${CROSS}${RD} No Network! "
sleep "$RETRY_EVERY"
sleep $RETRY_EVERY
i=$((i - 1))
done
@ -149,10 +92,9 @@ update_os() {
# This function modifies the message of the day (motd) and SSH settings
motd_ssh() {
# Set terminal to 256-color mode
echo "export TERM='xterm-256color'" >>/root/.bashrc
IP=$(ip -4 addr show eth0 | awk '/inet / {print $2}' | cut -d/ -f1 | head -n 1)
# Get OS information
if [ -f "/etc/os-release" ]; then
OS_NAME=$(grep ^NAME /etc/os-release | cut -d= -f2 | tr -d '"')
OS_VERSION=$(grep ^VERSION_ID /etc/os-release | cut -d= -f2 | tr -d '"')
@ -213,6 +155,6 @@ EOF
msg_ok "Customized Container"
fi
echo "bash -c \"\$(curl -fsSL https://github.com/community-scripts/ProxmoxVE/raw/main/ct/${app}.sh)\"" >/usr/bin/update
echo "bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/${app}.sh)\"" >/usr/bin/update
chmod +x /usr/bin/update
}

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