From 60951ff58f1c05a6d31cd6f42837c5297f42cdcb Mon Sep 17 00:00:00 2001 From: tteckster Date: Wed, 12 Jun 2024 07:34:42 -0400 Subject: [PATCH 1/8] Update homer.sh fixes https://github.com/tteck/Proxmox/issues/3175 --- ct/homer.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ct/homer.sh b/ct/homer.sh index 7d02e0533..bfec3090a 100644 --- a/ct/homer.sh +++ b/ct/homer.sh @@ -59,11 +59,11 @@ msg_info "Stopping ${APP}" systemctl stop homer msg_ok "Stopped ${APP}" -msg_info "Backing up config.yml" +msg_info "Backing up assets directory" cd ~ -cp -R /opt/homer/assets/config.yml config.yml -cp -R /opt/homer/assets/tools tools -msg_ok "Backed up config.yml and tools directory" +mkdir -p assets-backup +cp -R /opt/homer/assets/. assets-backup +msg_ok "Backed up assets directory" msg_info "Updating ${APP}" rm -rf /opt/homer/* @@ -71,14 +71,14 @@ cd /opt/homer wget -q https://github.com/bastienwirtz/homer/releases/latest/download/homer.zip unzip homer.zip &>/dev/null msg_ok "Updated ${APP}" -msg_info "Restoring conf.yml" + +msg_info "Restoring assets directory" cd ~ -cp -R config.yml /opt/homer/assets -cp -R tools /opt/homer/assets -msg_ok "Restored config.yml and tools directory" +cp -Rf assets-backup/. /opt/homer/assets/ +msg_ok "Restored assets directory" msg_info "Cleaning" -rm -rf config.yml tools /opt/homer/homer.zip +rm -rf assets-backup /opt/homer/homer.zip msg_ok "Cleaned" msg_info "Starting ${APP}" From 1a937b10f297abd8f35ee99f02523f7eb87c3612 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 12 Jun 2024 16:42:04 +0200 Subject: [PATCH 2/8] Add new LXC: Matterbridge (#3178) --- ct/matterbridge.sh | 97 +++++++++++++++++++++++++++++++++ install/matterbridge-install.sh | 85 +++++++++++++++++++++++++++++ 2 files changed, 182 insertions(+) create mode 100644 ct/matterbridge.sh create mode 100644 install/matterbridge-install.sh diff --git a/ct/matterbridge.sh b/ct/matterbridge.sh new file mode 100644 index 000000000..e0d04f268 --- /dev/null +++ b/ct/matterbridge.sh @@ -0,0 +1,97 @@ +#!/usr/bin/env bash +source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func) +# Copyright (c) 2021-2024 tteck +# Author: MickLesk (Canbiz) +# License: MIT +# https://github.com/tteck/Proxmox/raw/main/LICENSE + +function header_info { +clear +cat <<"EOF" + __ ___ __ __ __ _ __ + / |/ /___ _/ /_/ /____ _____/ /_ _____(_)___/ /___ ____ + / /|_/ / __ `/ __/ __/ _ \/ ___/ __ \/ ___/ / __ / __ `/ _ \ + / / / / /_/ / /_/ /_/ __/ / / /_/ / / / / /_/ / /_/ / __/ +/_/ /_/\__,_/\__/\__/\___/_/ /_.___/_/ /_/\__,_/\__, /\___/ + /____/ +EOF +} +header_info +echo -e "Loading..." +APP="Matterbridge" +var_disk="4" +var_cpu="1" +var_ram="1024" +var_os="debian" +var_version="12" +variables +color +catch_errors + +function default_settings() { + CT_TYPE="1" + PW="" + CT_ID=$NEXTID + HN=$NSAPP + DISK_SIZE="$var_disk" + CORE_COUNT="$var_cpu" + RAM_SIZE="$var_ram" + BRG="vmbr0" + NET="dhcp" + GATE="" + APT_CACHER="" + APT_CACHER_IP="" + DISABLEIP6="no" + MTU="" + SD="" + NS="" + MAC="" + VLAN="" + SSH="no" + VERB="no" + echo_default +} + +function update_script() { +header_info +if [[ ! -d /opt/matterbridge ]]; then msg_error "No ${APP} Installation Found!"; exit; fi + +RELEASE=$(curl -s https://api.github.com/repos/Luligu/matterbridge/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}') +if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + msg_info "Stopping ${APP} Service" + systemctl stop matterbridge + msg_ok "Stopped ${APP} Service" + + msg_info "Updating ${APP} to ${RELEASE}" + cd /opt/matterbridge + wget -q "https://github.com/Luligu/matterbridge/archive/refs/tags/${RELEASE}.zip" + unzip -q ${RELEASE}.zip + mv matterbridge-${RELEASE} /opt/matterbridge + cd /opt/matterbridge + npm ci >/dev/null 2>&1 + npm run build >/dev/null 2>&1 + echo "${RELEASE}" >/opt/${APP}_version.txt + msg_ok "Updated ${APP} to ${RELEASE}" + + msg_info "Cleaning up" + rm /opt/${RELEASE}.zip + msg_ok "Cleaned" + + msg_info "Starting ${APP} Service" + systemctl start matterbridge + sleep 1 + msg_ok "Started ${APP} Service" + msg_ok "Updated Successfully!\n" +else + msg_ok "No update required. ${APP} is already at ${RELEASE}" +fi +exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${APP} Setup should be reachable by going to the following URL. + ${BL}http://${IP}:8283${CL} \n" diff --git a/install/matterbridge-install.sh b/install/matterbridge-install.sh new file mode 100644 index 000000000..479484715 --- /dev/null +++ b/install/matterbridge-install.sh @@ -0,0 +1,85 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2024 tteck +# Author: tteck +# Co-Author: MickLesk (Canbiz) +# License: MIT +# https://github.com/tteck/Proxmox/raw/main/LICENSE +# Source: https://github.com/Luligu/matterbridge/ + +source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +msg_info "Installing Dependencies (Patience)" +$STD apt-get install -y --no-install-recommends \ + build-essential \ + unzip \ + curl \ + sudo \ + git \ + make \ + gnupg \ + ca-certificates \ + mc +msg_ok "Installed Dependencies" + +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_20.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 +msg_ok "Installed Node.js" + +msg_info "Install Matterbridge" +RELEASE=$(curl -s https://api.github.com/repos/Luligu/matterbridge/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') +wget -q "https://github.com/Luligu/matterbridge/archive/refs/tags/${RELEASE}.zip" +unzip -q ${RELEASE}.zip +mv matterbridge-${RELEASE} /opt/matterbridge +rm -R ${RELEASE}.zip +cd /opt/matterbridge +$STD npm ci +$STD npm run build +echo "${RELEASE}" >/opt/${APPLICATION}_version.txt +msg_ok "Installed Matterbridge" + +msg_info "Creating Service" +cat </etc/systemd/system/matterbridge.service +[Unit] +Description=matterbridge +After=network-online.target + +[Service] +Type=simple +ExecStart=/usr/bin/npm run start:bridge +WorkingDirectory=/opt/matterbridge +StandardOutput=inherit +StandardError=inherit +Restart=always +RestartSec=10s +TimeoutStopSec=30s +User=root +Environment=PATH=/usr/bin:/usr/local/bin:/opt/matterbridge/bin +Environment=NODE_ENV=production + +[Install] +WantedBy=multi-user.target +EOF +systemctl enable -q --now matterbridge.service +msg_ok "Created Service" + +motd_ssh +customize + +msg_info "Cleaning up" +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned" From 4020e1b6aed529a04bba95788bab52f423373d3e Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 12 Jun 2024 18:51:47 +0200 Subject: [PATCH 3/8] Add new LXC: MeTube (#3179) --- ct/metube.sh | 100 ++++++++++++++++++++++++++++++++++++++ install/metube-install.sh | 92 +++++++++++++++++++++++++++++++++++ 2 files changed, 192 insertions(+) create mode 100644 ct/metube.sh create mode 100644 install/metube-install.sh diff --git a/ct/metube.sh b/ct/metube.sh new file mode 100644 index 000000000..57d8b46be --- /dev/null +++ b/ct/metube.sh @@ -0,0 +1,100 @@ +#!/usr/bin/env bash +source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func) +# Copyright (c) 2021-2024 tteck +# Author: MickLesk (Canbiz) +# License: MIT +# https://github.com/tteck/Proxmox/raw/main/LICENSE + +function header_info { +clear +cat <<"EOF" + __ ___ ______ __ + / |/ /__/_ __/_ __/ /_ ___ + / /|_/ / _ \/ / / / / / __ \/ _ \ + / / / / __/ / / /_/ / /_/ / __/ +/_/ /_/\___/_/ \__,_/_.___/\___/ + +EOF +} +header_info +echo -e "Loading..." +APP="MeTube" +var_disk="10" +var_cpu="1" +var_ram="1024" +var_os="debian" +var_version="12" +variables +color +catch_errors + +function default_settings() { + CT_TYPE="1" + PW="" + CT_ID=$NEXTID + HN=$NSAPP + DISK_SIZE="$var_disk" + CORE_COUNT="$var_cpu" + RAM_SIZE="$var_ram" + BRG="vmbr0" + NET="dhcp" + GATE="" + APT_CACHER="" + APT_CACHER_IP="" + DISABLEIP6="no" + MTU="" + SD="" + NS="" + MAC="" + VLAN="" + SSH="no" + VERB="no" + echo_default +} + +function update_script() { +header_info +if [[ ! -d /opt/metube ]]; then msg_error "No ${APP} Installation Found!"; exit; fi +if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then + read -r -p "Warning: Storage is dangerously low, continue anyway? " prompt + [[ ${prompt,,} =~ ^(y|yes)$ ]] || exit +fi +msg_info "Stopping ${APP} Service" +systemctl stop metube +msg_ok "Stopped ${APP} Service" + +msg_info "Updating ${APP} to latest Git" +cd /opt +if [ -d metube_bak ]; then + rm -rf metube_bak +fi +mv metube metube_bak +git clone https://github.com/alexta69/metube /opt/metube >/dev/null 2>&1 +cd /opt/metube/ui +npm install >/dev/null 2>&1 +node_modules/.bin/ng build >/dev/null 2>&1 +cd /opt/metube +cp /opt/metube_bak/.env /opt/metube/ +pip3 install pipenv >/dev/null 2>&1 +pipenv install >/dev/null 2>&1 + +if [ -d "/opt/metube_bak" ]; then +rm -rf /opt/metube_bak +fi +msg_ok "Updated ${APP} to latest Git" + +msg_info "Starting ${APP} Service" +systemctl start metube +sleep 1 +msg_ok "Started ${APP} Service" +msg_ok "Updated Successfully!\n" +exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${APP} Setup should be reachable by going to the following URL. + ${BL}http://${IP}:8081${CL} \n" \ No newline at end of file diff --git a/install/metube-install.sh b/install/metube-install.sh new file mode 100644 index 000000000..0c418e5d0 --- /dev/null +++ b/install/metube-install.sh @@ -0,0 +1,92 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2024 tteck +# Author: tteck +# Co-Author: MickLesk (Canbiz) +# License: MIT +# https://github.com/tteck/Proxmox/raw/main/LICENSE +# Source: https://github.com/alexta69/metube + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +msg_info "Installing Dependencies" +$STD apt-get install -y --no-install-recommends \ + build-essential \ + curl \ + sudo \ + ffmpeg \ + git \ + make \ + gnupg \ + ca-certificates \ + mc +msg_ok "Installed Dependencies" + +msg_info "Installing Python3" +$STD apt-get install -y \ + python3 \ + python3-dev \ + python3-pip \ + python3-venv +msg_ok "Installed Python3" + +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_20.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 +msg_ok "Installed Node.js" + +msg_info "Installing MeTube" +$STD git clone https://github.com/alexta69/metube /opt/metube +cd /opt/metube/ui +$STD npm install +$STD node_modules/.bin/ng build +cd /opt/metube +$STD pip3 install pipenv +$STD pipenv install +mkdir -p /opt/metube_downloads /opt/metube_downloads/.metube /opt/metube_downloads/music /opt/metube_downloads/videos +cat </opt/metube/.env +DOWNLOAD_DIR=/opt/metube_downloads +STATE_DIR=/opt/metube_downloads/.metube +TEMP_DIR=/opt/metube_downloads +EOF +msg_ok "Installed MeTube" + +msg_info "Creating Service" +cat </etc/systemd/system/metube.service +[Unit] +Description=Metube - YouTube Downloader +After=network.target + +[Service] +Type=simple +WorkingDirectory=/opt/metube +EnvironmentFile=/opt/metube/.env +ExecStart=/usr/local/bin/pipenv run python3 app/main.py +Restart=always +User=root + +[Install] +WantedBy=multi-user.target +EOF +systemctl enable -q --now metube.service +msg_ok "Created Service" + +motd_ssh +customize + +msg_info "Cleaning up" +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned" \ No newline at end of file From 421bccfee844d9fcd304f2c7d519bf60af089c30 Mon Sep 17 00:00:00 2001 From: tteckster Date: Wed, 12 Jun 2024 12:58:35 -0400 Subject: [PATCH 4/8] Update README.md tweak --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index b9869fc83..9401c778f 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,7 @@

Proxmox VE Helper-Scripts

- Terms of Use | - Website | + Website | Contribute | Guides | Changelog | From 814a9158194b1dc21af23a653434ccc05b68fc5d Mon Sep 17 00:00:00 2001 From: tteckster Date: Wed, 12 Jun 2024 12:58:43 -0400 Subject: [PATCH 5/8] Update CHANGELOG.md --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99febfbdf..372c1e21e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,15 @@ - 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. +## 2024-06-12 + +### Changed + +- **Matterbridge LXC** + - NEW Script +- **Website** + - Reopen the gh-pages site (https://tteck.github.io/Proxmox/) + ## 2024-06-11 ### Changed From c2fe08030770c023bb551c7a7b6454240a16d394 Mon Sep 17 00:00:00 2001 From: tteckster Date: Wed, 12 Jun 2024 14:18:07 -0400 Subject: [PATCH 6/8] Update CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 372c1e21e..c9e02441c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ ### Changed +- **MeTube LXC** + - NEW Script - **Matterbridge LXC** - NEW Script - **Website** From 3a455a9e9ee272f5a039950df675af230f739d5d Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Wed, 12 Jun 2024 22:46:08 +0200 Subject: [PATCH 7/8] Fix YtDL_Options (Filename to long) (#3183) --- install/metube-install.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/install/metube-install.sh b/install/metube-install.sh index 0c418e5d0..726f3f770 100644 --- a/install/metube-install.sh +++ b/install/metube-install.sh @@ -19,6 +19,11 @@ msg_info "Installing Dependencies" $STD apt-get install -y --no-install-recommends \ build-essential \ curl \ + aria2 \ + coreutils \ + gcc \ + g++ \ + musl-dev \ sudo \ ffmpeg \ git \ @@ -60,6 +65,7 @@ cat </opt/metube/.env DOWNLOAD_DIR=/opt/metube_downloads STATE_DIR=/opt/metube_downloads/.metube TEMP_DIR=/opt/metube_downloads +YTDL_OPTIONS={"trim_file_name":10} EOF msg_ok "Installed MeTube" @@ -89,4 +95,4 @@ customize msg_info "Cleaning up" $STD apt-get -y autoremove $STD apt-get -y autoclean -msg_ok "Cleaned" \ No newline at end of file +msg_ok "Cleaned" From 7dca71d2969adc61c9acd82bede390a641f5a27e Mon Sep 17 00:00:00 2001 From: tteckster Date: Wed, 12 Jun 2024 17:55:37 -0400 Subject: [PATCH 8/8] Update calibre-web-install.sh fixes https://github.com/tteck/Proxmox/issues/3184 --- install/calibre-web-install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/calibre-web-install.sh b/install/calibre-web-install.sh index 6d2b1445b..cdc5653fc 100644 --- a/install/calibre-web-install.sh +++ b/install/calibre-web-install.sh @@ -36,6 +36,7 @@ msg_info "Installing Calibre-Web" mkdir -p /opt/calibre-web $STD wget https://github.com/janeczku/calibre-web/raw/master/library/metadata.db -P /opt/calibre-web $STD pip install calibreweb +$STD pip install jsonschema msg_ok "Installed Calibre-Web" msg_info "Creating Service"