mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-09-13 07:10:51 +02:00
Compare commits
83 Commits
debian_13
...
2025-09-11
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 | ||
|
|
b6c0b50e79 | ||
|
|
0f07f1927e | ||
|
|
4493d86e51 | ||
|
|
fbfeeeb88f | ||
|
|
2366111bba | ||
|
|
5fb42b87f1 | ||
|
|
500c35c58d | ||
|
|
ca3446c90e | ||
|
|
4c3d42d5d1 | ||
|
|
299a10efe8 | ||
|
|
7adac2a342 | ||
|
|
eb58b10d75 | ||
|
|
5e46d81c45 | ||
|
|
2963926c45 | ||
|
|
d9a0b863a8 | ||
|
|
db6369f3c6 | ||
|
|
d450e263f0 |
108
CHANGELOG.md
108
CHANGELOG.md
@@ -10,16 +10,124 @@
|
|||||||
> [!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-12
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
### 🚀 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
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- CT's: fix missing variable declaration (actualBudget, openziti, umlautadaptarr) [@MickLesk](https://github.com/MickLesk) ([#7483](https://github.com/community-scripts/ProxmoxVE/pull/7483))
|
||||||
|
- karakeep: fix service file [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7482](https://github.com/community-scripts/ProxmoxVE/pull/7482))
|
||||||
- Update searxng-install.sh [@sebguy](https://github.com/sebguy) ([#7469](https://github.com/community-scripts/ProxmoxVE/pull/7469))
|
- Update searxng-install.sh [@sebguy](https://github.com/sebguy) ([#7469](https://github.com/community-scripts/ProxmoxVE/pull/7469))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Immich: bump to version 1.141.1 [@vhsdream](https://github.com/vhsdream) ([#7418](https://github.com/community-scripts/ProxmoxVE/pull/7418))
|
||||||
|
- [core]: switch all base_settings to variables [@MickLesk](https://github.com/MickLesk) ([#7479](https://github.com/community-scripts/ProxmoxVE/pull/7479))
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- RustDesk Server: Update the credentials info [@tremor021](https://github.com/tremor021) ([#7473](https://github.com/community-scripts/ProxmoxVE/pull/7473))
|
||||||
|
|
||||||
### 🌐 Website
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Format numerical values in DataFetcher component for better readability [@BramSuurdje](https://github.com/BramSuurdje) ([#7477](https://github.com/community-scripts/ProxmoxVE/pull/7477))
|
||||||
|
|
||||||
- #### ✨ New Features
|
- #### ✨ New Features
|
||||||
|
|
||||||
- feat: enhance github stars button to be better looking and more compact [@BramSuurdje](https://github.com/BramSuurdje) ([#7464](https://github.com/community-scripts/ProxmoxVE/pull/7464))
|
- feat: enhance github stars button to be better looking and more compact [@BramSuurdje](https://github.com/BramSuurdje) ([#7464](https://github.com/community-scripts/ProxmoxVE/pull/7464))
|
||||||
|
|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Source: https://actualbudget.org/
|
# Source: https://actualbudget.org/
|
||||||
|
|
||||||
APP="Actual Budget"
|
APP="Actual Budget"
|
||||||
var_tags="finance"
|
var_tags="${var_tags:-finance}"
|
||||||
var_cpu="2"
|
var_cpu="${var_cpu:-2}"
|
||||||
var_ram="2048"
|
var_ram="${var_ram:-2048}"
|
||||||
var_disk="4"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="debian"
|
var_os="${var_os:-debian}"
|
||||||
var_version="12"
|
var_version="${var_version:-12}"
|
||||||
var_unprivileged="1"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
variables
|
variables
|
||||||
|
|||||||
@@ -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}"
|
||||||
@@ -20,15 +20,19 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -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
|
|
||||||
fi
|
|
||||||
echo "This application receives updates through the APT package manager."
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Updating $APP LXC"
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get -y upgrade
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@@ -38,4 +42,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:13378${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:13378${CL}"
|
||||||
|
|||||||
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}"
|
||||||
46
ct/blocky.sh
46
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}"
|
||||||
@@ -20,18 +20,38 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var ]]; then
|
if [[ ! -d /opt/blocky ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_info "Updating $APP LXC"
|
|
||||||
$STD apt-get update
|
|
||||||
$STD apt-get -y upgrade
|
|
||||||
msg_ok "Updated $APP LXC"
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
if check_for_gh_release "blocky" "0xERR0R/blocky"; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop blocky
|
||||||
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@@ -41,4 +61,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:4000${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:4000${CL}"
|
||||||
|
|||||||
6
ct/headers/autocaliweb
Normal file
6
ct/headers/autocaliweb
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
___ __ ___ __
|
||||||
|
/ | __ __/ /_____ _________ _/ (_) _____ / /_
|
||||||
|
/ /| |/ / / / __/ __ \/ ___/ __ `/ / / | /| / / _ \/ __ \
|
||||||
|
/ ___ / /_/ / /_/ /_/ / /__/ /_/ / / /| |/ |/ / __/ /_/ /
|
||||||
|
/_/ |_\__,_/\__/\____/\___/\__,_/_/_/ |__/|__/\___/_.___/
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
____ _ _
|
|
||||||
/ __ \(_)___ ____ __ __(_)___
|
|
||||||
/ /_/ / / __ \/ __ `/ | / / / __ \
|
|
||||||
/ ____/ / / / / /_/ /| |/ / / / / /
|
|
||||||
/_/ /_/_/ /_/\__, / |___/_/_/ /_/
|
|
||||||
/____/
|
|
||||||
6
ct/headers/telegraf
Normal file
6
ct/headers/telegraf
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
__ __ ____
|
||||||
|
/ /____ / /__ ____ __________ _/ __/
|
||||||
|
/ __/ _ \/ / _ \/ __ `/ ___/ __ `/ /_
|
||||||
|
/ /_/ __/ / __/ /_/ / / / /_/ / __/
|
||||||
|
\__/\___/_/\___/\__, /_/ \__,_/_/
|
||||||
|
/____/
|
||||||
@@ -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.140.1"
|
RELEASE="1.141.1"
|
||||||
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
|
||||||
|
|||||||
@@ -6,13 +6,13 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
|
|||||||
# Source: https://github.com/openziti/ziti
|
# Source: https://github.com/openziti/ziti
|
||||||
|
|
||||||
APP="openziti-controller"
|
APP="openziti-controller"
|
||||||
var_tags="network;openziti-controller"
|
var_tags="${var_tags:-network;openziti-controller}"
|
||||||
var_cpu="2"
|
var_cpu="${var_cpu:-2}"
|
||||||
var_ram="1024"
|
var_ram="${var_ram:-1024}"
|
||||||
var_disk="8"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="debian"
|
var_os="${var_os:-debian}"
|
||||||
var_version="12"
|
var_version="${var_version:-12}"
|
||||||
var_unprivileged="1"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
variables
|
variables
|
||||||
@@ -20,18 +20,18 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/openziti ]]; then
|
if [[ ! -d /opt/openziti ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
msg_info "Updating $APP LXC"
|
msg_info "Updating $APP LXC"
|
||||||
$STD apt-get update
|
$STD apt-get update
|
||||||
$STD apt-get -y upgrade
|
$STD apt-get -y upgrade
|
||||||
msg_ok "Updated $APP LXC"
|
msg_ok "Updated $APP LXC"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@@ -41,4 +41,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:<port>/zac${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:<port>/zac${CL}"
|
||||||
|
|||||||
@@ -42,9 +42,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"
|
||||||
|
|||||||
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"
|
||||||
|
|||||||
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"
|
||||||
|
|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Source: https://github.com/PCJones/UmlautAdaptarr
|
# Source: https://github.com/PCJones/UmlautAdaptarr
|
||||||
|
|
||||||
APP="UmlautAdaptarr"
|
APP="UmlautAdaptarr"
|
||||||
var_tags="arr"
|
var_tags="${var_tags:-arr}"
|
||||||
var_cpu="1"
|
var_cpu="${var_cpu:-1}"
|
||||||
var_ram="512"
|
var_ram="${var_ram:-512}"
|
||||||
var_disk="4"
|
var_disk="${var_disk:-4}"
|
||||||
var_os="debian"
|
var_os="${var_os:-debian}"
|
||||||
var_version="12"
|
var_version="${var_version:-12}"
|
||||||
var_unprivileged="1"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
variables
|
variables
|
||||||
@@ -20,33 +20,33 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/UmlautAdaptarr ]]; then
|
if [[ ! -d /opt/UmlautAdaptarr ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/PCJones/Umlautadaptarr/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
|
|
||||||
if [[ ! -f /opt/UmlautAdaptarr_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/UmlautAdaptarr_version.txt)" ]]; then
|
|
||||||
msg_info "Stopping Service"
|
|
||||||
systemctl stop umlautadaptarr
|
|
||||||
msg_ok "Stopped Service"
|
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
|
||||||
temp_file=$(mktemp)
|
|
||||||
curl -fsSL "https://github.com/PCJones/Umlautadaptarr/releases/download/${RELEASE}/linux-x64.zip" -o $temp_file
|
|
||||||
$STD unzip -u $temp_file '*/**' -d /opt/UmlautAdaptarr
|
|
||||||
msg_ok "Updated ${APP}"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
|
||||||
systemctl start umlautadaptarr
|
|
||||||
msg_ok "Started Service"
|
|
||||||
msg_ok "$APP has been updated to ${RELEASE}."
|
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
|
||||||
fi
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/PCJones/Umlautadaptarr/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
|
||||||
|
if [[ ! -f /opt/UmlautAdaptarr_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/UmlautAdaptarr_version.txt)" ]]; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop umlautadaptarr
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP}"
|
||||||
|
temp_file=$(mktemp)
|
||||||
|
curl -fsSL "https://github.com/PCJones/Umlautadaptarr/releases/download/${RELEASE}/linux-x64.zip" -o $temp_file
|
||||||
|
$STD unzip -u $temp_file '*/**' -d /opt/UmlautAdaptarr
|
||||||
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start umlautadaptarr
|
||||||
|
msg_ok "Started Service"
|
||||||
|
msg_ok "$APP has been updated to ${RELEASE}."
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
start
|
start
|
||||||
build_container
|
build_container
|
||||||
|
|||||||
@@ -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/",
|
||||||
|
|||||||
@@ -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"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,52 +1,48 @@
|
|||||||
{
|
{
|
||||||
"name": "Podman Home Assistant Container",
|
"name": "Podman Home Assistant Container",
|
||||||
"slug": "podman-homeassistant",
|
"slug": "podman-homeassistant",
|
||||||
"categories": [
|
"categories": [
|
||||||
16
|
16
|
||||||
],
|
],
|
||||||
"date_created": "2024-04-29",
|
"date_created": "2024-04-29",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 8123,
|
"interface_port": 8123,
|
||||||
"documentation": "https://www.home-assistant.io/docs/",
|
"documentation": "https://www.home-assistant.io/docs/",
|
||||||
"website": "https://www.home-assistant.io/",
|
"website": "https://www.home-assistant.io/",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/home-assistant.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/home-assistant.webp",
|
||||||
"config_path": "/var/lib/containers/storage/volumes/hass_config/_data",
|
"config_path": "/var/lib/containers/storage/volumes/hass_config/_data",
|
||||||
"description": "A standalone Podman container-based installation of Home Assistant Core means that the Home Assistant Core software is installed inside a container managed by Podman, separate from the host operating system. This provides a flexible and scalable solution for running the software, as the container can be easily moved between host systems or isolated from other processes for security. Podman is a popular open-source tool for managing containers that is similar to Docker, but designed for use on Linux systems without a daemon.\r\n\r\n\ud83d\udec8 If the LXC is created Privileged, the script will automatically set up USB passthrough.",
|
"description": "A standalone Podman container-based installation of Home Assistant Core means that the Home Assistant Core software is installed inside a container managed by Podman, separate from the host operating system. This provides a flexible and scalable solution for running the software, as the container can be easily moved between host systems or isolated from other processes for security. Podman is a popular open-source tool for managing containers that is similar to Docker, but designed for use on Linux systems without a daemon.\r\n\r\n\ud83d\udec8 If the LXC is created Privileged, the script will automatically set up USB passthrough.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
"type": "default",
|
"type": "default",
|
||||||
"script": "ct/podman-homeassistant.sh",
|
"script": "ct/podman-homeassistant.sh",
|
||||||
"resources": {
|
"resources": {
|
||||||
"cpu": 2,
|
"cpu": 2,
|
||||||
"ram": 2048,
|
"ram": 2048,
|
||||||
"hdd": 16,
|
"hdd": 16,
|
||||||
"os": "debian",
|
"os": "debian",
|
||||||
"version": "12"
|
"version": "12"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"default_credentials": {
|
"default_credentials": {
|
||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"text": "If the LXC is created Privileged, the script will automatically set up USB passthrough.",
|
||||||
|
"type": "warning"
|
||||||
},
|
},
|
||||||
"notes": [
|
{
|
||||||
{
|
"text": "config path: `/var/lib/containers/storage/volumes/hass_config/_data`",
|
||||||
"text": "If the LXC is created Privileged, the script will automatically set up USB passthrough.",
|
"type": "info"
|
||||||
"type": "warning"
|
},
|
||||||
},
|
{
|
||||||
{
|
"text": "Options to Install Portainer or Portainer Agent",
|
||||||
"text": "config path: `/var/lib/containers/storage/volumes/hass_config/_data`",
|
"type": "warning"
|
||||||
"type": "info"
|
}
|
||||||
},
|
]
|
||||||
{
|
|
||||||
"text": "Options to Install Portainer or Portainer Agent",
|
|
||||||
"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,
|
||||||
|
|||||||
@@ -48,7 +48,11 @@
|
|||||||
"type": "info"
|
"type": "info"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "Login credentials: `cat ~/rustdesk.creds`",
|
"text": "To set admin password on Debian, type `cd /var/lib/rustdesk-api && rustdesk-api reset-admin-pwd <yournewpasswordhere>` inside LXC.",
|
||||||
|
"type": "info"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "To see admin password on Alpine, type `cat ~/rustdesk.creds` inside LXC.",
|
||||||
"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://oss.oetiker.ch/smokeping/doc/index.en.html",
|
"documentation": "https://oss.oetiker.ch/smokeping/doc/index.en.html",
|
||||||
|
|||||||
@@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -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,8 +1,338 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "9001/copyparty",
|
"name": "inventree/InvenTree",
|
||||||
"version": "v1.19.8",
|
"version": "0.17.14",
|
||||||
"date": "2025-09-07T23:36:42Z"
|
"date": "2025-06-21T23:43:04Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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",
|
||||||
|
"version": "v6.13.3",
|
||||||
|
"date": "2025-09-08T21:45:15Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "ollama/ollama",
|
||||||
|
"version": "v0.11.10",
|
||||||
|
"date": "2025-09-04T17:27:40Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "influxdata/influxdb",
|
||||||
|
"version": "v3.4.2",
|
||||||
|
"date": "2025-09-11T20:43:23Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "HabitRPG/habitica",
|
||||||
|
"version": "v5.41.0",
|
||||||
|
"date": "2025-09-11T19:46:20Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "immich-app/immich",
|
||||||
|
"version": "v1.142.0",
|
||||||
|
"date": "2025-09-11T19:39:05Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "msgbyte/tianji",
|
||||||
|
"version": "v1.25.0",
|
||||||
|
"date": "2025-09-11T18:53:33Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Ombi-app/Ombi",
|
||||||
|
"version": "v4.47.1",
|
||||||
|
"date": "2025-01-05T21:14:23Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "zerotier/ZeroTierOne",
|
||||||
|
"version": "1.16.0",
|
||||||
|
"date": "2025-09-11T18:01:57Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Dolibarr/dolibarr",
|
||||||
|
"version": "18.0.8",
|
||||||
|
"date": "2025-09-11T16:27:45Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Threadfin/Threadfin",
|
||||||
|
"version": "1.2.37",
|
||||||
|
"date": "2025-09-11T16:13:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "prometheus/prometheus",
|
||||||
|
"version": "v0.306.0-rc.1",
|
||||||
|
"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",
|
||||||
|
"version": "v1.3.2",
|
||||||
|
"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": "emqx/emqx",
|
||||||
|
"version": "e5.10.1-rc.1",
|
||||||
|
"date": "2025-09-11T07:01:00Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "MediaBrowser/Emby.Releases",
|
||||||
|
"version": "4.9.1.2",
|
||||||
|
"date": "2025-06-26T22:08:00Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jackett/Jackett",
|
||||||
|
"version": "v0.23.8",
|
||||||
|
"date": "2025-09-11T05:58:05Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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": "jeedom/core",
|
||||||
|
"version": "4.4.20",
|
||||||
|
"date": "2025-09-11T00:27:13Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "steveiliop56/tinyauth",
|
||||||
|
"version": "v3.6.2",
|
||||||
|
"date": "2025-07-17T12:08:03Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wizarrrr/wizarr",
|
||||||
|
"version": "v2025.9.2",
|
||||||
|
"date": "2025-09-10T22:36:54Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "keycloak/keycloak",
|
||||||
|
"version": "26.0.15",
|
||||||
|
"date": "2025-08-27T12:12:03Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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": "YunoHost/yunohost",
|
||||||
|
"version": "debian/12.1.22",
|
||||||
|
"date": "2025-09-10T16:40:32Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wazuh/wazuh",
|
||||||
|
"version": "coverity-w37-4.13.0",
|
||||||
|
"date": "2025-09-10T15:46:01Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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": "nzbgetcom/nzbget",
|
||||||
|
"version": "v25.3",
|
||||||
|
"date": "2025-09-01T09:47:06Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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": "firefly-iii/firefly-iii",
|
||||||
|
"version": "v6.3.2",
|
||||||
|
"date": "2025-08-19T04:08:36Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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": "chrisvel/tududi",
|
||||||
|
"version": "v0.81",
|
||||||
|
"date": "2025-09-09T14:06:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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": "booklore-app/booklore",
|
||||||
|
"version": "v1.2.1",
|
||||||
|
"date": "2025-09-08T19:31:07Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fallenbagel/jellyseerr",
|
||||||
|
"version": "preview-OIDC",
|
||||||
|
"date": "2025-09-08T18:08:15Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "n8n-io/n8n",
|
||||||
|
"version": "n8n@1.109.2",
|
||||||
|
"date": "2025-09-03T07:50:21Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "apache/tomcat",
|
||||||
|
"version": "10.1.46",
|
||||||
|
"date": "2025-09-08T14:29:54Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "home-assistant/operating-system",
|
||||||
|
"version": "16.2",
|
||||||
|
"date": "2025-09-08T14:03:25Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "theonedev/onedev",
|
||||||
|
"version": "v12.0.10",
|
||||||
|
"date": "2025-09-08T13:20:16Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "evcc-io/evcc",
|
||||||
|
"version": "0.207.6",
|
||||||
|
"date": "2025-09-08T11:52:00Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "autobrr/autobrr",
|
||||||
|
"version": "v1.66.1",
|
||||||
|
"date": "2025-09-08T10:49:03Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "meilisearch/meilisearch",
|
||||||
|
"version": "latest",
|
||||||
|
"date": "2025-09-08T10:03:11Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "syncthing/syncthing",
|
||||||
|
"version": "v2.0.8",
|
||||||
|
"date": "2025-09-08T08:07:18Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "webmin/webmin",
|
||||||
|
"version": "2.501",
|
||||||
|
"date": "2025-09-08T04:50:25Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "paperless-ngx/paperless-ngx",
|
"name": "paperless-ngx/paperless-ngx",
|
||||||
@@ -10,20 +340,15 @@
|
|||||||
"date": "2025-09-07T23:57:32Z"
|
"date": "2025-09-07T23:57:32Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Part-DB/Part-DB-server",
|
"name": "9001/copyparty",
|
||||||
"version": "v2.1.1",
|
"version": "v1.19.8",
|
||||||
"date": "2025-09-07T21:59:53Z"
|
"date": "2025-09-07T23:36:42Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"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",
|
"name": "karakeep-app/karakeep",
|
||||||
"version": "sdk/v0.27.0",
|
"version": "sdk/v0.27.0",
|
||||||
@@ -34,31 +359,16 @@
|
|||||||
"version": "0.50.12",
|
"version": "0.50.12",
|
||||||
"date": "2025-09-07T14:16:07Z"
|
"date": "2025-09-07T14:16:07Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "cross-seed/cross-seed",
|
|
||||||
"version": "v6.13.2",
|
|
||||||
"date": "2025-08-19T18:18:40Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "firefly-iii/firefly-iii",
|
|
||||||
"version": "v6.3.2",
|
|
||||||
"date": "2025-08-19T04:08:36Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "runtipi/runtipi",
|
"name": "runtipi/runtipi",
|
||||||
"version": "nightly",
|
"version": "nightly",
|
||||||
"date": "2025-09-07T12:16:33Z"
|
"date": "2025-09-07T12:25:06Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "semaphoreui/semaphore",
|
"name": "semaphoreui/semaphore",
|
||||||
"version": "v2.17.0-beta1",
|
"version": "v2.17.0-beta1",
|
||||||
"date": "2025-09-07T08:56:50Z"
|
"date": "2025-09-07T08:56:50Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Jackett/Jackett",
|
|
||||||
"version": "v0.22.2438",
|
|
||||||
"date": "2025-09-07T06:00:21Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Radarr/Radarr",
|
"name": "Radarr/Radarr",
|
||||||
"version": "v5.27.5.10198",
|
"version": "v5.27.5.10198",
|
||||||
@@ -79,41 +389,6 @@
|
|||||||
"version": "v2.13.3.4711",
|
"version": "v2.13.3.4711",
|
||||||
"date": "2025-08-28T20:06:24Z"
|
"date": "2025-08-28T20:06:24Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "jeedom/core",
|
|
||||||
"version": "4.4.19",
|
|
||||||
"date": "2025-09-07T00:27:07Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "steveiliop56/tinyauth",
|
|
||||||
"version": "v3.6.2",
|
|
||||||
"date": "2025-07-17T12:08:03Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"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": "autobrr/autobrr",
|
|
||||||
"version": "v1.66.0",
|
|
||||||
"date": "2025-09-06T15:07:16Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "fuma-nama/fumadocs",
|
|
||||||
"version": "create-fumadocs-app@15.7.10",
|
|
||||||
"date": "2025-09-06T10:13:43Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Paymenter/Paymenter",
|
|
||||||
"version": "v1.3.0",
|
|
||||||
"date": "2025-09-06T09:02:08Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Luligu/matterbridge",
|
"name": "Luligu/matterbridge",
|
||||||
"version": "3.2.6",
|
"version": "3.2.6",
|
||||||
@@ -124,11 +399,6 @@
|
|||||||
"version": "v12.0.3",
|
"version": "v12.0.3",
|
||||||
"date": "2025-09-06T07:01:44Z"
|
"date": "2025-09-06T07:01:44Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "theonedev/onedev",
|
|
||||||
"version": "v12.0.9",
|
|
||||||
"date": "2025-09-06T00:39:00Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "moghtech/komodo",
|
"name": "moghtech/komodo",
|
||||||
"version": "v1.19.3",
|
"version": "v1.19.3",
|
||||||
@@ -139,16 +409,6 @@
|
|||||||
"version": "v1.36.1",
|
"version": "v1.36.1",
|
||||||
"date": "2025-09-05T21:14:40Z"
|
"date": "2025-09-05T21:14:40Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "booklore-app/booklore",
|
|
||||||
"version": "v1.2.0",
|
|
||||||
"date": "2025-09-05T20:43:03Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "immich-app/immich",
|
|
||||||
"version": "v1.141.1",
|
|
||||||
"date": "2025-09-05T19:44:39Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "gtsteffaniak/filebrowser",
|
"name": "gtsteffaniak/filebrowser",
|
||||||
"version": "v0.8.4-beta",
|
"version": "v0.8.4-beta",
|
||||||
@@ -159,51 +419,21 @@
|
|||||||
"version": "v1.3.2",
|
"version": "v1.3.2",
|
||||||
"date": "2025-09-05T18:44:15Z"
|
"date": "2025-09-05T18:44:15Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "diced/zipline",
|
|
||||||
"version": "v4.3.0",
|
|
||||||
"date": "2025-09-05T18:43:28Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "henrygd/beszel",
|
"name": "henrygd/beszel",
|
||||||
"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",
|
"name": "home-assistant/core",
|
||||||
"version": "2025.9.1",
|
"version": "2025.9.1",
|
||||||
"date": "2025-09-05T11:15:21Z"
|
"date": "2025-09-05T11:15:21Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "syncthing/syncthing",
|
|
||||||
"version": "v2.0.7",
|
|
||||||
"date": "2025-09-05T10:18:24Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "zitadel/zitadel",
|
|
||||||
"version": "v4.1.2",
|
|
||||||
"date": "2025-09-05T08:23:30Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "CrazyWolf13/streamlink-webui",
|
"name": "CrazyWolf13/streamlink-webui",
|
||||||
"version": "0.6",
|
"version": "0.6",
|
||||||
@@ -214,11 +444,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",
|
"name": "docmost/docmost",
|
||||||
"version": "v0.23.0",
|
"version": "v0.23.0",
|
||||||
@@ -234,41 +459,16 @@
|
|||||||
"version": "v1.0.0-beta17",
|
"version": "v1.0.0-beta17",
|
||||||
"date": "2025-09-04T21:30:14Z"
|
"date": "2025-09-04T21:30:14Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "TandoorRecipes/recipes",
|
|
||||||
"version": "2.1.0",
|
|
||||||
"date": "2025-09-04T20:24:47Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "mongodb/mongo",
|
|
||||||
"version": "r7.0.24",
|
|
||||||
"date": "2025-09-04T19:50:49Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Cleanuparr/Cleanuparr",
|
"name": "Cleanuparr/Cleanuparr",
|
||||||
"version": "v2.2.3",
|
"version": "v2.2.3",
|
||||||
"date": "2025-09-04T19:24:39Z"
|
"date": "2025-09-04T19:24:39Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "HabitRPG/habitica",
|
|
||||||
"version": "v5.40.1",
|
|
||||||
"date": "2025-09-04T19:10:45Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "AdguardTeam/AdGuardHome",
|
"name": "AdguardTeam/AdGuardHome",
|
||||||
"version": "v0.107.65",
|
"version": "v0.107.65",
|
||||||
"date": "2025-08-20T14:02:28Z"
|
"date": "2025-08-20T14:02:28Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "webmin/webmin",
|
|
||||||
"version": "2.500",
|
|
||||||
"date": "2025-09-04T17:44:27Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"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",
|
||||||
@@ -294,16 +494,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",
|
||||||
@@ -329,41 +519,16 @@
|
|||||||
"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",
|
||||||
"date": "2025-09-03T12:03:22Z"
|
"date": "2025-09-03T12:03:22Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "n8n-io/n8n",
|
|
||||||
"version": "n8n@1.109.2",
|
|
||||||
"date": "2025-09-03T07:50:21Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Checkmk/checkmk",
|
"name": "Checkmk/checkmk",
|
||||||
"version": "v2.4.0p11",
|
"version": "v2.4.0p11",
|
||||||
"date": "2025-09-03T09:58:14Z"
|
"date": "2025-09-03T09:58:14Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "mattermost/mattermost",
|
|
||||||
"version": "server/public/v0.1.17",
|
|
||||||
"date": "2025-09-02T21:38:40Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"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",
|
||||||
@@ -379,26 +544,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": "apache/tomcat",
|
|
||||||
"version": "10.1.45",
|
|
||||||
"date": "2025-09-02T12:46:34Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Dolibarr/dolibarr",
|
|
||||||
"version": "22.0.1",
|
|
||||||
"date": "2025-09-02T10:29:08Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "cloudreve/cloudreve",
|
"name": "cloudreve/cloudreve",
|
||||||
"version": "4.7.0",
|
"version": "4.7.0",
|
||||||
@@ -409,11 +559,6 @@
|
|||||||
"version": "v25.5.0",
|
"version": "v25.5.0",
|
||||||
"date": "2025-09-02T01:00:11Z"
|
"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",
|
||||||
@@ -434,11 +579,6 @@
|
|||||||
"version": "v0.87.3",
|
"version": "v0.87.3",
|
||||||
"date": "2025-09-01T16:25:43Z"
|
"date": "2025-09-01T16:25:43Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "home-assistant/operating-system",
|
|
||||||
"version": "16.1",
|
|
||||||
"date": "2025-08-13T07:58:10Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "seanmorley15/AdventureLog",
|
"name": "seanmorley15/AdventureLog",
|
||||||
"version": "v0.11.0",
|
"version": "v0.11.0",
|
||||||
@@ -449,16 +589,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": "nzbgetcom/nzbget",
|
|
||||||
"version": "v25.3",
|
|
||||||
"date": "2025-09-01T09:47:06Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "grokability/snipe-it",
|
"name": "grokability/snipe-it",
|
||||||
"version": "v8.3.1",
|
"version": "v8.3.1",
|
||||||
@@ -469,16 +599,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": "YunoHost/yunohost",
|
|
||||||
"version": "debian/12.1.17.1",
|
|
||||||
"date": "2025-08-31T21:38:21Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "LibreTranslate/LibreTranslate",
|
"name": "LibreTranslate/LibreTranslate",
|
||||||
"version": "v1.7.3",
|
"version": "v1.7.3",
|
||||||
@@ -489,11 +609,6 @@
|
|||||||
"version": "v0.9.91",
|
"version": "v0.9.91",
|
||||||
"date": "2025-08-30T21:49:57Z"
|
"date": "2025-08-30T21:49:57Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "msgbyte/tianji",
|
|
||||||
"version": "v1.24.26",
|
|
||||||
"date": "2025-08-29T20:26:08Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "silverbulletmd/silverbullet",
|
"name": "silverbulletmd/silverbullet",
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
@@ -529,31 +644,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",
|
||||||
@@ -569,21 +664,6 @@
|
|||||||
"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": "meilisearch/meilisearch",
|
|
||||||
"version": "latest",
|
|
||||||
"date": "2025-08-26T14:14:42Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "evcc-io/evcc",
|
|
||||||
"version": "0.207.5",
|
|
||||||
"date": "2025-08-26T06:57:07Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "documenso/documenso",
|
"name": "documenso/documenso",
|
||||||
"version": "v1.12.2-rc.6",
|
"version": "v1.12.2-rc.6",
|
||||||
@@ -624,11 +704,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 +719,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 +749,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 +814,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",
|
||||||
@@ -789,11 +839,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",
|
"name": "ellite/Wallos",
|
||||||
"version": "v4.1.1",
|
"version": "v4.1.1",
|
||||||
@@ -829,16 +874,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 +909,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 +974,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 +1004,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 +1094,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 +1129,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",
|
||||||
@@ -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",
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ const DataFetcher: React.FC = () => {
|
|||||||
const [currentPage, setCurrentPage] = useState(1);
|
const [currentPage, setCurrentPage] = useState(1);
|
||||||
const [itemsPerPage, setItemsPerPage] = useState(25);
|
const [itemsPerPage, setItemsPerPage] = useState(25);
|
||||||
const [sortConfig, setSortConfig] = useState<{ key: string; direction: "ascending" | "descending" } | null>(null);
|
const [sortConfig, setSortConfig] = useState<{ key: string; direction: "ascending" | "descending" } | null>(null);
|
||||||
|
const nf = new Intl.NumberFormat("en-US", { maximumFractionDigits: 0 });
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const fetchSummary = async () => {
|
const fetchSummary = async () => {
|
||||||
@@ -129,19 +130,24 @@ const DataFetcher: React.FC = () => {
|
|||||||
<p className="text-lg font-bold mt-4"> </p>
|
<p className="text-lg font-bold mt-4"> </p>
|
||||||
<div className="mb-4 flex justify-between items-center">
|
<div className="mb-4 flex justify-between items-center">
|
||||||
<p className="text-lg font-bold">
|
<p className="text-lg font-bold">
|
||||||
{summary?.total_entries}
|
{nf.format(
|
||||||
|
summary?.total_entries ?? 0,
|
||||||
|
)}
|
||||||
{" "}
|
{" "}
|
||||||
results found
|
results found
|
||||||
</p>
|
</p>
|
||||||
<p className="text-lg font">
|
<p className="text-lg font">
|
||||||
Status Legend: 🔄 installing
|
Status Legend: 🔄 installing
|
||||||
{summary?.status_count.installing ?? 0}
|
{" "}
|
||||||
|
{nf.format(summary?.status_count.installing ?? 0)}
|
||||||
{" "}
|
{" "}
|
||||||
| ✔️ completed
|
| ✔️ completed
|
||||||
{summary?.status_count.done ?? 0}
|
{" "}
|
||||||
|
{nf.format(summary?.status_count.done ?? 0)}
|
||||||
{" "}
|
{" "}
|
||||||
| ❌ failed
|
| ❌ failed
|
||||||
{summary?.status_count.failed ?? 0}
|
{" "}
|
||||||
|
{nf.format(summary?.status_count.failed ?? 0)}
|
||||||
{" "}
|
{" "}
|
||||||
| ❓ unknown
|
| ❓ unknown
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -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,30 +72,37 @@ function GitHubStarsButton({
|
|||||||
...props
|
...props
|
||||||
}: GitHubStarsButtonProps) {
|
}: GitHubStarsButtonProps) {
|
||||||
return (
|
return (
|
||||||
<GithubStars
|
<Link
|
||||||
asChild
|
target="_blank"
|
||||||
username={username}
|
rel="noopener noreferrer"
|
||||||
repo={repo}
|
data-umami-event="github-stars"
|
||||||
value={value}
|
href={`https://github.com/${username}/${repo}`}
|
||||||
delay={delay}
|
|
||||||
inView={inView}
|
|
||||||
inViewMargin={inViewMargin}
|
|
||||||
inViewOnce={inViewOnce}
|
|
||||||
>
|
>
|
||||||
<ButtonPrimitive className={cn(buttonVariants({ variant, size, className }))} {...props}>
|
<GithubStars
|
||||||
<GithubStarsLogo />
|
asChild
|
||||||
<GithubStarsNumber />
|
username={username}
|
||||||
<GithubStarsParticles className="text-yellow-500">
|
repo={repo}
|
||||||
<GithubStarsIcon
|
value={value}
|
||||||
icon={StarIcon}
|
delay={delay}
|
||||||
data-variant={variant}
|
inView={inView}
|
||||||
className={cn(buttonStarVariants({ variant }))}
|
inViewMargin={inViewMargin}
|
||||||
activeClassName="text-yellow-500"
|
inViewOnce={inViewOnce}
|
||||||
size={18}
|
>
|
||||||
/>
|
<ButtonPrimitive className={cn(buttonVariants({ variant, size, className }))} {...props}>
|
||||||
</GithubStarsParticles>
|
<GithubStarsLogo />
|
||||||
</ButtonPrimitive>
|
<GithubStarsNumber />
|
||||||
</GithubStars>
|
<GithubStarsParticles className="text-yellow-500">
|
||||||
|
<GithubStarsIcon
|
||||||
|
icon={StarIcon}
|
||||||
|
data-variant={variant}
|
||||||
|
className={cn(buttonStarVariants({ variant }))}
|
||||||
|
activeClassName="text-yellow-500"
|
||||||
|
size={18}
|
||||||
|
/>
|
||||||
|
</GithubStarsParticles>
|
||||||
|
</ButtonPrimitive>
|
||||||
|
</GithubStars>
|
||||||
|
</Link>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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 \
|
||||||
|
|||||||
@@ -285,7 +285,7 @@ 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.140.1" "$SRC_DIR"
|
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.141.1" "$SRC_DIR"
|
||||||
|
|
||||||
msg_info "Installing ${APPLICATION} (more patience please)"
|
msg_info "Installing ${APPLICATION} (more patience please)"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ Wants=network.target karakeep-browser.service meilisearch.service
|
|||||||
After=network.target karakeep-browser.service meilisearch.service
|
After=network.target karakeep-browser.service meilisearch.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/bin/node dist/index.mjs
|
ExecStart=/usr/bin/node dist/index.js
|
||||||
WorkingDirectory=/opt/karakeep/apps/workers
|
WorkingDirectory=/opt/karakeep/apps/workers
|
||||||
EnvironmentFile=/etc/karakeep/karakeep.env
|
EnvironmentFile=/etc/karakeep/karakeep.env
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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://runtipi.io/)."
|
||||||
|
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/runtipi/runtipi/master/scripts/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 Runtipi (Patience)"
|
msg_info "Installing Runtipi (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,18 +18,6 @@ fetch_and_deploy_gh_release "rustdesk-hbbs" "rustdesk/rustdesk-server" "binary"
|
|||||||
fetch_and_deploy_gh_release "rustdesk-utils" "rustdesk/rustdesk-server" "binary" "latest" "/opt/rustdesk" "rustdesk-server-utils*amd64.deb"
|
fetch_and_deploy_gh_release "rustdesk-utils" "rustdesk/rustdesk-server" "binary" "latest" "/opt/rustdesk" "rustdesk-server-utils*amd64.deb"
|
||||||
fetch_and_deploy_gh_release "rustdesk-api" "lejianwen/rustdesk-api" "binary" "latest" "/opt/rustdesk" "rustdesk-api-server*amd64.deb"
|
fetch_and_deploy_gh_release "rustdesk-api" "lejianwen/rustdesk-api" "binary" "latest" "/opt/rustdesk" "rustdesk-api-server*amd64.deb"
|
||||||
|
|
||||||
msg_info "Configuring RustDesk Server"
|
|
||||||
ADMINPASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
|
||||||
cd /var/lib/rustdesk-api
|
|
||||||
$STD rustdesk-api reset-admin-pwd $ADMINPASS
|
|
||||||
{
|
|
||||||
echo "RustDesk WebUI"
|
|
||||||
echo ""
|
|
||||||
echo "Username: admin"
|
|
||||||
echo "Password: $ADMINPASS"
|
|
||||||
} >>~/rustdesk.creds
|
|
||||||
msg_ok "Configured RustDesk Server"
|
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
|
|
||||||
|
|||||||
39
install/telegraf-install.sh
Normal file
39
install/telegraf-install.sh
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: CrazyWolf13
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/influxdata/telegraf
|
||||||
|
|
||||||
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||||
|
color
|
||||||
|
verb_ip6
|
||||||
|
catch_errors
|
||||||
|
setting_up_container
|
||||||
|
network_check
|
||||||
|
update_os
|
||||||
|
|
||||||
|
msg_info "Adding Telegraf key and repository"
|
||||||
|
curl -fsSL -O https://repos.influxdata.com/influxdata-archive.key
|
||||||
|
gpg --show-keys --with-fingerprint --with-colons ./influxdata-archive.key 2>&1 \
|
||||||
|
| grep -q '^fpr:\+24C975CBA61A024EE1B631787C3D57159FC2F927:$' \
|
||||||
|
&& cat influxdata-archive.key \
|
||||||
|
| gpg --dearmor \
|
||||||
|
| tee /etc/apt/keyrings/influxdata-archive.gpg > /dev/null \
|
||||||
|
&& echo 'deb [signed-by=/etc/apt/keyrings/influxdata-archive.gpg] https://repos.influxdata.com/debian stable main' \
|
||||||
|
| tee /etc/apt/sources.list.d/influxdata.list > /dev/null
|
||||||
|
msg_ok "Added Telegraf Repository"
|
||||||
|
|
||||||
|
msg_info "Installing Telegraf"
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get install telegraf -y
|
||||||
|
msg_ok "Installed Telegraf"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
rm /influxdata-archive.key
|
||||||
|
msg_ok "Cleaned"
|
||||||
@@ -19,8 +19,8 @@ $STD apt-get install -y \
|
|||||||
yq
|
yq
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
NODE_VERSION="20" setup_nodejs
|
NODE_VERSION="22" setup_nodejs
|
||||||
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 "Configuring Tududi"
|
msg_info "Configuring Tududi"
|
||||||
cd /opt/tududi
|
cd /opt/tududi
|
||||||
@@ -37,15 +37,16 @@ DB_LOCATION="/opt/tududi-db"
|
|||||||
UPLOAD_DIR="/opt/tududi-uploads"
|
UPLOAD_DIR="/opt/tududi-uploads"
|
||||||
mkdir -p {"$DB_LOCATION","$UPLOAD_DIR"}
|
mkdir -p {"$DB_LOCATION","$UPLOAD_DIR"}
|
||||||
SECRET="$(openssl rand -hex 64)"
|
SECRET="$(openssl rand -hex 64)"
|
||||||
sed -e 's/^GOOGLE/# &/' \
|
cat <<EOF >/opt/tududi/backend/.env
|
||||||
-e '/TUDUDI_SESSION/s/^# //' \
|
TUDUDI_SESSION_SECRET=${SECRET}
|
||||||
-e '/NODE_ENV/s/^# //' \
|
TUDUDI_ALLOWED_ORIGINS=<your tududi IP or FQDN>
|
||||||
-e "s/your_session_secret_here/$SECRET/" \
|
NODE_ENV=production
|
||||||
-e 's/development/production/' \
|
DB_FILE=${DB_LOCATION}/production.sqlite3
|
||||||
-e "\$a\DB_FILE=$DB_LOCATION/production.sqlite3" \
|
TUDUDI_UPLOAD_PATH=${UPLOAD_DIR}
|
||||||
-e "\$a\TUDUDI_UPLOAD_PATH=$UPLOAD_DIR" \
|
DISABLE_TELEGRAM=true
|
||||||
/opt/tududi/backend/.env.example >/opt/tududi/backend/.env
|
DIABLE_SCHEDULER=false
|
||||||
export DB_FILE="$DB_LOCATION/production.sqlite3"
|
EOF
|
||||||
|
export DB_FILE="${DB_LOCATION}/production.sqlite3"
|
||||||
$STD npm run db:init
|
$STD npm run db:init
|
||||||
msg_ok "Created env and database"
|
msg_ok "Created env and database"
|
||||||
|
|
||||||
@@ -57,9 +58,9 @@ After=network.target
|
|||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
WorkingDirectory=/opt/tududi
|
WorkingDirectory=/opt/tududi/backend
|
||||||
EnvironmentFile=/opt/tududi/backend/.env
|
EnvironmentFile=/opt/tududi/backend/.env
|
||||||
ExecStart=/usr/bin/npm run start
|
ExecStart=/usr/bin/bash /opt/tududi/backend/cmd/start.sh
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
|||||||
@@ -13,9 +13,18 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Fetching Latest Wazuh Version"
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '"tag_name"' | awk -F '"' '{print substr($4, 2, length($2)-4)}')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '"tag_name"' | awk -F '"' '{print substr($4, 2, length($2)-4)}')
|
||||||
msg_ok "Latest Wazuh Version: $RELEASE"
|
|
||||||
|
msg_warn "WARNING: This script will run an external installer from a third-party source (https://wazuh.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://packages.wazuh.com/$RELEASE/wazuh-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 "Setup Wazuh"
|
msg_info "Setup Wazuh"
|
||||||
curl -fsSL https://packages.wazuh.com/$RELEASE/wazuh-install.sh -o wazuh-install.sh
|
curl -fsSL https://packages.wazuh.com/$RELEASE/wazuh-install.sh -o wazuh-install.sh
|
||||||
|
|||||||
@@ -13,6 +13,10 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
|
msg_info "Installing Dependencies"
|
||||||
|
$STD apt-get install -y git
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Installing WireGuard"
|
msg_info "Installing WireGuard"
|
||||||
$STD apt-get install -y wireguard wireguard-tools net-tools iptables
|
$STD apt-get install -y wireguard wireguard-tools net-tools iptables
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confnew" install -y iptables-persistent &>/dev/null
|
DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confnew" install -y iptables-persistent &>/dev/null
|
||||||
@@ -21,7 +25,7 @@ msg_ok "Installed WireGuard"
|
|||||||
|
|
||||||
read -r -p "${TAB3}Would you like to add WGDashboard? <y/N> " prompt
|
read -r -p "${TAB3}Would you like to add WGDashboard? <y/N> " prompt
|
||||||
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||||
fetch_and_deploy_gh_release "wgdashboard" "donaldzou/WGDashboard" "tarball" "latest" "/etc/wgdashboard"
|
git clone -q https://github.com/donaldzou/WGDashboard.git /etc/wgdashboard
|
||||||
|
|
||||||
msg_info "Installing WGDashboard"
|
msg_info "Installing WGDashboard"
|
||||||
cd /etc/wgdashboard/src
|
cd /etc/wgdashboard/src
|
||||||
|
|||||||
@@ -23,13 +23,12 @@ fetch_and_deploy_gh_release "wizarr" "wizarrrr/wizarr"
|
|||||||
|
|
||||||
msg_info "Configure ${APPLICATION}"
|
msg_info "Configure ${APPLICATION}"
|
||||||
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 /usr/local/bin/uv run flask db upgrade
|
$STD /usr/local/bin/uv run --frozen flask db upgrade
|
||||||
msg_ok "Configure ${APPLICATION}"
|
msg_ok "Configure ${APPLICATION}"
|
||||||
|
|
||||||
msg_info "Creating env, start script and service"
|
msg_info "Creating env, start script and service"
|
||||||
@@ -43,7 +42,7 @@ EOF
|
|||||||
cat <<EOF >/opt/wizarr/start.sh
|
cat <<EOF >/opt/wizarr/start.sh
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
uv run gunicorn \
|
uv run --frozen gunicorn \
|
||||||
--config gunicorn.conf.py \
|
--config gunicorn.conf.py \
|
||||||
--preload \
|
--preload \
|
||||||
--workers 4 \
|
--workers 4 \
|
||||||
|
|||||||
@@ -14,11 +14,23 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y apt-transport-https
|
$STD apt-get install -y \
|
||||||
$STD apt-get install -y lsb-release
|
apt-transport-https \
|
||||||
$STD apt-get install -y ca-certificates
|
lsb-release \
|
||||||
|
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://yunohost.org/)."
|
||||||
|
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.yunohost.org"
|
||||||
|
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 YunoHost (Patience)"
|
msg_info "Installing YunoHost (Patience)"
|
||||||
touch /etc/.pve-ignore.resolv.conf
|
touch /etc/.pve-ignore.resolv.conf
|
||||||
curl -fsSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
|
curl -fsSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ network_check() {
|
|||||||
update_os() {
|
update_os() {
|
||||||
msg_info "Updating Container OS"
|
msg_info "Updating Container OS"
|
||||||
$STD apk -U upgrade
|
$STD apk -U upgrade
|
||||||
source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/tools.func)
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/tools.func)
|
||||||
msg_ok "Updated Container OS"
|
msg_ok "Updated Container OS"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ elif command -v wget >/dev/null 2>&1; then
|
|||||||
fi
|
fi
|
||||||
# This function enables error handling in the script by setting options and defining a trap for the ERR signal.
|
# This function enables error handling in the script by setting options and defining a trap for the ERR signal.
|
||||||
catch_errors() {
|
catch_errors() {
|
||||||
set -Eeuo pipefail
|
set -Eeo pipefail
|
||||||
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,41 +200,32 @@ ssh_check() {
|
|||||||
|
|
||||||
base_settings() {
|
base_settings() {
|
||||||
# Default Settings
|
# Default Settings
|
||||||
CT_TYPE="1"
|
CT_TYPE=${var_unprivileged:-"1"}
|
||||||
DISK_SIZE="4"
|
DISK_SIZE=${var_disk:-"4"}
|
||||||
CORE_COUNT="1"
|
CORE_COUNT=${var_cpu:-"1"}
|
||||||
RAM_SIZE="1024"
|
RAM_SIZE=${var_ram:-"1024"}
|
||||||
VERBOSE="${1:-no}"
|
VERBOSE=${var_verbose:-"${1:-no}"}
|
||||||
PW=""
|
PW=${var_pw:-""}
|
||||||
CT_ID=$NEXTID
|
CT_ID=${var_ctid:-$NEXTID}
|
||||||
HN=$NSAPP
|
HN=${var_hostname:-$NSAPP}
|
||||||
BRG="vmbr0"
|
BRG=${var_brg:-"vmbr0"}
|
||||||
NET="dhcp"
|
NET=${var_net:-"dhcp"}
|
||||||
IPV6_METHOD="none"
|
IPV6_METHOD=${var_ipv6_method:-"none"}
|
||||||
IPV6_STATIC=""
|
IPV6_STATIC=${var_ipv6_static:-""}
|
||||||
GATE=""
|
GATE=${var_gateway:-""}
|
||||||
APT_CACHER=""
|
APT_CACHER=${var_apt_cacher:-""}
|
||||||
APT_CACHER_IP=""
|
APT_CACHER_IP=${var_apt_cacher_ip:-""}
|
||||||
MTU=""
|
MTU=${var_mtu:-""}
|
||||||
SD=""
|
SD=${var_storage:-""}
|
||||||
NS=""
|
NS=${var_ns:-""}
|
||||||
MAC=""
|
MAC=${var_mac:-""}
|
||||||
VLAN=""
|
VLAN=${var_vlan:-""}
|
||||||
SSH="no"
|
SSH=${var_ssh:-"no"}
|
||||||
SSH_AUTHORIZED_KEY=""
|
SSH_AUTHORIZED_KEY=${var_ssh_authorized_key:-""}
|
||||||
TAGS="community-script;"
|
UDHCPC_FIX=${var_udhcpc_fix:-""}
|
||||||
ENABLE_FUSE="${1:-no}"
|
TAGS="community-script;${var_tags:-}"
|
||||||
ENABLE_TUN="${1:-no}"
|
ENABLE_FUSE=${var_fuse:-"${1:-no}"}
|
||||||
|
ENABLE_TUN=${var_tun:-"${1:-no}"}
|
||||||
# Override default settings with variables from ct script
|
|
||||||
CT_TYPE=${var_unprivileged:-$CT_TYPE}
|
|
||||||
DISK_SIZE=${var_disk:-$DISK_SIZE}
|
|
||||||
CORE_COUNT=${var_cpu:-$CORE_COUNT}
|
|
||||||
RAM_SIZE=${var_ram:-$RAM_SIZE}
|
|
||||||
VERB=${var_verbose:-$VERBOSE}
|
|
||||||
TAGS="${TAGS}${var_tags:-}"
|
|
||||||
ENABLE_FUSE="${var_fuse:-$ENABLE_FUSE}"
|
|
||||||
ENABLE_TUN="${var_tun:-$ENABLE_TUN}"
|
|
||||||
|
|
||||||
# Since these 2 are only defined outside of default_settings function, we add a temporary fallback. TODO: To align everything, we should add these as constant variables (e.g. OSTYPE and OSVERSION), but that would currently require updating the default_settings function for all existing scripts
|
# Since these 2 are only defined outside of default_settings function, we add a temporary fallback. TODO: To align everything, we should add these as constant variables (e.g. OSTYPE and OSVERSION), but that would currently require updating the default_settings function for all existing scripts
|
||||||
if [ -z "$var_os" ]; then
|
if [ -z "$var_os" ]; then
|
||||||
@@ -244,6 +235,7 @@ base_settings() {
|
|||||||
var_version="12"
|
var_version="12"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
write_config() {
|
write_config() {
|
||||||
mkdir -p /opt/community-scripts
|
mkdir -p /opt/community-scripts
|
||||||
# This function writes the configuration to a file.
|
# This function writes the configuration to a file.
|
||||||
@@ -354,7 +346,7 @@ echo_default() {
|
|||||||
echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}${DISK_SIZE} GB${CL}"
|
echo -e "${DISKSIZE}${BOLD}${DGN}Disk Size: ${BGN}${DISK_SIZE} GB${CL}"
|
||||||
echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}${CORE_COUNT}${CL}"
|
echo -e "${CPUCORE}${BOLD}${DGN}CPU Cores: ${BGN}${CORE_COUNT}${CL}"
|
||||||
echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}${RAM_SIZE} MiB${CL}"
|
echo -e "${RAMSIZE}${BOLD}${DGN}RAM Size: ${BGN}${RAM_SIZE} MiB${CL}"
|
||||||
if [ "$VERB" == "yes" ]; then
|
if [ "$VERBOSE" == "yes" ]; then
|
||||||
echo -e "${SEARCH}${BOLD}${DGN}Verbose Mode: ${BGN}Enabled${CL}"
|
echo -e "${SEARCH}${BOLD}${DGN}Verbose Mode: ${BGN}Enabled${CL}"
|
||||||
fi
|
fi
|
||||||
echo -e "${CREATING}${BOLD}${BL}Creating a ${APP} LXC using the above default settings${CL}"
|
echo -e "${CREATING}${BOLD}${BL}Creating a ${APP} LXC using the above default settings${CL}"
|
||||||
|
|||||||
2788
misc/tools.func
2788
misc/tools.func
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user