remove
This commit is contained in:
parent
2fc25c281e
commit
6236aa796f
@ -1,76 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/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://github.com/BookStackApp/BookStack
|
|
||||||
|
|
||||||
APP="Bookstack"
|
|
||||||
var_tags="${var_tags:-organizer}"
|
|
||||||
var_cpu="${var_cpu:-1}"
|
|
||||||
var_ram="${var_ram:-1024}"
|
|
||||||
var_disk="${var_disk:-4}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-12}"
|
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
|
||||||
|
|
||||||
header_info "$APP"
|
|
||||||
variables
|
|
||||||
color
|
|
||||||
catch_errors
|
|
||||||
|
|
||||||
function update_script() {
|
|
||||||
header_info
|
|
||||||
check_container_storage
|
|
||||||
check_container_resources
|
|
||||||
if [[ ! -d /opt/bookstack ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/BookStackApp/BookStack/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 Apache2"
|
|
||||||
systemctl stop apache2
|
|
||||||
msg_ok "Services Stopped"
|
|
||||||
|
|
||||||
msg_info "Updating ${APP} to v${RELEASE}"
|
|
||||||
mv /opt/bookstack /opt/bookstack-backup
|
|
||||||
fetch_and_deploy_gh_release BookstackApp/BookStack
|
|
||||||
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/storage/uploads/* /opt/bookstack/storage/uploads/ || true
|
|
||||||
cp -r /opt/bookstack-backup/themes/* /opt/bookstack/themes/ || true
|
|
||||||
cd /opt/bookstack
|
|
||||||
export COMPOSER_ALLOW_SUPERUSER=1
|
|
||||||
$STD composer install --no-dev
|
|
||||||
$STD php artisan migrate --force
|
|
||||||
chown www-data:www-data -R /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
|
|
||||||
chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
|
|
||||||
chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
|
|
||||||
chmod -R 640 /opt/bookstack/.env
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
|
||||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
|
||||||
|
|
||||||
msg_info "Starting Apache2"
|
|
||||||
systemctl start apache2
|
|
||||||
msg_ok "Started Apache2"
|
|
||||||
|
|
||||||
msg_info "Cleaning Up"
|
|
||||||
rm -rf /opt/bookstack-backup
|
|
||||||
rm -rf "/opt/BookStack-${RELEASE}.zip"
|
|
||||||
msg_ok "Cleaned"
|
|
||||||
msg_ok "Updated Successfully"
|
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
|
||||||
fi
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
|
|
||||||
start
|
|
||||||
build_container
|
|
||||||
description
|
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
|
@ -1,170 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func)
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: tteck (tteckster) | Co-Author: MickLesk (CanbiZ)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://www.home-assistant.io/
|
|
||||||
|
|
||||||
APP="Home Assistant-Core"
|
|
||||||
var_tags="${var_tags:-automation;smarthome}"
|
|
||||||
var_cpu="${var_cpu:-2}"
|
|
||||||
var_ram="${var_ram:-2048}"
|
|
||||||
var_disk="${var_disk:-10}"
|
|
||||||
var_os="${var_os:-ubuntu}"
|
|
||||||
var_version="${var_version:-24.10}"
|
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
|
||||||
|
|
||||||
header_info "$APP"
|
|
||||||
variables
|
|
||||||
color
|
|
||||||
catch_errors
|
|
||||||
|
|
||||||
function update_script() {
|
|
||||||
header_info
|
|
||||||
|
|
||||||
# OS Check
|
|
||||||
if ! lsb_release -d | grep -q "Ubuntu 24.10"; then
|
|
||||||
msg_error "Wrong OS detected. This script only supports Ubuntu 24.10."
|
|
||||||
msg_error "Read Guide: https://github.com/community-scripts/ProxmoxVE/discussions/1549"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
check_container_storage
|
|
||||||
check_container_resources
|
|
||||||
|
|
||||||
if [[ ! -d /srv/homeassistant ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
setup_uv
|
|
||||||
IP=$(hostname -I | awk '{print $1}')
|
|
||||||
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \
|
|
||||||
"1" "Update Core" ON \
|
|
||||||
"2" "Install HACS" OFF \
|
|
||||||
"3" "Install FileBrowser" OFF \
|
|
||||||
3>&1 1>&2 2>&3)
|
|
||||||
|
|
||||||
if [ "$UPD" == "1" ]; then
|
|
||||||
if (whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "SELECT BRANCH" --yesno "Use Beta Branch?" 10 58); then
|
|
||||||
clear
|
|
||||||
header_info
|
|
||||||
echo -e "${GN}Updating to Beta Version${CL}"
|
|
||||||
BR="--pre"
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
header_info
|
|
||||||
echo -e "${GN}Updating to Stable Version${CL}"
|
|
||||||
BR=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_info "Stopping Home Assistant"
|
|
||||||
systemctl stop homeassistant
|
|
||||||
msg_ok "Stopped Home Assistant"
|
|
||||||
|
|
||||||
if [[ -d /srv/homeassistant/bin ]]; then
|
|
||||||
msg_info "Migrating to .venv-based structure"
|
|
||||||
$STD source /srv/homeassistant/bin/activate
|
|
||||||
PY_VER=$(python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")
|
|
||||||
$STD deactivate
|
|
||||||
mv /srv/homeassistant "/srv/homeassistant_backup_$PY_VER"
|
|
||||||
mkdir -p /srv/homeassistant
|
|
||||||
cd /srv/homeassistant
|
|
||||||
|
|
||||||
$STD uv python install 3.13
|
|
||||||
UV_PYTHON=$(uv python list | awk '/3\.13\.[0-9]+.*\/root\/.local/ {print $2; exit}')
|
|
||||||
if [[ -z "$UV_PYTHON" ]]; then
|
|
||||||
msg_error "No local Python 3.13 found via uv"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
$STD uv venv .venv --python "$UV_PYTHON"
|
|
||||||
$STD source .venv/bin/activate
|
|
||||||
$STD uv pip install homeassistant mysqlclient psycopg2-binary isal webrtcvad wheel
|
|
||||||
mkdir -p /root/.homeassistant
|
|
||||||
msg_ok "Migration complete"
|
|
||||||
else
|
|
||||||
source /srv/homeassistant/.venv/bin/activate
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_info "Updating Home Assistant"
|
|
||||||
$STD uv pip install $BR --upgrade homeassistant
|
|
||||||
msg_ok "Updated Home Assistant"
|
|
||||||
|
|
||||||
msg_info "Starting Home Assistant"
|
|
||||||
if [[ -f /etc/systemd/system/homeassistant.service ]] && grep -q "/srv/homeassistant/bin/python3" /etc/systemd/system/homeassistant.service; then
|
|
||||||
sed -i 's|ExecStart=/srv/homeassistant/bin/python3|ExecStart=/srv/homeassistant/.venv/bin/python3|' /etc/systemd/system/homeassistant.service
|
|
||||||
sed -i 's|PATH=/srv/homeassistant/bin|PATH=/srv/homeassistant/.venv/bin|' /etc/systemd/system/homeassistant.service
|
|
||||||
$STD systemctl daemon-reload
|
|
||||||
fi
|
|
||||||
|
|
||||||
systemctl start homeassistant
|
|
||||||
sleep 5
|
|
||||||
msg_ok "Started Home Assistant"
|
|
||||||
msg_ok "Update Successful"
|
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8123${CL}"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$UPD" == "2" ]; then
|
|
||||||
msg_info "Installing Home Assistant Community Store (HACS)"
|
|
||||||
$STD apt update
|
|
||||||
$STD apt install -y unzip
|
|
||||||
cd /root/.homeassistant
|
|
||||||
$STD bash <(curl -fsSL https://get.hacs.xyz)
|
|
||||||
msg_ok "Installed Home Assistant Community Store (HACS)"
|
|
||||||
echo -e "\n Reboot Home Assistant and clear browser cache then Add HACS integration.\n"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$UPD" == "3" ]; then
|
|
||||||
set +Eeuo pipefail
|
|
||||||
read -r -p "Would you like to use No Authentication? <y/N> " prompt
|
|
||||||
msg_info "Installing FileBrowser"
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/filebrowser/filebrowser/releases/latest | grep -o '"tag_name": ".*"' | sed 's/"//g' | sed 's/tag_name: //g')
|
|
||||||
$STD curl -fsSL https://github.com/filebrowser/filebrowser/releases/download/$RELEASE/linux-amd64-filebrowser.tar.gz | tar -xzv -C /usr/local/bin
|
|
||||||
|
|
||||||
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
|
||||||
$STD filebrowser config init -a '0.0.0.0'
|
|
||||||
$STD filebrowser config set -a '0.0.0.0'
|
|
||||||
$STD filebrowser config set --auth.method=noauth
|
|
||||||
$STD filebrowser users add ID 1 --perm.admin
|
|
||||||
else
|
|
||||||
$STD filebrowser config init -a '0.0.0.0'
|
|
||||||
$STD filebrowser config set -a '0.0.0.0'
|
|
||||||
$STD filebrowser users add admin helper-scripts.com --perm.admin
|
|
||||||
fi
|
|
||||||
msg_ok "Installed FileBrowser"
|
|
||||||
|
|
||||||
msg_info "Creating Service"
|
|
||||||
cat <<EOF >/etc/systemd/system/filebrowser.service
|
|
||||||
[Unit]
|
|
||||||
Description=Filebrowser
|
|
||||||
After=network-online.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
User=root
|
|
||||||
WorkingDirectory=/root/
|
|
||||||
ExecStart=/usr/local/bin/filebrowser -r /root/.homeassistant
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=default.target
|
|
||||||
EOF
|
|
||||||
|
|
||||||
systemctl enable --now -q filebrowser.service
|
|
||||||
msg_ok "Created Service"
|
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
|
||||||
echo -e "FileBrowser should be reachable by going to the following URL.
|
|
||||||
${BL}http://$IP:8080${CL} admin|helper-scripts.com\n"
|
|
||||||
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}http://${IP}:8123${CL}"
|
|
@ -1,50 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -s https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/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
|
|
||||||
|
|
||||||
APP="Mattermost"
|
|
||||||
var_disk="${var_disk:-10}"
|
|
||||||
var_cpu="${var_cpu:-2}"
|
|
||||||
var_ram="${var_ram:-2048}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-12}"
|
|
||||||
variables
|
|
||||||
color
|
|
||||||
catch_errors
|
|
||||||
|
|
||||||
function update_script() {
|
|
||||||
header_info
|
|
||||||
if [[ ! -d /opt/mattermost ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/xxxx/xxxx/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"
|
|
||||||
systemctl stop xxxx
|
|
||||||
msg_ok "App Stopped"
|
|
||||||
|
|
||||||
msg_info "Updating App"
|
|
||||||
#
|
|
||||||
msg_ok "Updated App"
|
|
||||||
|
|
||||||
msg_info "Starting App"
|
|
||||||
systemctl start App
|
|
||||||
msg_ok "Started App"
|
|
||||||
|
|
||||||
msg_info "Cleaning Up"
|
|
||||||
#rm -rf
|
|
||||||
msg_ok "Cleaned"
|
|
||||||
msg_ok "Updated Successfully"
|
|
||||||
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}:8086${CL} \n"
|
|
@ -1,44 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -s https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func)
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: michelroegl-brunner
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://github.com/opf/openproject
|
|
||||||
|
|
||||||
APP="OpenProject"
|
|
||||||
var_tags="${var_tags:-project-management,erp}"
|
|
||||||
var_cpu="${var_cpu:-2}"
|
|
||||||
var_ram="${var_ram:-4096}"
|
|
||||||
var_disk="${var_disk:-8}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-12}"
|
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
|
||||||
|
|
||||||
header_info "$APP"
|
|
||||||
variables
|
|
||||||
color
|
|
||||||
catch_errors
|
|
||||||
|
|
||||||
function update_script() {
|
|
||||||
header_info
|
|
||||||
check_container_storage
|
|
||||||
check_container_resources
|
|
||||||
if [[ ! -f /etc/openproject/installer.dat ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_info "Updating ${APP}"
|
|
||||||
$STD apt-get update
|
|
||||||
$STD apt-get install --only-upgrade -y openproject
|
|
||||||
msg_ok "Updated ${APP}"
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
start
|
|
||||||
build_container
|
|
||||||
description
|
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}/openproject${CL}"
|
|
@ -1,129 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func)
|
|
||||||
# Copyright (c) 2021-2025 tteck
|
|
||||||
# Author: tteck (tteckster)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://docs.paperless-ngx.com/
|
|
||||||
|
|
||||||
APP="Paperless-ngx"
|
|
||||||
var_tags="${var_tags:-document;management}"
|
|
||||||
var_cpu="${var_cpu:-2}"
|
|
||||||
var_ram="${var_ram:-2048}"
|
|
||||||
var_disk="${var_disk:-10}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-12}"
|
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
|
||||||
|
|
||||||
header_info "$APP"
|
|
||||||
variables
|
|
||||||
color
|
|
||||||
catch_errors
|
|
||||||
|
|
||||||
function update_script() {
|
|
||||||
header_info
|
|
||||||
check_container_storage
|
|
||||||
check_container_resources
|
|
||||||
if [[ ! -d /opt/paperless ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/paperless-ngx/paperless-ngx/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
|
||||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
|
||||||
msg_info "Stopping Paperless services"
|
|
||||||
systemctl stop paperless-{webserver,scheduler,task-queue,consumer}
|
|
||||||
msg_ok "Stopped Paperless services"
|
|
||||||
|
|
||||||
BACKUP_DIR="/opt/paperless-backup-$(date +%F_%T | tr ':' '-')"
|
|
||||||
|
|
||||||
MIGRATION_NEEDED=0
|
|
||||||
if ! command -v uv &>/dev/null || [[ ! -d /opt/paperless/.venv ]]; then
|
|
||||||
MIGRATION_NEEDED=1
|
|
||||||
msg_info "uv not found or missing venv, migrating..."
|
|
||||||
setup_uv
|
|
||||||
$STD uv venv /opt/paperless/.venv
|
|
||||||
source /opt/paperless/.venv/bin/activate
|
|
||||||
$STD uv sync --all-extras
|
|
||||||
fi
|
|
||||||
|
|
||||||
BACKUP_DIR="/opt/paperless-backup-$(date +%F_%T | tr ':' '-')"
|
|
||||||
|
|
||||||
setup_gs
|
|
||||||
setup_uv
|
|
||||||
|
|
||||||
msg_info "Backing up Paperless folders"
|
|
||||||
mkdir -p "$BACKUP_DIR"
|
|
||||||
for d in consume data media; do
|
|
||||||
[[ -d "/opt/paperless/$d" ]] && mv "/opt/paperless/$d" "$BACKUP_DIR/"
|
|
||||||
done
|
|
||||||
[[ -f "/opt/paperless/paperless.conf" ]] && cp "/opt/paperless/paperless.conf" "$BACKUP_DIR/"
|
|
||||||
msg_ok "Backup completed to $BACKUP_DIR"
|
|
||||||
|
|
||||||
msg_info "Updating PaperlessNGX"
|
|
||||||
RELEASE=$(curl -fsSL "https://api.github.com/repos/paperless-ngx/paperless-ngx/releases/latest" | grep 'tag_name' | cut -d '"' -f4)
|
|
||||||
cd /tmp
|
|
||||||
curl -fsSL "https://github.com/paperless-ngx/paperless-ngx/releases/download/$RELEASE/paperless-ngx-$RELEASE.tar.xz" -o paperless.tar.xz
|
|
||||||
tar -xf paperless.tar.xz
|
|
||||||
cp -r paperless-ngx/* /opt/paperless/
|
|
||||||
rm -rf paperless.tar.xz paperless-ngx
|
|
||||||
echo "$RELEASE" >/opt/paperless/Paperless-ngx_version.txt
|
|
||||||
msg_ok "Updated Paperless-ngx to $RELEASE"
|
|
||||||
|
|
||||||
for d in consume data media; do
|
|
||||||
[[ -d "$BACKUP_DIR/$d" ]] && mv "$BACKUP_DIR/$d" "/opt/paperless/"
|
|
||||||
done
|
|
||||||
[[ ! -f "/opt/paperless/paperless.conf" && -f "$BACKUP_DIR/paperless.conf" ]] && cp "$BACKUP_DIR/paperless.conf" "/opt/paperless/paperless.conf"
|
|
||||||
$STD uv venv /opt/paperless/.venv
|
|
||||||
source /opt/paperless/.venv/bin/activate
|
|
||||||
echo -e "source done"
|
|
||||||
$STD uv sync --all-extras
|
|
||||||
echo -e "uv sync done"
|
|
||||||
source /opt/paperless/paperless.conf
|
|
||||||
$STD /opt/paperless/.venv/bin/python3 /opt/paperless/src/manage.py migrate
|
|
||||||
|
|
||||||
if [[ "$MIGRATION_NEEDED" == 1 ]]; then
|
|
||||||
cat <<EOF >/etc/default/paperless
|
|
||||||
PYTHONDONTWRITEBYTECODE=1
|
|
||||||
PYTHONUNBUFFERED=1
|
|
||||||
PNGX_CONTAINERIZED=0
|
|
||||||
UV_LINK_MODE=copy
|
|
||||||
EOF
|
|
||||||
|
|
||||||
for svc in /etc/systemd/system/paperless-*.service; do
|
|
||||||
sed -i \
|
|
||||||
-e "s|^ExecStart=.*manage.py|ExecStart=/opt/paperless/.venv/bin/python3 manage.py|" \
|
|
||||||
-e "s|^ExecStart=.*celery|ExecStart=/opt/paperless/.venv/bin/celery|" \
|
|
||||||
-e "s|^ExecStart=.*granian|ExecStart=/opt/paperless/.venv/bin/granian|" \
|
|
||||||
-e "/^WorkingDirectory=/a EnvironmentFile=/etc/default/paperless" "$svc"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
systemctl daemon-reexec
|
|
||||||
systemctl daemon-reload
|
|
||||||
|
|
||||||
msg_info "Starting Paperless services"
|
|
||||||
systemctl start paperless-{webserver,scheduler,task-queue,consumer}.service
|
|
||||||
sleep 1
|
|
||||||
msg_ok "All services restarted"
|
|
||||||
msg_ok "Updated Successfully!\n"
|
|
||||||
read -r -p "Remove backup directory at $BACKUP_DIR? [y/N]: " CLEANUP
|
|
||||||
if [[ "$CLEANUP" =~ ^[Yy]$ ]]; then
|
|
||||||
rm -rf "$BACKUP_DIR"
|
|
||||||
msg_ok "Backup directory removed"
|
|
||||||
else
|
|
||||||
msg_info "Backup directory retained at $BACKUP_DIR"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
|
||||||
fi
|
|
||||||
exit
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
start
|
|
||||||
build_container
|
|
||||||
description
|
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000${CL}"
|
|
@ -1,73 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func)
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: CrazyWolf13
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
|
||||||
# Source: https://github.com/CrazyWolf13/streamlink-webui
|
|
||||||
|
|
||||||
APP="streamlink-webui"
|
|
||||||
var_tags="${var_tags:-download,streaming}"
|
|
||||||
var_cpu="${var_cpu:-2}"
|
|
||||||
var_ram="${var_ram:-2048}"
|
|
||||||
var_disk="${var_disk:-10}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-12}"
|
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
|
||||||
|
|
||||||
header_info "$APP"
|
|
||||||
variables
|
|
||||||
color
|
|
||||||
catch_errors
|
|
||||||
|
|
||||||
function update_script() {
|
|
||||||
header_info
|
|
||||||
check_container_storage
|
|
||||||
check_container_resources
|
|
||||||
|
|
||||||
if [[ ! -d /opt/streamlink-webui ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/CrazyWolf13/streamlink-webui/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
|
||||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
|
||||||
msg_info "Stopping $APP"
|
|
||||||
systemctl stop ${APP}
|
|
||||||
msg_ok "Stopped $APP"
|
|
||||||
|
|
||||||
rm -rf /opt/${APP}
|
|
||||||
NODE_VERSION="22"
|
|
||||||
NODE_MODULE="npm@latest,yarn@latest"
|
|
||||||
install_node_and_modules
|
|
||||||
setup_uv
|
|
||||||
fetch_and_deploy_gh_release "CrazyWolf13/streamlink-webui"
|
|
||||||
|
|
||||||
msg_info "Updating $APP to v${RELEASE}"
|
|
||||||
$STD uv venv /opt/"${APP}"/backend/src/.venv
|
|
||||||
source /opt/"${APP}"/backend/src/.venv/bin/activate
|
|
||||||
$STD uv pip install -r /opt/streamlink-webui/backend/src/requirements.txt --python=/opt/"${APP}"/backend/src/.venv
|
|
||||||
cd /opt/"${APP}"/frontend/src
|
|
||||||
$STD yarn install
|
|
||||||
$STD yarn build
|
|
||||||
chmod +x /opt/"${APP}"/start.sh
|
|
||||||
msg_ok "Updated $APP to v${RELEASE}"
|
|
||||||
|
|
||||||
msg_info "Starting $APP"
|
|
||||||
systemctl start ${APP}
|
|
||||||
msg_ok "Started $APP"
|
|
||||||
|
|
||||||
msg_ok "Update Successful"
|
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
|
||||||
fi
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
|
|
||||||
start
|
|
||||||
build_container
|
|
||||||
description
|
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000${CL}"
|
|
@ -1,114 +0,0 @@
|
|||||||
#!/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://github.com/BookStackApp/BookStack
|
|
||||||
|
|
||||||
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 \
|
|
||||||
unzip \
|
|
||||||
mariadb-server \
|
|
||||||
apache2 \
|
|
||||||
php8.2-{mbstring,gd,fpm,curl,intl,ldap,tidy,bz2,mysql,zip,xml} \
|
|
||||||
composer \
|
|
||||||
libapache2-mod-php \
|
|
||||||
make
|
|
||||||
msg_ok "Installed Dependencies"
|
|
||||||
|
|
||||||
msg_info "Setting up Database"
|
|
||||||
DB_NAME=bookstack
|
|
||||||
DB_USER=bookstack
|
|
||||||
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
|
||||||
$STD sudo mysql -u root -e "CREATE DATABASE $DB_NAME;"
|
|
||||||
$STD sudo mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
|
||||||
$STD sudo mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
|
||||||
{
|
|
||||||
echo "Bookstack-Credentials"
|
|
||||||
echo "Bookstack Database User: $DB_USER"
|
|
||||||
echo "Bookstack Database Password: $DB_PASS"
|
|
||||||
echo "Bookstack Database Name: $DB_NAME"
|
|
||||||
} >>~/bookstack.creds
|
|
||||||
msg_ok "Set up database"
|
|
||||||
|
|
||||||
msg_info "Setup Bookstack (Patience)"
|
|
||||||
LOCAL_IP="$(hostname -I | awk '{print $1}')"
|
|
||||||
cd /opt
|
|
||||||
fetch_and_deploy_gh_release BookstackApp/BookStack
|
|
||||||
cd /opt/bookstack
|
|
||||||
cp .env.example .env
|
|
||||||
sudo sed -i "s|APP_URL=.*|APP_URL=http://$LOCAL_IP|g" /opt/bookstack/.env
|
|
||||||
sudo sed -i "s/DB_DATABASE=.*/DB_DATABASE=$DB_NAME/" /opt/bookstack/.env
|
|
||||||
sudo sed -i "s/DB_USERNAME=.*/DB_USERNAME=$DB_USER/" /opt/bookstack/.env
|
|
||||||
sudo sed -i "s/DB_PASSWORD=.*/DB_PASSWORD=$DB_PASS/" /opt/bookstack/.env
|
|
||||||
$STD composer install --no-dev --no-plugins --no-interaction
|
|
||||||
$STD php artisan key:generate --no-interaction --force
|
|
||||||
$STD php artisan migrate --no-interaction --force
|
|
||||||
chown www-data:www-data -R /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
|
|
||||||
chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
|
|
||||||
chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
|
|
||||||
chmod -R 640 /opt/bookstack/.env
|
|
||||||
$STD a2enmod rewrite
|
|
||||||
$STD a2enmod php8.2
|
|
||||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
|
||||||
msg_ok "Installed Bookstack"
|
|
||||||
|
|
||||||
msg_info "Creating Service"
|
|
||||||
cat <<EOF >/etc/apache2/sites-available/bookstack.conf
|
|
||||||
<VirtualHost *:80>
|
|
||||||
ServerAdmin webmaster@localhost
|
|
||||||
DocumentRoot /opt/bookstack/public/
|
|
||||||
|
|
||||||
<Directory /opt/bookstack/public/>
|
|
||||||
Options -Indexes +FollowSymLinks
|
|
||||||
AllowOverride None
|
|
||||||
Require all granted
|
|
||||||
<IfModule mod_rewrite.c>
|
|
||||||
<IfModule mod_negotiation.c>
|
|
||||||
Options -MultiViews -Indexes
|
|
||||||
</IfModule>
|
|
||||||
|
|
||||||
RewriteEngine On
|
|
||||||
|
|
||||||
# Handle Authorization Header
|
|
||||||
RewriteCond %{HTTP:Authorization} .
|
|
||||||
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
|
||||||
|
|
||||||
# Redirect Trailing Slashes If Not A Folder...
|
|
||||||
RewriteCond %{REQUEST_FILENAME} !-d
|
|
||||||
RewriteCond %{REQUEST_URI} (.+)/$
|
|
||||||
RewriteRule ^ %1 [L,R=301]
|
|
||||||
|
|
||||||
# Handle Front Controller...
|
|
||||||
RewriteCond %{REQUEST_FILENAME} !-d
|
|
||||||
RewriteCond %{REQUEST_FILENAME} !-f
|
|
||||||
RewriteRule ^ index.php [L]
|
|
||||||
</IfModule>
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
ErrorLog /var/log/apache2/error.log
|
|
||||||
CustomLog /var/log/apache2/access.log combined
|
|
||||||
|
|
||||||
</VirtualHost>
|
|
||||||
EOF
|
|
||||||
$STD a2ensite bookstack.conf
|
|
||||||
$STD a2dissite 000-default.conf
|
|
||||||
$STD systemctl reload apache2
|
|
||||||
msg_ok "Created Services"
|
|
||||||
|
|
||||||
motd_ssh
|
|
||||||
customize
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
rm -rf /opt/v${RELEASE}.zip
|
|
||||||
$STD apt-get autoremove
|
|
||||||
$STD apt-get autoclean
|
|
||||||
msg_ok "Cleaned"
|
|
@ -1,67 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: Slaviša Arežina (tremor021)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://github.com/TwiN/gatus
|
|
||||||
|
|
||||||
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 \
|
|
||||||
ca-certificates \
|
|
||||||
libcap2-bin
|
|
||||||
msg_ok "Installed Dependencies"
|
|
||||||
|
|
||||||
install_go
|
|
||||||
|
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/TwiN/gatus/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
|
||||||
msg_info "Setting up gatus v${RELEASE}"
|
|
||||||
temp_file=$(mktemp)
|
|
||||||
mkdir -p /opt/gatus
|
|
||||||
curl -fsSL "https://github.com/TwiN/gatus/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
|
||||||
tar zxf "$temp_file" --strip-components=1 -C /opt/gatus
|
|
||||||
cd /opt/gatus
|
|
||||||
$STD go mod tidy
|
|
||||||
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gatus .
|
|
||||||
setcap CAP_NET_RAW+ep gatus
|
|
||||||
mv config.yaml config
|
|
||||||
echo "${RELEASE}" >/opt/gatus_version.txt
|
|
||||||
msg_ok "Done setting up gatus"
|
|
||||||
|
|
||||||
msg_info "Creating Service"
|
|
||||||
cat <<EOF >/etc/systemd/system/gatus.service
|
|
||||||
[Unit]
|
|
||||||
Description=gatus Service
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
User=root
|
|
||||||
WorkingDirectory=/opt/gatus
|
|
||||||
ExecStart=/opt/gatus/gatus
|
|
||||||
Restart=always
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
systemctl enable -q --now gatus
|
|
||||||
msg_ok "Created Service"
|
|
||||||
|
|
||||||
motd_ssh
|
|
||||||
customize
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
rm -f "$temp_file"
|
|
||||||
$STD apt-get -y autoremove
|
|
||||||
$STD apt-get -y autoclean
|
|
||||||
msg_ok "Cleaned"
|
|
||||||
|
|
||||||
motd_ssh
|
|
||||||
customize
|
|
@ -1,106 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright (c) 2021-2025 tteck
|
|
||||||
# Author: tteck (tteckster)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://www.home-assistant.io/
|
|
||||||
|
|
||||||
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 \
|
|
||||||
git \
|
|
||||||
gnupg \
|
|
||||||
ca-certificates \
|
|
||||||
bluez \
|
|
||||||
libtiff6 \
|
|
||||||
tzdata \
|
|
||||||
libffi-dev \
|
|
||||||
libssl-dev \
|
|
||||||
libjpeg-dev \
|
|
||||||
zlib1g-dev \
|
|
||||||
autoconf \
|
|
||||||
build-essential \
|
|
||||||
libopenjp2-7 \
|
|
||||||
libturbojpeg0-dev \
|
|
||||||
ffmpeg \
|
|
||||||
liblapack3 \
|
|
||||||
liblapack-dev \
|
|
||||||
dbus-broker \
|
|
||||||
libpcap-dev \
|
|
||||||
libavdevice-dev \
|
|
||||||
libavformat-dev \
|
|
||||||
libavcodec-dev \
|
|
||||||
libavutil-dev \
|
|
||||||
libavfilter-dev \
|
|
||||||
libmariadb-dev-compat \
|
|
||||||
libatlas-base-dev \
|
|
||||||
software-properties-common \
|
|
||||||
libmariadb-dev \
|
|
||||||
pkg-config
|
|
||||||
msg_ok "Installed Dependencies"
|
|
||||||
|
|
||||||
setup_uv
|
|
||||||
msg_info "Setup Python3"
|
|
||||||
$STD apt-get install -y \
|
|
||||||
python3.13 \
|
|
||||||
python3.13-dev \
|
|
||||||
python3.13-venv
|
|
||||||
msg_ok "Setup Python3"
|
|
||||||
|
|
||||||
msg_info "Preparing Python 3.13 for uv"
|
|
||||||
$STD uv python install 3.13
|
|
||||||
UV_PYTHON=$(uv python list | awk '/3\.13\.[0-9]+.*\/root\/.local/ {print $2; exit}')
|
|
||||||
if [[ -z "$UV_PYTHON" ]]; then
|
|
||||||
msg_error "No local Python 3.13 found via uv"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
msg_ok "Prepared Python 3.13"
|
|
||||||
|
|
||||||
msg_info "Setting up Home Assistant-Core environment"
|
|
||||||
rm -rf /srv/homeassistant
|
|
||||||
mkdir -p /srv/homeassistant
|
|
||||||
cd /srv/homeassistant
|
|
||||||
$STD uv venv .venv --python "$UV_PYTHON"
|
|
||||||
source .venv/bin/activate
|
|
||||||
msg_ok "Created virtual environment"
|
|
||||||
|
|
||||||
msg_info "Installing Home Assistant-Core"
|
|
||||||
$STD uv pip install homeassistant mysqlclient psycopg2-binary isal webrtcvad wheel
|
|
||||||
mkdir -p /root/.homeassistant
|
|
||||||
msg_ok "Installed Home Assistant-Core"
|
|
||||||
|
|
||||||
msg_info "Creating Service"
|
|
||||||
cat <<EOF >/etc/systemd/system/homeassistant.service
|
|
||||||
[Unit]
|
|
||||||
Description=Home Assistant
|
|
||||||
After=network-online.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
WorkingDirectory=/root/.homeassistant
|
|
||||||
Environment="PATH=/srv/homeassistant/.venv/bin:/usr/local/bin:/usr/bin"
|
|
||||||
ExecStart=/srv/homeassistant/.venv/bin/python3 -m homeassistant --config /root/.homeassistant
|
|
||||||
Restart=always
|
|
||||||
RestartForceExitStatus=100
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
|
|
||||||
systemctl enable -q --now homeassistant
|
|
||||||
msg_ok "Created Service"
|
|
||||||
|
|
||||||
motd_ssh
|
|
||||||
customize
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
$STD apt-get -y autoremove
|
|
||||||
$STD apt-get -y autoclean
|
|
||||||
msg_ok "Cleaned"
|
|
@ -2,8 +2,7 @@
|
|||||||
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
# Author: MickLesk (CanbiZ)
|
# Author: MickLesk (CanbiZ)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/tteck/Proxmox/raw/main/LICENSE
|
||||||
# https://github.com/tteck/Proxmox/raw/main/LICENSE
|
|
||||||
# Source: https://github.com/odoo/odoo
|
# Source: https://github.com/odoo/odoo
|
||||||
|
|
||||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user