mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-05 02:42:50 +00:00
Compare commits
28 Commits
2025-04-02
...
2025-04-04
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
112fa215fb | ||
|
|
f6a77ec41f | ||
|
|
71a37368b0 | ||
|
|
214d21f91e | ||
|
|
8b1cdd1f3f | ||
|
|
2a24d53b54 | ||
|
|
51692da70f | ||
|
|
481156275b | ||
|
|
23c01141db | ||
|
|
109235f720 | ||
|
|
4912f76bc5 | ||
|
|
b62a673ff2 | ||
|
|
f0c59f8cba | ||
|
|
56093ed951 | ||
|
|
e55f3f77fd | ||
|
|
c231e56302 | ||
|
|
69c1a64855 | ||
|
|
01ff0a2dc7 | ||
|
|
8884514ab6 | ||
|
|
f5e9d761c9 | ||
|
|
3d4ba758a9 | ||
|
|
7539566dc5 | ||
|
|
5b0cfaab83 | ||
|
|
a5dd2b3176 | ||
|
|
b6593792c0 | ||
|
|
47fb1c03de | ||
|
|
9c7858601e | ||
|
|
ce3ed8a1c1 |
@@ -99,9 +99,9 @@ to\
|
|||||||
Example: `https://raw.githubusercontent.com/tremor021/PromoxVE/refs/heads/testbranch`
|
Example: `https://raw.githubusercontent.com/tremor021/PromoxVE/refs/heads/testbranch`
|
||||||
|
|
||||||
Also you need to change:\
|
Also you need to change:\
|
||||||
`https://github.com/community-scripts/ProxmoxVE/raw/main`\
|
`https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main`\
|
||||||
to\
|
to\
|
||||||
`https://github.com/[USER]/[REPOSITORY]/raw/[BRANCH]`\
|
`https://raw.githubusercontent.com/[USER]/[REPOSITORY]/raw/[BRANCH]`\
|
||||||
in `misc/install.func` in order for `update` shell command to work.\
|
in `misc/install.func` in order for `update` shell command to work.\
|
||||||
These changes are only while writing and testing your scripts. Before opening a Pull Request, you should change all above mentioned paths in `misc/build.func`, `misc/install.func` and `ct/AppName.sh` to point to the original paths.
|
These changes are only while writing and testing your scripts. Before opening a Pull Request, you should change all above mentioned paths in `misc/build.func`, `misc/install.func` and `ct/AppName.sh` to point to the original paths.
|
||||||
|
|
||||||
|
|||||||
53
CHANGELOG.md
53
CHANGELOG.md
@@ -14,6 +14,59 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
|
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
|
||||||
|
|
||||||
|
|
||||||
|
## 2025-04-04
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- meilisearch [@MickLesk](https://github.com/MickLesk) ([#3638](https://github.com/community-scripts/ProxmoxVE/pull/3638))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Pelican Panel: Bump php to 8.4 [@bvdberg01](https://github.com/bvdberg01) ([#3669](https://github.com/community-scripts/ProxmoxVE/pull/3669))
|
||||||
|
- Pterodactyl: Bump php to 8.4 [@MickLesk](https://github.com/MickLesk) ([#3655](https://github.com/community-scripts/ProxmoxVE/pull/3655))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Caddy: add git for xcaddy [@MickLesk](https://github.com/MickLesk) ([#3657](https://github.com/community-scripts/ProxmoxVE/pull/3657))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- #### 💾 Core
|
||||||
|
|
||||||
|
- core: fix raw path [@MickLesk](https://github.com/MickLesk) ([#3656](https://github.com/community-scripts/ProxmoxVE/pull/3656))
|
||||||
|
|
||||||
|
## 2025-04-03
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Prowlarr: Fix Typo in URL (update_function) [@ribera96](https://github.com/ribera96) ([#3640](https://github.com/community-scripts/ProxmoxVE/pull/3640))
|
||||||
|
- Prowlarr: Fix typo in release URL [@tremor021](https://github.com/tremor021) ([#3636](https://github.com/community-scripts/ProxmoxVE/pull/3636))
|
||||||
|
- GoMFT: Fix the node_modules deletion command [@tremor021](https://github.com/tremor021) ([#3624](https://github.com/community-scripts/ProxmoxVE/pull/3624))
|
||||||
|
- BookStack: Fix path to downloaded release file [@tremor021](https://github.com/tremor021) ([#3627](https://github.com/community-scripts/ProxmoxVE/pull/3627))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- VM: show progress bar while downloading [@MickLesk](https://github.com/MickLesk) ([#3634](https://github.com/community-scripts/ProxmoxVE/pull/3634))
|
||||||
|
- *Arr: Move Arr apps to github release crawling and provide update functionality [@tremor021](https://github.com/tremor021) ([#3625](https://github.com/community-scripts/ProxmoxVE/pull/3625))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- #### 📂 Github
|
||||||
|
|
||||||
|
- Correct URL in contributing docs [@verbumfeit](https://github.com/verbumfeit) ([#3648](https://github.com/community-scripts/ProxmoxVE/pull/3648))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Bump next from 15.2.3 to 15.2.4 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#3628](https://github.com/community-scripts/ProxmoxVE/pull/3628))
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- slskd: fix typo for config note [@MickLesk](https://github.com/MickLesk) ([#3633](https://github.com/community-scripts/ProxmoxVE/pull/3633))
|
||||||
|
|
||||||
## 2025-04-02
|
## 2025-04-02
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
|||||||
@@ -36,13 +36,13 @@ function update_script() {
|
|||||||
msg_info "Updating ${APP} to v${RELEASE}"
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
mv /opt/bookstack /opt/bookstack-backup
|
mv /opt/bookstack /opt/bookstack-backup
|
||||||
curl -fsSL "https://github.com/BookStackApp/BookStack/archive/refs/tags/v${RELEASE}.zip" -o "/opt/BookStack-${RELEASE}.zip"
|
curl -fsSL "https://github.com/BookStackApp/BookStack/archive/refs/tags/v${RELEASE}.zip" -o "/opt/BookStack-${RELEASE}.zip"
|
||||||
unzip -q /opt/v${RELEASE}.zip -d /opt
|
unzip -q "/opt/BookStack-${RELEASE}.zip" -d /opt
|
||||||
mv /opt/BookStack-${RELEASE} /opt/bookstack
|
mv "/opt/BookStack-${RELEASE}" /opt/bookstack
|
||||||
cp /opt/bookstack-backup/.env /opt/bookstack/.env
|
cp /opt/bookstack-backup/.env /opt/bookstack/.env
|
||||||
cp -r /opt/bookstack-backup/public/uploads/* /opt/bookstack/public/uploads/ || true
|
cp -r /opt/bookstack-backup/public/uploads/* /opt/bookstack/public/uploads/ || true
|
||||||
cp -r /opt/bookstack-backup/storage/uploads/* /opt/bookstack/storage/uploads/ || true
|
cp -r /opt/bookstack-backup/storage/uploads/* /opt/bookstack/storage/uploads/ || true
|
||||||
cp -r /opt/bookstack-backup/themes/* /opt/bookstack/themes/ || true
|
cp -r /opt/bookstack-backup/themes/* /opt/bookstack/themes/ || true
|
||||||
cd /opt/bookstack
|
cd /opt/bookstack || exit
|
||||||
export COMPOSER_ALLOW_SUPERUSER=1
|
export COMPOSER_ALLOW_SUPERUSER=1
|
||||||
$STD composer install --no-dev
|
$STD composer install --no-dev
|
||||||
$STD php artisan migrate --force
|
$STD php artisan migrate --force
|
||||||
@@ -59,7 +59,7 @@ function update_script() {
|
|||||||
|
|
||||||
msg_info "Cleaning Up"
|
msg_info "Cleaning Up"
|
||||||
rm -rf /opt/bookstack-backup
|
rm -rf /opt/bookstack-backup
|
||||||
rm -rf /opt/v${RELEASE}.zip
|
rm -rf "/opt/BookStack-${RELEASE}.zip"
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
else
|
else
|
||||||
|
|||||||
20
ct/gomft.sh
20
ct/gomft.sh
@@ -33,12 +33,12 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
if [[ ! -f "/usr/bin/node" ]]; then
|
if [[ ! -f "/usr/bin/node" ]]; then
|
||||||
mkdir -p /etc/apt/keyrings
|
mkdir -p /etc/apt/keyrings
|
||||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
curl -fsSL "https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key" | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
||||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
||||||
$STD apt-get update
|
$STD apt-get update
|
||||||
$STD apt-get install -y nodejs
|
$STD apt-get install -y nodejs
|
||||||
fi
|
fi
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/StarFleetCPTN/GoMFT/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL "https://api.github.com/repos/StarFleetCPTN/GoMFT/releases/latest" | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||||
msg_info "Stopping $APP"
|
msg_info "Stopping $APP"
|
||||||
systemctl stop gomft
|
systemctl stop gomft
|
||||||
@@ -47,16 +47,16 @@ function update_script() {
|
|||||||
msg_info "Updating $APP to ${RELEASE}"
|
msg_info "Updating $APP to ${RELEASE}"
|
||||||
rm -f /opt/gomft/gomft
|
rm -f /opt/gomft/gomft
|
||||||
temp_file=$(mktemp)
|
temp_file=$(mktemp)
|
||||||
curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -o $temp_file
|
curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
||||||
tar -xzf $temp_file
|
tar -xzf "$temp_file"
|
||||||
cp -rf GoMFT-${RELEASE}/* /opt/gomft
|
cp -rf "GoMFT-${RELEASE}"/* /opt/gomft/
|
||||||
cd /opt/gomft
|
cd /opt/gomft || exit
|
||||||
rm -f /opt/gomft/node_modules
|
rm -rf /opt/gomft/node_modules
|
||||||
$STD npm ci
|
$STD npm ci
|
||||||
$STD node build.js
|
$STD node build.js
|
||||||
$STD go mod download
|
$STD go mod download
|
||||||
$STD go get -u github.com/a-h/templ
|
$STD go get -u github.com/a-h/templ
|
||||||
$STD $HOME/go/bin/templ generate
|
$STD "$HOME"/go/bin/templ generate
|
||||||
export CGO_ENABLED=1
|
export CGO_ENABLED=1
|
||||||
export GOOS=linux
|
export GOOS=linux
|
||||||
$STD go build -o gomft
|
$STD go build -o gomft
|
||||||
@@ -65,8 +65,8 @@ function update_script() {
|
|||||||
msg_ok "Updated $APP to ${RELEASE}"
|
msg_ok "Updated $APP to ${RELEASE}"
|
||||||
|
|
||||||
msg_info "Cleaning Up"
|
msg_info "Cleaning Up"
|
||||||
rm -f $temp_file
|
rm -f "$temp_file"
|
||||||
rm -rf $HOME/GoMFT-v.${RELEASE}
|
rm -rf "$HOME/GoMFT-v.${RELEASE}/"
|
||||||
msg_ok "Cleanup Complete"
|
msg_ok "Cleanup Complete"
|
||||||
|
|
||||||
msg_info "Starting $APP"
|
msg_info "Starting $APP"
|
||||||
|
|||||||
6
ct/headers/meilisearch
Normal file
6
ct/headers/meilisearch
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
__ ___ _ ___ __
|
||||||
|
/ |/ /__ (_) (_)_______ ____ ___________/ /_
|
||||||
|
/ /|_/ / _ \/ / / / ___/ _ \/ __ `/ ___/ ___/ __ \
|
||||||
|
/ / / / __/ / / (__ ) __/ /_/ / / / /__/ / / /
|
||||||
|
/_/ /_/\___/_/_/_/____/\___/\__,_/_/ \___/_/ /_/
|
||||||
|
|
||||||
15
ct/lidarr.sh
15
ct/lidarr.sh
@@ -23,14 +23,25 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
|
|
||||||
if [[ ! -d /var/lib/lidarr/ ]]; then
|
if [[ ! -d /var/lib/lidarr/ ]]; 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
|
temp_file="$(mktemp)"
|
||||||
$STD apt-get -y upgrade
|
rm -rf /opt/Lidarr
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/Lidarr/Lidarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
curl -fsSL "https://github.com/Lidarr/Lidarr/releases/download/v${RELEASE}/Lidarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
|
||||||
|
$STD tar -xvzf "$temp_file"
|
||||||
|
mv Lidarr /opt
|
||||||
|
chmod 775 /opt/Lidarr
|
||||||
msg_ok "Updated $APP LXC"
|
msg_ok "Updated $APP LXC"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf "$temp_file"
|
||||||
|
msg_ok "Cleaned up"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
95
ct/meilisearch.sh
Normal file
95
ct/meilisearch.sh
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://www.meilisearch.com/
|
||||||
|
|
||||||
|
APP="Meilisearch"
|
||||||
|
var_tags="${var_tags:-full-text-search}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-4096}"
|
||||||
|
var_disk="${var_disk:-7}"
|
||||||
|
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 /opt/Meilisearch_version.txt ]]; then
|
||||||
|
msg_error "No Meilisearch Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Meilisearch Update" --radiolist --cancel-button Exit-Script "Spacebar = Select" 10 58 2 \
|
||||||
|
"1" "Update Meilisearch" ON \
|
||||||
|
"2" "Update Meilisearch-UI" OFF \
|
||||||
|
3>&1 1>&2 2>&3)
|
||||||
|
|
||||||
|
if [ "$UPD" == "1" ]; then
|
||||||
|
msg_info "Stopping Meilisearch"
|
||||||
|
systemctl stop meilisearch
|
||||||
|
msg_ok "Stopped Meilisearch"
|
||||||
|
|
||||||
|
msg_info "Updating Meilisearch"
|
||||||
|
tmp_file=$(mktemp)
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/meilisearch/meilisearch/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
curl -fsSL https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb -o $tmp_file
|
||||||
|
$STD dpkg -i $tmp_file
|
||||||
|
echo "$RELEASE" >/opt/meilisearch_version.txt
|
||||||
|
msg_ok "Updated Meilisearch"
|
||||||
|
|
||||||
|
msg_info "Starting Meilisearch"
|
||||||
|
systemctl start meilisearch
|
||||||
|
msg_ok "Started Meilisearch"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$UPD" == "2" ]; then
|
||||||
|
if [[ ! -f /opt/Meilisearch-ui_version.txt ]]; then
|
||||||
|
msg_error "No Meilisearch-UI Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
msg_info "Stopping Meilisearch-UI"
|
||||||
|
systemctl stop meilisearch-ui
|
||||||
|
msg_ok "Stopped Meilisearch-UI"
|
||||||
|
|
||||||
|
msg_info "Updating Meilisearch-UI"
|
||||||
|
tmp_file=$(mktemp)
|
||||||
|
tmp_dir=$(mktemp -d)
|
||||||
|
RELEASE_UI=$(curl -s https://api.github.com/repos/riccox/meilisearch-ui/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
cp /opt/meilisearch-ui/.env.local /tmp/.env.local.bak
|
||||||
|
rm -rf /opt/meilisearch-ui
|
||||||
|
mkdir -p /opt/meilisearch-ui
|
||||||
|
curl -fsSL "https://github.com/riccox/meilisearch-ui/archive/refs/tags/${RELEASE_UI}.zip" -o $tmp_file
|
||||||
|
unzip -q "$tmp_file" -d "$tmp_dir"
|
||||||
|
mv "$tmp_dir"/*/* /opt/meilisearch-ui/
|
||||||
|
cd /opt/meilisearch-ui
|
||||||
|
sed -i 's|const hash = execSync("git rev-parse HEAD").toString().trim();|const hash = "unknown";|' /opt/meilisearch-ui/vite.config.ts
|
||||||
|
mv /tmp/.env.local.bak /opt/meilisearch-ui/.env.local
|
||||||
|
$STD pnpm install
|
||||||
|
echo "$RELEASE_UI" >/opt/meilisearch-ui_version.txt
|
||||||
|
msg_ok "Updated Meilisearch-UI"
|
||||||
|
|
||||||
|
msg_info "Starting Meilisearch-UI"
|
||||||
|
systemctl start meilisearch-ui
|
||||||
|
msg_ok "Started Meilisearch-UI"
|
||||||
|
exit
|
||||||
|
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}meilisearch: http://${IP}:7700$ | meilisearch-ui: http://${IP}:24900${CL}"
|
||||||
@@ -27,10 +27,27 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
CURRENT_PHP=$(php -v 2>/dev/null | awk '/^PHP/{print $2}' | cut -d. -f1,2)
|
||||||
|
|
||||||
|
if [[ "$CURRENT_PHP" != "8.4" ]]; then
|
||||||
|
msg_info "Migrating PHP $CURRENT_PHP to 8.4"
|
||||||
|
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
||||||
|
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
||||||
|
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get remove -y php"${CURRENT_PHP//./}"*
|
||||||
|
$STD apt-get install -y \
|
||||||
|
php8.4 \
|
||||||
|
php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} \
|
||||||
|
libapache2-mod-php8.4
|
||||||
|
|
||||||
|
msg_ok "Migrated PHP $CURRENT_PHP to 8.4"
|
||||||
|
fi
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/pelican-dev/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/pelican-dev/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
cd /opt/pelican-panel
|
cd /opt/pelican-panel || exit
|
||||||
$STD php artisan down
|
$STD php artisan down
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
|||||||
@@ -23,11 +23,25 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
|
|
||||||
if [[ ! -d /var/lib/prowlarr/ ]]; then
|
if [[ ! -d /var/lib/prowlarr/ ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
msg_error "Currently we don't provide an update function for this ${APP}."
|
|
||||||
|
msg_info "Updating $APP LXC"
|
||||||
|
temp_file="$(mktemp)"
|
||||||
|
rm -rf /opt/Prowlarr
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/Prowlarr/Prowlarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
curl -fsSL "https://github.com/Prowlarr/Prowlarr/releases/download/v${RELEASE}/Prowlarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
|
||||||
|
$STD tar -xvzf "$temp_file"
|
||||||
|
mv Prowlarr /opt
|
||||||
|
chmod 775 /opt/Prowlarr
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -f "$temp_file"
|
||||||
|
msg_ok "Cleaned up"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,10 +27,27 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
CURRENT_PHP=$(php -v 2>/dev/null | awk '/^PHP/{print $2}' | cut -d. -f1,2)
|
||||||
|
|
||||||
|
if [[ "$CURRENT_PHP" != "8.4" ]]; then
|
||||||
|
msg_info "Migrating PHP $CURRENT_PHP to 8.4"
|
||||||
|
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
||||||
|
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
||||||
|
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get remove -y php"${CURRENT_PHP//./}"*
|
||||||
|
$STD apt-get install -y \
|
||||||
|
php8.4 \
|
||||||
|
php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} \
|
||||||
|
libapache2-mod-php8.4
|
||||||
|
|
||||||
|
msg_ok "Migrated PHP $CURRENT_PHP to 8.4"
|
||||||
|
fi
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/pterodactyl/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/pterodactyl/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
cd /opt/pterodactyl-panel
|
cd /opt/pterodactyl-panel || exit
|
||||||
$STD php artisan down
|
$STD php artisan down
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
|||||||
16
ct/radarr.sh
16
ct/radarr.sh
@@ -23,11 +23,25 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
|
|
||||||
if [[ ! -d /var/lib/radarr/ ]]; then
|
if [[ ! -d /var/lib/radarr/ ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
msg_error "Currently we don't provide an update function for this ${APP}."
|
|
||||||
|
msg_info "Updating $APP LXC"
|
||||||
|
temp_file="$(mktemp)"
|
||||||
|
rm -rf /opt/Radarr
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/Radarr/Radarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
curl -fsSL "https://github.com/Radarr/Radarr/releases/download/v${RELEASE}/Radarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
|
||||||
|
$STD tar -xvzf "$temp_file"
|
||||||
|
mv Radarr /opt
|
||||||
|
chmod 775 /opt/Radarr
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf "$temp_file"
|
||||||
|
msg_ok "Cleaned up"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
86
frontend/package-lock.json
generated
86
frontend/package-lock.json
generated
@@ -33,7 +33,7 @@
|
|||||||
"fuse.js": "^7.1.0",
|
"fuse.js": "^7.1.0",
|
||||||
"lucide-react": "^0.453.0",
|
"lucide-react": "^0.453.0",
|
||||||
"mini-svg-data-uri": "^1.4.4",
|
"mini-svg-data-uri": "^1.4.4",
|
||||||
"next": "15.2.3",
|
"next": "15.2.4",
|
||||||
"next-themes": "^0.3.0",
|
"next-themes": "^0.3.0",
|
||||||
"nuqs": "^2.4.1",
|
"nuqs": "^2.4.1",
|
||||||
"pocketbase": "^0.21.5",
|
"pocketbase": "^0.21.5",
|
||||||
@@ -1598,9 +1598,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@next/env": {
|
"node_modules/@next/env": {
|
||||||
"version": "15.2.3",
|
"version": "15.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@next/env/-/env-15.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/env/-/env-15.2.4.tgz",
|
||||||
"integrity": "sha512-a26KnbW9DFEUsSxAxKBORR/uD9THoYoKbkpFywMN/AFvboTt94b8+g/07T8J6ACsdLag8/PDU60ov4rPxRAixw==",
|
"integrity": "sha512-+SFtMgoiYP3WoSswuNmxJOCwi06TdWE733D+WPjpXIe4LXGULwEaofiiAy6kbS0+XjM5xF5n3lKuBwN2SnqD9g==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@next/eslint-plugin-next": {
|
"node_modules/@next/eslint-plugin-next": {
|
||||||
@@ -1644,9 +1644,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-darwin-arm64": {
|
"node_modules/@next/swc-darwin-arm64": {
|
||||||
"version": "15.2.3",
|
"version": "15.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.4.tgz",
|
||||||
"integrity": "sha512-uaBhA8aLbXLqwjnsHSkxs353WrRgQgiFjduDpc7YXEU0B54IKx3vU+cxQlYwPCyC8uYEEX7THhtQQsfHnvv8dw==",
|
"integrity": "sha512-1AnMfs655ipJEDC/FHkSr0r3lXBgpqKo4K1kiwfUf3iE68rDFXZ1TtHdMvf7D0hMItgDZ7Vuq3JgNMbt/+3bYw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -1660,9 +1660,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-darwin-x64": {
|
"node_modules/@next/swc-darwin-x64": {
|
||||||
"version": "15.2.3",
|
"version": "15.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.4.tgz",
|
||||||
"integrity": "sha512-pVwKvJ4Zk7h+4hwhqOUuMx7Ib02u3gDX3HXPKIShBi9JlYllI0nU6TWLbPT94dt7FSi6mSBhfc2JrHViwqbOdw==",
|
"integrity": "sha512-3qK2zb5EwCwxnO2HeO+TRqCubeI/NgCe+kL5dTJlPldV/uwCnUgC7VbEzgmxbfrkbjehL4H9BPztWOEtsoMwew==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -1676,9 +1676,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-linux-arm64-gnu": {
|
"node_modules/@next/swc-linux-arm64-gnu": {
|
||||||
"version": "15.2.3",
|
"version": "15.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.4.tgz",
|
||||||
"integrity": "sha512-50ibWdn2RuFFkOEUmo9NCcQbbV9ViQOrUfG48zHBCONciHjaUKtHcYFiCwBVuzD08fzvzkWuuZkd4AqbvKO7UQ==",
|
"integrity": "sha512-HFN6GKUcrTWvem8AZN7tT95zPb0GUGv9v0d0iyuTb303vbXkkbHDp/DxufB04jNVD+IN9yHy7y/6Mqq0h0YVaQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -1692,9 +1692,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-linux-arm64-musl": {
|
"node_modules/@next/swc-linux-arm64-musl": {
|
||||||
"version": "15.2.3",
|
"version": "15.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.4.tgz",
|
||||||
"integrity": "sha512-2gAPA7P652D3HzR4cLyAuVYwYqjG0mt/3pHSWTCyKZq/N/dJcUAEoNQMyUmwTZWCJRKofB+JPuDVP2aD8w2J6Q==",
|
"integrity": "sha512-Oioa0SORWLwi35/kVB8aCk5Uq+5/ZIumMK1kJV+jSdazFm2NzPDztsefzdmzzpx5oGCJ6FkUC7vkaUseNTStNA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -1708,9 +1708,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-linux-x64-gnu": {
|
"node_modules/@next/swc-linux-x64-gnu": {
|
||||||
"version": "15.2.3",
|
"version": "15.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.4.tgz",
|
||||||
"integrity": "sha512-ODSKvrdMgAJOVU4qElflYy1KSZRM3M45JVbeZu42TINCMG3anp7YCBn80RkISV6bhzKwcUqLBAmOiWkaGtBA9w==",
|
"integrity": "sha512-yb5WTRaHdkgOqFOZiu6rHV1fAEK0flVpaIN2HB6kxHVSy/dIajWbThS7qON3W9/SNOH2JWkVCyulgGYekMePuw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -1724,9 +1724,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-linux-x64-musl": {
|
"node_modules/@next/swc-linux-x64-musl": {
|
||||||
"version": "15.2.3",
|
"version": "15.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.4.tgz",
|
||||||
"integrity": "sha512-ZR9kLwCWrlYxwEoytqPi1jhPd1TlsSJWAc+H/CJHmHkf2nD92MQpSRIURR1iNgA/kuFSdxB8xIPt4p/T78kwsg==",
|
"integrity": "sha512-Dcdv/ix6srhkM25fgXiyOieFUkz+fOYkHlydWCtB0xMST6X9XYI3yPDKBZt1xuhOytONsIFJFB08xXYsxUwJLw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -1740,9 +1740,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-win32-arm64-msvc": {
|
"node_modules/@next/swc-win32-arm64-msvc": {
|
||||||
"version": "15.2.3",
|
"version": "15.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.4.tgz",
|
||||||
"integrity": "sha512-+G2FrDcfm2YDbhDiObDU/qPriWeiz/9cRR0yMWJeTLGGX6/x8oryO3tt7HhodA1vZ8r2ddJPCjtLcpaVl7TE2Q==",
|
"integrity": "sha512-dW0i7eukvDxtIhCYkMrZNQfNicPDExt2jPb9AZPpL7cfyUo7QSNl1DjsHjmmKp6qNAqUESyT8YFl/Aw91cNJJg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -1756,9 +1756,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@next/swc-win32-x64-msvc": {
|
"node_modules/@next/swc-win32-x64-msvc": {
|
||||||
"version": "15.2.3",
|
"version": "15.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.4.tgz",
|
||||||
"integrity": "sha512-gHYS9tc+G2W0ZC8rBL+H6RdtXIyk40uLiaos0yj5US85FNhbFEndMA2nW3z47nzOWiSvXTZ5kBClc3rD0zJg0w==",
|
"integrity": "sha512-SbnWkJmkS7Xl3kre8SdMF6F/XDh1DTFEhp0jRTj/uB8iPKoU2bb2NDfcu+iifv1+mxQEd1g2vvSxcZbXSKyWiQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -3255,7 +3255,7 @@
|
|||||||
"version": "19.0.0-rc.1",
|
"version": "19.0.0-rc.1",
|
||||||
"resolved": "https://registry.npmjs.org/types-react/-/types-react-19.0.0-rc.1.tgz",
|
"resolved": "https://registry.npmjs.org/types-react/-/types-react-19.0.0-rc.1.tgz",
|
||||||
"integrity": "sha512-RshndUfqTW6K3STLPis8BtAYCGOkMbtvYsi90gmVNDZBXUyUc5juf2PE9LfS/JmOlUIRO8cWTS/1MTnmhjDqyQ==",
|
"integrity": "sha512-RshndUfqTW6K3STLPis8BtAYCGOkMbtvYsi90gmVNDZBXUyUc5juf2PE9LfS/JmOlUIRO8cWTS/1MTnmhjDqyQ==",
|
||||||
"dev": true,
|
"devOptional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"csstype": "^3.0.2"
|
"csstype": "^3.0.2"
|
||||||
}
|
}
|
||||||
@@ -3265,7 +3265,7 @@
|
|||||||
"version": "19.0.0-rc.1",
|
"version": "19.0.0-rc.1",
|
||||||
"resolved": "https://registry.npmjs.org/types-react-dom/-/types-react-dom-19.0.0-rc.1.tgz",
|
"resolved": "https://registry.npmjs.org/types-react-dom/-/types-react-dom-19.0.0-rc.1.tgz",
|
||||||
"integrity": "sha512-VSLZJl8VXCD0fAWp7DUTFUDCcZ8DVXOQmjhJMD03odgeFmu14ZQJHCXeETm3BEAhJqfgJaFkLnGkQv88sRx0fQ==",
|
"integrity": "sha512-VSLZJl8VXCD0fAWp7DUTFUDCcZ8DVXOQmjhJMD03odgeFmu14ZQJHCXeETm3BEAhJqfgJaFkLnGkQv88sRx0fQ==",
|
||||||
"dev": true,
|
"devOptional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/react": "*"
|
"@types/react": "*"
|
||||||
}
|
}
|
||||||
@@ -7194,12 +7194,12 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/next": {
|
"node_modules/next": {
|
||||||
"version": "15.2.3",
|
"version": "15.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/next/-/next-15.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/next/-/next-15.2.4.tgz",
|
||||||
"integrity": "sha512-x6eDkZxk2rPpu46E1ZVUWIBhYCLszmUY6fvHBFcbzJ9dD+qRX6vcHusaqqDlnY+VngKzKbAiG2iRCkPbmi8f7w==",
|
"integrity": "sha512-VwL+LAaPSxEkd3lU2xWbgEOtrM8oedmyhBqaVNmgKB+GvZlCy9rgaEc+y2on0wv+l0oSFqLtYD6dcC1eAedUaQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@next/env": "15.2.3",
|
"@next/env": "15.2.4",
|
||||||
"@swc/counter": "0.1.3",
|
"@swc/counter": "0.1.3",
|
||||||
"@swc/helpers": "0.5.15",
|
"@swc/helpers": "0.5.15",
|
||||||
"busboy": "1.6.0",
|
"busboy": "1.6.0",
|
||||||
@@ -7214,14 +7214,14 @@
|
|||||||
"node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
|
"node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@next/swc-darwin-arm64": "15.2.3",
|
"@next/swc-darwin-arm64": "15.2.4",
|
||||||
"@next/swc-darwin-x64": "15.2.3",
|
"@next/swc-darwin-x64": "15.2.4",
|
||||||
"@next/swc-linux-arm64-gnu": "15.2.3",
|
"@next/swc-linux-arm64-gnu": "15.2.4",
|
||||||
"@next/swc-linux-arm64-musl": "15.2.3",
|
"@next/swc-linux-arm64-musl": "15.2.4",
|
||||||
"@next/swc-linux-x64-gnu": "15.2.3",
|
"@next/swc-linux-x64-gnu": "15.2.4",
|
||||||
"@next/swc-linux-x64-musl": "15.2.3",
|
"@next/swc-linux-x64-musl": "15.2.4",
|
||||||
"@next/swc-win32-arm64-msvc": "15.2.3",
|
"@next/swc-win32-arm64-msvc": "15.2.4",
|
||||||
"@next/swc-win32-x64-msvc": "15.2.3",
|
"@next/swc-win32-x64-msvc": "15.2.4",
|
||||||
"sharp": "^0.33.5"
|
"sharp": "^0.33.5"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
@@ -7851,7 +7851,6 @@
|
|||||||
"version": "3.5.3",
|
"version": "3.5.3",
|
||||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
|
||||||
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
|
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bin": {
|
"bin": {
|
||||||
"prettier": "bin/prettier.cjs"
|
"prettier": "bin/prettier.cjs"
|
||||||
@@ -9542,7 +9541,6 @@
|
|||||||
"version": "5.8.2",
|
"version": "5.8.2",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz",
|
||||||
"integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==",
|
"integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==",
|
||||||
"dev": true,
|
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"bin": {
|
"bin": {
|
||||||
"tsc": "bin/tsc",
|
"tsc": "bin/tsc",
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
"fuse.js": "^7.1.0",
|
"fuse.js": "^7.1.0",
|
||||||
"lucide-react": "^0.453.0",
|
"lucide-react": "^0.453.0",
|
||||||
"mini-svg-data-uri": "^1.4.4",
|
"mini-svg-data-uri": "^1.4.4",
|
||||||
"next": "15.2.3",
|
"next": "15.2.4",
|
||||||
"next-themes": "^0.3.0",
|
"next-themes": "^0.3.0",
|
||||||
"nuqs": "^2.4.1",
|
"nuqs": "^2.4.1",
|
||||||
"pocketbase": "^0.21.5",
|
"pocketbase": "^0.21.5",
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
"type": "info"
|
"type": "info"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "To exclude LXCs from updating, edit the crontab using `crontab -e` and add CTID as shown in the example below:\n\n\n\n`0 0 * * 0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c '$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/update-lxcs-cron.sh)' -s 103 111 >>/var/log/update-lxcs-cron.log 2>/dev/null`",
|
"text": "To exclude LXCs from updating, edit the crontab using `crontab -e` and add CTID as shown in the example below:\n\n\n\n`0 0 * * 0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c '$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/update-lxcs-cron.sh)' -s 103 111 >>/var/log/update-lxcs-cron.log 2>/dev/null`",
|
||||||
"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": 8686,
|
"interface_port": 8686,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
|
|||||||
43
frontend/public/json/meilisearch.json
Normal file
43
frontend/public/json/meilisearch.json
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
"name": "Meilisearch",
|
||||||
|
"slug": "meilisearch",
|
||||||
|
"categories": [
|
||||||
|
8
|
||||||
|
],
|
||||||
|
"date_created": "2025-04-04",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": 7700,
|
||||||
|
"documentation": "https://www.meilisearch.com/docs",
|
||||||
|
"website": "https://www.meilisearch.com/",
|
||||||
|
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/meilisearch.svg",
|
||||||
|
"description": "Meilisearch is a fast, open-source search engine designed for instant, full-text search with typo tolerance. It provides an API that allows developers to integrate powerful search features into applications. Meilisearch-UI is an optional web-based interface that provides a simple way to interact with Meilisearch, visualize indexed data, and test queries without needing to use the API directly.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/meilisearch.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 2,
|
||||||
|
"ram": 4096,
|
||||||
|
"hdd": 7,
|
||||||
|
"os": "debian",
|
||||||
|
"version": "12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"text": "Meilisearch-UI can optionally be installed for a web-based search interface",
|
||||||
|
"type": "info"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "Meilisearch-UI has early development status and can caused performance issues",
|
||||||
|
"type": "warn"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -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": 9696,
|
"interface_port": 9696,
|
||||||
"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": 7878,
|
"interface_port": 7878,
|
||||||
"documentation": null,
|
"documentation": null,
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
},
|
},
|
||||||
"notes": [
|
"notes": [
|
||||||
{
|
{
|
||||||
"text": "See /opt/slskd/config/sksld.yml to add your Soulseek credentials",
|
"text": "See /opt/slskd/config/slskd.yml to add your Soulseek credentials",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,48 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"name": "Graylog2/graylog2-server",
|
"name": "fhem/fhem-mirror",
|
||||||
"version": "6.1.9",
|
"version": "6.2",
|
||||||
"date": "2025-04-02T11:18:59Z"
|
"date": "2025-04-04T10:34:30Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "dgtlmoon/changedetection.io",
|
||||||
|
"version": "0.49.12",
|
||||||
|
"date": "2025-04-04T07:31:08Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "morpheus65535/bazarr",
|
||||||
|
"version": "v1.5.1",
|
||||||
|
"date": "2025-01-01T16:15:52Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jackett/Jackett",
|
||||||
|
"version": "v0.22.1726",
|
||||||
|
"date": "2025-04-04T05:59:26Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "keycloak/keycloak",
|
||||||
|
"version": "26.1.4",
|
||||||
|
"date": "2025-03-13T15:41:42Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "minio/minio",
|
||||||
|
"version": "RELEASE.2025-04-03T14-56-28Z",
|
||||||
|
"date": "2025-04-03T19:08:18Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fallenbagel/jellyseerr",
|
||||||
|
"version": "v2.5.2",
|
||||||
|
"date": "2025-04-03T17:40:17Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wazuh/wazuh",
|
||||||
|
"version": "v4.11.2",
|
||||||
|
"date": "2025-04-02T13:40:18Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "OctoPrint/OctoPrint",
|
||||||
|
"version": "1.10.3",
|
||||||
|
"date": "2024-11-05T09:20:50Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "syncthing/syncthing",
|
"name": "syncthing/syncthing",
|
||||||
@@ -10,19 +50,19 @@
|
|||||||
"date": "2025-04-01T08:45:07Z"
|
"date": "2025-04-01T08:45:07Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "fhem/fhem-mirror",
|
"name": "firefly-iii/firefly-iii",
|
||||||
"version": "6.2",
|
"version": "v6.2.10",
|
||||||
"date": "2025-04-02T10:34:08Z"
|
"date": "2025-03-22T13:02:26Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "home-assistant/core",
|
"name": "Graylog2/graylog2-server",
|
||||||
"version": "2025.3.4",
|
"version": "6.0.14",
|
||||||
"date": "2025-03-21T20:22:46Z"
|
"date": "2025-04-03T07:52:24Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "zwave-js/zwave-js-ui",
|
"name": "jupyter/notebook",
|
||||||
"version": "v10.1.4",
|
"version": "@jupyter-notebook/ui-components@7.4.0-rc.0",
|
||||||
"date": "2025-04-02T09:38:52Z"
|
"date": "2025-04-03T06:49:38Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "mattermost/mattermost",
|
"name": "mattermost/mattermost",
|
||||||
@@ -30,14 +70,69 @@
|
|||||||
"date": "2025-03-28T14:04:31Z"
|
"date": "2025-03-28T14:04:31Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Jackett/Jackett",
|
"name": "rabbitmq/rabbitmq-server",
|
||||||
"version": "v0.22.1719",
|
"version": "v4.0.8",
|
||||||
"date": "2025-04-02T05:50:17Z"
|
"date": "2025-04-03T05:11:15Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "rabbitmq/rabbitmq-server",
|
"name": "ollama/ollama",
|
||||||
"version": "v4.0.7",
|
"version": "v0.6.4",
|
||||||
"date": "2025-02-26T19:07:11Z"
|
"date": "2025-04-02T22:14:24Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "HabitRPG/habitica",
|
||||||
|
"version": "v5.35.1",
|
||||||
|
"date": "2025-04-02T21:49:00Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "redis/redis",
|
||||||
|
"version": "8.0-rc1-int2",
|
||||||
|
"date": "2025-04-02T19:05:08Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "zitadel/zitadel",
|
||||||
|
"version": "v2.63.9",
|
||||||
|
"date": "2025-03-31T12:47:21Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "home-assistant/core",
|
||||||
|
"version": "2025.4.0",
|
||||||
|
"date": "2025-04-02T17:01:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BookStackApp/BookStack",
|
||||||
|
"version": "v25.02.2",
|
||||||
|
"date": "2025-04-02T16:39:50Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cloudflare/cloudflared",
|
||||||
|
"version": "2025.4.0",
|
||||||
|
"date": "2025-04-02T15:38:53Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "jenkinsci/jenkins",
|
||||||
|
"version": "jenkins-2.503",
|
||||||
|
"date": "2025-04-02T15:12:13Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Checkmk/checkmk",
|
||||||
|
"version": "v2.4.0b3",
|
||||||
|
"date": "2025-04-02T14:39:56Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "hargata/lubelog",
|
||||||
|
"version": "v1.4.6",
|
||||||
|
"date": "2025-04-02T14:07:12Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "zwave-js/zwave-js-ui",
|
||||||
|
"version": "v10.1.4",
|
||||||
|
"date": "2025-04-02T09:38:52Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "runtipi/runtipi",
|
||||||
|
"version": "v3.10.0",
|
||||||
|
"date": "2025-03-15T14:38:16Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "immich-app/immich",
|
"name": "immich-app/immich",
|
||||||
@@ -49,16 +144,6 @@
|
|||||||
"version": "v0.14.3",
|
"version": "v0.14.3",
|
||||||
"date": "2025-04-01T19:53:18Z"
|
"date": "2025-04-01T19:53:18Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "runtipi/runtipi",
|
|
||||||
"version": "v3.10.0",
|
|
||||||
"date": "2025-03-15T14:38:16Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "fallenbagel/jellyseerr",
|
|
||||||
"version": "preview-music-support",
|
|
||||||
"date": "2025-04-01T19:04:25Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Koenkk/zigbee2mqtt",
|
"name": "Koenkk/zigbee2mqtt",
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
@@ -89,11 +174,6 @@
|
|||||||
"version": "v1.127.1",
|
"version": "v1.127.1",
|
||||||
"date": "2025-03-26T21:44:28Z"
|
"date": "2025-03-26T21:44:28Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "keycloak/keycloak",
|
|
||||||
"version": "26.1.4",
|
|
||||||
"date": "2025-03-13T15:41:42Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Luligu/matterbridge",
|
"name": "Luligu/matterbridge",
|
||||||
"version": "2.2.6",
|
"version": "2.2.6",
|
||||||
@@ -104,11 +184,6 @@
|
|||||||
"version": "v11.8.6",
|
"version": "v11.8.6",
|
||||||
"date": "2025-04-01T13:52:03Z"
|
"date": "2025-04-01T13:52:03Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "OctoPrint/OctoPrint",
|
|
||||||
"version": "1.10.3",
|
|
||||||
"date": "2024-11-05T09:20:50Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "semaphoreui/semaphore",
|
"name": "semaphoreui/semaphore",
|
||||||
"version": "v2.13.7",
|
"version": "v2.13.7",
|
||||||
@@ -119,21 +194,6 @@
|
|||||||
"version": "5.26.5",
|
"version": "5.26.5",
|
||||||
"date": "2025-04-01T09:32:48Z"
|
"date": "2025-04-01T09:32:48Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Checkmk/checkmk",
|
|
||||||
"version": "v2.4.0b3-rc1",
|
|
||||||
"date": "2025-04-01T09:22:44Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "wazuh/wazuh",
|
|
||||||
"version": "v4.11.2",
|
|
||||||
"date": "2025-04-01T07:07:35Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "firefly-iii/firefly-iii",
|
|
||||||
"version": "v6.2.10",
|
|
||||||
"date": "2025-03-22T13:02:26Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "diced/zipline",
|
"name": "diced/zipline",
|
||||||
"version": "v4.0.2",
|
"version": "v4.0.2",
|
||||||
@@ -164,11 +224,6 @@
|
|||||||
"version": "v4.2.0",
|
"version": "v4.2.0",
|
||||||
"date": "2025-03-19T18:34:01Z"
|
"date": "2025-03-19T18:34:01Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "redis/redis",
|
|
||||||
"version": "8.0-rc1-int",
|
|
||||||
"date": "2025-03-31T18:26:40Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "traefik/traefik",
|
"name": "traefik/traefik",
|
||||||
"version": "v3.3.5",
|
"version": "v3.3.5",
|
||||||
@@ -184,11 +239,6 @@
|
|||||||
"version": "n8n@1.84.3",
|
"version": "n8n@1.84.3",
|
||||||
"date": "2025-03-27T11:54:33Z"
|
"date": "2025-03-27T11:54:33Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "zitadel/zitadel",
|
|
||||||
"version": "v2.63.9",
|
|
||||||
"date": "2025-03-31T12:47:21Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "documenso/documenso",
|
"name": "documenso/documenso",
|
||||||
"version": "v1.10.0-rc.4",
|
"version": "v1.10.0-rc.4",
|
||||||
@@ -389,11 +439,6 @@
|
|||||||
"version": "0.202.1",
|
"version": "0.202.1",
|
||||||
"date": "2025-03-27T08:24:55Z"
|
"date": "2025-03-27T08:24:55Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "morpheus65535/bazarr",
|
|
||||||
"version": "v1.5.1",
|
|
||||||
"date": "2025-01-01T16:15:52Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "openobserve/openobserve",
|
"name": "openobserve/openobserve",
|
||||||
"version": "v0.14.5-rc6",
|
"version": "v0.14.5-rc6",
|
||||||
@@ -404,26 +449,11 @@
|
|||||||
"version": "v2.1.0.112-2.1.0.112_canary_2025-03-26",
|
"version": "v2.1.0.112-2.1.0.112_canary_2025-03-26",
|
||||||
"date": "2025-03-26T21:04:38Z"
|
"date": "2025-03-26T21:04:38Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "ollama/ollama",
|
|
||||||
"version": "v0.6.3-rc1",
|
|
||||||
"date": "2025-03-26T20:39:01Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "dgtlmoon/changedetection.io",
|
|
||||||
"version": "0.49.9",
|
|
||||||
"date": "2025-03-26T15:31:03Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "prometheus/prometheus",
|
"name": "prometheus/prometheus",
|
||||||
"version": "v0.303.0-rc.0",
|
"version": "v0.303.0-rc.0",
|
||||||
"date": "2025-03-26T12:48:46Z"
|
"date": "2025-03-26T12:48:46Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "jupyter/notebook",
|
|
||||||
"version": "@jupyter-notebook/ui-components@7.4.0-beta.3",
|
|
||||||
"date": "2025-03-26T10:07:53Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "forgejo/forgejo",
|
"name": "forgejo/forgejo",
|
||||||
"version": "v12.0.0-dev",
|
"version": "v12.0.0-dev",
|
||||||
@@ -459,11 +489,6 @@
|
|||||||
"version": "v0.0.7",
|
"version": "v0.0.7",
|
||||||
"date": "2025-03-25T15:11:18Z"
|
"date": "2025-03-25T15:11:18Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "jenkinsci/jenkins",
|
|
||||||
"version": "jenkins-2.503",
|
|
||||||
"date": "2025-03-25T14:01:20Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "crowdsecurity/crowdsec",
|
"name": "crowdsecurity/crowdsec",
|
||||||
"version": "v1.6.8",
|
"version": "v1.6.8",
|
||||||
@@ -484,11 +509,6 @@
|
|||||||
"version": "2025-03-24-r2",
|
"version": "2025-03-24-r2",
|
||||||
"date": "2025-03-24T20:52:35Z"
|
"date": "2025-03-24T20:52:35Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "HabitRPG/habitica",
|
|
||||||
"version": "v5.35.0",
|
|
||||||
"date": "2025-03-24T20:51:10Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "go-gitea/gitea",
|
"name": "go-gitea/gitea",
|
||||||
"version": "v1.23.6",
|
"version": "v1.23.6",
|
||||||
@@ -624,11 +644,6 @@
|
|||||||
"version": "v1.60.0",
|
"version": "v1.60.0",
|
||||||
"date": "2025-03-16T18:39:49Z"
|
"date": "2025-03-16T18:39:49Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "BookStackApp/BookStack",
|
|
||||||
"version": "v25.02.1",
|
|
||||||
"date": "2025-03-16T12:51:00Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Kozea/Radicale",
|
"name": "Kozea/Radicale",
|
||||||
"version": "v3.5.0",
|
"version": "v3.5.0",
|
||||||
@@ -689,11 +704,6 @@
|
|||||||
"version": "2.31.0",
|
"version": "2.31.0",
|
||||||
"date": "2025-03-13T17:13:47Z"
|
"date": "2025-03-13T17:13:47Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "minio/minio",
|
|
||||||
"version": "RELEASE.2025-03-12T18-04-18Z",
|
|
||||||
"date": "2025-03-12T18:45:21Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "transmission/transmission",
|
"name": "transmission/transmission",
|
||||||
"version": "4.0.1-beta.1",
|
"version": "4.0.1-beta.1",
|
||||||
@@ -759,11 +769,6 @@
|
|||||||
"version": "v0.28.1",
|
"version": "v0.28.1",
|
||||||
"date": "2025-03-07T15:41:35Z"
|
"date": "2025-03-07T15:41:35Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "hargata/lubelog",
|
|
||||||
"version": "v1.4.5",
|
|
||||||
"date": "2025-03-06T19:43:48Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "eclipse-mosquitto/mosquitto",
|
"name": "eclipse-mosquitto/mosquitto",
|
||||||
"version": "v2.0.21",
|
"version": "v2.0.21",
|
||||||
@@ -809,11 +814,6 @@
|
|||||||
"version": "v1.5.7",
|
"version": "v1.5.7",
|
||||||
"date": "2025-02-27T20:04:08Z"
|
"date": "2025-02-27T20:04:08Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "cloudflare/cloudflared",
|
|
||||||
"version": "2025.2.1",
|
|
||||||
"date": "2025-02-27T11:36:11Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "cross-seed/cross-seed",
|
"name": "cross-seed/cross-seed",
|
||||||
"version": "v6.11.2",
|
"version": "v6.11.2",
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
|||||||
msg_ok "Installed Golang"
|
msg_ok "Installed Golang"
|
||||||
|
|
||||||
msg_info "Setup xCaddy"
|
msg_info "Setup xCaddy"
|
||||||
|
$STD apt-get install -y git
|
||||||
cd /opt
|
cd /opt
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/caddyserver/xcaddy/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/caddyserver/xcaddy/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
curl -fsSL "https://github.com/caddyserver/xcaddy/releases/download/${RELEASE}/xcaddy_${RELEASE:1}_linux_amd64.deb" -o $(basename "https://github.com/caddyserver/xcaddy/releases/download/${RELEASE}/xcaddy_${RELEASE:1}_linux_amd64.deb")
|
curl -fsSL "https://github.com/caddyserver/xcaddy/releases/download/${RELEASE}/xcaddy_${RELEASE:1}_linux_amd64.deb" -o $(basename "https://github.com/caddyserver/xcaddy/releases/download/${RELEASE}/xcaddy_${RELEASE:1}_linux_amd64.deb")
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ $STD apt-get install -y g++-multilib
|
|||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Installing Daemon Sync Server"
|
msg_info "Installing Daemon Sync Server"
|
||||||
curl -fsSL "https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/daemonsync_2.2.0.0059_amd64.deb" -o "daemonsync_2.2.0.0059_amd64.deb"
|
curl -fsSL "https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/daemonsync_2.2.0.0059_amd64.deb" -o "daemonsync_2.2.0.0059_amd64.deb"
|
||||||
$STD dpkg -i daemonsync_2.2.0.0059_amd64.deb
|
$STD dpkg -i daemonsync_2.2.0.0059_amd64.deb
|
||||||
msg_ok "Installed Daemon Sync Server"
|
msg_ok "Installed Daemon Sync Server"
|
||||||
|
|
||||||
|
|||||||
@@ -14,17 +14,19 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y sqlite3
|
$STD apt-get install -y \
|
||||||
$STD apt-get install -y libchromaprint-tools
|
sqlite3 \
|
||||||
$STD apt-get install -y mediainfo
|
libchromaprint-tools \
|
||||||
|
mediainfo
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Installing Lidarr"
|
msg_info "Installing Lidarr"
|
||||||
|
temp_file="$(mktemp)"
|
||||||
mkdir -p /var/lib/lidarr/
|
mkdir -p /var/lib/lidarr/
|
||||||
chmod 775 /var/lib/lidarr/
|
chmod 775 /var/lib/lidarr/
|
||||||
cd /var/lib/lidarr/
|
RELEASE=$(curl -fsSL https://api.github.com/repos/Lidarr/Lidarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
$STD curl -fsSL 'https://lidarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=x64' -o lidarr.tar.gz
|
curl -fsSL "https://github.com/Lidarr/Lidarr/releases/download/v${RELEASE}/Lidarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
|
||||||
$STD tar -xvzf lidarr.tar.gz
|
$STD tar -xvzf "$temp_file"
|
||||||
mv Lidarr /opt
|
mv Lidarr /opt
|
||||||
chmod 775 /opt/Lidarr
|
chmod 775 /opt/Lidarr
|
||||||
msg_ok "Installed Lidarr"
|
msg_ok "Installed Lidarr"
|
||||||
@@ -44,15 +46,14 @@ Restart=on-failure
|
|||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
systemctl -q daemon-reload
|
systemctl enable -q --now lidarr
|
||||||
systemctl enable --now -q lidarr
|
|
||||||
msg_ok "Created Service"
|
msg_ok "Created Service"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -rf Lidarr.master.*.tar.gz
|
rm -rf "$temp_file"
|
||||||
$STD apt-get -y autoremove
|
$STD apt-get -y autoremove
|
||||||
$STD apt-get -y autoclean
|
$STD apt-get -y autoclean
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|||||||
122
install/meilisearch-install.sh
Normal file
122
install/meilisearch-install.sh
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://www.meilisearch.com/
|
||||||
|
|
||||||
|
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 \
|
||||||
|
gnupg
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
msg_info "Setup ${APPLICATION}"
|
||||||
|
tmp_file=$(mktemp)
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/meilisearch/meilisearch/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
curl -fsSL https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb -o $tmp_file
|
||||||
|
$STD dpkg -i $tmp_file
|
||||||
|
curl -fsSL https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml -o /etc/meilisearch.toml
|
||||||
|
MASTER_KEY=$(openssl rand -base64 12)
|
||||||
|
LOCAL_IP="$(hostname -I | awk '{print $1}')"
|
||||||
|
sed -i \
|
||||||
|
-e 's|^env =.*|env = "production"|' \
|
||||||
|
-e "s|^# master_key =.*|master_key = \"$MASTER_KEY\"|" \
|
||||||
|
-e 's|^db_path =.*|db_path = "/var/lib/meilisearch/data"|' \
|
||||||
|
-e 's|^dump_dir =.*|dump_dir = "/var/lib/meilisearch/dumps"|' \
|
||||||
|
-e 's|^snapshot_dir =.*|snapshot_dir = "/var/lib/meilisearch/snapshots"|' \
|
||||||
|
-e 's|^# no_analytics = true|no_analytics = true|' \
|
||||||
|
-e 's|^http_addr =.*|http_addr = "0.0.0.0:7700"|' \
|
||||||
|
/etc/meilisearch.toml
|
||||||
|
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||||
|
msg_ok "Setup ${APPLICATION}"
|
||||||
|
|
||||||
|
read -r -p "Do you want add meilisearch-ui? [y/n]: " prompt
|
||||||
|
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||||
|
msg_info "Setting up Node.js Repository"
|
||||||
|
mkdir -p /etc/apt/keyrings
|
||||||
|
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
||||||
|
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
||||||
|
msg_ok "Set up Node.js Repository"
|
||||||
|
|
||||||
|
msg_info "Installing Node.js"
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get install -y nodejs
|
||||||
|
$STD npm install -g pnpm
|
||||||
|
msg_ok "Installed Node.js"
|
||||||
|
|
||||||
|
msg_info "Setup ${APPLICATION}-ui"
|
||||||
|
tmp_file=$(mktemp)
|
||||||
|
tmp_dir=$(mktemp -d)
|
||||||
|
mkdir -p /opt/meilisearch-ui
|
||||||
|
RELEASE_UI=$(curl -s https://api.github.com/repos/riccox/meilisearch-ui/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
curl -fsSL "https://github.com/riccox/meilisearch-ui/archive/refs/tags/${RELEASE_UI}.zip" -o $tmp_file
|
||||||
|
unzip -q "$tmp_file" -d "$tmp_dir"
|
||||||
|
mv "$tmp_dir"/*/* /opt/meilisearch-ui/
|
||||||
|
cd /opt/meilisearch-ui
|
||||||
|
sed -i 's|const hash = execSync("git rev-parse HEAD").toString().trim();|const hash = "unknown";|' /opt/meilisearch-ui/vite.config.ts
|
||||||
|
$STD pnpm install
|
||||||
|
cat <<EOF > /opt/meilisearch-ui/.env.local
|
||||||
|
VITE_SINGLETON_MODE=true
|
||||||
|
VITE_SINGLETON_HOST=http://${LOCAL_IP}:7700
|
||||||
|
VITE_SINGLETON_API_KEY=${MASTER_KEY}
|
||||||
|
EOF
|
||||||
|
echo "${RELEASE_UI}" >/opt/${APPLICATION}-ui_version.txt
|
||||||
|
msg_ok "Setup ${APPLICATION}-ui"
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Setting up Services"
|
||||||
|
cat <<EOF >/etc/systemd/system/meilisearch.service
|
||||||
|
[Unit]
|
||||||
|
Description=Meilisearch
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/bin/meilisearch --config-file-path /etc/meilisearch.toml
|
||||||
|
Restart=always
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
systemctl enable -q --now meilisearch
|
||||||
|
|
||||||
|
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||||
|
cat <<EOF > /etc/systemd/system/meilisearch-ui.service
|
||||||
|
[Unit]
|
||||||
|
Description=Meilisearch UI Service
|
||||||
|
After=network.target meilisearch.service
|
||||||
|
Requires=meilisearch.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=root
|
||||||
|
WorkingDirectory=/opt/meilisearch-ui
|
||||||
|
ExecStart=/usr/bin/pnpm start
|
||||||
|
Restart=always
|
||||||
|
RestartSec=5
|
||||||
|
StandardOutput=syslog
|
||||||
|
StandardError=syslog
|
||||||
|
SyslogIdentifier=meilisearch-ui
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
systemctl enable -q --now meilisearch-ui
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_ok "Set up Services"
|
||||||
|
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
@@ -22,19 +22,19 @@ $STD apt-get install -y \
|
|||||||
composer
|
composer
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Adding PHP8.3 Repository"
|
msg_info "Adding PHP8.4 Repository"
|
||||||
$STD curl -fsSL "https://packages.sury.org/debsuryorg-archive-keyring.deb" -o /tmp/debsuryorg-archive-keyring.deb
|
$STD curl -sSLo "https://packages.sury.org/debsuryorg-archive-keyring.deb" -o /tmp/debsuryorg-archive-keyring.deb
|
||||||
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
||||||
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
|
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
|
||||||
$STD apt-get update
|
$STD apt-get update
|
||||||
msg_ok "Added PHP8.3 Repository"
|
msg_ok "Added PHP8.4 Repository"
|
||||||
|
|
||||||
msg_info "Installing PHP"
|
msg_info "Installing PHP"
|
||||||
$STD apt-get remove -y php8.2*
|
$STD apt-get remove -y php8.2*
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
php8.3 \
|
php8.4 \
|
||||||
php8.3-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,sqlite3,fpm} \
|
php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,sqlite3,fpm} \
|
||||||
libapache2-mod-php8.3
|
libapache2-mod-php8.4
|
||||||
msg_info "Installed PHP"
|
msg_info "Installed PHP"
|
||||||
|
|
||||||
msg_info "Setting up MariaDB"
|
msg_info "Setting up MariaDB"
|
||||||
@@ -55,7 +55,7 @@ msg_ok "Set up MariaDB"
|
|||||||
msg_info "Installing Pelican Panel"
|
msg_info "Installing Pelican Panel"
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/pelican-dev/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/pelican-dev/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
mkdir /opt/pelican-panel
|
mkdir /opt/pelican-panel
|
||||||
cd /opt/pelican-panel
|
cd /opt/pelican-panel || exit
|
||||||
curl -fsSL "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz" -o $(basename "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz")
|
curl -fsSL "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz" -o $(basename "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz")
|
||||||
tar -xzf "panel.tar.gz"
|
tar -xzf "panel.tar.gz"
|
||||||
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
||||||
@@ -64,7 +64,7 @@ $STD php artisan p:environment:queue-service --no-interaction
|
|||||||
echo "* * * * * php /opt/pelican-panel/artisan schedule:run >> /dev/null 2>&1" | crontab -u www-data -
|
echo "* * * * * php /opt/pelican-panel/artisan schedule:run >> /dev/null 2>&1" | crontab -u www-data -
|
||||||
chown -R www-data:www-data /opt/pelican-panel
|
chown -R www-data:www-data /opt/pelican-panel
|
||||||
chmod -R 755 /opt/pelican-panel/storage /opt/pelican-panel/bootstrap/cache/
|
chmod -R 755 /opt/pelican-panel/storage /opt/pelican-panel/bootstrap/cache/
|
||||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
|
||||||
msg_ok "Installed Pelican Panel"
|
msg_ok "Installed Pelican Panel"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
|
|||||||
@@ -18,11 +18,13 @@ $STD apt-get install -y sqlite3
|
|||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Installing Prowlarr"
|
msg_info "Installing Prowlarr"
|
||||||
|
temp_file="$(mktemp)"
|
||||||
mkdir -p /var/lib/prowlarr/
|
mkdir -p /var/lib/prowlarr/
|
||||||
chmod 775 /var/lib/prowlarr/
|
chmod 775 /var/lib/prowlarr/
|
||||||
cd /var/lib/prowlarr/
|
cd /var/lib/prowlarr/ || exit
|
||||||
$STD curl -fsSL 'https://prowlarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=x64' -o prowlarr.tar.gz
|
RELEASE=$(curl -fsSL https://api.github.com/repos/Prowlarr/Prowlarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
$STD tar -xvzf prowlarr.tar.gz
|
curl -fsSL "https://github.com/Prowlarr/Prowlarr/releases/download/v${RELEASE}/Prowlarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
|
||||||
|
$STD tar -xvzf "$temp_file"
|
||||||
mv Prowlarr /opt
|
mv Prowlarr /opt
|
||||||
chmod 775 /opt/Prowlarr
|
chmod 775 /opt/Prowlarr
|
||||||
msg_ok "Installed Prowlarr"
|
msg_ok "Installed Prowlarr"
|
||||||
@@ -42,15 +44,14 @@ Restart=on-failure
|
|||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
systemctl -q daemon-reload
|
systemctl enable -q --now prowlarr
|
||||||
systemctl enable --now -q prowlarr
|
|
||||||
msg_ok "Created Service"
|
msg_ok "Created Service"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -rf Prowlarr.master.*.tar.gz
|
rm -f "$temp_file"
|
||||||
$STD apt-get -y autoremove
|
$STD apt-get -y autoremove
|
||||||
$STD apt-get -y autoclean
|
$STD apt-get -y autoclean
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -23,19 +23,19 @@ $STD apt-get install -y \
|
|||||||
composer
|
composer
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Adding PHP8.3 Repository"
|
msg_info "Adding PHP8.4 Repository"
|
||||||
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
||||||
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
||||||
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
|
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
|
||||||
$STD apt-get update
|
$STD apt-get update
|
||||||
msg_ok "Added PHP8.3 Repository"
|
msg_ok "Added PHP8.4 Repository"
|
||||||
|
|
||||||
msg_info "Installing PHP"
|
msg_info "Installing PHP"
|
||||||
$STD apt-get remove -y php8.2*
|
$STD apt-get remove -y php8.2*
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
php8.3 \
|
php8.4 \
|
||||||
php8.3-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} \
|
php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} \
|
||||||
libapache2-mod-php8.3
|
libapache2-mod-php8.4
|
||||||
msg_ok "Installed PHP"
|
msg_ok "Installed PHP"
|
||||||
|
|
||||||
msg_info "Setting up MariaDB"
|
msg_info "Setting up MariaDB"
|
||||||
@@ -60,7 +60,7 @@ read -p "Enter your Last Name: " NAME_LAST
|
|||||||
msg_info "Installing pterodactyl Panel"
|
msg_info "Installing pterodactyl Panel"
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/pterodactyl/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/pterodactyl/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
mkdir /opt/pterodactyl-panel
|
mkdir /opt/pterodactyl-panel
|
||||||
cd /opt/pterodactyl-panel
|
cd /opt/pterodactyl-panel || exit
|
||||||
curl -fsSL "https://github.com/pterodactyl/panel/releases/download/v${RELEASE}/panel.tar.gz" -o $(basename "https://github.com/pterodactyl/panel/releases/download/v${RELEASE}/panel.tar.gz")
|
curl -fsSL "https://github.com/pterodactyl/panel/releases/download/v${RELEASE}/panel.tar.gz" -o $(basename "https://github.com/pterodactyl/panel/releases/download/v${RELEASE}/panel.tar.gz")
|
||||||
tar -xzf "panel.tar.gz"
|
tar -xzf "panel.tar.gz"
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
@@ -68,8 +68,8 @@ IP=$(hostname -I | awk '{print $1}')
|
|||||||
ADMIN_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
ADMIN_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||||
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
||||||
$STD php artisan key:generate --force
|
$STD php artisan key:generate --force
|
||||||
$STD php artisan p:environment:setup --no-interaction --author $ADMIN_EMAIL --url "http://$IP"
|
$STD php artisan p:environment:setup --no-interaction --author "$ADMIN_EMAIL" --url "http://$IP"
|
||||||
$STD php artisan p:environment:database --no-interaction --database $DB_NAME --username $DB_USER --password $DB_PASS
|
$STD php artisan p:environment:database --no-interaction --database $DB_NAME --username $DB_USER --password "$DB_PASS"
|
||||||
$STD php artisan migrate --seed --force --no-interaction
|
$STD php artisan migrate --seed --force --no-interaction
|
||||||
$STD php artisan p:user:make --no-interaction --admin=1 --email "$ADMIN_EMAIL" --password "$ADMIN_PASS" --name-first "$NAME_FIRST" --name-last "$NAME_LAST" --username "admin"
|
$STD php artisan p:user:make --no-interaction --admin=1 --email "$ADMIN_EMAIL" --password "$ADMIN_PASS" --name-first "$NAME_FIRST" --name-last "$NAME_LAST" --username "admin"
|
||||||
echo "* * * * * php /opt/pterodactyl-panel/artisan schedule:run >> /dev/null 2>&1" | crontab -u www-data -
|
echo "* * * * * php /opt/pterodactyl-panel/artisan schedule:run >> /dev/null 2>&1" | crontab -u www-data -
|
||||||
@@ -82,7 +82,7 @@ chmod -R 755 /opt/pterodactyl-panel/storage/* /opt/pterodactyl-panel/bootstrap/c
|
|||||||
echo "pterodactyl Admin Password: $ADMIN_PASS"
|
echo "pterodactyl Admin Password: $ADMIN_PASS"
|
||||||
} >>~/pterodactyl-panel.creds
|
} >>~/pterodactyl-panel.creds
|
||||||
|
|
||||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
|
||||||
msg_ok "Installed pterodactyl Panel"
|
msg_ok "Installed pterodactyl Panel"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
|
|||||||
@@ -18,11 +18,13 @@ $STD apt-get install -y sqlite3
|
|||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Installing Radarr"
|
msg_info "Installing Radarr"
|
||||||
|
temp_file="$(mktemp)"
|
||||||
mkdir -p /var/lib/radarr/
|
mkdir -p /var/lib/radarr/
|
||||||
chmod 775 /var/lib/radarr/
|
chmod 775 /var/lib/radarr/
|
||||||
cd /var/lib/radarr/
|
cd /var/lib/radarr/ || exit
|
||||||
$STD curl -fsSL 'https://radarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=x64' -o radarr.tar.gz
|
RELEASE=$(curl -fsSL https://api.github.com/repos/Radarr/Radarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
$STD tar -xvzf radarr.tar.gz
|
curl -fsSL "https://github.com/Radarr/Radarr/releases/download/v${RELEASE}/Radarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
|
||||||
|
$STD tar -xvzf "$temp_file"
|
||||||
mv Radarr /opt
|
mv Radarr /opt
|
||||||
chmod 775 /opt/Radarr
|
chmod 775 /opt/Radarr
|
||||||
msg_ok "Installed Radarr"
|
msg_ok "Installed Radarr"
|
||||||
@@ -42,15 +44,14 @@ Restart=on-failure
|
|||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
systemctl -q daemon-reload
|
systemctl enable -q --now radarr
|
||||||
systemctl enable --now -q radarr
|
|
||||||
msg_ok "Created Service"
|
msg_ok "Created Service"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm -rf Radarr.master.*.tar.gz
|
rm -rf "$temp_file"
|
||||||
$STD apt-get -y autoremove
|
$STD apt-get -y autoremove
|
||||||
$STD apt-get -y autoclean
|
$STD apt-get -y autoclean
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -94,12 +94,12 @@ msg_error() {
|
|||||||
# This function sets up the Container OS by generating the locale, setting the timezone, and checking the network connection
|
# This function sets up the Container OS by generating the locale, setting the timezone, and checking the network connection
|
||||||
setting_up_container() {
|
setting_up_container() {
|
||||||
msg_info "Setting up Container OS"
|
msg_info "Setting up Container OS"
|
||||||
while [ $i -gt 0 ]; do
|
while [ "$i" -gt 0 ]; do
|
||||||
if [ "$(ip addr show | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d'/' -f1)" != "" ]; then
|
if [ "$(ip addr show | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d'/' -f1)" != "" ]; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
echo 1>&2 -en "${CROSS}${RD} No Network! "
|
echo 1>&2 -en "${CROSS}${RD} No Network! "
|
||||||
sleep $RETRY_EVERY
|
sleep "$RETRY_EVERY"
|
||||||
i=$((i - 1))
|
i=$((i - 1))
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -194,6 +194,6 @@ customize() {
|
|||||||
msg_ok "Customized Container"
|
msg_ok "Customized Container"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/ct/${app}.sh)\"" >/usr/bin/update
|
echo "bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/${app}.sh)\"" >/usr/bin/update
|
||||||
chmod +x /usr/bin/update
|
chmod +x /usr/bin/update
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -128,4 +128,4 @@ info "Successfully Transferred Data."
|
|||||||
|
|
||||||
# Use to copy all data from one Home Assistant LXC to another
|
# Use to copy all data from one Home Assistant LXC to another
|
||||||
# run from the Proxmox Shell
|
# run from the Proxmox Shell
|
||||||
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/home-assistant-container-copy-data-home-assistant-container.sh)"
|
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/home-assistant-container-copy-data-home-assistant-container.sh)"
|
||||||
|
|||||||
@@ -124,4 +124,4 @@ info "Successfully Transferred Data."
|
|||||||
|
|
||||||
# Use to copy all data from a Home Assistant Container LXC to a Home Assistant Core LXC
|
# Use to copy all data from a Home Assistant Container LXC to a Home Assistant Core LXC
|
||||||
# run from the Proxmox Shell
|
# run from the Proxmox Shell
|
||||||
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/home-assistant-container-copy-data-home-assistant-core.sh)"
|
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/home-assistant-container-copy-data-home-assistant-core.sh)"
|
||||||
|
|||||||
@@ -129,4 +129,4 @@ info "Successfully Transferred Data."
|
|||||||
|
|
||||||
# Use to copy all data from a Home Assistant LXC to a Podman Home Assistant LXC
|
# Use to copy all data from a Home Assistant LXC to a Podman Home Assistant LXC
|
||||||
# run from the Proxmox Shell
|
# run from the Proxmox Shell
|
||||||
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/home-assistant-container-copy-data-podman-home-assistant.sh)"
|
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/home-assistant-container-copy-data-podman-home-assistant.sh)"
|
||||||
|
|||||||
@@ -124,4 +124,4 @@ info "Successfully Transferred Data."
|
|||||||
|
|
||||||
# Use to copy all data from a Home Assistant Core LXC to a Home Assistant Container LXC
|
# Use to copy all data from a Home Assistant Core LXC to a Home Assistant Container LXC
|
||||||
# run from the Proxmox Shell
|
# run from the Proxmox Shell
|
||||||
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/home-assistant-core-copy-data-home-assistant-container.sh)"
|
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/home-assistant-core-copy-data-home-assistant-container.sh)"
|
||||||
|
|||||||
@@ -123,4 +123,4 @@ info "Successfully Transferred Data."
|
|||||||
|
|
||||||
# Use to copy all data from a Home Assistant Core LXC to a Home Assistant Container LXC
|
# Use to copy all data from a Home Assistant Core LXC to a Home Assistant Container LXC
|
||||||
# run from the Proxmox Shell
|
# run from the Proxmox Shell
|
||||||
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/home-assistant-core-copy-data-home-assistant-core.sh)"
|
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/home-assistant-core-copy-data-home-assistant-core.sh)"
|
||||||
|
|||||||
@@ -128,4 +128,4 @@ info "Successfully Transferred Data."
|
|||||||
|
|
||||||
# Use to copy all data from one Plex Media Server LXC to another
|
# Use to copy all data from one Plex Media Server LXC to another
|
||||||
# run from the Proxmox Shell
|
# run from the Proxmox Shell
|
||||||
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/plex-copy-data-plex.sh)"
|
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/plex-copy-data-plex.sh)"
|
||||||
|
|||||||
@@ -129,4 +129,4 @@ info "Successfully Transferred Data."
|
|||||||
|
|
||||||
# Use to copy all data from a Podman Home Assistant LXC to a Docker Home Assistant LXC.
|
# Use to copy all data from a Podman Home Assistant LXC to a Docker Home Assistant LXC.
|
||||||
# run from the Proxmox Shell
|
# run from the Proxmox Shell
|
||||||
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/podman-home-assistant-copy-data-home-assistant-container.sh)"
|
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/podman-home-assistant-copy-data-home-assistant-container.sh)"
|
||||||
|
|||||||
@@ -128,4 +128,4 @@ info "Successfully Transferred Data."
|
|||||||
|
|
||||||
# Use to copy all data from one Zigbee2MQTT LXC to another
|
# Use to copy all data from one Zigbee2MQTT LXC to another
|
||||||
# run from the Proxmox Shell
|
# run from the Proxmox Shell
|
||||||
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/z2m-copy-data-z2m.sh)"
|
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/z2m-copy-data-z2m.sh)"
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ function error_exit() {
|
|||||||
local REASON="\e[97m${1:-$DEFAULT}\e[39m"
|
local REASON="\e[97m${1:-$DEFAULT}\e[39m"
|
||||||
local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
|
local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
|
||||||
msg "$FLAG $REASON"
|
msg "$FLAG $REASON"
|
||||||
exit $EXIT
|
exit "$EXIT"
|
||||||
}
|
}
|
||||||
function warn() {
|
function warn() {
|
||||||
local REASON="\e[97m$1\e[39m"
|
local REASON="\e[97m$1\e[39m"
|
||||||
@@ -53,13 +53,13 @@ function msg() {
|
|||||||
echo -e "$TEXT"
|
echo -e "$TEXT"
|
||||||
}
|
}
|
||||||
function cleanup() {
|
function cleanup() {
|
||||||
[ -d "${CTID_FROM_PATH:-}" ] && pct unmount $CTID_FROM
|
[ -d "${CTID_FROM_PATH:-}" ] && pct unmount "$CTID_FROM"
|
||||||
[ -d "${CTID_TO_PATH:-}" ] && pct unmount $CTID_TO
|
[ -d "${CTID_TO_PATH:-}" ] && pct unmount "$CTID_TO"
|
||||||
popd >/dev/null
|
popd >/dev/null
|
||||||
rm -rf $TEMP_DIR
|
rm -rf "$TEMP_DIR"
|
||||||
}
|
}
|
||||||
TEMP_DIR=$(mktemp -d)
|
TEMP_DIR=$(mktemp -d)
|
||||||
pushd $TEMP_DIR >/dev/null
|
pushd "$TEMP_DIR" >/dev/null
|
||||||
|
|
||||||
TITLE="Zigbee2MQTT to Z-wave JS UI Data Copy"
|
TITLE="Zigbee2MQTT to Z-wave JS UI Data Copy"
|
||||||
while read -r line; do
|
while read -r line; do
|
||||||
@@ -85,27 +85,27 @@ while [ -z "${CTID_TO:+x}" ]; do
|
|||||||
done
|
done
|
||||||
for i in ${!CTID_MENU[@]}; do
|
for i in ${!CTID_MENU[@]}; do
|
||||||
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
||||||
CTID_FROM_HOSTNAME=$(sed 's/[[:space:]]*$//' <<<${CTID_MENU[$i + 1]})
|
CTID_FROM_HOSTNAME=$(sed 's/[[:space:]]*$//' <<<"${CTID_MENU[$i + 1]}")
|
||||||
[ "${CTID_MENU[$i]}" == "$CTID_TO" ] &&
|
[ "${CTID_MENU[$i]}" == "$CTID_TO" ] &&
|
||||||
CTID_TO_HOSTNAME=$(sed 's/[[:space:]]*$//' <<<${CTID_MENU[$i + 1]})
|
CTID_TO_HOSTNAME=$(sed 's/[[:space:]]*$//' <<<"${CTID_MENU[$i + 1]}")
|
||||||
done
|
done
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
||||||
"Are you sure you want to copy data between the following LXCs?
|
"Are you sure you want to copy data between the following LXCs?
|
||||||
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
||||||
Version: 2022.09.21" 13 50 || exit
|
Version: 2022.09.21" 13 50 || exit
|
||||||
info "Zwavejs2MQTT Data from '$CTID_FROM' to '$CTID_TO'"
|
info "Zwavejs2MQTT Data from '$CTID_FROM' to '$CTID_TO'"
|
||||||
if [ $(pct status $CTID_TO | sed 's/.* //') == 'running' ]; then
|
if [ $(pct status "$CTID_TO" | sed 's/.* //') == 'running' ]; then
|
||||||
msg "Stopping '$CTID_TO'..."
|
msg "Stopping '$CTID_TO'..."
|
||||||
pct stop $CTID_TO
|
pct stop "$CTID_TO"
|
||||||
fi
|
fi
|
||||||
msg "Mounting Container Disks..."
|
msg "Mounting Container Disks..."
|
||||||
DATA_PATH=/opt/zwavejs2mqtt/store/
|
DATA_PATH=/opt/zwavejs2mqtt/store/
|
||||||
DATA_PATH_NEW=/opt/zwave-js-ui/store/
|
DATA_PATH_NEW=/opt/zwave-js-ui/store/
|
||||||
CTID_FROM_PATH=$(pct mount $CTID_FROM | sed -n "s/.*'\(.*\)'/\1/p") ||
|
CTID_FROM_PATH=$(pct mount "$CTID_FROM" | sed -n "s/.*'\(.*\)'/\1/p") ||
|
||||||
die "There was a problem mounting the root disk of LXC '${CTID_FROM}'."
|
die "There was a problem mounting the root disk of LXC '${CTID_FROM}'."
|
||||||
[ -d "${CTID_FROM_PATH}${DATA_PATH}" ] ||
|
[ -d "${CTID_FROM_PATH}${DATA_PATH}" ] ||
|
||||||
die "Zwavejs2MQTT directories in '$CTID_FROM' not found."
|
die "Zwavejs2MQTT directories in '$CTID_FROM' not found."
|
||||||
CTID_TO_PATH=$(pct mount $CTID_TO | sed -n "s/.*'\(.*\)'/\1/p") ||
|
CTID_TO_PATH=$(pct mount "$CTID_TO" | sed -n "s/.*'\(.*\)'/\1/p") ||
|
||||||
die "There was a problem mounting the root disk of LXC '${CTID_TO}'."
|
die "There was a problem mounting the root disk of LXC '${CTID_TO}'."
|
||||||
[ -d "${CTID_TO_PATH}${DATA_PATH_NEW}" ] ||
|
[ -d "${CTID_TO_PATH}${DATA_PATH_NEW}" ] ||
|
||||||
die "Zwavejs2MQTT directories in '$CTID_TO' not found."
|
die "Zwavejs2MQTT directories in '$CTID_TO' not found."
|
||||||
@@ -123,11 +123,11 @@ RSYNC_OPTIONS=(
|
|||||||
--info=progress2
|
--info=progress2
|
||||||
)
|
)
|
||||||
msg "<======== Zwavejs Data ========>"
|
msg "<======== Zwavejs Data ========>"
|
||||||
rsync ${RSYNC_OPTIONS[*]} ${CTID_FROM_PATH}${DATA_PATH} ${CTID_TO_PATH}${DATA_PATH_NEW}
|
rsync "${RSYNC_OPTIONS[*]}" "${CTID_FROM_PATH}"${DATA_PATH} "${CTID_TO_PATH}"${DATA_PATH_NEW}
|
||||||
echo -en "\e[1A\e[0K\e[1A\e[0K"
|
echo -en "\e[1A\e[0K\e[1A\e[0K"
|
||||||
|
|
||||||
info "Successfully Transferred Data."
|
info "Successfully Transferred Data."
|
||||||
|
|
||||||
# Use to copy all data from a Zwavejs2MQTT LXC to a Z-wave JS UI LXC
|
# Use to copy all data from a Zwavejs2MQTT LXC to a Z-wave JS UI LXC
|
||||||
# run from the Proxmox Shell
|
# run from the Proxmox Shell
|
||||||
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/copy-data/zwavejs2mqtt-copy-data-zwavejsui.sh)"
|
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/copy-data/zwavejs2mqtt-copy-data-zwavejsui.sh)"
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/cron-update-lxcs.sh)"
|
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/cron-update-lxcs.sh)"
|
||||||
|
|
||||||
clear
|
clear
|
||||||
cat <<"EOF"
|
cat <<"EOF"
|
||||||
@@ -25,7 +25,7 @@ add() {
|
|||||||
*) echo "Please answer yes or no." ;;
|
*) echo "Please answer yes or no." ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
sh -c '(crontab -l -u root 2>/dev/null; echo "0 0 * * 0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/update-lxcs-cron.sh)\" >>/var/log/update-lxcs-cron.log 2>/dev/null") | crontab -u root -'
|
sh -c '(crontab -l -u root 2>/dev/null; echo "0 0 * * 0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/update-lxcs-cron.sh)\" >>/var/log/update-lxcs-cron.log 2>/dev/null") | crontab -u root -'
|
||||||
clear
|
clear
|
||||||
echo -e "\n To view Cron Update LXCs logs: cat /var/log/update-lxcs-cron.log"
|
echo -e "\n To view Cron Update LXCs logs: cat /var/log/update-lxcs-cron.log"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,5 +89,5 @@ EOF
|
|||||||
echo -e "\e[1;33m \nFinished....Reboot ${CTID} LXC to apply the changes.\n \e[0m"
|
echo -e "\e[1;33m \nFinished....Reboot ${CTID} LXC to apply the changes.\n \e[0m"
|
||||||
|
|
||||||
# In the Proxmox web shell run
|
# In the Proxmox web shell run
|
||||||
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/frigate-support.sh)"
|
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/frigate-support.sh)"
|
||||||
# Reboot the LXC to apply the changes
|
# Reboot the LXC to apply the changes
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
# License: MIT
|
# License: MIT
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Execute within the Proxmox shell
|
# Execute within the Proxmox shell
|
||||||
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/misc/hw-acceleration.sh)"
|
# bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/hw-acceleration.sh)"
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
function header_info {
|
function header_info {
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ catch_errors() {
|
|||||||
# This function handles errors
|
# This function handles errors
|
||||||
error_handler() {
|
error_handler() {
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/api.func)
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/api.func)
|
||||||
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID >/dev/null; then kill $SPINNER_PID >/dev/null; fi
|
if [ -n "$SPINNER_PID" ] && ps -p "$SPINNER_PID" >/dev/null; then kill "$SPINNER_PID" >/dev/null; fi
|
||||||
printf "\e[?25h"
|
printf "\e[?25h"
|
||||||
local exit_code="$?"
|
local exit_code="$?"
|
||||||
local line_number="$1"
|
local line_number="$1"
|
||||||
@@ -110,7 +110,7 @@ msg_info() {
|
|||||||
|
|
||||||
# This function displays a success message with a green color.
|
# This function displays a success message with a green color.
|
||||||
msg_ok() {
|
msg_ok() {
|
||||||
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID >/dev/null; then kill $SPINNER_PID >/dev/null; fi
|
if [ -n "$SPINNER_PID" ] && ps -p "$SPINNER_PID" >/dev/null; then kill "$SPINNER_PID" >/dev/null; fi
|
||||||
printf "\e[?25h"
|
printf "\e[?25h"
|
||||||
local msg="$1"
|
local msg="$1"
|
||||||
echo -e "${BFR}${CM}${GN}${msg}${CL}"
|
echo -e "${BFR}${CM}${GN}${msg}${CL}"
|
||||||
@@ -118,7 +118,7 @@ msg_ok() {
|
|||||||
|
|
||||||
# This function displays a error message with a red color.
|
# This function displays a error message with a red color.
|
||||||
msg_error() {
|
msg_error() {
|
||||||
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID >/dev/null; then kill $SPINNER_PID >/dev/null; fi
|
if [ -n "$SPINNER_PID" ] && ps -p "$SPINNER_PID" >/dev/null; then kill "$SPINNER_PID" >/dev/null; fi
|
||||||
printf "\e[?25h"
|
printf "\e[?25h"
|
||||||
local msg="$1"
|
local msg="$1"
|
||||||
echo -e "${BFR}${CROSS}${RD}${msg}${CL}"
|
echo -e "${BFR}${CROSS}${RD}${msg}${CL}"
|
||||||
@@ -132,14 +132,14 @@ setting_up_container() {
|
|||||||
echo "LANG=${locale_line}" >/etc/default/locale
|
echo "LANG=${locale_line}" >/etc/default/locale
|
||||||
locale-gen >/dev/null
|
locale-gen >/dev/null
|
||||||
export LANG=${locale_line}
|
export LANG=${locale_line}
|
||||||
echo $tz >/etc/timezone
|
echo "$tz" >/etc/timezone
|
||||||
ln -sf /usr/share/zoneinfo/$tz /etc/localtime
|
ln -sf /usr/share/zoneinfo/"$tz" /etc/localtime
|
||||||
for ((i = RETRY_NUM; i > 0; i--)); do
|
for ((i = RETRY_NUM; i > 0; i--)); do
|
||||||
if [ "$(hostname -I)" != "" ]; then
|
if [ "$(hostname -I)" != "" ]; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
echo 1>&2 -en "${CROSS}${RD} No Network! "
|
echo 1>&2 -en "${CROSS}${RD} No Network! "
|
||||||
sleep $RETRY_EVERY
|
sleep "$RETRY_EVERY"
|
||||||
done
|
done
|
||||||
if [ "$(hostname -I)" = "" ]; then
|
if [ "$(hostname -I)" = "" ]; then
|
||||||
echo 1>&2 -e "\n${CROSS}${RD} No Network After $RETRY_NUM Tries${CL}"
|
echo 1>&2 -e "\n${CROSS}${RD} No Network After $RETRY_NUM Tries${CL}"
|
||||||
@@ -265,7 +265,7 @@ EOF
|
|||||||
systemctl restart $(basename $(dirname $GETTY_OVERRIDE) | sed 's/\.d//')
|
systemctl restart $(basename $(dirname $GETTY_OVERRIDE) | sed 's/\.d//')
|
||||||
msg_ok "Customized Container"
|
msg_ok "Customized Container"
|
||||||
fi
|
fi
|
||||||
echo "bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/raw/main/ct/${app}.sh)\"" >/usr/bin/update
|
echo "bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/${app}.sh)\"" >/usr/bin/update
|
||||||
chmod +x /usr/bin/update
|
chmod +x /usr/bin/update
|
||||||
|
|
||||||
if [[ -n "${SSH_AUTHORIZED_KEY}" ]]; then
|
if [[ -n "${SSH_AUTHORIZED_KEY}" ]]; then
|
||||||
|
|||||||
@@ -424,7 +424,7 @@ msg_info "Retrieving the URL for the Arch Linux .iso File"
|
|||||||
URL=https://geo.mirror.pkgbuild.com/iso/latest/archlinux-x86_64.iso
|
URL=https://geo.mirror.pkgbuild.com/iso/latest/archlinux-x86_64.iso
|
||||||
sleep 2
|
sleep 2
|
||||||
msg_ok "${CL}${BL}${URL}${CL}"
|
msg_ok "${CL}${BL}${URL}${CL}"
|
||||||
curl -fsSL -o "$(basename "$URL")" "$URL"
|
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||||
echo -en "\e[1A\e[0K"
|
echo -en "\e[1A\e[0K"
|
||||||
FILE=$(basename $URL)
|
FILE=$(basename $URL)
|
||||||
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
||||||
|
|||||||
@@ -425,7 +425,7 @@ msg_info "Retrieving the URL for the Debian 12 Qcow2 Disk Image"
|
|||||||
URL=https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-nocloud-amd64.qcow2
|
URL=https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-nocloud-amd64.qcow2
|
||||||
sleep 2
|
sleep 2
|
||||||
msg_ok "${CL}${BL}${URL}${CL}"
|
msg_ok "${CL}${BL}${URL}${CL}"
|
||||||
curl -fsSL -o "$(basename "$URL")" "$URL"
|
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||||
echo -en "\e[1A\e[0K"
|
echo -en "\e[1A\e[0K"
|
||||||
FILE=$(basename $URL)
|
FILE=$(basename $URL)
|
||||||
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
||||||
|
|||||||
@@ -388,7 +388,7 @@ msg_info "Retrieving the URL for the Debian 12 Qcow2 Disk Image"
|
|||||||
URL="https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-nocloud-$(dpkg --print-architecture).qcow2"
|
URL="https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-nocloud-$(dpkg --print-architecture).qcow2"
|
||||||
sleep 2
|
sleep 2
|
||||||
msg_ok "${CL}${BL}${URL}${CL}"
|
msg_ok "${CL}${BL}${URL}${CL}"
|
||||||
curl -fsSL -o "$(basename "$URL")" "$URL"
|
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||||
echo -en "\e[1A\e[0K"
|
echo -en "\e[1A\e[0K"
|
||||||
FILE=$(basename $URL)
|
FILE=$(basename $URL)
|
||||||
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ var_os="homeassistant"
|
|||||||
DISK_SIZE="32G"
|
DISK_SIZE="32G"
|
||||||
#
|
#
|
||||||
for version in "${VERSIONS[@]}"; do
|
for version in "${VERSIONS[@]}"; do
|
||||||
eval "$version=$(curl -fsSL https://raw.githubusercontent.com/home-assistant/version/master/$version.json | grep "ova" | cut -d '"' -f 4)"
|
eval "$version=$(curl -fsSL https://raw.githubusercontent.com/home-assistant/version/master/stable.json | grep '"ova"' | cut -d '"' -f 4)"
|
||||||
done
|
done
|
||||||
YW=$(echo "\033[33m")
|
YW=$(echo "\033[33m")
|
||||||
BL=$(echo "\033[36m")
|
BL=$(echo "\033[36m")
|
||||||
@@ -432,7 +432,7 @@ else
|
|||||||
fi
|
fi
|
||||||
sleep 2
|
sleep 2
|
||||||
msg_ok "${CL}${BL}${URL}${CL}"
|
msg_ok "${CL}${BL}${URL}${CL}"
|
||||||
curl -fsSL -o "$(basename "$URL")" "$URL"
|
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||||
echo -en "\e[1A\e[0K"
|
echo -en "\e[1A\e[0K"
|
||||||
FILE=$(basename $URL)
|
FILE=$(basename $URL)
|
||||||
msg_ok "Downloaded ${CL}${BL}haos_ova-${BRANCH}.qcow2.xz${CL}"
|
msg_ok "Downloaded ${CL}${BL}haos_ova-${BRANCH}.qcow2.xz${CL}"
|
||||||
|
|||||||
@@ -254,7 +254,7 @@ URL=https://download.mikrotik.com/routeros/7.15.3/chr-7.15.3.img.zip
|
|||||||
|
|
||||||
sleep 2
|
sleep 2
|
||||||
msg_ok "${CL}${BL}${URL}${CL}"
|
msg_ok "${CL}${BL}${URL}${CL}"
|
||||||
curl -fsSL -o "$(basename "$URL")" "$URL"
|
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||||
echo -en "\e[1A\e[0K"
|
echo -en "\e[1A\e[0K"
|
||||||
FILE=$(basename $URL)
|
FILE=$(basename $URL)
|
||||||
msg_ok "Downloaded ${CL}${BL}$FILE${CL}"
|
msg_ok "Downloaded ${CL}${BL}$FILE${CL}"
|
||||||
|
|||||||
@@ -389,7 +389,7 @@ msg_info "Retrieving the URL for the $NAME Disk Image"
|
|||||||
URL=http://mirror.turnkeylinux.org/turnkeylinux/images/iso/turnkey-nextcloud-18.1-bookworm-amd64.iso
|
URL=http://mirror.turnkeylinux.org/turnkeylinux/images/iso/turnkey-nextcloud-18.1-bookworm-amd64.iso
|
||||||
sleep 2
|
sleep 2
|
||||||
msg_ok "${CL}${BL}${URL}${CL}"
|
msg_ok "${CL}${BL}${URL}${CL}"
|
||||||
curl -fsSL -o "$(basename "$URL")" "$URL"
|
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||||
echo -en "\e[1A\e[0K"
|
echo -en "\e[1A\e[0K"
|
||||||
FILE=$(basename $URL)
|
FILE=$(basename $URL)
|
||||||
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
||||||
|
|||||||
@@ -453,7 +453,7 @@ URL="https://downloads.openwrt.org/releases/$stableversion/targets/x86/64/openwr
|
|||||||
|
|
||||||
sleep 2
|
sleep 2
|
||||||
msg_ok "${CL}${BL}${URL}${CL}"
|
msg_ok "${CL}${BL}${URL}${CL}"
|
||||||
curl -fsSL -o "$(basename "$URL")" "$URL"
|
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||||
echo -en "\e[1A\e[0K"
|
echo -en "\e[1A\e[0K"
|
||||||
FILE=$(basename $URL)
|
FILE=$(basename $URL)
|
||||||
msg_ok "Downloaded ${CL}${BL}$FILE${CL}"
|
msg_ok "Downloaded ${CL}${BL}$FILE${CL}"
|
||||||
|
|||||||
@@ -527,7 +527,7 @@ msg_info "Retrieving the URL for the OPNsense Qcow2 Disk Image"
|
|||||||
URL=https://download.freebsd.org/releases/VM-IMAGES/14.2-RELEASE/amd64/Latest/FreeBSD-14.2-RELEASE-amd64.qcow2.xz
|
URL=https://download.freebsd.org/releases/VM-IMAGES/14.2-RELEASE/amd64/Latest/FreeBSD-14.2-RELEASE-amd64.qcow2.xz
|
||||||
sleep 2
|
sleep 2
|
||||||
msg_ok "${CL}${BL}${URL}${CL}"
|
msg_ok "${CL}${BL}${URL}${CL}"
|
||||||
curl -fsSL -o "$(basename "$URL")" "$URL"
|
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||||
echo -en "\e[1A\e[0K"
|
echo -en "\e[1A\e[0K"
|
||||||
FILE=Fressbsd.qcow2
|
FILE=Fressbsd.qcow2
|
||||||
unxz -cv $(basename $URL) >${FILE}
|
unxz -cv $(basename $URL) >${FILE}
|
||||||
|
|||||||
@@ -389,7 +389,7 @@ msg_info "Retrieving the URL for the $NAME Disk Image"
|
|||||||
URL=http://mirror.turnkeylinux.org/turnkeylinux/images/iso/turnkey-owncloud-18.0-bookworm-amd64.iso
|
URL=http://mirror.turnkeylinux.org/turnkeylinux/images/iso/turnkey-owncloud-18.0-bookworm-amd64.iso
|
||||||
sleep 2
|
sleep 2
|
||||||
msg_ok "${CL}${BL}${URL}${CL}"
|
msg_ok "${CL}${BL}${URL}${CL}"
|
||||||
curl -fsSL -o "$(basename "$URL")" "$URL"
|
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||||
echo -en "\e[1A\e[0K"
|
echo -en "\e[1A\e[0K"
|
||||||
FILE=$(basename $URL)
|
FILE=$(basename $URL)
|
||||||
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
||||||
|
|||||||
@@ -296,7 +296,7 @@ msg_info "Getting URL for Home Assistant ${BRANCH} Disk Image"
|
|||||||
URL=https://github.com/home-assistant/operating-system/releases/download/${BRANCH}/haos_generic-aarch64-${BRANCH}.qcow2.xz
|
URL=https://github.com/home-assistant/operating-system/releases/download/${BRANCH}/haos_generic-aarch64-${BRANCH}.qcow2.xz
|
||||||
sleep 2
|
sleep 2
|
||||||
msg_ok "${CL}${BL}${URL}${CL}"
|
msg_ok "${CL}${BL}${URL}${CL}"
|
||||||
curl -fsSL -o "$(basename "$URL")" "$URL"
|
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||||
echo -en "\e[1A\e[0K"
|
echo -en "\e[1A\e[0K"
|
||||||
FILE=$(basename $URL)
|
FILE=$(basename $URL)
|
||||||
msg_ok "Downloaded ${CL}${BL}haos_generic-aarch64-${BRANCH}.qcow2.xz${CL}"
|
msg_ok "Downloaded ${CL}${BL}haos_generic-aarch64-${BRANCH}.qcow2.xz${CL}"
|
||||||
|
|||||||
@@ -423,7 +423,7 @@ msg_info "Retrieving the URL for the Ubuntu 22.04 Disk Image"
|
|||||||
URL=https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
|
URL=https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
|
||||||
sleep 2
|
sleep 2
|
||||||
msg_ok "${CL}${BL}${URL}${CL}"
|
msg_ok "${CL}${BL}${URL}${CL}"
|
||||||
curl -fsSL -o "$(basename "$URL")" "$URL"
|
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||||
echo -en "\e[1A\e[0K"
|
echo -en "\e[1A\e[0K"
|
||||||
FILE=$(basename $URL)
|
FILE=$(basename $URL)
|
||||||
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
||||||
|
|||||||
@@ -423,7 +423,7 @@ msg_info "Retrieving the URL for the Ubuntu 24.04 Disk Image"
|
|||||||
URL=https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img
|
URL=https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img
|
||||||
sleep 2
|
sleep 2
|
||||||
msg_ok "${CL}${BL}${URL}${CL}"
|
msg_ok "${CL}${BL}${URL}${CL}"
|
||||||
curl -fsSL -o "$(basename "$URL")" "$URL"
|
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||||
echo -en "\e[1A\e[0K"
|
echo -en "\e[1A\e[0K"
|
||||||
FILE=$(basename $URL)
|
FILE=$(basename $URL)
|
||||||
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
||||||
|
|||||||
@@ -423,7 +423,7 @@ msg_info "Retrieving the URL for the Ubuntu 24.10 Disk Image"
|
|||||||
URL=https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-amd64.img
|
URL=https://cloud-images.ubuntu.com/oracular/current/oracular-server-cloudimg-amd64.img
|
||||||
sleep 2
|
sleep 2
|
||||||
msg_ok "${CL}${BL}${URL}${CL}"
|
msg_ok "${CL}${BL}${URL}${CL}"
|
||||||
curl -fsSL -o "$(basename "$URL")" "$URL"
|
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||||
echo -en "\e[1A\e[0K"
|
echo -en "\e[1A\e[0K"
|
||||||
FILE=$(basename $URL)
|
FILE=$(basename $URL)
|
||||||
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
||||||
|
|||||||
Reference in New Issue
Block a user