mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-24 14:35:23 +00:00
Compare commits
102 Commits
2025-09-08
...
2025-09-14
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
34b1d70762 | ||
|
|
1860847153 | ||
|
|
58905bf94d | ||
|
|
7d1788a079 | ||
|
|
83e04257d9 | ||
|
|
11c33e34d2 | ||
|
|
52df77cab5 | ||
|
|
17f6264a03 | ||
|
|
9463b0b808 | ||
|
|
eba83f3848 | ||
|
|
e3f6ea73c3 | ||
|
|
06247e742c | ||
|
|
4606782d6b | ||
|
|
a988acf2d5 | ||
|
|
5f44007372 | ||
|
|
8b87272e38 | ||
|
|
ceccf08f69 | ||
|
|
5a80cd7e02 | ||
|
|
d617a49766 | ||
|
|
7c0d79c115 | ||
|
|
0d4a508543 | ||
|
|
f979dd2277 | ||
|
|
87de220511 | ||
|
|
481e70b0aa | ||
|
|
6c3a16e579 | ||
|
|
394f91c994 | ||
|
|
63a268d6c5 | ||
|
|
9ee6e23a59 | ||
|
|
eceb1cd53c | ||
|
|
719c55655d | ||
|
|
aeb15c7ea1 | ||
|
|
0c7a366782 | ||
|
|
93a3a572d4 | ||
|
|
8b2645a529 | ||
|
|
b72e132699 | ||
|
|
f4df8e2ccc | ||
|
|
f03f004226 | ||
|
|
b13c840bda | ||
|
|
ce90647bda | ||
|
|
164e487090 | ||
|
|
a4660adedd | ||
|
|
9352eec854 | ||
|
|
4478f8f6e0 | ||
|
|
d69cbcd941 | ||
|
|
affcfd06cf | ||
|
|
b94b088c19 | ||
|
|
5385382a88 | ||
|
|
d06ad37a22 | ||
|
|
72c7d4199b | ||
|
|
2e75ced83f | ||
|
|
9a28ce0263 | ||
|
|
9ed2507bdc | ||
|
|
c617870c2b | ||
|
|
eb71d21ea3 | ||
|
|
762452b2b3 | ||
|
|
31cd3e3119 | ||
|
|
c25dba9212 | ||
|
|
52cefe4a00 | ||
|
|
7b8fcab242 | ||
|
|
b733e8b5ea | ||
|
|
4a4e67a3cf | ||
|
|
b00feea00d | ||
|
|
c250cec418 | ||
|
|
a0af0f5196 | ||
|
|
2f0b6e10ab | ||
|
|
a41364d91d | ||
|
|
e580a5d9c1 | ||
|
|
9d059b2a13 | ||
|
|
6e32eebdf0 | ||
|
|
7f3ebd4296 | ||
|
|
0c4d55bd78 | ||
|
|
8f05be3f6b | ||
|
|
e06cd4b28c | ||
|
|
b9242b3232 | ||
|
|
63f6d772ea | ||
|
|
652df1f370 | ||
|
|
f4b5baf308 | ||
|
|
cc36fd5434 | ||
|
|
3e182978ad | ||
|
|
e7adf1a9b5 | ||
|
|
36fb86eaf8 | ||
|
|
495c47224e | ||
|
|
7af71384b4 | ||
|
|
e318152ee3 | ||
|
|
17dc7c90a1 | ||
|
|
226a5bce8f | ||
|
|
ffd2ed01b9 | ||
|
|
3348e2fff0 | ||
|
|
def41f66f4 | ||
|
|
02a1a732f8 | ||
|
|
2494af7e1c | ||
|
|
0c4711d99f | ||
|
|
039f73a5ed | ||
|
|
74b58d5b10 | ||
|
|
61044104a2 | ||
|
|
fac612077a | ||
|
|
135b3ff964 | ||
|
|
393b853119 | ||
|
|
6bb2938e34 | ||
|
|
fbf16fd54d | ||
|
|
d6d4fd034f | ||
|
|
aa4999dac6 |
131
CHANGELOG.md
131
CHANGELOG.md
@@ -10,8 +10,139 @@
|
|||||||
> [!CAUTION]
|
> [!CAUTION]
|
||||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||||
|
|
||||||
|
## 2025-09-15
|
||||||
|
|
||||||
|
## 2025-09-14
|
||||||
|
|
||||||
|
## 2025-09-13
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Palmr: hotfix #7622 [@vhsdream](https://github.com/vhsdream) ([#7625](https://github.com/community-scripts/ProxmoxVE/pull/7625))
|
||||||
|
- ollama: fix: ccurl continue on interrupts [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7620](https://github.com/community-scripts/ProxmoxVE/pull/7620))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- pdm: refactor for beta version [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7619](https://github.com/community-scripts/ProxmoxVE/pull/7619))
|
||||||
|
- Immich: bump to v1.142.0 [@vhsdream](https://github.com/vhsdream) ([#7594](https://github.com/community-scripts/ProxmoxVE/pull/7594))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- fix: tagline grammar [@jonathanwuki](https://github.com/jonathanwuki) ([#7621](https://github.com/community-scripts/ProxmoxVE/pull/7621))
|
||||||
|
- fix: grammar/capitalization for links and taglines [@jonathanwuki](https://github.com/jonathanwuki) ([#7609](https://github.com/community-scripts/ProxmoxVE/pull/7609))
|
||||||
|
|
||||||
|
## 2025-09-12
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Stylus ([#7588](https://github.com/community-scripts/ProxmoxVE/pull/7588))
|
||||||
|
- UHF ([#7589](https://github.com/community-scripts/ProxmoxVE/pull/7589))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Tweak: post-pve-install: create folder if Not exist [@JVKeller](https://github.com/JVKeller) ([#7598](https://github.com/community-scripts/ProxmoxVE/pull/7598))
|
||||||
|
- Update openwebui.sh [@webmogul1](https://github.com/webmogul1) ([#7582](https://github.com/community-scripts/ProxmoxVE/pull/7582))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- [core]: add fallback if mariadb upstream unreachable [@MickLesk](https://github.com/MickLesk) ([#7599](https://github.com/community-scripts/ProxmoxVE/pull/7599))
|
||||||
|
- ESPHome: Increase default disk size [@tremor021](https://github.com/tremor021) ([#7600](https://github.com/community-scripts/ProxmoxVE/pull/7600))
|
||||||
|
|
||||||
|
## 2025-09-11
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- telegraf ([#7576](https://github.com/community-scripts/ProxmoxVE/pull/7576))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- [core] Sort tools.func functions alphabeticaly [@tremor021](https://github.com/tremor021) ([#7569](https://github.com/community-scripts/ProxmoxVE/pull/7569))
|
||||||
|
- mobile subscription nag fix [@dvino](https://github.com/dvino) ([#7567](https://github.com/community-scripts/ProxmoxVE/pull/7567))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- alpine-install: switch to using GitHub to fetch tools when using GitHub [@burritosoftware](https://github.com/burritosoftware) ([#7566](https://github.com/community-scripts/ProxmoxVE/pull/7566))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Add margin-bottom to Most Viewed Scripts header to unifi UI [@BramSuurdje](https://github.com/BramSuurdje) ([#7572](https://github.com/community-scripts/ProxmoxVE/pull/7572))
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Fix frontend url [@r1cebank](https://github.com/r1cebank) ([#7578](https://github.com/community-scripts/ProxmoxVE/pull/7578))
|
||||||
|
|
||||||
|
## 2025-09-10
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Autocaliweb ([#7515](https://github.com/community-scripts/ProxmoxVE/pull/7515))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Palmr: fix #7556 [@vhsdream](https://github.com/vhsdream) ([#7558](https://github.com/community-scripts/ProxmoxVE/pull/7558))
|
||||||
|
- Wizarr: Fix DB migrations [@vhsdream](https://github.com/vhsdream) ([#7552](https://github.com/community-scripts/ProxmoxVE/pull/7552))
|
||||||
|
- fix: pmg - split no-nag script into separate config files [@MickLesk](https://github.com/MickLesk) ([#7540](https://github.com/community-scripts/ProxmoxVE/pull/7540))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Update Palmr to Support new v3.2.1 [@vhsdream](https://github.com/vhsdream) ([#7526](https://github.com/community-scripts/ProxmoxVE/pull/7526))
|
||||||
|
- add external installer warnings and user confirmation in several LXC's [@MickLesk](https://github.com/MickLesk) ([#7539](https://github.com/community-scripts/ProxmoxVE/pull/7539))
|
||||||
|
- Booklore: Add Bookdrop location to .env [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#7533](https://github.com/community-scripts/ProxmoxVE/pull/7533))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: audiobookshelf [@MickLesk](https://github.com/MickLesk) ([#7538](https://github.com/community-scripts/ProxmoxVE/pull/7538))
|
||||||
|
- Refactor: Blocky [@MickLesk](https://github.com/MickLesk) ([#7537](https://github.com/community-scripts/ProxmoxVE/pull/7537))
|
||||||
|
- Improve npmplus credential retrieval and messaging [@MickLesk](https://github.com/MickLesk) ([#7532](https://github.com/community-scripts/ProxmoxVE/pull/7532))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Remove Pingvin Share [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7553](https://github.com/community-scripts/ProxmoxVE/pull/7553))
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- set updateable to true for several lxc JSON-configs [@MickLesk](https://github.com/MickLesk) ([#7534](https://github.com/community-scripts/ProxmoxVE/pull/7534))
|
||||||
|
|
||||||
## 2025-09-09
|
## 2025-09-09
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Tududi: v0.81 [@vhsdream](https://github.com/vhsdream) ([#7517](https://github.com/community-scripts/ProxmoxVE/pull/7517))
|
||||||
|
- WGDashboard: Revert back to old update method [@tremor021](https://github.com/tremor021) ([#7500](https://github.com/community-scripts/ProxmoxVE/pull/7500))
|
||||||
|
- AdventureLog: remove folder during update process [@MickLesk](https://github.com/MickLesk) ([#7507](https://github.com/community-scripts/ProxmoxVE/pull/7507))
|
||||||
|
- PLANKA: Fix backup and restore commands [@tremor021](https://github.com/tremor021) ([#7505](https://github.com/community-scripts/ProxmoxVE/pull/7505))
|
||||||
|
- Recyclarr: Suppress config creation output [@tremor021](https://github.com/tremor021) ([#7502](https://github.com/community-scripts/ProxmoxVE/pull/7502))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Pulse: standardise install/update with Pulse repo script [@vhsdream](https://github.com/vhsdream) ([#7519](https://github.com/community-scripts/ProxmoxVE/pull/7519))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Refactor GitHubStarsButton to wrap in Link component for external navigation [@BramSuurdje](https://github.com/BramSuurdje) ([#7492](https://github.com/community-scripts/ProxmoxVE/pull/7492))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Bump vite from 7.0.0 to 7.1.5 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#7522](https://github.com/community-scripts/ProxmoxVE/pull/7522))
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- swizzin: Change category from nvr to media [@MickLesk](https://github.com/MickLesk) ([#7511](https://github.com/community-scripts/ProxmoxVE/pull/7511))
|
||||||
|
|
||||||
## 2025-09-08
|
## 2025-09-08
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ function update_script() {
|
|||||||
|
|
||||||
msg_info "Backup Old Installation"
|
msg_info "Backup Old Installation"
|
||||||
cp -r /opt/adventurelog /opt/adventurelog-backup
|
cp -r /opt/adventurelog /opt/adventurelog-backup
|
||||||
|
rm -rf /opt/adventurelog
|
||||||
msg_ok "Backup done"
|
msg_ok "Backup done"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog"
|
fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog"
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ APP="audiobookshelf"
|
|||||||
var_tags="${var_tags:-podcast;audiobook}"
|
var_tags="${var_tags:-podcast;audiobook}"
|
||||||
var_cpu="${var_cpu:-2}"
|
var_cpu="${var_cpu:-2}"
|
||||||
var_ram="${var_ram:-2048}"
|
var_ram="${var_ram:-2048}"
|
||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-5}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-12}"
|
var_version="${var_version:-12}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
@@ -23,11 +23,15 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc ]]; then
|
if [[ ! -f /etc/default/audiobookshelf ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
echo "This application receives updates through the APT package manager."
|
|
||||||
|
msg_info "Updating $APP LXC"
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get -y upgrade
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
83
ct/autocaliweb.sh
Normal file
83
ct/autocaliweb.sh
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: vhsdream
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/gelbphoenix/autocaliweb
|
||||||
|
|
||||||
|
APP="Autocaliweb"
|
||||||
|
var_tags="${var_tags:-ebooks}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-2048}"
|
||||||
|
var_disk="${var_disk:-6}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-12}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /opt/autocaliweb ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
setup_uv
|
||||||
|
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/gelbphoenix/autocaliweb/releases/latest | jq '.tag_name' | sed 's/^"v//;s/"$//')
|
||||||
|
if check_for_gh_release "autocaliweb" "gelbphoenix/autocaliweb"; then
|
||||||
|
msg_info "Stopping Services"
|
||||||
|
systemctl stop autocaliweb metadata-change-detector acw-ingest-service acw-auto-zipper
|
||||||
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
|
INSTALL_DIR="/opt/autocaliweb"
|
||||||
|
export VIRTUAL_ENV="${INSTALL_DIR}/venv"
|
||||||
|
$STD tar -cf ~/autocaliweb_bkp.tar "$INSTALL_DIR"/{metadata_change_logs,dirs.json,.env,scripts/ingest_watcher.sh,scripts/auto_zipper_wrapper.sh,scripts/metadata_change_detector_wrapper.sh}
|
||||||
|
fetch_and_deploy_gh_release "autocaliweb" "gelbphoenix/autocaliweb" "tarball" "latest" "/opt/autocaliweb"
|
||||||
|
msg_info "Updating ${APP}"
|
||||||
|
cd "$INSTALL_DIR"
|
||||||
|
if [[ ! -d "$VIRTUAL_ENV" ]]; then
|
||||||
|
$STD uv venv "$VIRTUAL_ENV"
|
||||||
|
fi
|
||||||
|
$STD uv sync --all-extras --active
|
||||||
|
cd "$INSTALL_DIR"/koreader/plugins
|
||||||
|
PLUGIN_DIGEST="$(find acwsync.koplugin -type f -name "*.lua" -o -name "*.json" | sort | xargs sha256sum | sha256sum | cut -d' ' -f1)"
|
||||||
|
echo "Plugin files digest: $PLUGIN_DIGEST" >acwsync.koplugin/${PLUGIN_DIGEST}.digest
|
||||||
|
echo "Build date: $(date)" >>acwsync.koplugin/${PLUGIN_DIGEST}.digest
|
||||||
|
echo "Files included:" >>acwsync.koplugin/${PLUGIN_DIGEST}.digest
|
||||||
|
$STD zip -r koplugin.zip acwsync.koplugin/
|
||||||
|
cp -r koplugin.zip "$INSTALL_DIR"/cps/static
|
||||||
|
mkdir -p "$INSTALL_DIR"/metadata_temp
|
||||||
|
$STD tar -xf ~/autocaliweb_bkp.tar --directory /
|
||||||
|
KEPUB_VERSION="$(/usr/bin/kepubify --version)"
|
||||||
|
CALIBRE_RELEASE="$(curl -s https://api.github.com/repos/kovidgoyal/calibre/releases/latest | grep -o '"tag_name": "[^"]*' | cut -d'"' -f4)"
|
||||||
|
echo "${KEPUB_VERSION#v}" >"$INSTALL_DIR"/KEPUBIFY_RELEASE
|
||||||
|
echo "${CALIBRE_RELEASE#v}" >/"$INSTALL_DIR"/CALIBRE_RELEASE
|
||||||
|
sed 's/^/v/' ~/.autocaliweb >"$INSTALL_DIR"/ACW_RELEASE
|
||||||
|
chown -R acw:acw "$INSTALL_DIR"
|
||||||
|
rm ~/autocaliweb_bkp.tar
|
||||||
|
msg_ok "Updated $APP"
|
||||||
|
|
||||||
|
msg_info "Starting Services"
|
||||||
|
systemctl start autocaliweb metadata-change-detector acw-ingest-service acw-auto-zipper
|
||||||
|
msg_ok "Started Services"
|
||||||
|
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8083${CL}"
|
||||||
32
ct/blocky.sh
32
ct/blocky.sh
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2025 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://0xerr0r.github.io/blocky/latest/
|
# Source: https://0xerr0r.github.io/blocky
|
||||||
|
|
||||||
APP="Blocky"
|
APP="Blocky"
|
||||||
var_tags="${var_tags:-adblock}"
|
var_tags="${var_tags:-adblock}"
|
||||||
@@ -23,14 +23,34 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var ]]; then
|
if [[ ! -d /opt/blocky ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
msg_info "Updating $APP LXC"
|
if check_for_gh_release "blocky" "0xERR0R/blocky"; then
|
||||||
$STD apt-get update
|
msg_info "Stopping Service"
|
||||||
$STD apt-get -y upgrade
|
systemctl stop blocky
|
||||||
msg_ok "Updated $APP LXC"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Backup Config"
|
||||||
|
mv /opt/blocky/config.yml /opt/config.yml
|
||||||
|
msg_ok "Backed Up Config"
|
||||||
|
|
||||||
|
msg_info "Removing Old Version"
|
||||||
|
rm -rf /opt/blocky
|
||||||
|
msg_ok "Removed Old Version"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_linux_x86_64.tar.gz"
|
||||||
|
|
||||||
|
msg_info "Restore Config"
|
||||||
|
mv /opt/config.yml /opt/blocky/config.yml
|
||||||
|
msg_ok "Restored Config"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start blocky
|
||||||
|
msg_ok "Started Service"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
fi
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ APP="ESPHome"
|
|||||||
var_tags="${var_tags:-automation}"
|
var_tags="${var_tags:-automation}"
|
||||||
var_cpu="${var_cpu:-2}"
|
var_cpu="${var_cpu:-2}"
|
||||||
var_ram="${var_ram:-1024}"
|
var_ram="${var_ram:-1024}"
|
||||||
var_disk="${var_disk:-4}"
|
var_disk="${var_disk:-10}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-12}"
|
var_version="${var_version:-12}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|||||||
6
ct/headers/autocaliweb
Normal file
6
ct/headers/autocaliweb
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
___ __ ___ __
|
||||||
|
/ | __ __/ /_____ _________ _/ (_) _____ / /_
|
||||||
|
/ /| |/ / / / __/ __ \/ ___/ __ `/ / / | /| / / _ \/ __ \
|
||||||
|
/ ___ / /_/ / /_/ /_/ / /__/ /_/ / / /| |/ |/ / __/ /_/ /
|
||||||
|
/_/ |_\__,_/\__/\____/\___/\__,_/_/_/ |__/|__/\___/_.___/
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
____ _ _
|
|
||||||
/ __ \(_)___ ____ __ __(_)___
|
|
||||||
/ /_/ / / __ \/ __ `/ | / / / __ \
|
|
||||||
/ ____/ / / / / /_/ /| |/ / / / / /
|
|
||||||
/_/ /_/_/ /_/\__, / |___/_/_/ /_/
|
|
||||||
/____/
|
|
||||||
6
ct/headers/stylus
Normal file
6
ct/headers/stylus
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
_____ __ __
|
||||||
|
/ ___// /___ __/ /_ _______
|
||||||
|
\__ \/ __/ / / / / / / / ___/
|
||||||
|
___/ / /_/ /_/ / / /_/ (__ )
|
||||||
|
/____/\__/\__, /_/\__,_/____/
|
||||||
|
/____/
|
||||||
6
ct/headers/telegraf
Normal file
6
ct/headers/telegraf
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
__ __ ____
|
||||||
|
/ /____ / /__ ____ __________ _/ __/
|
||||||
|
/ __/ _ \/ / _ \/ __ `/ ___/ __ `/ /_
|
||||||
|
/ /_/ __/ / __/ /_/ / / / /_/ / __/
|
||||||
|
\__/\___/_/\___/\__, /_/ \__,_/_/
|
||||||
|
/____/
|
||||||
6
ct/headers/uhf
Normal file
6
ct/headers/uhf
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
__ ____ ________
|
||||||
|
/ / / / / / / ____/
|
||||||
|
/ / / / /_/ / /_
|
||||||
|
/ /_/ / __ / __/
|
||||||
|
\____/_/ /_/_/
|
||||||
|
|
||||||
15
ct/immich.sh
15
ct/immich.sh
@@ -61,7 +61,7 @@ function update_script() {
|
|||||||
done
|
done
|
||||||
msg_ok "Image-processing libraries up to date"
|
msg_ok "Image-processing libraries up to date"
|
||||||
fi
|
fi
|
||||||
RELEASE="1.141.1"
|
RELEASE="1.142.0"
|
||||||
if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
|
if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
|
||||||
msg_info "Stopping Services"
|
msg_info "Stopping Services"
|
||||||
systemctl stop immich-web
|
systemctl stop immich-web
|
||||||
@@ -160,15 +160,14 @@ EOF
|
|||||||
cd "$SRC_DIR"/machine-learning
|
cd "$SRC_DIR"/machine-learning
|
||||||
mkdir -p "$ML_DIR"
|
mkdir -p "$ML_DIR"
|
||||||
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
|
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
|
||||||
$STD /usr/local/bin/uv venv "$VIRTUAL_ENV"
|
|
||||||
if [[ -f ~/.openvino ]]; then
|
if [[ -f ~/.openvino ]]; then
|
||||||
msg_info "Updating HW-accelerated machine-learning"
|
msg_info "Updating HW-accelerated machine-learning"
|
||||||
/usr/local/bin/uv -q sync --extra openvino --no-cache --active
|
$STD /usr/local/bin/uv 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"
|
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"
|
msg_ok "Updated HW-accelerated machine-learning"
|
||||||
else
|
else
|
||||||
msg_info "Updating machine-learning"
|
msg_info "Updating machine-learning"
|
||||||
/usr/local/bin/uv -q sync --extra cpu --no-cache --active
|
$STD /usr/local/bin/uv sync --extra cpu --no-cache --active
|
||||||
msg_ok "Updated machine-learning"
|
msg_ok "Updated machine-learning"
|
||||||
fi
|
fi
|
||||||
cd "$SRC_DIR"
|
cd "$SRC_DIR"
|
||||||
@@ -208,7 +207,7 @@ function compile_libjxl() {
|
|||||||
JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
|
JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
|
||||||
# : "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
|
# : "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
|
||||||
: "${LIBJXL_REVISION:=794a5dcf0d54f9f0b20d288a12e87afb91d20dfc}"
|
: "${LIBJXL_REVISION:=794a5dcf0d54f9f0b20d288a12e87afb91d20dfc}"
|
||||||
if [[ "${update:-}" ]] || [[ "$LIBJXL_REVISION" != "$(grep 'libjxl' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
if [[ "$LIBJXL_REVISION" != "$(grep 'libjxl' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
||||||
msg_info "Recompiling libjxl"
|
msg_info "Recompiling libjxl"
|
||||||
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
|
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
|
||||||
$STD git clone https://github.com/libjxl/libjxl.git "$SOURCE"
|
$STD git clone https://github.com/libjxl/libjxl.git "$SOURCE"
|
||||||
@@ -289,7 +288,7 @@ function compile_libraw() {
|
|||||||
local update
|
local update
|
||||||
# : "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
|
# : "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
|
||||||
: "${LIBRAW_REVISION:=09bea31181b43e97959ee5452d91e5bc66365f1f}"
|
: "${LIBRAW_REVISION:=09bea31181b43e97959ee5452d91e5bc66365f1f}"
|
||||||
if [[ "${update:-}" ]] || [[ "$LIBRAW_REVISION" != "$(grep 'libraw' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
if [[ "$LIBRAW_REVISION" != "$(grep 'libraw' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
||||||
msg_info "Recompiling libraw"
|
msg_info "Recompiling libraw"
|
||||||
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
|
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
|
||||||
$STD git clone https://github.com/libraw/libraw.git "$SOURCE"
|
$STD git clone https://github.com/libraw/libraw.git "$SOURCE"
|
||||||
@@ -311,7 +310,7 @@ function compile_imagemagick() {
|
|||||||
SOURCE=$SOURCE_DIR/imagemagick
|
SOURCE=$SOURCE_DIR/imagemagick
|
||||||
# : "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/imagemagick.json)}"
|
# : "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/imagemagick.json)}"
|
||||||
: "${IMAGEMAGICK_REVISION:=8289a3388a085ad5ae81aa6812f21554bdfd54f2}"
|
: "${IMAGEMAGICK_REVISION:=8289a3388a085ad5ae81aa6812f21554bdfd54f2}"
|
||||||
if [[ "${update:-}" ]] || [[ "$IMAGEMAGICK_REVISION" != "$(grep 'imagemagick' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
if [[ "$IMAGEMAGICK_REVISION" != "$(grep 'imagemagick' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
||||||
msg_info "Recompiling ImageMagick"
|
msg_info "Recompiling ImageMagick"
|
||||||
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
|
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
|
||||||
$STD git clone https://github.com/ImageMagick/ImageMagick.git "$SOURCE"
|
$STD git clone https://github.com/ImageMagick/ImageMagick.git "$SOURCE"
|
||||||
@@ -332,7 +331,7 @@ function compile_libvips() {
|
|||||||
SOURCE=$SOURCE_DIR/libvips
|
SOURCE=$SOURCE_DIR/libvips
|
||||||
# : "${LIBVIPS_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libvips.json)}"
|
# : "${LIBVIPS_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libvips.json)}"
|
||||||
: "${LIBVIPS_REVISION:=8fa37a64547e392d3808eed8d72adab7e02b3d00}"
|
: "${LIBVIPS_REVISION:=8fa37a64547e392d3808eed8d72adab7e02b3d00}"
|
||||||
if [[ "${update:-}" ]] || [[ "$LIBVIPS_REVISION" != "$(grep 'libvips' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
if [[ "$LIBVIPS_REVISION" != "$(grep 'libvips' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
||||||
msg_info "Recompiling libvips"
|
msg_info "Recompiling libvips"
|
||||||
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
|
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
|
||||||
$STD git clone https://github.com/libvips/libvips.git "$SOURCE"
|
$STD git clone https://github.com/libvips/libvips.git "$SOURCE"
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ function update_script() {
|
|||||||
msg_ok "Services Stopped"
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
TMP_TAR=$(mktemp --suffix=.tgz)
|
TMP_TAR=$(mktemp --suffix=.tgz)
|
||||||
curl -fL# -o "${TMP_TAR}" "https://github.com/ollama/ollama/releases/download/${RELEASE}/ollama-linux-amd64.tgz"
|
curl -fL# -C - -o "${TMP_TAR}" "https://github.com/ollama/ollama/releases/download/${RELEASE}/ollama-linux-amd64.tgz"
|
||||||
msg_info "Updating Ollama to ${RELEASE}"
|
msg_info "Updating Ollama to ${RELEASE}"
|
||||||
rm -rf /usr/local/lib/ollama
|
rm -rf /usr/local/lib/ollama
|
||||||
rm -rf /usr/local/bin/ollama
|
rm -rf /usr/local/bin/ollama
|
||||||
|
|||||||
@@ -33,11 +33,17 @@ function update_script() {
|
|||||||
OLLAMA_VERSION=$(ollama -v | awk '{print $NF}')
|
OLLAMA_VERSION=$(ollama -v | awk '{print $NF}')
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
|
RELEASE=$(curl -s https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
|
||||||
if [ "$OLLAMA_VERSION" != "$RELEASE" ]; then
|
if [ "$OLLAMA_VERSION" != "$RELEASE" ]; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop ollama
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
curl -fsSLO https://ollama.com/download/ollama-linux-amd64.tgz
|
||||||
rm -rf /usr/lib/ollama
|
rm -rf /usr/lib/ollama
|
||||||
rm -rf /usr/bin/ollama
|
rm -rf /usr/bin/ollama
|
||||||
curl -fsSLO https://ollama.com/download/ollama-linux-amd64.tgz
|
|
||||||
tar -C /usr -xzf ollama-linux-amd64.tgz
|
tar -C /usr -xzf ollama-linux-amd64.tgz
|
||||||
rm -rf ollama-linux-amd64.tgz
|
rm -rf ollama-linux-amd64.tgz
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start ollama
|
||||||
|
msg_info "Started Service"
|
||||||
msg_ok "Ollama updated to version $RELEASE"
|
msg_ok "Ollama updated to version $RELEASE"
|
||||||
else
|
else
|
||||||
msg_ok "Ollama is already up to date."
|
msg_ok "Ollama is already up to date."
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ function update_script() {
|
|||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
cp /opt/palmr/apps/server/.env /opt/palmr.env
|
cp /opt/palmr/apps/server/.env /opt/palmr.env
|
||||||
|
rm -rf /opt/palmr
|
||||||
fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr"
|
fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr"
|
||||||
|
|
||||||
PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)"
|
PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)"
|
||||||
@@ -42,9 +43,9 @@ function update_script() {
|
|||||||
cd /opt/palmr/apps/server
|
cd /opt/palmr/apps/server
|
||||||
mv /opt/palmr.env /opt/palmr/apps/server/.env
|
mv /opt/palmr.env /opt/palmr/apps/server/.env
|
||||||
$STD pnpm install
|
$STD pnpm install
|
||||||
$STD pnpm dlx prisma generate
|
$STD npx prisma generate
|
||||||
$STD pnpm dlx prisma migrate deploy
|
$STD npx prisma migrate deploy
|
||||||
$STD pnpm dlx prisma db push
|
$STD npx prisma db push
|
||||||
$STD pnpm build
|
$STD pnpm build
|
||||||
|
|
||||||
cd /opt/palmr/apps/web
|
cd /opt/palmr/apps/web
|
||||||
|
|||||||
@@ -1,73 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
|
||||||
# Copyright (c) 2021-2025 tteck
|
|
||||||
# Author: tteck (tteckster)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://stonith404.github.io/pingvin-share/introduction
|
|
||||||
|
|
||||||
APP="Pingvin"
|
|
||||||
var_tags="${var_tags:-sharing}"
|
|
||||||
var_cpu="${var_cpu:-2}"
|
|
||||||
var_ram="${var_ram:-2048}"
|
|
||||||
var_disk="${var_disk:-8}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-12}"
|
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
|
||||||
|
|
||||||
header_info "$APP"
|
|
||||||
variables
|
|
||||||
color
|
|
||||||
catch_errors
|
|
||||||
|
|
||||||
function update_script() {
|
|
||||||
header_info
|
|
||||||
check_container_storage
|
|
||||||
check_container_resources
|
|
||||||
if [[ ! -d /opt/pingvin-share ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/stonith404/pingvin-share/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
|
||||||
if [[ ! -f /opt/pingvin_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/pingvin_version.txt)" ]]; then
|
|
||||||
|
|
||||||
msg_info "Stopping Pingvin Share"
|
|
||||||
systemctl stop pm2-root.service
|
|
||||||
msg_ok "Stopped Pingvin Share"
|
|
||||||
|
|
||||||
msg_info "Updating Pingvin Share to v${RELEASE}"
|
|
||||||
cd /opt
|
|
||||||
curl -fsSL "https://github.com/stonith404/pingvin-share/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/stonith404/pingvin-share/archive/refs/tags/v${RELEASE}.zip")
|
|
||||||
$STD unzip v${RELEASE}.zip
|
|
||||||
cp -rf pingvin-share-${RELEASE}/* /opt/pingvin-share
|
|
||||||
cd /opt/pingvin-share
|
|
||||||
cd backend
|
|
||||||
$STD npm install
|
|
||||||
$STD npm run build
|
|
||||||
cd ../frontend
|
|
||||||
$STD npm install
|
|
||||||
$STD npm run build
|
|
||||||
echo "${RELEASE}" >"/opt/pingvin_version.txt"
|
|
||||||
rm -rf /opt/v${RELEASE}.zip
|
|
||||||
rm -rf /opt/pingvin-share-${RELEASE}
|
|
||||||
msg_ok "Updated Pingvin Share to v${RELEASE}"
|
|
||||||
|
|
||||||
msg_info "Starting Pingvin Share"
|
|
||||||
systemctl start pm2-root.service
|
|
||||||
msg_ok "Started Pingvin Share"
|
|
||||||
|
|
||||||
msg_ok "Updated Successfully"
|
|
||||||
exit
|
|
||||||
else
|
|
||||||
msg_ok "No update required. Pingvin Share is already at v${RELEASE}."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
start
|
|
||||||
build_container
|
|
||||||
description
|
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
|
||||||
25
ct/planka.sh
25
ct/planka.sh
@@ -34,12 +34,13 @@ function update_script() {
|
|||||||
msg_ok "Stopped $APP"
|
msg_ok "Stopped $APP"
|
||||||
|
|
||||||
msg_info "Backing up data"
|
msg_info "Backing up data"
|
||||||
mkdir -p /opt/planka-backup/{favicons,user-avatars,background-images,attachments}
|
BK="/opt/planka-backup"
|
||||||
mv /opt/planka/.env /opt/planka-backup
|
mkdir -p "$BK"/{favicons,user-avatars,background-images,attachments}
|
||||||
[ -d /opt/planka/public/favicons ] && find /opt/planka/public/favicons -maxdepth 1 -type f -exec mv -t /opt/planka-backup/favicons {} +
|
[ -f /opt/planka/.env ] && mv /opt/planka/.env "$BK"/
|
||||||
[ -d /opt/planka/public/user-avatars ] && find /opt/planka/public/user-avatars -maxdepth 1 -type f -exec mv -t /opt/planka-backup/user-avatars {} +
|
[ -d /opt/planka/public/favicons ] && cp -a /opt/planka/public/favicons/. "$BK/favicons/"
|
||||||
[ -d /opt/planka/public/background-images ] && find /opt/planka/public/background-images -maxdepth 1 -type f -exec mv -t /opt/planka-backup/background-images {} +
|
[ -d /opt/planka/public/user-avatars ] && cp -a /opt/planka/public/user-avatars/. "$BK/user-avatars/"
|
||||||
[ -d /opt/planka/private/attachments ] && find /opt/planka/private/attachments -maxdepth 1 -type f -exec mv -t /opt/planka-backup/attachments {} +
|
[ -d /opt/planka/public/background-images ] && cp -a /opt/planka/public/background-images/. "$BK/background-images/"
|
||||||
|
[ -d /opt/planka/private/attachments ] && cp -a /opt/planka/private/attachments/. "$BK/attachments/"
|
||||||
rm -rf /opt/planka
|
rm -rf /opt/planka
|
||||||
msg_ok "Backed up data"
|
msg_ok "Backed up data"
|
||||||
|
|
||||||
@@ -51,11 +52,13 @@ function update_script() {
|
|||||||
msg_ok "Updated Frontend"
|
msg_ok "Updated Frontend"
|
||||||
|
|
||||||
msg_info "Restoring data"
|
msg_info "Restoring data"
|
||||||
mv /opt/planka-backup/.env /opt/planka/
|
[ -f "$BK/.env" ] && mv "$BK/.env" /opt/planka/.env
|
||||||
[ -d /opt/planka-backup/favicons ] && find /opt/planka-backup/favicons -maxdepth 1 -type f -exec mv -t /opt/planka/public/favicons {} +
|
mkdir -p /opt/planka/public/{favicons,user-avatars,background-images} /opt/planka/private/attachments
|
||||||
[ -d /opt/planka-backup/user-avatars ] && find /opt/planka-backup/user-avatars -maxdepth 1 -type f -exec mv -t /opt/planka/public/user-avatars {} +
|
[ -d "$BK/favicons" ] && cp -a "$BK/favicons/." /opt/planka/public/favicons/
|
||||||
[ -d /opt/planka-backup/background-images ] && find /opt/planka-backup/background-images -maxdepth 1 -type f -exec mv -t /opt/planka/public/background-images {} +
|
[ -d "$BK/user-avatars" ] && cp -a "$BK/user-avatars/." /opt/planka/public/user-avatars/
|
||||||
[ -d /opt/planka-backup/attachments ] && find /opt/planka-backup/attachments -maxdepth 1 -type f -exec mv -t /opt/planka/private/attachments {} +
|
[ -d "$BK/background-images" ] && cp -a "$BK/background-images/." /opt/planka/public/background-images/
|
||||||
|
[ -d "$BK/attachments" ] && cp -a "$BK/attachments/." /opt/planka/private/attachments/
|
||||||
|
rm -rf "$BK"
|
||||||
msg_ok "Restored data"
|
msg_ok "Restored data"
|
||||||
|
|
||||||
msg_info "Starting $APP"
|
msg_info "Starting $APP"
|
||||||
|
|||||||
@@ -27,6 +27,16 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if grep -q 'Debian GNU/Linux 12' /etc/os-release && [ -f /etc/apt/sources.list.d/proxmox-release-bookworm.list ] && [ -f /etc/apt/sources.list.d/pdm-test.list ]; then
|
||||||
|
msg_info "Updating outdated outdated source formats"
|
||||||
|
echo "deb [signed-by=/usr/share/keyrings/proxmox-archive-keyring.gpg] http://download.proxmox.com/debian/pdm bookworm pdm-test" > /etc/apt/sources.list.d/pdm-test.list
|
||||||
|
curl -fsSL https://enterprise.proxmox.com/debian/proxmox-archive-keyring-trixie.gpg -o /usr/share/keyrings/proxmox-archive-keyring.gpg
|
||||||
|
rm -f /etc/apt/keyrings/proxmox-release-bookworm.gpg /etc/apt/sources.list.d/proxmox-release-bookworm.list
|
||||||
|
$STD apt-get update
|
||||||
|
msg_ok "Updated old sources"
|
||||||
|
fi
|
||||||
|
|
||||||
msg_info "Updating $APP LXC"
|
msg_info "Updating $APP LXC"
|
||||||
$STD apt-get update
|
$STD apt-get update
|
||||||
$STD apt-get -y upgrade
|
$STD apt-get -y upgrade
|
||||||
|
|||||||
13
ct/pulse.sh
13
ct/pulse.sh
@@ -28,10 +28,6 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -f ~/.pulse ]]; then
|
|
||||||
msg_error "Old Installation Found! Please recreate the container due big changes in the software."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if check_for_gh_release "pulse" "rcourtman/Pulse"; then
|
if check_for_gh_release "pulse" "rcourtman/Pulse"; then
|
||||||
SERVICE_PATH="/etc/systemd/system"
|
SERVICE_PATH="/etc/systemd/system"
|
||||||
msg_info "Stopping Services"
|
msg_info "Stopping Services"
|
||||||
@@ -43,19 +39,20 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
|
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
|
||||||
|
ln -sf /opt/pulse/bin/pulse /usr/local/bin/pulse
|
||||||
chown -R pulse:pulse /etc/pulse /opt/pulse
|
chown -R pulse:pulse /etc/pulse /opt/pulse
|
||||||
if [[ -f "$SERVICE_PATH"/pulse.service ]]; then
|
if [[ -f "$SERVICE_PATH"/pulse-backend.service ]]; then
|
||||||
mv "$SERVICE_PATH"/pulse.service "$SERVICE_PATH"/pulse-backend.service
|
mv "$SERVICE_PATH"/pulse-backend.service "$SERVICE_PATH"/pulse.service
|
||||||
fi
|
fi
|
||||||
sed -i -e 's|pulse/pulse|pulse/bin/pulse|' \
|
sed -i -e 's|pulse/pulse|pulse/bin/pulse|' \
|
||||||
-e 's/^Environment="API.*$//' "$SERVICE_PATH"/pulse-backend.service
|
-e 's/^Environment="API.*$//' "$SERVICE_PATH"/pulse.service
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
if grep -q 'pulse-home:/bin/bash' /etc/passwd; then
|
if grep -q 'pulse-home:/bin/bash' /etc/passwd; then
|
||||||
usermod -s /usr/sbin/nologin pulse
|
usermod -s /usr/sbin/nologin pulse
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Starting Services"
|
msg_info "Starting Services"
|
||||||
systemctl start pulse-backend
|
systemctl start pulse
|
||||||
msg_ok "Started Services"
|
msg_ok "Started Services"
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ function update_script() {
|
|||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "recyclarr" "recyclarr/recyclarr" "prebuild" "latest" "/usr/local/bin" "recyclarr-linux-x64.tar.xz"
|
fetch_and_deploy_gh_release "recyclarr" "recyclarr/recyclarr" "prebuild" "latest" "/usr/local/bin" "recyclarr-linux-x64.tar.xz"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start recyclarr
|
systemctl start recyclarr
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|||||||
54
ct/stylus.sh
Normal file
54
ct/stylus.sh
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: luismco
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/mmastrac/stylus
|
||||||
|
|
||||||
|
APP="Stylus"
|
||||||
|
var_tags="${var_tags:-network}"
|
||||||
|
var_cpu="${var_cpu:-1}"
|
||||||
|
var_ram="${var_ram:-1024}"
|
||||||
|
var_disk="${var_disk:-2}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-12}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
var_fuse="${var_fuse:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -d /opt/stylus ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
if check_for_gh_release "stylus" "mmastrac/stylus"; then
|
||||||
|
msg_info "Stopping $APP"
|
||||||
|
systemctl stop stylus
|
||||||
|
msg_ok "Stopped $APP"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "stylus" "mmastrac/stylus" "singlefile" "latest" "/usr/bin/" "*_linux_amd64"
|
||||||
|
|
||||||
|
msg_info "Starting $APP"
|
||||||
|
systemctl start stylus
|
||||||
|
msg_ok "Started $APP"
|
||||||
|
msg_ok "Update Successful"
|
||||||
|
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}:8000${CL}"
|
||||||
52
ct/telegraf.sh
Normal file
52
ct/telegraf.sh
Normal 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: CrazyWolf13
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/influxdata/telegraf
|
||||||
|
|
||||||
|
APP="telegraf"
|
||||||
|
var_tags="${var_tags:-collector;metrics}"
|
||||||
|
var_cpu="${var_cpu:-1}"
|
||||||
|
var_ram="${var_ram:-1024}"
|
||||||
|
var_disk="${var_disk:-4}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-12}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -f /etc/telegraf/telegraf.conf ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Stopping $APP"
|
||||||
|
systemctl stop telegraf
|
||||||
|
msg_ok "Stopped $APP"
|
||||||
|
|
||||||
|
msg_info "Updating $APP"
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get upgrade telegraf -y
|
||||||
|
msg_ok "Updated $APP"
|
||||||
|
|
||||||
|
msg_info "Starting $APP"
|
||||||
|
systemctl start telegraf
|
||||||
|
msg_ok "Started $APP"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
11
ct/tududi.sh
11
ct/tududi.sh
@@ -27,17 +27,22 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
NODE_VERSION="22" setup_nodejs
|
||||||
|
|
||||||
if check_for_gh_release "tududi" "chrisvel/tududi"; then
|
if check_for_gh_release "tududi" "chrisvel/tududi"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop tududi
|
systemctl stop tududi
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Remove and backup Files"
|
msg_info "Remove and backup Files"
|
||||||
|
DB="$(sed -n '/^DB_FILE/s/[^=]*=//p' /opt/tududi/backend/.env)"
|
||||||
|
export DB_FILE="$DB"
|
||||||
cp /opt/tududi/backend/.env /opt/tududi.env
|
cp /opt/tududi/backend/.env /opt/tududi.env
|
||||||
rm -rf /opt/tududi/backend/dist
|
rm -rf /opt/tududi/backend/dist
|
||||||
msg_ok "Backup and removed Files"
|
msg_ok "Backup and removed Files"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "tududi" "chrisvel/tududi" "tarball" "v0.80" "/opt/tududi"
|
fetch_and_deploy_gh_release "tududi" "chrisvel/tududi" "tarball" "latest" "/opt/tududi"
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
msg_info "Updating ${APP}"
|
||||||
cd /opt/tududi
|
cd /opt/tududi
|
||||||
@@ -48,6 +53,10 @@ function update_script() {
|
|||||||
mv ./public/locales ./backend/dist
|
mv ./public/locales ./backend/dist
|
||||||
mv ./public/favicon.* ./backend/dist
|
mv ./public/favicon.* ./backend/dist
|
||||||
mv /opt/tududi.env /opt/tududi/.env
|
mv /opt/tududi.env /opt/tududi/.env
|
||||||
|
sed -i -e 's|/tududi$|/tududi/backend|' \
|
||||||
|
-e 's|npm run start|bash /opt/tududi/backend/cmd/start.sh|' \
|
||||||
|
/etc/systemd/system/tududi.service
|
||||||
|
systemctl daemon-reload
|
||||||
msg_ok "Updated $APP"
|
msg_ok "Updated $APP"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
|
|||||||
63
ct/uhf.sh
Normal file
63
ct/uhf.sh
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
#!/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: zackwithak13
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://www.uhfapp.com/server
|
||||||
|
|
||||||
|
APP="UHF"
|
||||||
|
var_tags="${var_tags:-media}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-2048}"
|
||||||
|
var_disk="${var_disk:-8}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-12}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /opt/uhf-server ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
if check_for_gh_release "uhf-server" "swapplications/uhf-server-dist"; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop uhf-server
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP} LXC"
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get -y upgrade
|
||||||
|
msg_ok "Updated ${APP} LXC"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "comskip" "swapplications/comskip" "prebuild" "latest" "/opt/comskip" "comskip-x64-*.zip"
|
||||||
|
fetch_and_deploy_gh_release "uhf-server" "swapplications/uhf-server-dist" "prebuild" "latest" "/opt/uhf-server" "UHF.Server-linux-x64-*.zip"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start uhf-server
|
||||||
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7568${CL}"
|
||||||
@@ -28,6 +28,12 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
if ! dpkg -s git >/dev/null 2>&1; then
|
||||||
|
msg_info "Installing git"
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get install -y git
|
||||||
|
msg_ok "Installed git"
|
||||||
|
fi
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get -y upgrade
|
apt-get -y upgrade
|
||||||
if [[ -d /etc/wgdashboard ]]; then
|
if [[ -d /etc/wgdashboard ]]; then
|
||||||
|
|||||||
11
ct/wizarr.sh
11
ct/wizarr.sh
@@ -39,20 +39,23 @@ function update_script() {
|
|||||||
msg_info "Creating Backup"
|
msg_info "Creating Backup"
|
||||||
BACKUP_FILE="/opt/wizarr_backup_$(date +%F).tar.gz"
|
BACKUP_FILE="/opt/wizarr_backup_$(date +%F).tar.gz"
|
||||||
$STD tar -czf "$BACKUP_FILE" /opt/wizarr/{.env,start.sh} /opt/wizarr/database/ &>/dev/null
|
$STD tar -czf "$BACKUP_FILE" /opt/wizarr/{.env,start.sh} /opt/wizarr/database/ &>/dev/null
|
||||||
|
rm -rf /opt/wizarr/migrations/versions/*
|
||||||
msg_ok "Backup Created"
|
msg_ok "Backup Created"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "wizarr" "wizarrrr/wizarr"
|
fetch_and_deploy_gh_release "wizarr" "wizarrrr/wizarr"
|
||||||
|
|
||||||
msg_info "Updating $APP"
|
msg_info "Updating $APP"
|
||||||
cd /opt/wizarr
|
cd /opt/wizarr
|
||||||
$STD /usr/local/bin/uv lock
|
$STD /usr/local/bin/uv sync --frozen
|
||||||
$STD /usr/local/bin/uv sync --locked
|
$STD /usr/local/bin/uv run --frozen pybabel compile -d app/translations
|
||||||
$STD /usr/local/bin/uv run pybabel compile -d app/translations
|
|
||||||
$STD npm --prefix app/static install
|
$STD npm --prefix app/static install
|
||||||
$STD npm --prefix app/static run build:css
|
$STD npm --prefix app/static run build:css
|
||||||
mkdir -p ./.cache
|
mkdir -p ./.cache
|
||||||
$STD tar -xf "$BACKUP_FILE" --directory=/
|
$STD tar -xf "$BACKUP_FILE" --directory=/
|
||||||
$STD /usr/local/bin/uv run flask db upgrade
|
$STD /usr/local/bin/uv run --frozen flask db upgrade
|
||||||
|
if ! grep -q 'frozen' /opt/wizarr/start.sh; then
|
||||||
|
sed -i 's/run/& --frozen/' /opt/wizarr/start.sh
|
||||||
|
fi
|
||||||
msg_ok "Updated $APP"
|
msg_ok "Updated $APP"
|
||||||
|
|
||||||
msg_info "Starting $APP"
|
msg_info "Starting $APP"
|
||||||
|
|||||||
39
frontend/package-lock.json
generated
39
frontend/package-lock.json
generated
@@ -7666,11 +7666,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/fdir": {
|
"node_modules/fdir": {
|
||||||
"version": "6.4.6",
|
"version": "6.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz",
|
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
|
||||||
"integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==",
|
"integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.0.0"
|
||||||
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"picomatch": "^3 || ^4"
|
"picomatch": "^3 || ^4"
|
||||||
},
|
},
|
||||||
@@ -11432,9 +11435,9 @@
|
|||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
"node_modules/picomatch": {
|
"node_modules/picomatch": {
|
||||||
"version": "4.0.2",
|
"version": "4.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
|
||||||
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
|
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -13392,14 +13395,14 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/tinyglobby": {
|
"node_modules/tinyglobby": {
|
||||||
"version": "0.2.14",
|
"version": "0.2.15",
|
||||||
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
|
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
|
||||||
"integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
|
"integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fdir": "^6.4.4",
|
"fdir": "^6.5.0",
|
||||||
"picomatch": "^4.0.2"
|
"picomatch": "^4.0.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12.0.0"
|
"node": ">=12.0.0"
|
||||||
@@ -13922,19 +13925,19 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/vite": {
|
"node_modules/vite": {
|
||||||
"version": "7.0.0",
|
"version": "7.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-7.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-7.1.5.tgz",
|
||||||
"integrity": "sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==",
|
"integrity": "sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peer": true,
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"esbuild": "^0.25.0",
|
"esbuild": "^0.25.0",
|
||||||
"fdir": "^6.4.6",
|
"fdir": "^6.5.0",
|
||||||
"picomatch": "^4.0.2",
|
"picomatch": "^4.0.3",
|
||||||
"postcss": "^8.5.6",
|
"postcss": "^8.5.6",
|
||||||
"rollup": "^4.40.0",
|
"rollup": "^4.43.0",
|
||||||
"tinyglobby": "^0.2.14"
|
"tinyglobby": "^0.2.15"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"vite": "bin/vite.js"
|
"vite": "bin/vite.js"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-19",
|
"date_created": "2024-05-19",
|
||||||
"type": "addon",
|
"type": "addon",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": "https://docs.netbird.io/",
|
"documentation": "https://docs.netbird.io/",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "addon",
|
"type": "addon",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": "https://tailscale.com/kb/1017/install",
|
"documentation": "https://tailscale.com/kb/1017/install",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 3142,
|
"interface_port": 3142,
|
||||||
"documentation": "https://www.unix-ag.uni-kl.de/~bloch/acng/html/index.html",
|
"documentation": "https://www.unix-ag.uni-kl.de/~bloch/acng/html/index.html",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 13378,
|
"interface_port": 13378,
|
||||||
"documentation": "https://www.audiobookshelf.org/guides/",
|
"documentation": "https://www.audiobookshelf.org/guides/",
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 2,
|
"cpu": 2,
|
||||||
"ram": 2048,
|
"ram": 2048,
|
||||||
"hdd": 4,
|
"hdd": 5,
|
||||||
"os": "debian",
|
"os": "debian",
|
||||||
"version": "12"
|
"version": "12"
|
||||||
}
|
}
|
||||||
|
|||||||
35
frontend/public/json/autocaliweb.json
Normal file
35
frontend/public/json/autocaliweb.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"name": "Autocaliweb",
|
||||||
|
"slug": "autocaliweb",
|
||||||
|
"categories": [
|
||||||
|
13
|
||||||
|
],
|
||||||
|
"date_created": "2025-09-10",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": 8083,
|
||||||
|
"documentation": "https://github.com/gelbphoenix/autocaliweb/wiki",
|
||||||
|
"config_path": "/etc/autocaliweb",
|
||||||
|
"website": "https://github.com/gelbphoenix/autocaliweb",
|
||||||
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/autocaliweb.webp",
|
||||||
|
"description": "A modern web management system for eBooks, eComics and PDFs",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/autocaliweb.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 2,
|
||||||
|
"ram": 2048,
|
||||||
|
"hdd": 6,
|
||||||
|
"os": "Debian",
|
||||||
|
"version": "12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": "admin",
|
||||||
|
"password": "admin123"
|
||||||
|
},
|
||||||
|
"notes": []
|
||||||
|
}
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2025-01-20",
|
"date_created": "2025-01-20",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8090,
|
"interface_port": 8090,
|
||||||
"documentation": "https://beszel.dev/guide/what-is-beszel",
|
"documentation": "https://beszel.dev/guide/what-is-beszel",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 4000,
|
"interface_port": 4000,
|
||||||
"documentation": "https://0xerr0r.github.io/blocky/latest/configuration/",
|
"documentation": "https://0xerr0r.github.io/blocky/latest/configuration/",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2025-05-22",
|
"date_created": "2025-05-22",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": "https://github.com/favonia/cloudflare-ddns/blob/main/README.markdown",
|
"documentation": "https://github.com/favonia/cloudflare-ddns/blob/main/README.markdown",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": "https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/",
|
"documentation": "https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 4000,
|
"interface_port": 4000,
|
||||||
"documentation": "https://dashy.to/docs",
|
"documentation": "https://dashy.to/docs",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": true,
|
"privileged": true,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": "https://github.com/dresden-elektronik/deconz-rest-plugin/wiki",
|
"documentation": "https://github.com/dresden-elektronik/deconz-rest-plugin/wiki",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8112,
|
"interface_port": 8112,
|
||||||
"documentation": "https://www.deluge-torrent.org/userguide/",
|
"documentation": "https://www.deluge-torrent.org/userguide/",
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 2,
|
"cpu": 2,
|
||||||
"ram": 1024,
|
"ram": 1024,
|
||||||
"hdd": 4,
|
"hdd": 10,
|
||||||
"os": "debian",
|
"os": "debian",
|
||||||
"version": "12"
|
"version": "12"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8083,
|
"interface_port": 8083,
|
||||||
"documentation": "https://fhem.de/#Documentation",
|
"documentation": "https://fhem.de/#Documentation",
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2025-06-18",
|
"date_created": "2025-06-18",
|
||||||
"type": "addon",
|
"type": "addon",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8080,
|
"interface_port": 8080,
|
||||||
"documentation": "https://github.com/gtsteffaniak/filebrowser/wiki/Getting-Started",
|
"documentation": "https://github.com/gtsteffaniak/filebrowser/wiki/Getting-Started",
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "addon",
|
"type": "addon",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8080,
|
"interface_port": 8080,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8581,
|
"interface_port": 8581,
|
||||||
"documentation": "https://github.com/homebridge/homebridge/wiki",
|
"documentation": "https://github.com/homebridge/homebridge/wiki",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": true,
|
"privileged": true,
|
||||||
"interface_port": 8090,
|
"interface_port": 8090,
|
||||||
"documentation": "https://github.com/awawa-dev/HyperHDR/wiki",
|
"documentation": "https://github.com/awawa-dev/HyperHDR/wiki",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8086,
|
"interface_port": 8086,
|
||||||
"documentation": "https://docs.influxdata.com/",
|
"documentation": "https://docs.influxdata.com/",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2025-07-29",
|
"date_created": "2025-07-29",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": "https://doc.jeedom.com",
|
"documentation": "https://doc.jeedom.com",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-12-26",
|
"date_created": "2024-12-26",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8080,
|
"interface_port": 8080,
|
||||||
"documentation": "https://www.jenkins.io/doc/",
|
"documentation": "https://www.jenkins.io/doc/",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 5299,
|
"interface_port": 5299,
|
||||||
"documentation": "https://lazylibrarian.gitlab.io/lazylibrarian.gitlab.io/",
|
"documentation": "https://lazylibrarian.gitlab.io/lazylibrarian.gitlab.io/",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-08-06",
|
"date_created": "2024-08-06",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 17170,
|
"interface_port": 17170,
|
||||||
"documentation": "https://github.com/lldap/lldap/blob/main/README.md",
|
"documentation": "https://github.com/lldap/lldap/blob/main/README.md",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 3306,
|
"interface_port": 3306,
|
||||||
"documentation": "https://github.com/community-scripts/ProxmoxVE/discussions/192",
|
"documentation": "https://github.com/community-scripts/ProxmoxVE/discussions/192",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2025-01-30",
|
"date_created": "2025-01-30",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8065,
|
"interface_port": 8065,
|
||||||
"documentation": "https://docs.mattermost.com/",
|
"documentation": "https://docs.mattermost.com/",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-18",
|
"date_created": "2024-05-18",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 27017,
|
"interface_port": 27017,
|
||||||
"documentation": "https://www.mongodb.com/docs/manual/",
|
"documentation": "https://www.mongodb.com/docs/manual/",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": "https://mosquitto.org/documentation/",
|
"documentation": "https://mosquitto.org/documentation/",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2025-03-13",
|
"date_created": "2025-03-13",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 81,
|
"interface_port": 81,
|
||||||
"documentation": "https://github.com/ZoeyVid/NPMplus/blob/develop/README.md",
|
"documentation": "https://github.com/ZoeyVid/NPMplus/blob/develop/README.md",
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"default_credentials": {
|
"default_credentials": {
|
||||||
"username": "root",
|
"username": "admin@example.org",
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": [
|
"notes": [
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
"type": "info"
|
"type": "info"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "Application credentials: `cat /opt/.npm_pwd`",
|
"text": "Application credentials: `cat /opt/.npm_pwd` - if file not exist in LXC check docker logs for password with `docker logs npmplus`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": "https://docs.ntfy.sh/",
|
"documentation": "https://docs.ntfy.sh/",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 80,
|
"interface_port": 80,
|
||||||
"documentation": "https://docs.openmediavault.org/en/stable/",
|
"documentation": "https://docs.openmediavault.org/en/stable/",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8443,
|
"interface_port": 8443,
|
||||||
"documentation": "https://www.openhab.org/docs/",
|
"documentation": "https://www.openhab.org/docs/",
|
||||||
|
|||||||
@@ -33,11 +33,7 @@
|
|||||||
},
|
},
|
||||||
"notes": [
|
"notes": [
|
||||||
{
|
{
|
||||||
"text": "This LXC is very memory-hungry when updating; it requires at least 6GB RAM, but RAM may be reduced to as low as 2GB when running normally",
|
"text": "To use a bind mount for storage, create symlinks to your mount for both `uploads` and `temp-uploads` in `/opt/palmr_data`, and uncomment `CUSTOM_PATH` to add the path to your bind mount",
|
||||||
"type": "warning"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "To use a bind mount for storage, create symlinks to your mount for both `uploads` and `temp-uploads` in `/opt/palmr_data`",
|
|
||||||
"type": "info"
|
"type": "info"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": "https://github.com/leiweibau/Pi.Alert/blob/main/README.md",
|
"documentation": "https://github.com/leiweibau/Pi.Alert/blob/main/README.md",
|
||||||
@@ -31,10 +31,5 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": [
|
"notes": []
|
||||||
{
|
|
||||||
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
|
|
||||||
"type": "warning"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,10 +35,6 @@
|
|||||||
{
|
{
|
||||||
"text": "With Privileged/Unprivileged Hardware Acceleration Support",
|
"text": "With Privileged/Unprivileged Hardware Acceleration Support",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
|
|
||||||
"type": "warning"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,10 +43,6 @@
|
|||||||
{
|
{
|
||||||
"text": "Options to Install Portainer or Portainer Agent",
|
"text": "Options to Install Portainer or Portainer Agent",
|
||||||
"type": "warning"
|
"type": "warning"
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
|
|
||||||
"type": "warning"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2025-02-02",
|
"date_created": "2025-02-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 5232,
|
"interface_port": 5232,
|
||||||
"documentation": "https://radicale.org/master.html#documentation-1",
|
"documentation": "https://radicale.org/master.html#documentation-1",
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
"type": "default",
|
"type": "default",
|
||||||
"script": "ct/resilio-sync.sh",
|
"script": "ct/resiliosync.sh",
|
||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 2,
|
"cpu": 2,
|
||||||
"ram": 2048,
|
"ram": 2048,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": "https://oss.oetiker.ch/smokeping/doc/index.en.html",
|
"documentation": "https://oss.oetiker.ch/smokeping/doc/index.en.html",
|
||||||
|
|||||||
35
frontend/public/json/stylus.json
Normal file
35
frontend/public/json/stylus.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"name": "Stylus",
|
||||||
|
"slug": "stylus",
|
||||||
|
"categories": [
|
||||||
|
4
|
||||||
|
],
|
||||||
|
"date_created": "2025-09-12",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": 8000,
|
||||||
|
"documentation": "https://mmastrac.github.io/stylus/",
|
||||||
|
"website": "https://github.com/mmastrac/stylus",
|
||||||
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/stylus.webp",
|
||||||
|
"config_path": "/opt/stylus/config.yaml",
|
||||||
|
"description": "Stylus (style + status) is a lightweight status page for infrastructure and networks. Configure a set of bash scripts that test the various parts of your infrastructure, set up visualizations with minimal configuration, and Stylus will generate you a dashboard for your system.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/stylus.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 1,
|
||||||
|
"ram": 1024,
|
||||||
|
"hdd": 2,
|
||||||
|
"os": "debian",
|
||||||
|
"version": "12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": []
|
||||||
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Swizzin",
|
"name": "Swizzin",
|
||||||
"slug": "swizzin",
|
"slug": "swizzin",
|
||||||
"categories": [
|
"categories": [
|
||||||
15
|
13
|
||||||
],
|
],
|
||||||
"date_created": "2025-08-19",
|
"date_created": "2025-08-19",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8384,
|
"interface_port": 8384,
|
||||||
"documentation": "https://docs.syncthing.net/",
|
"documentation": "https://docs.syncthing.net/",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8181,
|
"interface_port": 8181,
|
||||||
"documentation": "https://github.com/Tautulli/Tautulli/wiki",
|
"documentation": "https://github.com/Tautulli/Tautulli/wiki",
|
||||||
|
|||||||
40
frontend/public/json/telegraf.json
Normal file
40
frontend/public/json/telegraf.json
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"name": "Telegraf",
|
||||||
|
"slug": "telegraf",
|
||||||
|
"categories": [
|
||||||
|
9
|
||||||
|
],
|
||||||
|
"date_created": "2025-09-11",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": null,
|
||||||
|
"documentation": "https://docs.influxdata.com/telegraf/v1/",
|
||||||
|
"config_path": "/etc/telegraf/telegraf.conf",
|
||||||
|
"website": "https://github.com/influxdata/telegraf",
|
||||||
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/telegraf.webp",
|
||||||
|
"description": "Telegraf collects and sends time series data from databases, systems, and IoT sensors. It has no external dependencies, is easy to install, and requires minimal memory.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/telegraf.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 1,
|
||||||
|
"ram": 1024,
|
||||||
|
"hdd": 4,
|
||||||
|
"os": "Debian",
|
||||||
|
"version": "12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"text": "Make sure to configure an output for the telegraf config and start the service with `systemctl start telegraf`.",
|
||||||
|
"type": "info"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
35
frontend/public/json/uhf.json
Normal file
35
frontend/public/json/uhf.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"name": "UHF Server",
|
||||||
|
"slug": "uhf",
|
||||||
|
"categories": [
|
||||||
|
13
|
||||||
|
],
|
||||||
|
"date_created": "2025-09-12",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": 7568,
|
||||||
|
"documentation": "https://www.uhfapp.com/server",
|
||||||
|
"website": "https://www.uhfapp.com/",
|
||||||
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/uhf.webp",
|
||||||
|
"config_path": "/etc/uhf-server/",
|
||||||
|
"description": "UHF Server is a powerful companion app that lets you seamlessly schedule and record your favorite shows from the UHF app.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/uhf.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 2,
|
||||||
|
"ram": 2048,
|
||||||
|
"hdd": 8,
|
||||||
|
"os": "Debian",
|
||||||
|
"version": "12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": []
|
||||||
|
}
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8443,
|
"interface_port": 8443,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
|
|||||||
@@ -1,53 +1,388 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"name": "inventree/InvenTree",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"date": "2025-09-14T23:37:56Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fallenbagel/jellyseerr",
|
||||||
|
"version": "preview-test-arm-builds",
|
||||||
|
"date": "2025-09-14T20:12:37Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "moghtech/komodo",
|
||||||
|
"version": "v1.19.4",
|
||||||
|
"date": "2025-09-14T19:51:50Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ErsatzTV/ErsatzTV",
|
||||||
|
"version": "v25.6.0",
|
||||||
|
"date": "2025-09-14T17:55:21Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "msgbyte/tianji",
|
||||||
|
"version": "v1.25.8",
|
||||||
|
"date": "2025-09-14T16:50:23Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Lidarr/Lidarr",
|
||||||
|
"version": "v2.13.3.4711",
|
||||||
|
"date": "2025-08-28T20:06:24Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ellite/Wallos",
|
||||||
|
"version": "v4.2.0",
|
||||||
|
"date": "2025-09-14T14:49:18Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "karakeep-app/karakeep",
|
||||||
|
"version": "cli/v0.27.1",
|
||||||
|
"date": "2025-09-14T14:48:48Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "docmost/docmost",
|
||||||
|
"version": "v0.23.1",
|
||||||
|
"date": "2025-09-14T14:31:45Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "semaphoreui/semaphore",
|
||||||
|
"version": "v2.17.0-beta2",
|
||||||
|
"date": "2025-09-14T14:08:27Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "intri-in/manage-my-damn-life-nextjs",
|
||||||
|
"version": "v0.8.1",
|
||||||
|
"date": "2025-09-14T06:45:23Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Luligu/matterbridge",
|
||||||
|
"version": "3.2.7",
|
||||||
|
"date": "2025-09-14T06:35:13Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jackett/Jackett",
|
||||||
|
"version": "v0.23.20",
|
||||||
|
"date": "2025-09-14T05:53:28Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "jeedom/core",
|
||||||
|
"version": "4.4.20",
|
||||||
|
"date": "2025-09-14T00:27:06Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "steveiliop56/tinyauth",
|
||||||
|
"version": "v3.6.2",
|
||||||
|
"date": "2025-07-17T12:08:03Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "gtsteffaniak/filebrowser",
|
||||||
|
"version": "v0.8.5-beta",
|
||||||
|
"date": "2025-09-13T22:53:30Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mealie-recipes/mealie",
|
||||||
|
"version": "v3.2.0",
|
||||||
|
"date": "2025-09-13T21:27:07Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Ombi-app/Ombi",
|
||||||
|
"version": "v4.47.1",
|
||||||
|
"date": "2025-01-05T21:14:23Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "firefly-iii/firefly-iii",
|
||||||
|
"version": "v6.4.0",
|
||||||
|
"date": "2025-09-13T16:38:21Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "home-assistant/core",
|
||||||
|
"version": "2025.9.3",
|
||||||
|
"date": "2025-09-13T12:44:37Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "gotify/server",
|
||||||
|
"version": "v2.7.2",
|
||||||
|
"date": "2025-09-13T12:11:38Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wizarrrr/wizarr",
|
||||||
|
"version": "v2025.9.3",
|
||||||
|
"date": "2025-09-13T11:44:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "syncthing/syncthing",
|
||||||
|
"version": "v2.0.9",
|
||||||
|
"date": "2025-09-13T09:37:24Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "documenso/documenso",
|
||||||
|
"version": "v1.12.4",
|
||||||
|
"date": "2025-09-13T08:08:55Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ollama/ollama",
|
||||||
|
"version": "v0.11.11-rc3",
|
||||||
|
"date": "2025-09-12T23:40:14Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "coder/code-server",
|
||||||
|
"version": "v4.103.2",
|
||||||
|
"date": "2025-08-25T23:30:54Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "YunoHost/yunohost",
|
"name": "YunoHost/yunohost",
|
||||||
"version": "debian/12.1.20",
|
"version": "debian/12.1.23",
|
||||||
"date": "2025-09-08T23:47:21Z"
|
"date": "2025-09-12T22:15:47Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "mongodb/mongo",
|
"name": "chrisvel/tududi",
|
||||||
"version": "r8.0.14-rc1",
|
"version": "v0.82-rc2",
|
||||||
"date": "2025-09-08T22:50:53Z"
|
"date": "2025-09-12T09:59:30Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "diced/zipline",
|
"name": "homarr-labs/homarr",
|
||||||
"version": "v4.3.1",
|
"version": "v1.37.0",
|
||||||
"date": "2025-09-08T22:26:23Z"
|
"date": "2025-09-12T19:19:14Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "booklore-app/booklore",
|
||||||
|
"version": "v1.3.0",
|
||||||
|
"date": "2025-09-12T19:06:32Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "immich-app/immich",
|
||||||
|
"version": "v1.142.0",
|
||||||
|
"date": "2025-09-12T18:52:03Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "keycloak/keycloak",
|
||||||
|
"version": "26.3.4",
|
||||||
|
"date": "2025-09-12T13:28:51Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "VictoriaMetrics/VictoriaMetrics",
|
||||||
|
"version": "pmm-6401-v1.125.1",
|
||||||
|
"date": "2025-09-03T20:17:18Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "nzbgetcom/nzbget",
|
||||||
|
"version": "v25.3",
|
||||||
|
"date": "2025-09-01T09:47:06Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "emqx/emqx",
|
||||||
|
"version": "e5.8.6-hotfix1",
|
||||||
|
"date": "2025-09-12T13:23:03Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cloudreve/cloudreve",
|
||||||
|
"version": "4.8.0",
|
||||||
|
"date": "2025-09-12T09:48:11Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wazuh/wazuh",
|
||||||
|
"version": "coverity-w37-4.13.0",
|
||||||
|
"date": "2025-09-10T15:46:01Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "MediaBrowser/Emby.Releases",
|
||||||
|
"version": "4.9.1.2",
|
||||||
|
"date": "2025-06-26T22:08:00Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mattermost/mattermost",
|
||||||
|
"version": "server/public/v0.1.19",
|
||||||
|
"date": "2025-09-11T22:57:26Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "go-vikunja/vikunja",
|
||||||
|
"version": "v1.0.0-rc0",
|
||||||
|
"date": "2025-08-17T18:47:15Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "tailscale/tailscale",
|
||||||
|
"version": "v1.88.1",
|
||||||
|
"date": "2025-09-11T22:19:51Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "cross-seed/cross-seed",
|
"name": "cross-seed/cross-seed",
|
||||||
"version": "v6.13.3",
|
"version": "v6.13.3",
|
||||||
"date": "2025-09-08T21:45:15Z"
|
"date": "2025-09-08T21:45:15Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "influxdata/influxdb",
|
||||||
|
"version": "v3.4.2",
|
||||||
|
"date": "2025-09-11T20:43:23Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "HabitRPG/habitica",
|
"name": "HabitRPG/habitica",
|
||||||
"version": "v5.40.2",
|
"version": "v5.41.0",
|
||||||
"date": "2025-09-08T20:59:44Z"
|
"date": "2025-09-11T19:46:20Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "booklore-app/booklore",
|
"name": "zerotier/ZeroTierOne",
|
||||||
"version": "v1.2.1",
|
"version": "1.16.0",
|
||||||
"date": "2025-09-08T19:31:07Z"
|
"date": "2025-09-11T18:01:57Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "mattermost/mattermost",
|
"name": "Dolibarr/dolibarr",
|
||||||
"version": "server/public/v0.1.18",
|
"version": "18.0.8",
|
||||||
"date": "2025-09-08T18:04:10Z"
|
"date": "2025-09-11T16:27:45Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "immich-app/immich",
|
"name": "Threadfin/Threadfin",
|
||||||
"version": "v1.141.1",
|
"version": "1.2.37",
|
||||||
"date": "2025-09-08T17:15:33Z"
|
"date": "2025-09-11T16:13:41Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "msgbyte/tianji",
|
"name": "prometheus/prometheus",
|
||||||
"version": "v1.24.27",
|
"version": "v0.306.0-rc.1",
|
||||||
"date": "2025-09-08T16:23:37Z"
|
"date": "2025-09-11T13:37:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "apache/tika",
|
||||||
|
"version": "3.2.3-rc1",
|
||||||
|
"date": "2025-09-11T14:37:50Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "rcourtman/Pulse",
|
||||||
|
"version": "v4.14.0",
|
||||||
|
"date": "2025-09-05T18:28:28Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bunkerity/bunkerweb",
|
||||||
|
"version": "v1.6.4",
|
||||||
|
"date": "2025-08-18T20:22:07Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Paymenter/Paymenter",
|
"name": "Paymenter/Paymenter",
|
||||||
"version": "v1.3.1",
|
"version": "v1.3.2",
|
||||||
"date": "2025-09-08T15:26:01Z"
|
"date": "2025-09-11T09:54:47Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cockpit-project/cockpit",
|
||||||
|
"version": "345.2",
|
||||||
|
"date": "2025-09-11T09:06:44Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "NLnetLabs/unbound",
|
||||||
|
"version": "release-1.24.0rc1",
|
||||||
|
"date": "2025-09-11T07:05:16Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "zitadel/zitadel",
|
||||||
|
"version": "v4.1.4",
|
||||||
|
"date": "2025-09-11T05:20:51Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "go-gitea/gitea",
|
||||||
|
"version": "v1.24.6",
|
||||||
|
"date": "2025-09-11T04:20:27Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "esphome/esphome",
|
||||||
|
"version": "2025.8.4",
|
||||||
|
"date": "2025-09-10T05:03:47Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "TandoorRecipes/recipes",
|
||||||
|
"version": "2.2.0",
|
||||||
|
"date": "2025-09-10T18:36:56Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fuma-nama/fumadocs",
|
||||||
|
"version": "fumadocs-mdx@11.9.1",
|
||||||
|
"date": "2025-09-10T15:26:47Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "linuxserver/Heimdall",
|
||||||
|
"version": "v2.7.5",
|
||||||
|
"date": "2025-09-10T15:16:49Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mongodb/mongo",
|
||||||
|
"version": "r7.0.25-alpha0",
|
||||||
|
"date": "2025-09-10T12:13:38Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "aceberg/WatchYourLAN",
|
||||||
|
"version": "2.1.4",
|
||||||
|
"date": "2025-09-10T12:08:09Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "glpi-project/glpi",
|
||||||
|
"version": "10.0.20",
|
||||||
|
"date": "2025-09-10T12:00:00Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "open-webui/open-webui",
|
||||||
|
"version": "v0.6.28",
|
||||||
|
"date": "2025-09-10T10:53:42Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "authelia/authelia",
|
||||||
|
"version": "v4.39.9",
|
||||||
|
"date": "2025-09-09T22:48:24Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "jenkinsci/jenkins",
|
||||||
|
"version": "jenkins-2.527",
|
||||||
|
"date": "2025-09-09T19:58:28Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "kyantech/Palmr",
|
||||||
|
"version": "v3.2.1-beta",
|
||||||
|
"date": "2025-09-09T19:47:13Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Part-DB/Part-DB-server",
|
||||||
|
"version": "v2.1.2",
|
||||||
|
"date": "2025-09-09T19:34:11Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "hargata/lubelog",
|
||||||
|
"version": "v1.5.1",
|
||||||
|
"date": "2025-09-09T16:56:49Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "element-hq/synapse",
|
||||||
|
"version": "v1.138.0",
|
||||||
|
"date": "2025-09-09T11:25:50Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "traefik/traefik",
|
||||||
|
"version": "v3.5.2",
|
||||||
|
"date": "2025-09-09T10:28:12Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "docker/compose",
|
||||||
|
"version": "v2.39.3",
|
||||||
|
"date": "2025-09-09T08:27:27Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "OctoPrint/OctoPrint",
|
||||||
|
"version": "1.11.3",
|
||||||
|
"date": "2025-09-09T08:03:31Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "readeck/readeck",
|
||||||
|
"version": "0.20.2",
|
||||||
|
"date": "2025-09-09T06:09:25Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "gotson/komga",
|
||||||
|
"version": "1.23.4",
|
||||||
|
"date": "2025-09-09T02:47:05Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Tautulli/Tautulli",
|
||||||
|
"version": "v2.16.0",
|
||||||
|
"date": "2025-09-09T01:05:45Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "diced/zipline",
|
||||||
|
"version": "v4.3.1",
|
||||||
|
"date": "2025-09-08T22:26:23Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "n8n-io/n8n",
|
"name": "n8n-io/n8n",
|
||||||
@@ -64,11 +399,6 @@
|
|||||||
"version": "16.2",
|
"version": "16.2",
|
||||||
"date": "2025-09-08T14:03:25Z"
|
"date": "2025-09-08T14:03:25Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "zitadel/zitadel",
|
|
||||||
"version": "v4.1.3",
|
|
||||||
"date": "2025-09-08T13:36:08Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "theonedev/onedev",
|
"name": "theonedev/onedev",
|
||||||
"version": "v12.0.10",
|
"version": "v12.0.10",
|
||||||
@@ -89,46 +419,11 @@
|
|||||||
"version": "latest",
|
"version": "latest",
|
||||||
"date": "2025-09-08T10:03:11Z"
|
"date": "2025-09-08T10:03:11Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "syncthing/syncthing",
|
|
||||||
"version": "v2.0.8",
|
|
||||||
"date": "2025-09-08T08:07:18Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "nzbgetcom/nzbget",
|
|
||||||
"version": "v25.3",
|
|
||||||
"date": "2025-09-01T09:47:06Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "TandoorRecipes/recipes",
|
|
||||||
"version": "2.1.1",
|
|
||||||
"date": "2025-09-08T06:39:30Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "firefly-iii/firefly-iii",
|
|
||||||
"version": "v6.3.2",
|
|
||||||
"date": "2025-08-19T04:08:36Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jackett/Jackett",
|
|
||||||
"version": "v0.22.2441",
|
|
||||||
"date": "2025-09-08T06:01:57Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "webmin/webmin",
|
"name": "webmin/webmin",
|
||||||
"version": "2.501",
|
"version": "2.501",
|
||||||
"date": "2025-09-08T04:50:25Z"
|
"date": "2025-09-08T04:50:25Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "jeedom/core",
|
|
||||||
"version": "4.4.19",
|
|
||||||
"date": "2025-09-08T00:27:05Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "steveiliop56/tinyauth",
|
|
||||||
"version": "v3.6.2",
|
|
||||||
"date": "2025-07-17T12:08:03Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "paperless-ngx/paperless-ngx",
|
"name": "paperless-ngx/paperless-ngx",
|
||||||
"version": "v2.18.4",
|
"version": "v2.18.4",
|
||||||
@@ -139,26 +434,11 @@
|
|||||||
"version": "v1.19.8",
|
"version": "v1.19.8",
|
||||||
"date": "2025-09-07T23:36:42Z"
|
"date": "2025-09-07T23:36:42Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Part-DB/Part-DB-server",
|
|
||||||
"version": "v2.1.1",
|
|
||||||
"date": "2025-09-07T21:59:53Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "minio/minio",
|
"name": "minio/minio",
|
||||||
"version": "RELEASE.2025-09-07T16-13-09Z",
|
"version": "RELEASE.2025-09-07T16-13-09Z",
|
||||||
"date": "2025-09-07T18:53:04Z"
|
"date": "2025-09-07T18:53:04Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "MediaBrowser/Emby.Releases",
|
|
||||||
"version": "4.9.1.2",
|
|
||||||
"date": "2025-06-26T22:08:00Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "karakeep-app/karakeep",
|
|
||||||
"version": "sdk/v0.27.0",
|
|
||||||
"date": "2025-09-07T17:49:04Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "dgtlmoon/changedetection.io",
|
"name": "dgtlmoon/changedetection.io",
|
||||||
"version": "0.50.12",
|
"version": "0.50.12",
|
||||||
@@ -166,13 +446,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "runtipi/runtipi",
|
"name": "runtipi/runtipi",
|
||||||
"version": "nightly",
|
"version": "v4.4.0",
|
||||||
"date": "2025-09-07T12:25:06Z"
|
"date": "2025-09-02T19:26:18Z"
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "semaphoreui/semaphore",
|
|
||||||
"version": "v2.17.0-beta1",
|
|
||||||
"date": "2025-09-07T08:56:50Z"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Radarr/Radarr",
|
"name": "Radarr/Radarr",
|
||||||
@@ -189,51 +464,11 @@
|
|||||||
"version": "v0.30.0",
|
"version": "v0.30.0",
|
||||||
"date": "2025-09-07T05:25:44Z"
|
"date": "2025-09-07T05:25:44Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Lidarr/Lidarr",
|
|
||||||
"version": "v2.13.3.4711",
|
|
||||||
"date": "2025-08-28T20:06:24Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "rcourtman/Pulse",
|
|
||||||
"version": "v4.14.0",
|
|
||||||
"date": "2025-09-05T18:28:28Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "bunkerity/bunkerweb",
|
|
||||||
"version": "v1.6.4",
|
|
||||||
"date": "2025-08-18T20:22:07Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "fuma-nama/fumadocs",
|
|
||||||
"version": "create-fumadocs-app@15.7.10",
|
|
||||||
"date": "2025-09-06T10:13:43Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Luligu/matterbridge",
|
|
||||||
"version": "3.2.6",
|
|
||||||
"date": "2025-09-06T07:50:15Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "forgejo/forgejo",
|
"name": "forgejo/forgejo",
|
||||||
"version": "v12.0.3",
|
"version": "v12.0.3",
|
||||||
"date": "2025-09-06T07:01:44Z"
|
"date": "2025-09-06T07:01:44Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "moghtech/komodo",
|
|
||||||
"version": "v1.19.3",
|
|
||||||
"date": "2025-09-05T21:32:38Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "homarr-labs/homarr",
|
|
||||||
"version": "v1.36.1",
|
|
||||||
"date": "2025-09-05T21:14:40Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "gtsteffaniak/filebrowser",
|
|
||||||
"version": "v0.8.4-beta",
|
|
||||||
"date": "2025-09-05T19:34:44Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Stirling-Tools/Stirling-PDF",
|
"name": "Stirling-Tools/Stirling-PDF",
|
||||||
"version": "v1.3.2",
|
"version": "v1.3.2",
|
||||||
@@ -244,31 +479,11 @@
|
|||||||
"version": "v0.12.7",
|
"version": "v0.12.7",
|
||||||
"date": "2025-09-05T18:11:36Z"
|
"date": "2025-09-05T18:11:36Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "keycloak/keycloak",
|
|
||||||
"version": "26.0.15",
|
|
||||||
"date": "2025-08-27T12:12:03Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Brandawg93/PeaNUT",
|
"name": "Brandawg93/PeaNUT",
|
||||||
"version": "v5.14.2",
|
"version": "v5.14.2",
|
||||||
"date": "2025-09-05T17:24:12Z"
|
"date": "2025-09-05T17:24:12Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "wizarrrr/wizarr",
|
|
||||||
"version": "2025.9.0",
|
|
||||||
"date": "2025-09-05T14:21:34Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "chrisvel/tududi",
|
|
||||||
"version": "v0.80",
|
|
||||||
"date": "2025-07-24T14:12:39Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "home-assistant/core",
|
|
||||||
"version": "2025.9.1",
|
|
||||||
"date": "2025-09-05T11:15:21Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "CrazyWolf13/streamlink-webui",
|
"name": "CrazyWolf13/streamlink-webui",
|
||||||
"version": "0.6",
|
"version": "0.6",
|
||||||
@@ -279,16 +494,6 @@
|
|||||||
"version": "2.0.0-beta.2-temp",
|
"version": "2.0.0-beta.2-temp",
|
||||||
"date": "2025-03-28T08:45:58Z"
|
"date": "2025-03-28T08:45:58Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "wazuh/wazuh",
|
|
||||||
"version": "coverity-w36-4.13.0",
|
|
||||||
"date": "2025-09-01T11:40:11Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "docmost/docmost",
|
|
||||||
"version": "v0.23.0",
|
|
||||||
"date": "2025-09-04T22:40:29Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "pelican-dev/panel",
|
"name": "pelican-dev/panel",
|
||||||
"version": "v1.0.0-beta25",
|
"version": "v1.0.0-beta25",
|
||||||
@@ -309,11 +514,6 @@
|
|||||||
"version": "v0.107.65",
|
"version": "v0.107.65",
|
||||||
"date": "2025-08-20T14:02:28Z"
|
"date": "2025-08-20T14:02:28Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "ollama/ollama",
|
|
||||||
"version": "v0.11.10",
|
|
||||||
"date": "2025-09-04T17:27:40Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "NodeBB/NodeBB",
|
"name": "NodeBB/NodeBB",
|
||||||
"version": "v4.5.1",
|
"version": "v4.5.1",
|
||||||
@@ -339,16 +539,6 @@
|
|||||||
"version": "v0.15.1",
|
"version": "v0.15.1",
|
||||||
"date": "2025-09-04T10:37:23Z"
|
"date": "2025-09-04T10:37:23Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "esphome/esphome",
|
|
||||||
"version": "2025.8.3",
|
|
||||||
"date": "2025-09-04T10:09:47Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "emqx/emqx",
|
|
||||||
"version": "v5.8.8",
|
|
||||||
"date": "2025-09-04T08:35:36Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "morpheus65535/bazarr",
|
"name": "morpheus65535/bazarr",
|
||||||
"version": "v1.5.3-beta.10",
|
"version": "v1.5.3-beta.10",
|
||||||
@@ -364,21 +554,11 @@
|
|||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"date": "2025-06-14T17:45:06Z"
|
"date": "2025-06-14T17:45:06Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "VictoriaMetrics/VictoriaMetrics",
|
|
||||||
"version": "pmm-6401-v1.125.1",
|
|
||||||
"date": "2025-09-03T20:17:18Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Graylog2/graylog2-server",
|
"name": "Graylog2/graylog2-server",
|
||||||
"version": "6.1.15",
|
"version": "6.1.15",
|
||||||
"date": "2025-09-03T14:51:37Z"
|
"date": "2025-09-03T14:51:37Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "glpi-project/glpi",
|
|
||||||
"version": "10.0.19",
|
|
||||||
"date": "2025-07-16T09:45:14Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "neo4j/neo4j",
|
"name": "neo4j/neo4j",
|
||||||
"version": "5.26.12",
|
"version": "5.26.12",
|
||||||
@@ -389,16 +569,6 @@
|
|||||||
"version": "v2.4.0p11",
|
"version": "v2.4.0p11",
|
||||||
"date": "2025-09-03T09:58:14Z"
|
"date": "2025-09-03T09:58:14Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "cockpit-project/cockpit",
|
|
||||||
"version": "346",
|
|
||||||
"date": "2025-09-03T09:13:05Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "jenkinsci/jenkins",
|
|
||||||
"version": "jenkins-2.526",
|
|
||||||
"date": "2025-09-02T18:44:42Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "apache/cassandra",
|
"name": "apache/cassandra",
|
||||||
"version": "cassandra-4.1.10",
|
"version": "cassandra-4.1.10",
|
||||||
@@ -414,36 +584,11 @@
|
|||||||
"version": "v4.4.0",
|
"version": "v4.4.0",
|
||||||
"date": "2025-09-02T17:04:25Z"
|
"date": "2025-09-02T17:04:25Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "element-hq/synapse",
|
|
||||||
"version": "v1.137.0",
|
|
||||||
"date": "2025-08-26T09:51:47Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "rabbitmq/rabbitmq-server",
|
"name": "rabbitmq/rabbitmq-server",
|
||||||
"version": "v4.1.4",
|
"version": "v4.1.4",
|
||||||
"date": "2025-09-02T14:26:24Z"
|
"date": "2025-09-02T14:26:24Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Dolibarr/dolibarr",
|
|
||||||
"version": "22.0.1",
|
|
||||||
"date": "2025-09-02T10:29:08Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "cloudreve/cloudreve",
|
|
||||||
"version": "4.7.0",
|
|
||||||
"date": "2025-09-02T06:02:43Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "ErsatzTV/ErsatzTV",
|
|
||||||
"version": "v25.5.0",
|
|
||||||
"date": "2025-09-02T01:00:11Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "authelia/authelia",
|
|
||||||
"version": "v4.39.8",
|
|
||||||
"date": "2025-09-02T00:44:45Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "postgres/postgres",
|
"name": "postgres/postgres",
|
||||||
"version": "REL_18_RC1",
|
"version": "REL_18_RC1",
|
||||||
@@ -474,11 +619,6 @@
|
|||||||
"version": "rrc_steady_12.2.0-17245430286.patch1",
|
"version": "rrc_steady_12.2.0-17245430286.patch1",
|
||||||
"date": "2025-09-01T14:19:14Z"
|
"date": "2025-09-01T14:19:14Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "fallenbagel/jellyseerr",
|
|
||||||
"version": "preview-issue-description",
|
|
||||||
"date": "2025-09-01T12:21:58Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "grokability/snipe-it",
|
"name": "grokability/snipe-it",
|
||||||
"version": "v8.3.1",
|
"version": "v8.3.1",
|
||||||
@@ -489,11 +629,6 @@
|
|||||||
"version": "v1.7.0",
|
"version": "v1.7.0",
|
||||||
"date": "2025-09-01T10:10:34Z"
|
"date": "2025-09-01T10:10:34Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "readeck/readeck",
|
|
||||||
"version": "0.20.1",
|
|
||||||
"date": "2025-09-01T07:35:48Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "LibreTranslate/LibreTranslate",
|
"name": "LibreTranslate/LibreTranslate",
|
||||||
"version": "v1.7.3",
|
"version": "v1.7.3",
|
||||||
@@ -539,31 +674,11 @@
|
|||||||
"version": "v25.07.2",
|
"version": "v25.07.2",
|
||||||
"date": "2025-08-28T16:46:05Z"
|
"date": "2025-08-28T16:46:05Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Threadfin/Threadfin",
|
|
||||||
"version": "1.2.37",
|
|
||||||
"date": "2025-08-28T16:25:55Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "influxdata/influxdb",
|
|
||||||
"version": "v3.4.1",
|
|
||||||
"date": "2025-08-28T13:56:00Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "open-webui/open-webui",
|
|
||||||
"version": "v0.6.26",
|
|
||||||
"date": "2025-08-28T10:40:30Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "garethgeorge/backrest",
|
"name": "garethgeorge/backrest",
|
||||||
"version": "v1.9.2",
|
"version": "v1.9.2",
|
||||||
"date": "2025-08-28T07:06:14Z"
|
"date": "2025-08-28T07:06:14Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "gotson/komga",
|
|
||||||
"version": "1.23.3",
|
|
||||||
"date": "2025-08-28T02:50:06Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "pocket-id/pocket-id",
|
"name": "pocket-id/pocket-id",
|
||||||
"version": "v1.10.0",
|
"version": "v1.10.0",
|
||||||
@@ -579,31 +694,11 @@
|
|||||||
"version": "v11.2.1",
|
"version": "v11.2.1",
|
||||||
"date": "2025-08-27T15:19:02Z"
|
"date": "2025-08-27T15:19:02Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "traefik/traefik",
|
|
||||||
"version": "v3.5.1",
|
|
||||||
"date": "2025-08-27T09:21:19Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "documenso/documenso",
|
|
||||||
"version": "v1.12.2-rc.6",
|
|
||||||
"date": "2025-08-26T01:17:43Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "coder/code-server",
|
|
||||||
"version": "v4.103.2",
|
|
||||||
"date": "2025-08-25T23:30:54Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "advplyr/audiobookshelf",
|
"name": "advplyr/audiobookshelf",
|
||||||
"version": "v2.29.0",
|
"version": "v2.29.0",
|
||||||
"date": "2025-08-25T22:43:20Z"
|
"date": "2025-08-25T22:43:20Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "mealie-recipes/mealie",
|
|
||||||
"version": "v3.1.2",
|
|
||||||
"date": "2025-08-25T18:00:52Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "sabnzbd/sabnzbd",
|
"name": "sabnzbd/sabnzbd",
|
||||||
"version": "4.5.3",
|
"version": "4.5.3",
|
||||||
@@ -624,11 +719,6 @@
|
|||||||
"version": "8.2.10",
|
"version": "8.2.10",
|
||||||
"date": "2025-08-25T01:26:55Z"
|
"date": "2025-08-25T01:26:55Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Ombi-app/Ombi",
|
|
||||||
"version": "v4.47.1",
|
|
||||||
"date": "2025-01-05T21:14:23Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "wavelog/wavelog",
|
"name": "wavelog/wavelog",
|
||||||
"version": "2.1",
|
"version": "2.1",
|
||||||
@@ -644,21 +734,11 @@
|
|||||||
"version": "v0.21.0",
|
"version": "v0.21.0",
|
||||||
"date": "2025-08-23T18:33:53Z"
|
"date": "2025-08-23T18:33:53Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "prometheus/prometheus",
|
|
||||||
"version": "v0.306.0-rc.0",
|
|
||||||
"date": "2025-08-21T13:31:03Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "caddyserver/caddy",
|
"name": "caddyserver/caddy",
|
||||||
"version": "v2.10.2",
|
"version": "v2.10.2",
|
||||||
"date": "2025-08-23T03:10:31Z"
|
"date": "2025-08-23T03:10:31Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "tailscale/tailscale",
|
|
||||||
"version": "v1.86.5",
|
|
||||||
"date": "2025-08-22T17:13:13Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "rclone/rclone",
|
"name": "rclone/rclone",
|
||||||
"version": "v1.71.0",
|
"version": "v1.71.0",
|
||||||
@@ -684,16 +764,6 @@
|
|||||||
"version": "v6.9.1",
|
"version": "v6.9.1",
|
||||||
"date": "2025-08-22T04:04:12Z"
|
"date": "2025-08-22T04:04:12Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "hargata/lubelog",
|
|
||||||
"version": "v1.5.0",
|
|
||||||
"date": "2025-08-21T17:33:22Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "kyantech/Palmr",
|
|
||||||
"version": "v3.2.0-beta",
|
|
||||||
"date": "2025-08-21T16:51:45Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "cloudflare/cloudflared",
|
"name": "cloudflare/cloudflared",
|
||||||
"version": "2025.8.1",
|
"version": "2025.8.1",
|
||||||
@@ -759,11 +829,6 @@
|
|||||||
"version": "deluge-2.2.1.dev0",
|
"version": "deluge-2.2.1.dev0",
|
||||||
"date": "2025-08-17T20:22:28Z"
|
"date": "2025-08-17T20:22:28Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "go-vikunja/vikunja",
|
|
||||||
"version": "v1.0.0-rc0",
|
|
||||||
"date": "2025-08-17T18:47:15Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "matze/wastebin",
|
"name": "matze/wastebin",
|
||||||
"version": "3.3.0",
|
"version": "3.3.0",
|
||||||
@@ -774,11 +839,6 @@
|
|||||||
"version": "v0.8.3",
|
"version": "v0.8.3",
|
||||||
"date": "2025-08-17T06:24:54Z"
|
"date": "2025-08-17T06:24:54Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "intri-in/manage-my-damn-life-nextjs",
|
|
||||||
"version": "v0.8.0-release",
|
|
||||||
"date": "2025-08-15T06:19:12Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "jellyfin/jellyfin",
|
"name": "jellyfin/jellyfin",
|
||||||
"version": "v10.10.7",
|
"version": "v10.10.7",
|
||||||
@@ -789,16 +849,6 @@
|
|||||||
"version": "v2.2.1",
|
"version": "v2.2.1",
|
||||||
"date": "2025-08-13T19:49:01Z"
|
"date": "2025-08-13T19:49:01Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "go-gitea/gitea",
|
|
||||||
"version": "v1.24.5",
|
|
||||||
"date": "2025-08-13T16:35:52Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "ellite/Wallos",
|
|
||||||
"version": "v4.1.1",
|
|
||||||
"date": "2025-08-13T11:58:04Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "requarks/wiki",
|
"name": "requarks/wiki",
|
||||||
"version": "v2.5.308",
|
"version": "v2.5.308",
|
||||||
@@ -829,16 +879,6 @@
|
|||||||
"version": "2.38.0",
|
"version": "2.38.0",
|
||||||
"date": "2025-08-08T21:47:19Z"
|
"date": "2025-08-08T21:47:19Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "docker/compose",
|
|
||||||
"version": "v2.39.2",
|
|
||||||
"date": "2025-08-08T16:06:06Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "apache/tika",
|
|
||||||
"version": "3.2.2",
|
|
||||||
"date": "2025-08-08T03:40:40Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "MariaDB/server",
|
"name": "MariaDB/server",
|
||||||
"version": "mariadb-12.0.2",
|
"version": "mariadb-12.0.2",
|
||||||
@@ -874,16 +914,6 @@
|
|||||||
"version": "v2.0.116",
|
"version": "v2.0.116",
|
||||||
"date": "2025-08-05T04:45:21Z"
|
"date": "2025-08-05T04:45:21Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Tautulli/Tautulli",
|
|
||||||
"version": "v2.15.3",
|
|
||||||
"date": "2025-08-03T17:27:16Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "linuxserver/Heimdall",
|
|
||||||
"version": "v2.7.4",
|
|
||||||
"date": "2025-08-02T16:51:19Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "inspircd/inspircd",
|
"name": "inspircd/inspircd",
|
||||||
"version": "v4.8.0",
|
"version": "v4.8.0",
|
||||||
@@ -949,11 +979,6 @@
|
|||||||
"version": "v2.19.0",
|
"version": "v2.19.0",
|
||||||
"date": "2025-07-27T22:25:00Z"
|
"date": "2025-07-27T22:25:00Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "aceberg/WatchYourLAN",
|
|
||||||
"version": "2.1.3",
|
|
||||||
"date": "2025-07-26T14:19:00Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "heiher/hev-socks5-server",
|
"name": "heiher/hev-socks5-server",
|
||||||
"version": "2.9.0",
|
"version": "2.9.0",
|
||||||
@@ -984,11 +1009,6 @@
|
|||||||
"version": "v0.25.0",
|
"version": "v0.25.0",
|
||||||
"date": "2025-07-16T14:57:02Z"
|
"date": "2025-07-16T14:57:02Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "NLnetLabs/unbound",
|
|
||||||
"version": "release-1.23.1",
|
|
||||||
"date": "2025-07-16T09:20:27Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "sbondCo/Watcharr",
|
"name": "sbondCo/Watcharr",
|
||||||
"version": "v2.1.1",
|
"version": "v2.1.1",
|
||||||
@@ -1079,11 +1099,6 @@
|
|||||||
"version": "v3.0.7",
|
"version": "v3.0.7",
|
||||||
"date": "2025-06-22T17:49:29Z"
|
"date": "2025-06-22T17:49:29Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "inventree/InvenTree",
|
|
||||||
"version": "0.17.14",
|
|
||||||
"date": "2025-06-21T23:43:04Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Sonarr/Sonarr",
|
"name": "Sonarr/Sonarr",
|
||||||
"version": "v4.0.15.2941",
|
"version": "v4.0.15.2941",
|
||||||
@@ -1119,11 +1134,6 @@
|
|||||||
"version": "v2.0.0.4645",
|
"version": "v2.0.0.4645",
|
||||||
"date": "2017-03-07T18:56:06Z"
|
"date": "2017-03-07T18:56:06Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "OctoPrint/OctoPrint",
|
|
||||||
"version": "1.11.2",
|
|
||||||
"date": "2025-06-10T11:07:14Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "glanceapp/glance",
|
"name": "glanceapp/glance",
|
||||||
"version": "v0.8.4",
|
"version": "v0.8.4",
|
||||||
@@ -1199,11 +1209,6 @@
|
|||||||
"version": "3.5.0",
|
"version": "3.5.0",
|
||||||
"date": "2025-05-05T16:28:24Z"
|
"date": "2025-05-05T16:28:24Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "gotify/server",
|
|
||||||
"version": "v2.6.3",
|
|
||||||
"date": "2025-04-27T09:05:42Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "TechnitiumSoftware/DnsServer",
|
"name": "TechnitiumSoftware/DnsServer",
|
||||||
"version": "v13.6.0",
|
"version": "v13.6.0",
|
||||||
@@ -1389,11 +1394,6 @@
|
|||||||
"version": "0.10.1",
|
"version": "0.10.1",
|
||||||
"date": "2024-11-10T10:25:45Z"
|
"date": "2024-11-10T10:25:45Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "zerotier/ZeroTierOne",
|
|
||||||
"version": "1.14.2",
|
|
||||||
"date": "2024-10-29T16:17:48Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "CorentinTh/it-tools",
|
"name": "CorentinTh/it-tools",
|
||||||
"version": "v2024.10.22-7ca5933",
|
"version": "v2024.10.22-7ca5933",
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ const inter = Inter({ subsets: ["latin"] });
|
|||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Proxmox VE Helper-Scripts",
|
title: "Proxmox VE Helper-Scripts",
|
||||||
description:
|
description:
|
||||||
"The official website for the Proxmox VE Helper-Scripts (Community) Repository. Featuring over 300+ scripts to help you manage your Proxmox VE environment.",
|
"The official website for the Proxmox VE Helper-Scripts (Community) repository. Featuring over 300+ scripts to help you manage your Proxmox Virtual Environment.",
|
||||||
applicationName: "Proxmox VE Helper-Scripts",
|
applicationName: "Proxmox VE Helper-Scripts",
|
||||||
generator: "Next.js",
|
generator: "Next.js",
|
||||||
referrer: "origin-when-cross-origin",
|
referrer: "origin-when-cross-origin",
|
||||||
@@ -57,7 +57,7 @@ export const metadata: Metadata = {
|
|||||||
openGraph: {
|
openGraph: {
|
||||||
title: "Proxmox VE Helper-Scripts",
|
title: "Proxmox VE Helper-Scripts",
|
||||||
description:
|
description:
|
||||||
"The official website for the Proxmox VE Helper-Scripts (Community) Repository. Featuring over 300+ scripts to help you manage your Proxmox VE environment.",
|
"The official website for the Proxmox VE Helper-Scripts (Community) repository. Featuring over 300+ scripts to help you manage your Proxmox Virtual Environment.",
|
||||||
url: `https://community-scripts.github.io/${basePath}/`,
|
url: `https://community-scripts.github.io/${basePath}/`,
|
||||||
siteName: "Proxmox VE Helper-Scripts",
|
siteName: "Proxmox VE Helper-Scripts",
|
||||||
images: [
|
images: [
|
||||||
@@ -76,7 +76,7 @@ export const metadata: Metadata = {
|
|||||||
title: "Proxmox VE Helper-Scripts",
|
title: "Proxmox VE Helper-Scripts",
|
||||||
creator: "@BramSuurdje",
|
creator: "@BramSuurdje",
|
||||||
description:
|
description:
|
||||||
"The official website for the Proxmox VE Helper-Scripts (Community) Repository. Featuring over 300+ scripts to help you manage your Proxmox VE environment.",
|
"The official website for the Proxmox VE Helper-Scripts (Community) repository. Featuring over 300+ scripts to help you manage your Proxmox Virtual Environment.",
|
||||||
images: [`https://community-scripts.github.io/${basePath}/defaultimg.png`],
|
images: [`https://community-scripts.github.io/${basePath}/defaultimg.png`],
|
||||||
},
|
},
|
||||||
manifest: "/manifest.webmanifest",
|
manifest: "/manifest.webmanifest",
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export default function manifest(): MetadataRoute.Manifest {
|
|||||||
name: "Proxmox VE Helper-Scripts",
|
name: "Proxmox VE Helper-Scripts",
|
||||||
short_name: "Proxmox VE Helper-Scripts",
|
short_name: "Proxmox VE Helper-Scripts",
|
||||||
description:
|
description:
|
||||||
"A Re-designed Front-end for the Proxmox VE Helper-Scripts Repository. Featuring over 200+ scripts to help you manage your Proxmox VE environment.",
|
"A redesigned front-end for the Proxmox VE Helper-Scripts repository. Featuring over 300+ scripts to help you manage your Proxmox Virtual Environment.",
|
||||||
theme_color: "#030712",
|
theme_color: "#030712",
|
||||||
background_color: "#030712",
|
background_color: "#030712",
|
||||||
display: "standalone",
|
display: "standalone",
|
||||||
|
|||||||
@@ -113,8 +113,8 @@ export default function Page() {
|
|||||||
<p>
|
<p>
|
||||||
With 300+ scripts to help you manage your
|
With 300+ scripts to help you manage your
|
||||||
{" "}
|
{" "}
|
||||||
<b>Proxmox VE environment</b>
|
<b>Proxmox VE</b>
|
||||||
. Whether you're a seasoned
|
, whether you're a seasoned
|
||||||
user or a newcomer, we've got you covered.
|
user or a newcomer, we've got you covered.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ export function MostViewedScripts({ items }: { items: Category[] }) {
|
|||||||
<div className="">
|
<div className="">
|
||||||
{mostViewedScripts.length > 0 && (
|
{mostViewedScripts.length > 0 && (
|
||||||
<>
|
<>
|
||||||
<h2 className="text-lg font-semibold">Most Viewed Scripts</h2>
|
<h2 className="text-lg font-semibold mb-1">Most Viewed Scripts</h2>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
<div className="min-w flex w-full flex-row flex-wrap gap-4">
|
<div className="min-w flex w-full flex-row flex-wrap gap-4">
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import type { VariantProps } from "class-variance-authority";
|
|||||||
|
|
||||||
import { cva } from "class-variance-authority";
|
import { cva } from "class-variance-authority";
|
||||||
import { StarIcon } from "lucide-react";
|
import { StarIcon } from "lucide-react";
|
||||||
|
import Link from "next/link";
|
||||||
|
|
||||||
import type { ButtonProps as ButtonPrimitiveProps } from "@/components/animate-ui/primitives/buttons/button";
|
import type { ButtonProps as ButtonPrimitiveProps } from "@/components/animate-ui/primitives/buttons/button";
|
||||||
import type { GithubStarsProps } from "@/components/animate-ui/primitives/animate/github-stars";
|
import type { GithubStarsProps } from "@/components/animate-ui/primitives/animate/github-stars";
|
||||||
@@ -71,6 +72,12 @@ function GitHubStarsButton({
|
|||||||
...props
|
...props
|
||||||
}: GitHubStarsButtonProps) {
|
}: GitHubStarsButtonProps) {
|
||||||
return (
|
return (
|
||||||
|
<Link
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
data-umami-event="github-stars"
|
||||||
|
href={`https://github.com/${username}/${repo}`}
|
||||||
|
>
|
||||||
<GithubStars
|
<GithubStars
|
||||||
asChild
|
asChild
|
||||||
username={username}
|
username={username}
|
||||||
@@ -95,6 +102,7 @@ function GitHubStarsButton({
|
|||||||
</GithubStarsParticles>
|
</GithubStarsParticles>
|
||||||
</ButtonPrimitive>
|
</ButtonPrimitive>
|
||||||
</GithubStars>
|
</GithubStars>
|
||||||
|
</Link>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,9 +10,9 @@ export const basePath = process.env.BASE_PATH || "";
|
|||||||
export const navbarLinks = [
|
export const navbarLinks = [
|
||||||
{
|
{
|
||||||
href: `https://github.com/community-scripts/${basePath}`,
|
href: `https://github.com/community-scripts/${basePath}`,
|
||||||
event: "Github",
|
event: "GitHub",
|
||||||
icon: <FaGithub className="h-4 w-4" />,
|
icon: <FaGithub className="h-4 w-4" />,
|
||||||
text: "Github",
|
text: "GitHub",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
href: `https://discord.gg/2wvnMDgdnU`,
|
href: `https://discord.gg/2wvnMDgdnU`,
|
||||||
@@ -22,9 +22,9 @@ export const navbarLinks = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
href: `https://github.com/community-scripts/${basePath}/blob/main/CHANGELOG.md`,
|
href: `https://github.com/community-scripts/${basePath}/blob/main/CHANGELOG.md`,
|
||||||
event: "Change Log",
|
event: "Changelog",
|
||||||
icon: <Scroll className="h-4 w-4" />,
|
icon: <Scroll className="h-4 w-4" />,
|
||||||
text: "Change Log",
|
text: "Changelog",
|
||||||
mobileHidden: true,
|
mobileHidden: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,12 +13,18 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing audiobookshelf"
|
msg_info "Installing Dependencies"
|
||||||
|
$STD apt-get install -y ffmpeg
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
msg_info "Setup audiobookshelf"
|
||||||
curl -fsSL https://advplyr.github.io/audiobookshelf-ppa/KEY.gpg >/etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc
|
curl -fsSL https://advplyr.github.io/audiobookshelf-ppa/KEY.gpg >/etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc
|
||||||
echo "deb [signed-by=/etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc] https://advplyr.github.io/audiobookshelf-ppa ./" >/etc/apt/sources.list.d/audiobookshelf.list
|
echo "deb [signed-by=/etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc] https://advplyr.github.io/audiobookshelf-ppa ./" >/etc/apt/sources.list.d/audiobookshelf.list
|
||||||
$STD apt-get update
|
$STD apt update
|
||||||
$STD apt install audiobookshelf
|
$STD apt install -y audiobookshelf
|
||||||
msg_ok "Installed audiobookshelf"
|
echo "FFMPEG_PATH=/usr/bin/ffmpeg" >>/etc/default/audiobookshelf
|
||||||
|
echo "FFPROBE_PATH=/usr/bin/ffprobe" >>/etc/default/audiobookshelf
|
||||||
|
msg_ok "Setup audiobookshelf"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
|
|||||||
330
install/autocaliweb-install.sh
Normal file
330
install/autocaliweb-install.sh
Normal file
@@ -0,0 +1,330 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2025 Community Scripts ORG
|
||||||
|
# Author: vhsdream
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/gelbphoenix/autocaliweb
|
||||||
|
|
||||||
|
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 --no-install-recommends \
|
||||||
|
python3-dev \
|
||||||
|
sqlite3 \
|
||||||
|
build-essential \
|
||||||
|
libldap2-dev \
|
||||||
|
libssl-dev \
|
||||||
|
libsasl2-dev \
|
||||||
|
imagemagick \
|
||||||
|
ghostscript \
|
||||||
|
libmagic1 \
|
||||||
|
libxi6 \
|
||||||
|
libxslt1.1 \
|
||||||
|
libxtst6 \
|
||||||
|
libxrandr2 \
|
||||||
|
libxkbfile1 \
|
||||||
|
libxcomposite1 \
|
||||||
|
libopengl0 \
|
||||||
|
libnss3 \
|
||||||
|
libxkbcommon0 \
|
||||||
|
libegl1 \
|
||||||
|
libxdamage1 \
|
||||||
|
libgl1 \
|
||||||
|
libglx-mesa0 \
|
||||||
|
xz-utils \
|
||||||
|
xdg-utils \
|
||||||
|
inotify-tools \
|
||||||
|
binutils \
|
||||||
|
unrar-free \
|
||||||
|
zip
|
||||||
|
msg_ok "Installed dependencies"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "kepubify" "pgaskin/kepubify" "singlefile" "latest" "/usr/bin" "kepubify-linux-64bit"
|
||||||
|
KEPUB_VERSION="$(/usr/bin/kepubify --version | awk '{print $2}')"
|
||||||
|
|
||||||
|
msg_info "Installing Calibre"
|
||||||
|
CALIBRE_RELEASE="$(curl -s https://api.github.com/repos/kovidgoyal/calibre/releases/latest | grep -o '"tag_name": "[^"]*' | cut -d'"' -f4)"
|
||||||
|
CALIBRE_VERSION=${CALIBRE_RELEASE#v}
|
||||||
|
curl -fsSL https://github.com/kovidgoyal/calibre/releases/download/${CALIBRE_RELEASE}/calibre-${CALIBRE_VERSION}-x86_64.txz -o /tmp/calibre.txz
|
||||||
|
mkdir -p /opt/calibre
|
||||||
|
$STD tar -xf /tmp/calibre.txz -C /opt/calibre
|
||||||
|
rm /tmp/calibre.txz
|
||||||
|
$STD /opt/calibre/calibre_postinstall
|
||||||
|
msg_ok "Calibre installed"
|
||||||
|
|
||||||
|
setup_uv
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "autocaliweb" "gelbphoenix/autocaliweb" "tarball" "latest" "/opt/autocaliweb"
|
||||||
|
|
||||||
|
msg_info "Configuring Autocaliweb"
|
||||||
|
INSTALL_DIR="/opt/autocaliweb"
|
||||||
|
CONFIG_DIR="/etc/autocaliweb"
|
||||||
|
CALIBRE_LIB_DIR="/opt/calibre-library"
|
||||||
|
INGEST_DIR="/opt/acw-book-ingest"
|
||||||
|
SERVICE_USER="acw"
|
||||||
|
SERVICE_GROUP="acw"
|
||||||
|
SCRIPTS_DIR="${INSTALL_DIR}/scripts"
|
||||||
|
export VIRTUAL_ENV="${INSTALL_DIR}/venv"
|
||||||
|
|
||||||
|
mkdir -p "$CONFIG_DIR"/{.config/calibre/plugins,log_archive,.acw_conversion_tmp}
|
||||||
|
mkdir -p "$CONFIG_DIR"/processed_books/{converted,imported,failed,fixed_originals}
|
||||||
|
mkdir -p "$INSTALL_DIR"/{metadata_change_logs,metadata_temp}
|
||||||
|
mkdir -p {"$CALIBRE_LIB_DIR","$INGEST_DIR"}
|
||||||
|
echo "$CALIBRE_VERSION" >"$INSTALL_DIR"/CALIBRE_RELEASE
|
||||||
|
echo "${KEPUB_VERSION#v}" >"$INSTALL_DIR"/KEPUBIFY_RELEASE
|
||||||
|
sed 's/^/v/' ~/.autocaliweb >"$INSTALL_DIR"/ACW_RELEASE
|
||||||
|
|
||||||
|
cd "$INSTALL_DIR"
|
||||||
|
$STD uv venv "$VIRTUAL_ENV"
|
||||||
|
$STD uv sync --all-extras --active
|
||||||
|
cat <<EOF >./dirs.json
|
||||||
|
{
|
||||||
|
"ingest_folder": "$INGEST_DIR",
|
||||||
|
"calibre_library_dir": "$CALIBRE_LIB_DIR",
|
||||||
|
"tmp_conversion_dir": "$CONFIG_DIR/.acw_conversion_tmp"
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
useradd -s /usr/sbin/nologin -d "$CONFIG_DIR" -M "$SERVICE_USER"
|
||||||
|
ln -sf "$CONFIG_DIR"/.config/calibre/plugins "$CONFIG_DIR"/calibre_plugins
|
||||||
|
cat <<EOF >"$INSTALL_DIR"/.env
|
||||||
|
ACW_INSTALL_DIR=$INSTALL_DIR
|
||||||
|
ACW_CONFIG_DIR=$CONFIG_DIR
|
||||||
|
ACW_USER=$SERVICE_USER
|
||||||
|
ACW_GROUP=$SERVICE_GROUP
|
||||||
|
LIBRARY_DIR=$CALIBRE_LIB_DIR
|
||||||
|
EOF
|
||||||
|
msg_ok "Configured Autocaliweb"
|
||||||
|
|
||||||
|
msg_info "Creating ACWSync Plugin for KOReader"
|
||||||
|
cd "$INSTALL_DIR"/koreader/plugins
|
||||||
|
PLUGIN_DIGEST="$(find acwsync.koplugin -type f -name "*.lua" -o -name "*.json" | sort | xargs sha256sum | sha256sum | cut -d' ' -f1)"
|
||||||
|
echo "Plugin files digest: $PLUGIN_DIGEST" >acwsync.koplugin/${PLUGIN_DIGEST}.digest
|
||||||
|
echo "Build date: $(date)" >>acwsync.koplugin/${PLUGIN_DIGEST}.digest
|
||||||
|
echo "Files included:" >>acwsync.koplugin/${PLUGIN_DIGEST}.digest
|
||||||
|
$STD zip -r koplugin.zip acwsync.koplugin/
|
||||||
|
cp -r koplugin.zip "$INSTALL_DIR"/cps/static
|
||||||
|
msg_ok "Created ACWSync Plugin"
|
||||||
|
|
||||||
|
msg_info "Initializing databases"
|
||||||
|
KEPUBIFY_PATH=$(command -v kepubify 2>/dev/null || echo "/usr/bin/kepubify")
|
||||||
|
EBOOK_CONVERT_PATH=$(command -v ebook-convert 2>/dev/null || echo "/usr/bin/ebook-convert")
|
||||||
|
CALIBRE_BIN_DIR=$(dirname "$EBOOK_CONVERT_PATH")
|
||||||
|
curl -fsSL https://github.com/gelbphoenix/autocaliweb/raw/refs/heads/main/library/metadata.db -o "$CALIBRE_LIB_DIR"/metadata.db
|
||||||
|
curl -fsSL https://github.com/gelbphoenix/autocaliweb/raw/refs/heads/main/library/app.db -o "$CONFIG_DIR"/app.db
|
||||||
|
sqlite3 "$CONFIG_DIR/app.db" <<EOS
|
||||||
|
UPDATE settings SET
|
||||||
|
config_kepubifypath='$KEPUBIFY_PATH',
|
||||||
|
config_converterpath='$EBOOK_CONVERT_PATH',
|
||||||
|
config_binariesdir='$CALIBRE_BIN_DIR',
|
||||||
|
config_calibre_dir='$CALIBRE_LIB_DIR',
|
||||||
|
config_logfile='$CONFIG_DIR/autocaliweb.log',
|
||||||
|
config_access_logfile='$CONFIG_DIR/access.log'
|
||||||
|
WHERE 1=1;
|
||||||
|
EOS
|
||||||
|
msg_ok "Initialized databases"
|
||||||
|
|
||||||
|
msg_info "Creating scripts and service files"
|
||||||
|
|
||||||
|
# auto-ingest watcher
|
||||||
|
cat <<EOF >"$SCRIPTS_DIR"/ingest_watcher.sh
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
INSTALL_PATH="$INSTALL_DIR"
|
||||||
|
WATCH_FOLDER=\$(grep -o '"ingest_folder": "[^"]*' \${INSTALL_PATH}/dirs.json | grep -o '[^"]*\$')
|
||||||
|
echo "[acw-ingest-service] Watching folder: \$WATCH_FOLDER"
|
||||||
|
|
||||||
|
# Monitor the folder for new files
|
||||||
|
/usr/bin/inotifywait -m -r --format="%e %w%f" -e close_write -e moved_to "\$WATCH_FOLDER" |
|
||||||
|
while read -r events filepath ; do
|
||||||
|
echo "[acw-ingest-service] New files detected - \$filepath - Starting Ingest Processor..."
|
||||||
|
# Use the Python interpreter from the virtual environment
|
||||||
|
\${INSTALL_PATH}/venv/bin/python \${INSTALL_PATH}/scripts/ingest_processor.py "\$filepath"
|
||||||
|
done
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# auto-zipper
|
||||||
|
cat <<EOF >"$SCRIPTS_DIR"/auto_zipper_wrapper.sh
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Source virtual environment
|
||||||
|
source ${INSTALL_DIR}/venv/bin/activate
|
||||||
|
|
||||||
|
WAKEUP="23:59"
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
# Replace expr with modern Bash arithmetic (safer and less prone to parsing issues)
|
||||||
|
# fix: expr: non-integer argument and sleep: missing operand
|
||||||
|
SECS=\$(( \$(date -d "\$WAKEUP" +%s) - \$(date -d "now" +%s) ))
|
||||||
|
if [[ \$SECS -lt 0 ]]; then
|
||||||
|
SECS=\$(( \$(date -d "tomorrow \$WAKEUP" +%s) - \$(date -d "now" +%s) ))
|
||||||
|
fi
|
||||||
|
echo "[acw-auto-zipper] Next run in \$SECS seconds."
|
||||||
|
sleep \$SECS &
|
||||||
|
wait \$!
|
||||||
|
|
||||||
|
# Use virtual environment python
|
||||||
|
python ${SCRIPTS_DIR}/auto_zip.py
|
||||||
|
|
||||||
|
if [[ \$? == 1 ]]; then
|
||||||
|
echo "[acw-auto-zipper] Error occurred during script initialisation."
|
||||||
|
elif [[ \$? == 2 ]]; then
|
||||||
|
echo "[acw-auto-zipper] Error occurred while zipping today's files."
|
||||||
|
elif [[ \$? == 3 ]]; then
|
||||||
|
echo "[acw-auto-zipper] Error occurred while trying to remove zipped files."
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 60
|
||||||
|
done
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# metadata change detector
|
||||||
|
cat <<EOF >"$SCRIPTS_DIR"/metadata_change_detector_wrapper.sh
|
||||||
|
#!/bin/bash
|
||||||
|
# metadata_change_detector_wrapper.sh - Wrapper for periodic metadata enforcement
|
||||||
|
|
||||||
|
# Source virtual environment
|
||||||
|
source ${INSTALL_DIR}/venv/bin/activate
|
||||||
|
|
||||||
|
# Configuration
|
||||||
|
CHECK_INTERVAL=300 # Check every 5 minutes (300 seconds)
|
||||||
|
METADATA_LOGS_DIR="${INSTALL_DIR}/metadata_change_logs"
|
||||||
|
|
||||||
|
echo "[metadata-change-detector] Starting metadata change detector service..."
|
||||||
|
echo "[metadata-change-detector] Checking for changes every \$CHECK_INTERVAL seconds"
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
# Check if there are any log files to process
|
||||||
|
if [ -d "\$METADATA_LOGS_DIR" ] && [ "\$(ls -A \$METADATA_LOGS_DIR 2>/dev/null)" ]; then
|
||||||
|
echo "[metadata-change-detector] Found metadata change logs, processing..."
|
||||||
|
|
||||||
|
# Process each log file
|
||||||
|
for log_file in "\$METADATA_LOGS_DIR"/*.json; do
|
||||||
|
if [ -f "\$log_file" ]; then
|
||||||
|
log_name=\$(basename "\$log_file")
|
||||||
|
echo "[metadata-change-detector] Processing log: \$log_name"
|
||||||
|
|
||||||
|
# Call cover_enforcer.py with the log file
|
||||||
|
${INSTALL_DIR}/venv/bin/python ${SCRIPTS_DIR}/cover_enforcer.py --log "\$log_name"
|
||||||
|
|
||||||
|
if [ \$? -eq 0 ]; then
|
||||||
|
echo "[metadata-change-detector] Successfully processed \$log_name"
|
||||||
|
else
|
||||||
|
echo "[metadata-change-detector] Error processing \$log_name"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo "[metadata-change-detector] No metadata changes detected"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "[metadata-change-detector] Sleeping for \$CHECK_INTERVAL seconds..."
|
||||||
|
sleep \$CHECK_INTERVAL
|
||||||
|
done
|
||||||
|
EOF
|
||||||
|
chmod +x "$SCRIPTS_DIR"/{ingest_watcher.sh,auto_zipper_wrapper.sh,metadata_change_detector_wrapper.sh}
|
||||||
|
chown -R "$SERVICE_USER":"$SERVICE_GROUP" {"$INSTALL_DIR","$CONFIG_DIR","$INGEST_DIR","$CALIBRE_LIB_DIR"}
|
||||||
|
|
||||||
|
cat <<EOF >/etc/systemd/system/autocaliweb.service
|
||||||
|
[Unit]
|
||||||
|
Description=Autocaliweb
|
||||||
|
After=network.target
|
||||||
|
Wants=network-online.target
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=$SERVICE_USER
|
||||||
|
Group=$SERVICE_GROUP
|
||||||
|
WorkingDirectory=$INSTALL_DIR
|
||||||
|
Environment=PATH=$INSTALL_DIR/venv/bin:/usr/bin:/bin
|
||||||
|
Environment=PYTHONPATH=$SCRIPTS_DIR:$INSTALL_DIR
|
||||||
|
Environment=PYTHONDONTWRITEBYTECODE=1
|
||||||
|
Environment=PYTHONUNBUFFERED=1
|
||||||
|
Environment=CALIBRE_DBPATH=$CONFIG_DIR
|
||||||
|
EnvironmentFile=$INSTALL_DIR/.env
|
||||||
|
ExecStart=$INSTALL_DIR/venv/bin/python $INSTALL_DIR/cps.py -p $CONFIG_DIR/app.db
|
||||||
|
|
||||||
|
Restart=always
|
||||||
|
RestartSec=10
|
||||||
|
StandardOutput=journal
|
||||||
|
StandardError=journal
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF >/etc/systemd/system/acw-ingest-service.service
|
||||||
|
[Unit]
|
||||||
|
Description=Autocaliweb Ingest Processor Service
|
||||||
|
After=autocaliweb.service
|
||||||
|
Requires=autocaliweb.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=${SERVICE_USER}
|
||||||
|
Group=${SERVICE_GROUP}
|
||||||
|
WorkingDirectory=${INSTALL_DIR}
|
||||||
|
Environment=CALIBRE_DBPATH=${CONFIG_DIR}
|
||||||
|
Environment=HOME=${CONFIG_DIR}
|
||||||
|
ExecStart=/bin/bash ${SCRIPTS_DIR}/ingest_watcher.sh
|
||||||
|
Restart=always
|
||||||
|
StandardOutput=journal
|
||||||
|
StandardError=journal
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF >/etc/systemd/system/acw-auto-zipper.service
|
||||||
|
[Unit]
|
||||||
|
Description=Autocaliweb Auto Zipper Service
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=${SERVICE_USER}
|
||||||
|
Group=${SERVICE_GROUP}
|
||||||
|
WorkingDirectory=${INSTALL_DIR}
|
||||||
|
Environment=CALIBRE_DBPATH=${CONFIG_DIR}
|
||||||
|
ExecStart=${SCRIPTS_DIR}/auto_zipper_wrapper.sh
|
||||||
|
Restart=always
|
||||||
|
StandardOutput=journal
|
||||||
|
StandardError=journal
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF >/etc/systemd/system/metadata-change-detector.service
|
||||||
|
[Unit]
|
||||||
|
Description=Autocaliweb Metadata Change Detector
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=${SERVICE_USER}
|
||||||
|
Group=${SERVICE_GROUP}
|
||||||
|
WorkingDirectory=${INSTALL_DIR}
|
||||||
|
ExecStart=/bin/bash ${SCRIPTS_DIR}/metadata_change_detector_wrapper.sh
|
||||||
|
Restart=always
|
||||||
|
StandardOutput=journal
|
||||||
|
StandardError=journal
|
||||||
|
Environment=CALIBRE_DBPATH=${CONFIG_DIR}
|
||||||
|
Environment=HOME=${CONFIG_DIR}
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
systemctl -q enable --now autocaliweb acw-ingest-service acw-auto-zipper metadata-change-detector
|
||||||
|
msg_ok "Created scripts and service files"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
# Copyright (c) 2021-2025 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://0xerr0r.github.io/blocky/latest/
|
# Source: https://0xerr0r.github.io/blocky
|
||||||
|
|
||||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||||
color
|
color
|
||||||
@@ -13,14 +13,12 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Blocky"
|
fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_linux_x86_64.tar.gz"
|
||||||
|
|
||||||
|
msg_info "Configuring Blocky"
|
||||||
if systemctl is-active systemd-resolved >/dev/null 2>&1; then
|
if systemctl is-active systemd-resolved >/dev/null 2>&1; then
|
||||||
systemctl disable -q --now systemd-resolved
|
systemctl disable -q --now systemd-resolved
|
||||||
fi
|
fi
|
||||||
mkdir /opt/blocky
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/0xERR0R/blocky/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
|
||||||
curl -fsSL "https://github.com/0xERR0R/blocky/releases/download/v${RELEASE}/blocky_v${RELEASE}_Linux_x86_64.tar.gz" | tar -xzf - -C /opt/blocky/
|
|
||||||
|
|
||||||
cat <<EOF >/opt/blocky/config.yml
|
cat <<EOF >/opt/blocky/config.yml
|
||||||
# configuration documentation: https://0xerr0r.github.io/blocky/latest/configuration/
|
# configuration documentation: https://0xerr0r.github.io/blocky/latest/configuration/
|
||||||
|
|
||||||
@@ -63,7 +61,7 @@ log:
|
|||||||
# optional: Log level (one from trace, debug, info, warn, error). Default: info
|
# optional: Log level (one from trace, debug, info, warn, error). Default: info
|
||||||
level: info
|
level: info
|
||||||
EOF
|
EOF
|
||||||
msg_ok "Installed Blocky"
|
msg_ok "Configured Blocky"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/blocky.service
|
cat <<EOF >/etc/systemd/system/blocky.service
|
||||||
@@ -77,7 +75,7 @@ ExecStart=/opt/blocky/./blocky --config config.yml
|
|||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
$STD systemctl enable --now blocky
|
$STD systemctl enable -q --now blocky
|
||||||
msg_ok "Created Service"
|
msg_ok "Created Service"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ $STD npm run build --configuration=production
|
|||||||
msg_ok "Built Frontend"
|
msg_ok "Built Frontend"
|
||||||
|
|
||||||
msg_info "Creating Environment"
|
msg_info "Creating Environment"
|
||||||
mkdir -p /opt/booklore_storage{/data,/books}
|
mkdir -p /opt/booklore_storage{/data,/books,/bookdrop}
|
||||||
cat <<EOF >/opt/booklore_storage/.env
|
cat <<EOF >/opt/booklore_storage/.env
|
||||||
DATABASE_URL=jdbc:mariadb://localhost:3306/$DB_NAME
|
DATABASE_URL=jdbc:mariadb://localhost:3306/$DB_NAME
|
||||||
DATABASE_USERNAME=$DB_USER
|
DATABASE_USERNAME=$DB_USER
|
||||||
@@ -55,6 +55,7 @@ BOOKLORE_PORT=6060
|
|||||||
|
|
||||||
BOOKLORE_DATA_PATH=/opt/booklore_storage/data
|
BOOKLORE_DATA_PATH=/opt/booklore_storage/data
|
||||||
BOOKLORE_BOOKS_PATH=/opt/booklore_storage/books
|
BOOKLORE_BOOKS_PATH=/opt/booklore_storage/books
|
||||||
|
BOOKLORE_BOOKDROP_PATH=/opt/booklore_storage/bookdrop
|
||||||
EOF
|
EOF
|
||||||
msg_ok "Created Environment"
|
msg_ok "Created Environment"
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,17 @@ $STD apt-get install -y lsb-release
|
|||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/bunkerity/bunkerweb/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/bunkerity/bunkerweb/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
msg_info "Installing BunkerWeb v${RELEASE} (Patience)"
|
msg_warn "WARNING: This script will run an external installer from a third-party source (install-bunkerweb.sh)."
|
||||||
|
msg_warn "The following code is NOT maintained or audited by our repository."
|
||||||
|
msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:"
|
||||||
|
msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://github.com/bunkerity/bunkerweb/raw/v${RELEASE}/misc/install-bunkerweb.sh"
|
||||||
|
echo
|
||||||
|
read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM
|
||||||
|
if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then
|
||||||
|
msg_error "Aborted by user. No changes have been made."
|
||||||
|
exit 10
|
||||||
|
fi
|
||||||
|
msg_info "Installing BunkerWeb (Patience)"
|
||||||
curl -fsSL -o install-bunkerweb.sh https://github.com/bunkerity/bunkerweb/raw/v${RELEASE}/misc/install-bunkerweb.sh
|
curl -fsSL -o install-bunkerweb.sh https://github.com/bunkerity/bunkerweb/raw/v${RELEASE}/misc/install-bunkerweb.sh
|
||||||
chmod +x install-bunkerweb.sh
|
chmod +x install-bunkerweb.sh
|
||||||
$STD ./install-bunkerweb.sh --yes
|
$STD ./install-bunkerweb.sh --yes
|
||||||
|
|||||||
@@ -13,6 +13,16 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
|
msg_warn "WARNING: This script will run an external installer from a third-party source (https://casaos.zimaspace.com/)."
|
||||||
|
msg_warn "The following code is NOT maintained or audited by our repository."
|
||||||
|
msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:"
|
||||||
|
msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://get.casaos.io/"
|
||||||
|
echo
|
||||||
|
read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM
|
||||||
|
if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then
|
||||||
|
msg_error "Aborted by user. No changes have been made."
|
||||||
|
exit 10
|
||||||
|
fi
|
||||||
msg_info "Installing CasaOS (Patience)"
|
msg_info "Installing CasaOS (Patience)"
|
||||||
DOCKER_CONFIG_PATH='/etc/docker/daemon.json'
|
DOCKER_CONFIG_PATH='/etc/docker/daemon.json'
|
||||||
mkdir -p $(dirname $DOCKER_CONFIG_PATH)
|
mkdir -p $(dirname $DOCKER_CONFIG_PATH)
|
||||||
|
|||||||
@@ -18,6 +18,17 @@ $STD apt-get install -y chromium
|
|||||||
$STD apt-get install -y xvfb
|
$STD apt-get install -y xvfb
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
msg_warn "WARNING: This script will run an external installer from a third-party source (https://getchannels.com)."
|
||||||
|
msg_warn "The following code is NOT maintained or audited by our repository."
|
||||||
|
msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:"
|
||||||
|
msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://getchannels.com/dvr/setup.sh"
|
||||||
|
echo
|
||||||
|
read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM
|
||||||
|
if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then
|
||||||
|
msg_error "Aborted by user. No changes have been made."
|
||||||
|
exit 10
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "$CTTYPE" == "0" ]]; then
|
if [[ "$CTTYPE" == "0" ]]; then
|
||||||
msg_info "Setting Up Hardware Acceleration"
|
msg_info "Setting Up Hardware Acceleration"
|
||||||
$STD apt-get -y install \
|
$STD apt-get -y install \
|
||||||
|
|||||||
@@ -155,7 +155,6 @@ msg_ok "Packages from Testing Repo Installed"
|
|||||||
$STD sudo -u postgres psql -c "ALTER DATABASE postgres REFRESH COLLATION VERSION;"
|
$STD sudo -u postgres psql -c "ALTER DATABASE postgres REFRESH COLLATION VERSION;"
|
||||||
$STD sudo -u postgres psql -c "ALTER DATABASE $DB_NAME REFRESH COLLATION VERSION;"
|
$STD sudo -u postgres psql -c "ALTER DATABASE $DB_NAME REFRESH COLLATION VERSION;"
|
||||||
|
|
||||||
msg_info "Compiling Custom Photo-processing Library (extreme patience)"
|
|
||||||
LD_LIBRARY_PATH=/usr/local/lib
|
LD_LIBRARY_PATH=/usr/local/lib
|
||||||
export LD_RUN_PATH=/usr/local/lib
|
export LD_RUN_PATH=/usr/local/lib
|
||||||
STAGING_DIR=/opt/staging
|
STAGING_DIR=/opt/staging
|
||||||
@@ -165,6 +164,7 @@ SOURCE_DIR=${STAGING_DIR}/image-source
|
|||||||
$STD git clone -b main "$BASE_REPO" "$BASE_DIR"
|
$STD git clone -b main "$BASE_REPO" "$BASE_DIR"
|
||||||
mkdir -p "$SOURCE_DIR"
|
mkdir -p "$SOURCE_DIR"
|
||||||
|
|
||||||
|
msg_info "(1/5) Compiling libjxl"
|
||||||
cd "$STAGING_DIR"
|
cd "$STAGING_DIR"
|
||||||
SOURCE=${SOURCE_DIR}/libjxl
|
SOURCE=${SOURCE_DIR}/libjxl
|
||||||
JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
|
JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
|
||||||
@@ -203,7 +203,9 @@ ldconfig /usr/local/lib
|
|||||||
$STD make clean
|
$STD make clean
|
||||||
cd "$STAGING_DIR"
|
cd "$STAGING_DIR"
|
||||||
rm -rf "$SOURCE"/{build,third_party}
|
rm -rf "$SOURCE"/{build,third_party}
|
||||||
|
msg_ok "(1/5) Compiled libjxl"
|
||||||
|
|
||||||
|
msg_info "(2/5) Compiling libheif"
|
||||||
SOURCE=${SOURCE_DIR}/libheif
|
SOURCE=${SOURCE_DIR}/libheif
|
||||||
# : "${LIBHEIF_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libheif.json)}"
|
# : "${LIBHEIF_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libheif.json)}"
|
||||||
: "${LIBHEIF_REVISION:=35dad50a9145332a7bfdf1ff6aef6801fb613d68}"
|
: "${LIBHEIF_REVISION:=35dad50a9145332a7bfdf1ff6aef6801fb613d68}"
|
||||||
@@ -227,7 +229,9 @@ ldconfig /usr/local/lib
|
|||||||
$STD make clean
|
$STD make clean
|
||||||
cd "$STAGING_DIR"
|
cd "$STAGING_DIR"
|
||||||
rm -rf "$SOURCE"/build
|
rm -rf "$SOURCE"/build
|
||||||
|
msg_ok "(2/5) Compiled libheif"
|
||||||
|
|
||||||
|
msg_info "(3/5) Compiling libraw"
|
||||||
SOURCE=${SOURCE_DIR}/libraw
|
SOURCE=${SOURCE_DIR}/libraw
|
||||||
# : "${LIBRAW_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libraw.json)}"
|
# : "${LIBRAW_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libraw.json)}"
|
||||||
: "${LIBRAW_REVISION:=09bea31181b43e97959ee5452d91e5bc66365f1f}"
|
: "${LIBRAW_REVISION:=09bea31181b43e97959ee5452d91e5bc66365f1f}"
|
||||||
@@ -241,7 +245,9 @@ $STD make install
|
|||||||
ldconfig /usr/local/lib
|
ldconfig /usr/local/lib
|
||||||
$STD make clean
|
$STD make clean
|
||||||
cd "$STAGING_DIR"
|
cd "$STAGING_DIR"
|
||||||
|
msg_ok "(3/5) Compiled libraw"
|
||||||
|
|
||||||
|
msg_info "(4/5) Compiling imagemagick"
|
||||||
SOURCE=$SOURCE_DIR/imagemagick
|
SOURCE=$SOURCE_DIR/imagemagick
|
||||||
# : "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/imagemagick.json)}"
|
# : "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/imagemagick.json)}"
|
||||||
: "${IMAGEMAGICK_REVISION:=8289a3388a085ad5ae81aa6812f21554bdfd54f2}"
|
: "${IMAGEMAGICK_REVISION:=8289a3388a085ad5ae81aa6812f21554bdfd54f2}"
|
||||||
@@ -254,7 +260,9 @@ $STD make install
|
|||||||
ldconfig /usr/local/lib
|
ldconfig /usr/local/lib
|
||||||
$STD make clean
|
$STD make clean
|
||||||
cd "$STAGING_DIR"
|
cd "$STAGING_DIR"
|
||||||
|
msg_ok "(4/5) Compiled imagemagick"
|
||||||
|
|
||||||
|
msg_info "(5/5) Compiling libvips"
|
||||||
SOURCE=$SOURCE_DIR/libvips
|
SOURCE=$SOURCE_DIR/libvips
|
||||||
# : "${LIBVIPS_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libvips.json)}"
|
# : "${LIBVIPS_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libvips.json)}"
|
||||||
: "${LIBVIPS_REVISION:=8fa37a64547e392d3808eed8d72adab7e02b3d00}"
|
: "${LIBVIPS_REVISION:=8fa37a64547e392d3808eed8d72adab7e02b3d00}"
|
||||||
@@ -267,6 +275,7 @@ $STD ninja install
|
|||||||
ldconfig /usr/local/lib
|
ldconfig /usr/local/lib
|
||||||
cd "$STAGING_DIR"
|
cd "$STAGING_DIR"
|
||||||
rm -rf "$SOURCE"/build
|
rm -rf "$SOURCE"/build
|
||||||
|
msg_ok "(5/5) Compiled libvips"
|
||||||
{
|
{
|
||||||
echo "imagemagick: $IMAGEMAGICK_REVISION"
|
echo "imagemagick: $IMAGEMAGICK_REVISION"
|
||||||
echo "libheif: $LIBHEIF_REVISION"
|
echo "libheif: $LIBHEIF_REVISION"
|
||||||
@@ -274,7 +283,7 @@ rm -rf "$SOURCE"/build
|
|||||||
echo "libraw: $LIBRAW_REVISION"
|
echo "libraw: $LIBRAW_REVISION"
|
||||||
echo "libvips: $LIBVIPS_REVISION"
|
echo "libvips: $LIBVIPS_REVISION"
|
||||||
} >~/.immich_library_revisions
|
} >~/.immich_library_revisions
|
||||||
msg_ok "Custom Photo-processing Library Compiled"
|
msg_ok "Custom Photo-processing Libraries Compiled Successfully"
|
||||||
|
|
||||||
INSTALL_DIR="/opt/${APPLICATION}"
|
INSTALL_DIR="/opt/${APPLICATION}"
|
||||||
UPLOAD_DIR="${INSTALL_DIR}/upload"
|
UPLOAD_DIR="${INSTALL_DIR}/upload"
|
||||||
@@ -285,9 +294,9 @@ GEO_DIR="${INSTALL_DIR}/geodata"
|
|||||||
mkdir -p "$INSTALL_DIR"
|
mkdir -p "$INSTALL_DIR"
|
||||||
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache}
|
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${INSTALL_DIR}"/cache}
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.141.1" "$SRC_DIR"
|
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.142.0" "$SRC_DIR"
|
||||||
|
|
||||||
msg_info "Installing ${APPLICATION} (more patience please)"
|
msg_info "Installing ${APPLICATION} (patience)"
|
||||||
|
|
||||||
cd "$SRC_DIR"/server
|
cd "$SRC_DIR"/server
|
||||||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||||
@@ -319,15 +328,14 @@ msg_ok "Installed Immich Server and Web Components"
|
|||||||
cd "$SRC_DIR"/machine-learning
|
cd "$SRC_DIR"/machine-learning
|
||||||
mkdir -p "$ML_DIR"
|
mkdir -p "$ML_DIR"
|
||||||
export VIRTUAL_ENV="${ML_DIR}/ml-venv"
|
export VIRTUAL_ENV="${ML_DIR}/ml-venv"
|
||||||
$STD uv venv "$VIRTUAL_ENV"
|
|
||||||
if [[ -f ~/.openvino ]]; then
|
if [[ -f ~/.openvino ]]; then
|
||||||
msg_info "Installing HW-accelerated machine-learning"
|
msg_info "Installing HW-accelerated machine-learning"
|
||||||
uv -q sync --extra openvino --no-cache --active
|
$STD uv 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"
|
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so"
|
||||||
msg_ok "Installed HW-accelerated machine-learning"
|
msg_ok "Installed HW-accelerated machine-learning"
|
||||||
else
|
else
|
||||||
msg_info "Installing machine-learning"
|
msg_info "Installing machine-learning"
|
||||||
uv -q sync --extra cpu --no-cache --active
|
$STD uv sync --extra cpu --no-cache --active
|
||||||
msg_ok "Installed machine-learning"
|
msg_ok "Installed machine-learning"
|
||||||
fi
|
fi
|
||||||
cd "$SRC_DIR"
|
cd "$SRC_DIR"
|
||||||
|
|||||||
@@ -17,6 +17,17 @@ msg_info "Installing Dependencies"
|
|||||||
$STD apt-get install -y ca-certificates
|
$STD apt-get install -y ca-certificates
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
msg_warn "WARNING: This script will run an external installer from a third-party source (https://iobroker.net/)."
|
||||||
|
msg_warn "The following code is NOT maintained or audited by our repository."
|
||||||
|
msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:"
|
||||||
|
msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://iobroker.net/install.sh"
|
||||||
|
echo
|
||||||
|
read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM
|
||||||
|
if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then
|
||||||
|
msg_error "Aborted by user. No changes have been made."
|
||||||
|
exit 10
|
||||||
|
fi
|
||||||
|
|
||||||
NODE_VERSION="22" setup_nodejs
|
NODE_VERSION="22" setup_nodejs
|
||||||
|
|
||||||
msg_info "Installing ioBroker (Patience)"
|
msg_info "Installing ioBroker (Patience)"
|
||||||
|
|||||||
@@ -19,6 +19,17 @@ $STD apt-get install -y \
|
|||||||
git
|
git
|
||||||
msg_ok "Dependencies installed"
|
msg_ok "Dependencies installed"
|
||||||
|
|
||||||
|
msg_warn "WARNING: This script will run an external installer from a third-party source (https://github.com/jeedom/)."
|
||||||
|
msg_warn "The following code is NOT maintained or audited by our repository."
|
||||||
|
msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:"
|
||||||
|
msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://raw.githubusercontent.com/jeedom/core/master/install/install.sh"
|
||||||
|
echo
|
||||||
|
read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM
|
||||||
|
if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then
|
||||||
|
msg_error "Aborted by user. No changes have been made."
|
||||||
|
exit 10
|
||||||
|
fi
|
||||||
|
|
||||||
DEFAULT_BRANCH="master"
|
DEFAULT_BRANCH="master"
|
||||||
REPO_URL="https://github.com/jeedom/core.git"
|
REPO_URL="https://github.com/jeedom/core.git"
|
||||||
|
|
||||||
|
|||||||
@@ -13,20 +13,32 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Kasm Workspaces"
|
|
||||||
KASM_VERSION=$(curl -fsSL 'https://www.kasmweb.com/downloads' | grep -o 'https://kasm-static-content.s3.amazonaws.com/kasm_release_[^"]*\.tar\.gz' | head -n 1 | sed -E 's/.*release_(.*)\.tar\.gz/\1/')
|
KASM_VERSION=$(curl -fsSL 'https://www.kasmweb.com/downloads' | grep -o 'https://kasm-static-content.s3.amazonaws.com/kasm_release_[^"]*\.tar\.gz' | head -n 1 | sed -E 's/.*release_(.*)\.tar\.gz/\1/')
|
||||||
|
|
||||||
|
msg_warn "WARNING: This script will run an external installer from a third-party source (https://www.kasmweb.com/)."
|
||||||
|
msg_warn "The following code is NOT maintained or audited by our repository."
|
||||||
|
msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:"
|
||||||
|
msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ install.sh inside tar.gz https://kasm-static-content.s3.amazonaws.com/kasm_release_${KASM_VERSION}.tar.gz"
|
||||||
|
echo
|
||||||
|
read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM
|
||||||
|
if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then
|
||||||
|
msg_error "Aborted by user. No changes have been made."
|
||||||
|
exit 10
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Installing Kasm Workspaces"
|
||||||
curl -fsSL -o "/opt/kasm_release_${KASM_VERSION}.tar.gz" "https://kasm-static-content.s3.amazonaws.com/kasm_release_${KASM_VERSION}.tar.gz"
|
curl -fsSL -o "/opt/kasm_release_${KASM_VERSION}.tar.gz" "https://kasm-static-content.s3.amazonaws.com/kasm_release_${KASM_VERSION}.tar.gz"
|
||||||
cd /opt
|
cd /opt
|
||||||
tar -xf "kasm_release_${KASM_VERSION}.tar.gz"
|
tar -xf "kasm_release_${KASM_VERSION}.tar.gz"
|
||||||
chmod +x /opt/kasm_release/install.sh
|
chmod +x /opt/kasm_release/install.sh
|
||||||
printf 'y\ny\ny\n4\n' | bash /opt/kasm_release/install.sh > ~/kasm-install.output 2>&1
|
printf 'y\ny\ny\n4\n' | bash /opt/kasm_release/install.sh >~/kasm-install.output 2>&1
|
||||||
awk '
|
awk '
|
||||||
/^Kasm UI Login Credentials$/ {capture=1}
|
/^Kasm UI Login Credentials$/ {capture=1}
|
||||||
capture {print}
|
capture {print}
|
||||||
/^Service Registration Token$/ {in_token=1}
|
/^Service Registration Token$/ {in_token=1}
|
||||||
in_token && /^-+$/ {dash_count++}
|
in_token && /^-+$/ {dash_count++}
|
||||||
in_token && dash_count==2 {exit}
|
in_token && dash_count==2 {exit}
|
||||||
' ~/kasm-install.output > ~/kasm.creds
|
' ~/kasm-install.output >~/kasm.creds
|
||||||
msg_ok "Installed Kasm Workspaces"
|
msg_ok "Installed Kasm Workspaces"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
|
|||||||
@@ -13,6 +13,17 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
|
msg_warn "WARNING: This script will run an external installer from a third-party source (https://mattermost.com/)."
|
||||||
|
msg_warn "The following code is NOT maintained or audited by our repository."
|
||||||
|
msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:"
|
||||||
|
msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://deb.packages.mattermost.com/repo-setup.sh"
|
||||||
|
echo
|
||||||
|
read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM
|
||||||
|
if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then
|
||||||
|
msg_error "Aborted by user. No changes have been made."
|
||||||
|
exit 10
|
||||||
|
fi
|
||||||
|
|
||||||
PG_VERSION="16" setup_postgresql
|
PG_VERSION="16" setup_postgresql
|
||||||
|
|
||||||
msg_info "Setting up PostgreSQL"
|
msg_info "Setting up PostgreSQL"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# Copyright (c) 2021-2025 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://www.turnkeylinux.org/nextcloud
|
# Source: https://nextcloudpi.com/
|
||||||
|
|
||||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||||
color
|
color
|
||||||
@@ -13,8 +13,19 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
|
msg_warn "WARNING: This script will run an external installer from a third-party source (https://nextcloudpi.com/)."
|
||||||
|
msg_warn "The following code is NOT maintained or audited by our repository."
|
||||||
|
msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:"
|
||||||
|
msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://raw.githubusercontent.com/nextcloud/nextcloudpi/master/install.sh"
|
||||||
|
echo
|
||||||
|
read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM
|
||||||
|
if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then
|
||||||
|
msg_error "Aborted by user. No changes have been made."
|
||||||
|
exit 10
|
||||||
|
fi
|
||||||
|
|
||||||
msg_info "Installing NextCloudPi (Patience)"
|
msg_info "Installing NextCloudPi (Patience)"
|
||||||
bash <(curl -fsSL https://raw.githubusercontent.com/nextcloud/nextcloudpi/master/install.sh) >/dev/null 2>&1
|
$STD bash <(curl -fsSL https://raw.githubusercontent.com/nextcloud/nextcloudpi/master/install.sh)
|
||||||
msg_ok "Installed NextCloudPi"
|
msg_ok "Installed NextCloudPi"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
|
|||||||
@@ -89,19 +89,36 @@ customize
|
|||||||
|
|
||||||
msg_info "Retrieving Default Login (Patience)"
|
msg_info "Retrieving Default Login (Patience)"
|
||||||
PASSWORD_FOUND=0
|
PASSWORD_FOUND=0
|
||||||
|
|
||||||
for i in {1..60}; do
|
for i in {1..60}; do
|
||||||
PASSWORD_LINE=$(docker logs "$CONTAINER_ID" 2>&1 | awk '/Creating a new user:/ { print; exit }')
|
PASSWORD_LINE=$(
|
||||||
if [[ -n "$PASSWORD_LINE" ]]; then
|
{ awk '/Creating a new user:/{print; exit}' < <(docker logs "$CONTAINER_ID" 2>&1); } || true
|
||||||
PASSWORD=$(echo "$PASSWORD_LINE" | awk -F 'password: ' '{print $2}')
|
)
|
||||||
echo -e "username: admin@example.org\npassword: $PASSWORD" >/opt/.npm_pwd
|
|
||||||
|
if [[ -n "${PASSWORD_LINE:-}" ]]; then
|
||||||
|
PASSWORD="${PASSWORD_LINE#*password: }"
|
||||||
|
printf 'username: admin@example.org\npassword: %s\n' "$PASSWORD" >/opt/.npm_pwd
|
||||||
msg_ok "Saved default login to /opt/.npm_pwd"
|
msg_ok "Saved default login to /opt/.npm_pwd"
|
||||||
PASSWORD_FOUND=1
|
PASSWORD_FOUND=1
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
|
if [[ $PASSWORD_FOUND -eq 0 ]]; then
|
||||||
|
PASSWORD_LINE=$(
|
||||||
|
timeout 30s bash -c '
|
||||||
|
docker logs -f --since=0s --tail=0 "$1" 2>&1 | awk "/Creating a new user:/{print; exit}"
|
||||||
|
' _ "$CONTAINER_ID" || true
|
||||||
|
)
|
||||||
|
if [[ -n "${PASSWORD_LINE:-}" ]]; then
|
||||||
|
PASSWORD="${PASSWORD_LINE#*password: }"
|
||||||
|
printf 'username: admin@example.org\npassword: %s\n' "$PASSWORD" >/opt/.npm_pwd
|
||||||
|
msg_ok "Saved default login to /opt/.npm_pwd (live)"
|
||||||
|
PASSWORD_FOUND=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ $PASSWORD_FOUND -eq 0 ]]; then
|
if [[ $PASSWORD_FOUND -eq 0 ]]; then
|
||||||
msg_error "Could not retrieve default login after 60 seconds."
|
msg_error "Could not retrieve default login after 120s."
|
||||||
echo -e "\nYou can manually check the container logs with:\n docker logs $CONTAINER_ID | grep 'Creating a new user:'\n"
|
echo -e "\nYou can manually check the container logs with:\n docker logs $CONTAINER_ID | grep 'Creating a new user:'\n"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ mkdir -p $OLLAMA_INSTALL_DIR
|
|||||||
OLLAMA_URL="https://github.com/ollama/ollama/releases/download/${RELEASE}/ollama-linux-amd64.tgz"
|
OLLAMA_URL="https://github.com/ollama/ollama/releases/download/${RELEASE}/ollama-linux-amd64.tgz"
|
||||||
TMP_TAR="/tmp/ollama.tgz"
|
TMP_TAR="/tmp/ollama.tgz"
|
||||||
echo -e "\n"
|
echo -e "\n"
|
||||||
if curl -fL# -o "$TMP_TAR" "$OLLAMA_URL"; then
|
if curl -fL# -C - -o "$TMP_TAR" "$OLLAMA_URL"; then
|
||||||
if tar -xzf "$TMP_TAR" -C "$OLLAMA_INSTALL_DIR"; then
|
if tar -xzf "$TMP_TAR" -C "$OLLAMA_INSTALL_DIR"; then
|
||||||
ln -sf "$OLLAMA_INSTALL_DIR/bin/ollama" "$BINDIR/ollama"
|
ln -sf "$OLLAMA_INSTALL_DIR/bin/ollama" "$BINDIR/ollama"
|
||||||
echo "${RELEASE}" >/opt/Ollama_version.txt
|
echo "${RELEASE}" >/opt/Ollama_version.txt
|
||||||
|
|||||||
@@ -26,13 +26,15 @@ sed -e 's/_ENCRYPTION=true/_ENCRYPTION=false/' \
|
|||||||
-e '/^# ENC/s/# //' \
|
-e '/^# ENC/s/# //' \
|
||||||
-e "s/ENCRYPTION_KEY=.*$/ENCRYPTION_KEY=$PALMR_KEY/" \
|
-e "s/ENCRYPTION_KEY=.*$/ENCRYPTION_KEY=$PALMR_KEY/" \
|
||||||
-e "s|file:.*$|file:$PALMR_DB\"|" \
|
-e "s|file:.*$|file:$PALMR_DB\"|" \
|
||||||
-e '/db"$/a\# Uncomment below when using reverse proxy\
|
-e "\|db\"$|a\\# Uncomment below when using a reverse proxy\\
|
||||||
# SECURE_SITE=true' \
|
# SECURE_SITE=true\\
|
||||||
|
# Uncomment and add your path if using symlinks for data storage\\
|
||||||
|
# CUSTOM_PATH=<path-to-your-bind-mount>" \
|
||||||
.env.example >./.env
|
.env.example >./.env
|
||||||
$STD pnpm install
|
$STD pnpm install
|
||||||
$STD pnpm dlx prisma generate
|
$STD npx prisma generate
|
||||||
$STD pnpm dlx prisma migrate deploy
|
$STD npx prisma migrate deploy
|
||||||
$STD pnpm dlx prisma db push
|
$STD npx prisma db push
|
||||||
$STD pnpm db:seed
|
$STD pnpm db:seed
|
||||||
$STD pnpm build
|
$STD pnpm build
|
||||||
msg_ok "Configured palmr backend"
|
msg_ok "Configured palmr backend"
|
||||||
|
|||||||
@@ -13,6 +13,17 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
|
msg_warn "WARNING: This script will run an external installer from a third-party source (https://pi-hole.net/)."
|
||||||
|
msg_warn "The following code is NOT maintained or audited by our repository."
|
||||||
|
msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:"
|
||||||
|
msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://install.pi-hole.net"
|
||||||
|
echo
|
||||||
|
read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM
|
||||||
|
if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then
|
||||||
|
msg_error "Aborted by user. No changes have been made."
|
||||||
|
exit 10
|
||||||
|
fi
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y ufw
|
$STD apt-get install -y ufw
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|||||||
@@ -1,52 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright (c) 2021-2025 tteck
|
|
||||||
# Author: tteck (tteckster)
|
|
||||||
# Co-Author: michelroegl-brunner
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://stonith404.github.io/pingvin-share/introduction
|
|
||||||
|
|
||||||
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 \
|
|
||||||
git
|
|
||||||
msg_ok "Installed Dependencies"
|
|
||||||
|
|
||||||
NODE_VERSION="22" NODE_MODULE="pm2" setup_nodejs
|
|
||||||
|
|
||||||
msg_info "Installing Pingvin Share (Patience)"
|
|
||||||
cd /opt
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/stonith404/pingvin-share/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
|
||||||
curl -fsSL "https://github.com/stonith404/pingvin-share/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
|
|
||||||
$STD unzip v${RELEASE}.zip
|
|
||||||
echo "${RELEASE}" >"/opt/pingvin_version.txt"
|
|
||||||
mv pingvin-share-${RELEASE} /opt/pingvin-share
|
|
||||||
cd /opt/pingvin-share/backend
|
|
||||||
$STD npm install
|
|
||||||
$STD npm run build
|
|
||||||
$STD pm2 start --name="pingvin-share-backend" npm -- run prod
|
|
||||||
cd ../frontend
|
|
||||||
sed -i '/"admin.config.smtp.allow-unauthorized-certificates":\|admin.config.smtp.allow-unauthorized-certificates.description":/,+1d' ./src/i18n/translations/fr-FR.ts
|
|
||||||
$STD npm install
|
|
||||||
$STD npm run build
|
|
||||||
$STD pm2 start --name="pingvin-share-frontend" npm -- run start
|
|
||||||
$STD pm2 startup systemd
|
|
||||||
$STD pm2 save
|
|
||||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
|
||||||
msg_ok "Installed Pingvin Share"
|
|
||||||
|
|
||||||
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"
|
|
||||||
@@ -14,11 +14,13 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Proxmox Datacenter Manager"
|
msg_info "Installing Proxmox Datacenter Manager"
|
||||||
curl -fsSL https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg | gpg --dearmor -o /etc/apt/keyrings/proxmox-release-bookworm.gpg
|
curl -fsSL https://enterprise.proxmox.com/debian/proxmox-archive-keyring-trixie.gpg -o /usr/share/keyrings/proxmox-archive-keyring.gpg
|
||||||
echo "deb [signed-by=/etc/apt/keyrings/proxmox-release-bookworm.gpg] http://download.proxmox.com/debian/pdm bookworm pdm-test " >/etc/apt/sources.list.d/proxmox-release-bookworm.list
|
echo "deb [signed-by=/usr/share/keyrings/proxmox-archive-keyring.gpg] http://download.proxmox.com/debian/pdm bookworm pdm-test " >/etc/apt/sources.list.d/pdm-test.list
|
||||||
$STD apt-get update
|
$STD apt-get update
|
||||||
$STD apt-get install -y \
|
DEBIAN_FRONTEND=noninteractive
|
||||||
proxmox-datacenter-manager \
|
$STD apt-get -o Dpkg::Options::="--force-confdef" \
|
||||||
|
-o Dpkg::Options::="--force-confold" \
|
||||||
|
install -y proxmox-datacenter-manager \
|
||||||
proxmox-datacenter-manager-ui
|
proxmox-datacenter-manager-ui
|
||||||
msg_ok "Installed Proxmox Datacenter Manager"
|
msg_ok "Installed Proxmox Datacenter Manager"
|
||||||
|
|
||||||
|
|||||||
@@ -30,11 +30,12 @@ fi
|
|||||||
|
|
||||||
mkdir -p /etc/pulse
|
mkdir -p /etc/pulse
|
||||||
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
|
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
|
||||||
|
ln -sf /opt/pulse/bin/pulse /usr/local/bin/pulse
|
||||||
chown -R pulse:pulse /etc/pulse /opt/pulse
|
chown -R pulse:pulse /etc/pulse /opt/pulse
|
||||||
msg_ok "Installed Pulse"
|
msg_ok "Installed Pulse"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/pulse-backend.service
|
cat <<EOF >/etc/systemd/system/pulse.service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Pulse Monitoring Server
|
Description=Pulse Monitoring Server
|
||||||
After=network.target
|
After=network.target
|
||||||
@@ -55,7 +56,7 @@ Environment="PULSE_DATA_DIR=/etc/pulse"
|
|||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
systemctl enable -q --now pulse-backend
|
systemctl enable -q --now pulse
|
||||||
msg_ok "Created Service"
|
msg_ok "Created Service"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ fetch_and_deploy_gh_release "recyclarr" "recyclarr/recyclarr" "prebuild" "latest
|
|||||||
|
|
||||||
msg_info "Configuring Recyclarr"
|
msg_info "Configuring Recyclarr"
|
||||||
mkdir -p /root/.config/recyclarr
|
mkdir -p /root/.config/recyclarr
|
||||||
recyclarr config create
|
$STD recyclarr config create
|
||||||
msg_ok "Configured Recyclarr"
|
msg_ok "Configured Recyclarr"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user