Compare commits

...

11 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
112fa215fb Update CHANGELOG.md (#3670)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-05 01:10:52 +02:00
community-scripts-pr-app[bot]
f6a77ec41f Update .app files (#3671)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-04-05 01:10:38 +02:00
community-scripts-pr-app[bot]
71a37368b0 Update date in json (#3672)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-04-05 01:10:26 +02:00
push-app-to-main[bot]
214d21f91e meilisearch (#3638)
* 'Add new script'

* change license

* change license

* Update install/meilisearch-install.sh

Co-authored-by: Bas van den Berg <74251551+bvdberg01@users.noreply.github.com>

* Update frontend/public/json/meilisearch.json

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: Bas van den Berg <74251551+bvdberg01@users.noreply.github.com>
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-04-05 00:22:49 +02:00
Bas van den Berg
8b1cdd1f3f Pelican Panel: Bump php to 8.4 (#3669) 2025-04-04 22:48:15 +02:00
community-scripts-pr-app[bot]
2a24d53b54 Update CHANGELOG.md (#3658)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-04 17:40:47 +02:00
CanbiZ
51692da70f Pterodactyl: Pump Php to 8.4 (#3655) 2025-04-04 17:40:02 +02:00
CanbiZ
481156275b Caddy: add git for xcaddy (#3657) 2025-04-04 17:39:37 +02:00
CanbiZ
23c01141db core: fix raw path (#3656) 2025-04-04 16:05:12 +02:00
community-scripts-pr-app[bot]
109235f720 Update versions.json (#3659)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-04 14:23:16 +02:00
community-scripts-pr-app[bot]
4912f76bc5 Update versions.json (#3652)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-04 13:45:12 +02:00
27 changed files with 426 additions and 102 deletions

View File

@@ -14,6 +14,29 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
## 2025-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

6
ct/headers/meilisearch Normal file
View File

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

95
ct/meilisearch.sh Normal file
View 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}"

View File

@@ -27,10 +27,27 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
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) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Service"
cd /opt/pelican-panel
cd /opt/pelican-panel || exit
$STD php artisan down
msg_ok "Stopped Service"

View File

@@ -27,10 +27,27 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
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) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Service"
cd /opt/pterodactyl-panel
cd /opt/pterodactyl-panel || exit
$STD php artisan down
msg_ok "Stopped Service"

View File

@@ -36,9 +36,9 @@
"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"
}
]
}
}

View 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"
}
]
}

View File

@@ -1,8 +1,48 @@
[
{
"name": "fhem/fhem-mirror",
"version": "6.2",
"date": "2025-04-04T10:34:30Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.49.10",
"date": "2025-04-03T09:17:54Z"
"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",
@@ -24,11 +64,6 @@
"version": "@jupyter-notebook/ui-components@7.4.0-rc.0",
"date": "2025-04-03T06:49:38Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.1722",
"date": "2025-04-03T05:51:10Z"
},
{
"name": "mattermost/mattermost",
"version": "server/public/v0.1.11",
@@ -39,26 +74,16 @@
"version": "v4.0.8",
"date": "2025-04-03T05:11:15Z"
},
{
"name": "fhem/fhem-mirror",
"version": "6.2",
"date": "2025-04-03T02:01:34Z"
},
{
"name": "ollama/ollama",
"version": "v0.6.3-rc1",
"date": "2025-03-26T20:39:01Z"
"version": "v0.6.4",
"date": "2025-04-02T22:14:24Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.35.1",
"date": "2025-04-02T21:49:00Z"
},
{
"name": "keycloak/keycloak",
"version": "26.1.4",
"date": "2025-03-13T15:41:42Z"
},
{
"name": "redis/redis",
"version": "8.0-rc1-int2",
@@ -99,11 +124,6 @@
"version": "v1.4.6",
"date": "2025-04-02T14:07:12Z"
},
{
"name": "wazuh/wazuh",
"version": "v4.11.2",
"date": "2025-04-02T13:40:18Z"
},
{
"name": "zwave-js/zwave-js-ui",
"version": "v10.1.4",
@@ -124,11 +144,6 @@
"version": "v0.14.3",
"date": "2025-04-01T19:53:18Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "preview-music-support",
"date": "2025-04-01T19:04:25Z"
},
{
"name": "Koenkk/zigbee2mqtt",
"version": "2.2.0",
@@ -169,11 +184,6 @@
"version": "v11.8.6",
"date": "2025-04-01T13:52:03Z"
},
{
"name": "OctoPrint/OctoPrint",
"version": "1.10.3",
"date": "2024-11-05T09:20:50Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.13.7",
@@ -429,11 +439,6 @@
"version": "0.202.1",
"date": "2025-03-27T08:24:55Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.1",
"date": "2025-01-01T16:15:52Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.14.5-rc6",
@@ -699,11 +704,6 @@
"version": "2.31.0",
"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",
"version": "4.0.1-beta.1",

View File

@@ -42,6 +42,7 @@ if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
msg_ok "Installed Golang"
msg_info "Setup xCaddy"
$STD apt-get install -y git
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) }')
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")

View File

@@ -18,7 +18,7 @@ $STD apt-get install -y g++-multilib
msg_ok "Installed Dependencies"
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
msg_ok "Installed Daemon Sync Server"

View 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"

View File

@@ -22,19 +22,19 @@ $STD apt-get install -y \
composer
msg_ok "Installed Dependencies"
msg_info "Adding PHP8.3 Repository"
$STD curl -fsSL "https://packages.sury.org/debsuryorg-archive-keyring.deb" -o /tmp/debsuryorg-archive-keyring.deb
msg_info "Adding PHP8.4 Repository"
$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 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
msg_ok "Added PHP8.3 Repository"
msg_ok "Added PHP8.4 Repository"
msg_info "Installing PHP"
$STD apt-get remove -y php8.2*
$STD apt-get install -y \
php8.3 \
php8.3-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,sqlite3,fpm} \
libapache2-mod-php8.3
php8.4 \
php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,sqlite3,fpm} \
libapache2-mod-php8.4
msg_info "Installed PHP"
msg_info "Setting up MariaDB"
@@ -55,7 +55,7 @@ msg_ok "Set up MariaDB"
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) }')
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")
tar -xzf "panel.tar.gz"
$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 -
chown -R www-data:www-data /opt/pelican-panel
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_info "Creating Service"

View File

@@ -23,19 +23,19 @@ $STD apt-get install -y \
composer
msg_ok "Installed Dependencies"
msg_info "Adding PHP8.3 Repository"
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
msg_info "Adding PHP8.4 Repository"
$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 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
msg_ok "Added PHP8.3 Repository"
msg_ok "Added PHP8.4 Repository"
msg_info "Installing PHP"
$STD apt-get remove -y php8.2*
$STD apt-get install -y \
php8.3 \
php8.3-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} \
libapache2-mod-php8.3
php8.4 \
php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} \
libapache2-mod-php8.4
msg_ok "Installed PHP"
msg_info "Setting up MariaDB"
@@ -60,7 +60,7 @@ read -p "Enter your Last Name: " NAME_LAST
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) }')
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")
tar -xzf "panel.tar.gz"
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)
$STD composer install --no-dev --optimize-autoloader --no-interaction
$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:database --no-interaction --database $DB_NAME --username $DB_USER --password $DB_PASS
$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 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"
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"
} >>~/pterodactyl-panel.creds
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
msg_ok "Installed pterodactyl Panel"
msg_info "Creating Service"

View File

@@ -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
setting_up_container() {
msg_info "Setting up Container OS"
while [ $i -gt 0 ]; do
while [ "$i" -gt 0 ]; do
if [ "$(ip addr show | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d'/' -f1)" != "" ]; then
break
fi
echo 1>&2 -en "${CROSS}${RD} No Network! "
sleep $RETRY_EVERY
sleep "$RETRY_EVERY"
i=$((i - 1))
done
@@ -194,6 +194,6 @@ customize() {
msg_ok "Customized Container"
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
}

View File

@@ -128,4 +128,4 @@ info "Successfully Transferred Data."
# Use to copy all data from one Home Assistant LXC to another
# 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)"

View File

@@ -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
# 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)"

View File

@@ -129,4 +129,4 @@ info "Successfully Transferred Data."
# Use to copy all data from a Home Assistant LXC to a Podman Home Assistant LXC
# 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)"

View File

@@ -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
# 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)"

View File

@@ -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
# 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)"

View File

@@ -128,4 +128,4 @@ info "Successfully Transferred Data."
# Use to copy all data from one Plex Media Server LXC to another
# 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)"

View File

@@ -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.
# 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)"

View File

@@ -128,4 +128,4 @@ info "Successfully Transferred Data."
# Use to copy all data from one Zigbee2MQTT LXC to another
# 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)"

View File

@@ -36,7 +36,7 @@ function error_exit() {
local REASON="\e[97m${1:-$DEFAULT}\e[39m"
local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE"
msg "$FLAG $REASON"
exit $EXIT
exit "$EXIT"
}
function warn() {
local REASON="\e[97m$1\e[39m"
@@ -53,13 +53,13 @@ function msg() {
echo -e "$TEXT"
}
function cleanup() {
[ -d "${CTID_FROM_PATH:-}" ] && pct unmount $CTID_FROM
[ -d "${CTID_TO_PATH:-}" ] && pct unmount $CTID_TO
[ -d "${CTID_FROM_PATH:-}" ] && pct unmount "$CTID_FROM"
[ -d "${CTID_TO_PATH:-}" ] && pct unmount "$CTID_TO"
popd >/dev/null
rm -rf $TEMP_DIR
rm -rf "$TEMP_DIR"
}
TEMP_DIR=$(mktemp -d)
pushd $TEMP_DIR >/dev/null
pushd "$TEMP_DIR" >/dev/null
TITLE="Zigbee2MQTT to Z-wave JS UI Data Copy"
while read -r line; do
@@ -85,27 +85,27 @@ while [ -z "${CTID_TO:+x}" ]; do
done
for i in ${!CTID_MENU[@]}; do
[ "${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_TO_HOSTNAME=$(sed 's/[[:space:]]*$//' <<<${CTID_MENU[$i + 1]})
CTID_TO_HOSTNAME=$(sed 's/[[:space:]]*$//' <<<"${CTID_MENU[$i + 1]}")
done
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
"Are you sure you want to copy data between the following LXCs?
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
Version: 2022.09.21" 13 50 || exit
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'..."
pct stop $CTID_TO
pct stop "$CTID_TO"
fi
msg "Mounting Container Disks..."
DATA_PATH=/opt/zwavejs2mqtt/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}'."
[ -d "${CTID_FROM_PATH}${DATA_PATH}" ] ||
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}'."
[ -d "${CTID_TO_PATH}${DATA_PATH_NEW}" ] ||
die "Zwavejs2MQTT directories in '$CTID_TO' not found."
@@ -123,11 +123,11 @@ RSYNC_OPTIONS=(
--info=progress2
)
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"
info "Successfully Transferred Data."
# Use to copy all data from a Zwavejs2MQTT LXC to a Z-wave JS UI LXC
# 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)"

View File

@@ -4,7 +4,7 @@
# Author: tteck (tteckster)
# License: MIT
# 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
cat <<"EOF"
@@ -25,7 +25,7 @@ add() {
*) echo "Please answer yes or no." ;;
esac
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
echo -e "\n To view Cron Update LXCs logs: cat /var/log/update-lxcs-cron.log"
}

View File

@@ -89,5 +89,5 @@ EOF
echo -e "\e[1;33m \nFinished....Reboot ${CTID} LXC to apply the changes.\n \e[0m"
# 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

View File

@@ -5,7 +5,7 @@
# License: MIT
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# 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
function header_info {

View File

@@ -69,7 +69,7 @@ catch_errors() {
# This function handles errors
error_handler() {
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"
local exit_code="$?"
local line_number="$1"
@@ -110,7 +110,7 @@ msg_info() {
# This function displays a success message with a green color.
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"
local msg="$1"
echo -e "${BFR}${CM}${GN}${msg}${CL}"
@@ -118,7 +118,7 @@ msg_ok() {
# This function displays a error message with a red color.
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"
local msg="$1"
echo -e "${BFR}${CROSS}${RD}${msg}${CL}"
@@ -132,14 +132,14 @@ setting_up_container() {
echo "LANG=${locale_line}" >/etc/default/locale
locale-gen >/dev/null
export LANG=${locale_line}
echo $tz >/etc/timezone
ln -sf /usr/share/zoneinfo/$tz /etc/localtime
echo "$tz" >/etc/timezone
ln -sf /usr/share/zoneinfo/"$tz" /etc/localtime
for ((i = RETRY_NUM; i > 0; i--)); do
if [ "$(hostname -I)" != "" ]; then
break
fi
echo 1>&2 -en "${CROSS}${RD} No Network! "
sleep $RETRY_EVERY
sleep "$RETRY_EVERY"
done
if [ "$(hostname -I)" = "" ]; then
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//')
msg_ok "Customized Container"
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
if [[ -n "${SSH_AUTHORIZED_KEY}" ]]; then