Merge remote-tracking branch 'upstream/main'

This commit is contained in:
Sam Heinz
2024-05-02 08:51:44 +10:00
9 changed files with 187 additions and 11 deletions

View File

@@ -10,6 +10,21 @@
- 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.
- 🚨 **The scripts in the repository will no longer provide support for Proxmox VE 7 starting from July 2024 (scripts will not execute on PVE7). Subsequent <a href='https://forum.proxmox.com/threads/proxmox-ve-support-lifecycle.35755/' target='_blank' rel='noopener noreferrer'>Proxmox VE - Support Lifecycle</a>** - 🚨 **The scripts in the repository will no longer provide support for Proxmox VE 7 starting from July 2024 (scripts will not execute on PVE7). Subsequent <a href='https://forum.proxmox.com/threads/proxmox-ve-support-lifecycle.35755/' target='_blank' rel='noopener noreferrer'>Proxmox VE - Support Lifecycle</a>**
## 2024-04-30
### Changed
- **Tdarr LXC**
- Default settings are now **Unprivileged**
- Unprivileged Hardware Acceleration
## 2024-04-29
### Changed
- **ErsatzTV LXC**
- NEW Script
## 2024-04-28 ## 2024-04-28
### Changed ### Changed

View File

@@ -29,7 +29,7 @@ color
catch_errors catch_errors
function default_settings() { function default_settings() {
CT_TYPE="0" CT_TYPE="1"
PW="" PW=""
CT_ID=$NEXTID CT_ID=$NEXTID
HN=$NSAPP HN=$NSAPP

91
ct/ersatztv.sh Normal file
View File

@@ -0,0 +1,91 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
# 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/ErsatzTV/ErsatzTV/
function header_info {
clear
cat <<"EOF"
______ __ _______ __
/ ____/_____________ _/ /_____/_ __/ | / /
/ __/ / ___/ ___/ __ `/ __/_ / / / | | / /
/ /___/ / (__ ) /_/ / /_ / /_/ / | |/ /
/_____/_/ /____/\__,_/\__/ /___/_/ |___/
EOF
}
header_info
echo -e "Loading..."
APP="ErsatzTV"
var_disk="5"
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/ErsatzTV ]]; 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? <y/N> " prompt
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
fi
msg_info "Stopping ErsatzTV"
systemctl stop ersatzTV
msg_ok "Stopped ErsatzTV"
msg_info "Updating ErsatzTV"
RELEASE=$(curl -s https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
if [ -d /opt/ErsatzTV/ErsatzTV_bak ]; then
rm -rf /opt/ErsatzTV/ErsatzTV_bak
fi
mv /opt/ErsatzTV/ErsatzTV /opt/ErsatzTV/ErsatzTV_bak
wget -qO- "https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-x64.tar.gz" | tar -xz -C /opt
mv "/opt/ErsatzTV-${RELEASE}-linux-x64" /opt/ErsatzTV
msg_ok "Updated ErsatzTV"
msg_info "Starting ErsatzTV"
systemctl start ersatzTV
msg_ok "Started ErsatzTV"
msg_ok "Updated Successfully"
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}:8409${CL} \n"

View File

@@ -23,7 +23,7 @@ var_disk="8"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_os="debian" var_os="debian"
var_version="11" var_version="12"
variables variables
color color
catch_errors catch_errors

View File

@@ -29,7 +29,7 @@ color
catch_errors catch_errors
function default_settings() { function default_settings() {
CT_TYPE="0" CT_TYPE="1"
PW="" PW=""
CT_ID=$NEXTID CT_ID=$NEXTID
HN=$NSAPP HN=$NSAPP

View File

@@ -0,0 +1,64 @@
#!/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/ErsatzTV/ErsatzTV
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 \
ffmpeg \
build-essential \
unzip \
pkg-config \
curl \
sudo \
git \
make \
mc
msg_ok "Installed Dependencies"
msg_info "Installing ErsatzTV "
RELEASE=$(curl -s https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
wget -qO- "https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-x64.tar.gz" | tar -xz -C /opt
mv "/opt/ErsatzTV-${RELEASE}-linux-x64" /opt/ErsatzTV
msg_ok "Installed ErsatzTV"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/ersatzTV.service
[Unit]
Description=ErsatzTV Service
After=multi-user.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/ErsatzTV
ExecStart=/opt/ErsatzTV/ErsatzTV
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
EOF
systemctl -q --now enable ersatzTV.service
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get autoremove
$STD apt-get autoclean
msg_ok "Cleaned"

View File

@@ -17,6 +17,7 @@ msg_info "Installing Dependencies"
$STD apt-get install -y curl $STD apt-get install -y curl
$STD apt-get install -y sudo $STD apt-get install -y sudo
$STD apt-get install -y mc $STD apt-get install -y mc
$STD apt-get install -y lbzip2
$STD apt-get install -y wget $STD apt-get install -y wget
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"

View File

@@ -21,18 +21,16 @@ $STD apt-get install -y handbrake-cli
$STD apt-get install -y wget $STD apt-get install -y wget
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Setting Up Hardware Acceleration"
$STD apt-get -y install {va-driver-all,ocl-icd-libopencl1,vainfo}
if [[ "$CTTYPE" == "0" ]]; then if [[ "$CTTYPE" == "0" ]]; then
msg_info "Setting Up Hardware Acceleration"
$STD apt-get -y install \
va-driver-all \
ocl-icd-libopencl1
chgrp video /dev/dri chgrp video /dev/dri
chmod 755 /dev/dri chmod 755 /dev/dri
chmod 660 /dev/dri/* chmod 660 /dev/dri/*
$STD adduser $(id -u -n) video $STD adduser $(id -u -n) video
$STD adduser $(id -u -n) render $STD adduser $(id -u -n) render
msg_ok "Set Up Hardware Acceleration"
fi fi
msg_ok "Set Up Hardware Acceleration"
msg_info "Installing Tdarr" msg_info "Installing Tdarr"
mkdir -p /opt/tdarr mkdir -p /opt/tdarr
@@ -43,7 +41,12 @@ $STD unzip Tdarr_Updater.zip
rm -rf Tdarr_Updater.zip rm -rf Tdarr_Updater.zip
chmod +x Tdarr_Updater chmod +x Tdarr_Updater
./Tdarr_Updater &>/dev/null ./Tdarr_Updater &>/dev/null
sed -i -e 's/^sgx:x:104:$/render:x:104:root/' -e 's/^render:x:106:root$/sgx:x:106:/' /etc/group if [[ "$CTTYPE" == "0" ]]; then
sed -i -e 's/^sgx:x:104:$/render:x:104:root/' -e 's/^render:x:106:root$/sgx:x:106:/' /etc/group
else
sed -i -e 's/^sgx:x:104:$/render:x:104:/' -e 's/^render:x:106:$/sgx:x:106:/' /etc/group
fi
msg_ok "Installed Tdarr" msg_ok "Installed Tdarr"
msg_info "Creating Service" msg_info "Creating Service"

View File

@@ -584,18 +584,20 @@ EOF
fi fi
else else
if [[ "$APP" == "Channels" || "$APP" == "Emby" || "$APP" == "Frigate" || "$APP" == "Jellyfin" || "$APP" == "Plex" || "$APP" == "Scrypted" || "$APP" == "Tdarr" || "$APP" == "Unmanic" ]]; then if [[ "$APP" == "Channels" || "$APP" == "Emby" || "$APP" == "Frigate" || "$APP" == "Jellyfin" || "$APP" == "Plex" || "$APP" == "Scrypted" || "$APP" == "Tdarr" || "$APP" == "Unmanic" ]]; then
if [[ -e "/dev/dri/card0" ]]; then if [[ -e "/dev/dri/renderD128" ]]; then
if [[ -e "/dev/dri/card0" ]]; then
cat <<EOF >>$LXC_CONFIG cat <<EOF >>$LXC_CONFIG
# VAAPI hardware transcoding # VAAPI hardware transcoding
dev0: /dev/dri/card0,gid=44 dev0: /dev/dri/card0,gid=44
dev1: /dev/dri/renderD128,gid=104 dev1: /dev/dri/renderD128,gid=104
EOF EOF
else else
cat <<EOF >>$LXC_CONFIG cat <<EOF >>$LXC_CONFIG
# VAAPI hardware transcoding # VAAPI hardware transcoding
dev0: /dev/dri/card1,gid=44 dev0: /dev/dri/card1,gid=44
dev1: /dev/dri/renderD128,gid=104 dev1: /dev/dri/renderD128,gid=104
EOF EOF
fi
fi fi
fi fi
fi fi