mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-10-01 14:39:39 +00:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
51fc861b0f |
+2
-3
@@ -54,9 +54,8 @@ function update_script() {
|
|||||||
$STD uv venv --clear .venv
|
$STD uv venv --clear .venv
|
||||||
$STD .venv/bin/python -m ensurepip --upgrade
|
$STD .venv/bin/python -m ensurepip --upgrade
|
||||||
fi
|
fi
|
||||||
$STD .venv/bin/python -m pip install --upgrade pip
|
$STD uv pip install --python .venv/bin/python -r requirements.txt
|
||||||
$STD .venv/bin/python -m pip install -r requirements.txt
|
$STD uv pip install --python .venv/bin/python 'djangorestframework<3.15'
|
||||||
$STD .venv/bin/python -m pip install 'djangorestframework<3.15'
|
|
||||||
$STD .venv/bin/python -m manage collectstatic --noinput
|
$STD .venv/bin/python -m manage collectstatic --noinput
|
||||||
$STD .venv/bin/python -m manage migrate
|
$STD .venv/bin/python -m manage migrate
|
||||||
|
|
||||||
|
|||||||
+13
-6
@@ -29,13 +29,20 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -f /opt/${APP}_version.txt ]]; then
|
RELEASE=$(curl -fsSL https://api.github.com/repos/sharevb/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4)
|
||||||
mv /opt/"${APP}_version.txt" ~/.it-tools
|
if [ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ] || [ ! -f /opt/${APP}_version.txt ]; then
|
||||||
fi
|
msg_info "Updating ${APP} LXC"
|
||||||
|
curl -fsSL "https://github.com/sharevb/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip" -o it-tools.zip
|
||||||
if check_for_gh_release "it-tools" "sharevb/it-tools"; then
|
mkdir -p /usr/share/nginx/html
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "it-tools" "sharevb/it-tools" "prebuild" "latest" "/usr/share/nginx/html" "it-tools-*.zip"
|
rm -rf /usr/share/nginx/html/*
|
||||||
|
$STD unzip it-tools.zip -d /tmp
|
||||||
|
cp -r /tmp/dist/* /usr/share/nginx/html
|
||||||
|
rm -rf /tmp/dist
|
||||||
|
rm -f it-tools.zip
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|||||||
+16
-3
@@ -29,7 +29,8 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "wakapi" "muety/wakapi"; then
|
RELEASE=$(curl -s https://api.github.com/repos/muety/wakapi/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
if [ "${RELEASE}" != "$(cat ~/.wakapi 2>/dev/null)" ] || [ ! -f ~/.wakapi ]; then
|
||||||
msg_info "Stopping Wakapi Service"
|
msg_info "Stopping Wakapi Service"
|
||||||
$STD rc-service wakapi stop
|
$STD rc-service wakapi stop
|
||||||
msg_ok "Stopped Wakapi Service"
|
msg_ok "Stopped Wakapi Service"
|
||||||
@@ -38,14 +39,26 @@ function update_script() {
|
|||||||
$STD apk -U upgrade
|
$STD apk -U upgrade
|
||||||
msg_ok "Updated Wakapi LXC"
|
msg_ok "Updated Wakapi LXC"
|
||||||
|
|
||||||
create_backup /opt/wakapi/config.yml /opt/wakapi/wakapi_db.db
|
msg_info "Creating backup"
|
||||||
|
mkdir -p /opt/wakapi-backup
|
||||||
|
cp /opt/wakapi/config.yml /opt/wakapi/wakapi_db.db /opt/wakapi-backup/
|
||||||
|
msg_ok "Created backup"
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "wakapi" "muety/wakapi" "prebuild" "latest" "/opt/wakapi" "wakapi_linux_$(arch_resolve).zip"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "wakapi" "muety/wakapi" "prebuild" "latest" "/opt/wakapi" "wakapi_linux_$(arch_resolve).zip"
|
||||||
restore_backup
|
|
||||||
|
msg_info "Configuring Wakapi"
|
||||||
|
cd /opt/wakapi
|
||||||
|
cp /opt/wakapi-backup/config.yml /opt/wakapi/
|
||||||
|
cp /opt/wakapi-backup/wakapi_db.db /opt/wakapi/
|
||||||
|
rm -rf /opt/wakapi-backup
|
||||||
|
msg_ok "Configured Wakapi"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
$STD rc-service wakapi start
|
$STD rc-service wakapi start
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
msg_ok "Updated successfully"
|
msg_ok "Updated successfully"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -58,7 +58,7 @@ function update_script() {
|
|||||||
mkdir -p "$INSTALL_DIR"/metadata_temp
|
mkdir -p "$INSTALL_DIR"/metadata_temp
|
||||||
$STD tar -xf ~/autocaliweb_bkp.tar --directory /
|
$STD tar -xf ~/autocaliweb_bkp.tar --directory /
|
||||||
KEPUB_VERSION="$(/usr/bin/kepubify --version)"
|
KEPUB_VERSION="$(/usr/bin/kepubify --version)"
|
||||||
CALIBRE_RELEASE="$(get_latest_github_release "kovidgoyal/calibre")"
|
CALIBRE_RELEASE="$(curl -s https://api.github.com/repos/kovidgoyal/calibre/releases/latest | grep -o '"tag_name": "[^"]*' | cut -d'"' -f4)"
|
||||||
echo "${KEPUB_VERSION#v}" >"$INSTALL_DIR"/KEPUBIFY_RELEASE
|
echo "${KEPUB_VERSION#v}" >"$INSTALL_DIR"/KEPUBIFY_RELEASE
|
||||||
echo "${CALIBRE_RELEASE#v}" >/"$INSTALL_DIR"/CALIBRE_RELEASE
|
echo "${CALIBRE_RELEASE#v}" >/"$INSTALL_DIR"/CALIBRE_RELEASE
|
||||||
sed 's/^/v/' ~/.autocaliweb >"$INSTALL_DIR"/ACW_RELEASE
|
sed 's/^/v/' ~/.autocaliweb >"$INSTALL_DIR"/ACW_RELEASE
|
||||||
|
|||||||
+19
-18
@@ -75,7 +75,8 @@ update_deb_based() {
|
|||||||
|
|
||||||
msg_info "Configuring Bitmagnet"
|
msg_info "Configuring Bitmagnet"
|
||||||
cd /opt/bitmagnet
|
cd /opt/bitmagnet
|
||||||
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=v$(cat ~/.bitmagnet)"
|
VREL=v$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
|
||||||
chmod +x bitmagnet
|
chmod +x bitmagnet
|
||||||
msg_ok "Configured Bitmagnet"
|
msg_ok "Configured Bitmagnet"
|
||||||
|
|
||||||
@@ -91,10 +92,8 @@ update_alpine() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
if [[ -f /opt/bitmagnet_version.txt ]]; then
|
RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
mv /opt/bitmagnet_version.txt ~/.bitmagnet
|
if [ "${RELEASE}" != "$(cat /opt/bitmagnet_version.txt)" ] || [ ! -f /opt/bitmagnet_version.txt ]; then
|
||||||
fi
|
|
||||||
if check_for_gh_release "bitmagnet" "bitmagnet-io/bitmagnet"; then
|
|
||||||
msg_info "Backing up database"
|
msg_info "Backing up database"
|
||||||
rm -f /tmp/backup.sql
|
rm -f /tmp/backup.sql
|
||||||
$STD sudo -u postgres pg_dump \
|
$STD sudo -u postgres pg_dump \
|
||||||
@@ -120,25 +119,27 @@ update_alpine() {
|
|||||||
mv /tmp/backup.sql /opt/
|
mv /tmp/backup.sql /opt/
|
||||||
msg_ok "Database backed up"
|
msg_ok "Database backed up"
|
||||||
|
|
||||||
msg_info "Stopping Service"
|
msg_info "Updating ${APP} from $(cat /opt/bitmagnet_version.txt) to ${RELEASE}"
|
||||||
$STD apk -U upgrade
|
$STD apk -U upgrade
|
||||||
$STD service bitmagnet stop
|
$STD service bitmagnet stop
|
||||||
msg_ok "Stopped Service"
|
[ -f /opt/bitmagnet/.env ] && cp /opt/bitmagnet/.env /opt/
|
||||||
|
[ -f /opt/bitmagnet/config.yml ] && cp /opt/bitmagnet/config.yml /opt/
|
||||||
create_backup /opt/bitmagnet/.env /opt/bitmagnet/config.yml
|
rm -rf /opt/bitmagnet/*
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet" "tarball"
|
temp_file=$(mktemp)
|
||||||
restore_backup
|
curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
||||||
|
tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet
|
||||||
msg_info "Building ${APP}"
|
|
||||||
cd /opt/bitmagnet
|
cd /opt/bitmagnet
|
||||||
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=v$(cat ~/.bitmagnet)"
|
VREL=v$RELEASE
|
||||||
|
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
|
||||||
chmod +x bitmagnet
|
chmod +x bitmagnet
|
||||||
msg_ok "Built ${APP}"
|
[ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
|
||||||
|
[ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
|
||||||
msg_info "Starting Service"
|
rm -f "$temp_file"
|
||||||
|
echo "${RELEASE}" >/opt/bitmagnet_version.txt
|
||||||
$STD service bitmagnet start
|
$STD service bitmagnet start
|
||||||
msg_ok "Started Service"
|
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -56,12 +56,11 @@ function update_script() {
|
|||||||
rm -rf "$VENV_PATH"
|
rm -rf "$VENV_PATH"
|
||||||
$STD uv venv --clear "$VENV_PATH"
|
$STD uv venv --clear "$VENV_PATH"
|
||||||
$STD "$VENV_PATH/bin/python" -m ensurepip --upgrade
|
$STD "$VENV_PATH/bin/python" -m ensurepip --upgrade
|
||||||
$STD "$VENV_PATH/bin/python" -m pip install --upgrade pip
|
$STD uv pip install --python "$VENV_PATH/bin/python" changedetection.io playwright
|
||||||
$STD "$VENV_PATH/bin/python" -m pip install changedetection.io playwright
|
|
||||||
msg_ok "Migrated to uv/venv"
|
msg_ok "Migrated to uv/venv"
|
||||||
else
|
else
|
||||||
msg_info "Updating ${APP}"
|
msg_info "Updating ${APP}"
|
||||||
$STD "$VENV_PATH/bin/python" -m pip install --upgrade changedetection.io playwright
|
$STD uv pip install --python "$VENV_PATH/bin/python" --upgrade changedetection.io playwright
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
+2
-3
@@ -48,13 +48,12 @@ function update_script() {
|
|||||||
cd /opt/esphome
|
cd /opt/esphome
|
||||||
$STD uv venv --clear "$VENV_PATH"
|
$STD uv venv --clear "$VENV_PATH"
|
||||||
$STD "$VENV_PATH/bin/python" -m ensurepip --upgrade
|
$STD "$VENV_PATH/bin/python" -m ensurepip --upgrade
|
||||||
$STD "$VENV_PATH/bin/python" -m pip install --upgrade pip
|
$STD uv pip install --python "$VENV_PATH/bin/python" esphome esphome-device-builder esptool
|
||||||
$STD "$VENV_PATH/bin/python" -m pip install esphome esphome-device-builder esptool
|
|
||||||
msg_ok "Migrated to uv/venv"
|
msg_ok "Migrated to uv/venv"
|
||||||
else
|
else
|
||||||
msg_info "Updating ESPHome Device Builder"
|
msg_info "Updating ESPHome Device Builder"
|
||||||
PYTHON_VERSION="3.12" setup_uv
|
PYTHON_VERSION="3.12" setup_uv
|
||||||
$STD "$VENV_PATH/bin/python" -m pip install --upgrade esphome esphome-device-builder esptool
|
$STD uv pip install --python "$VENV_PATH/bin/python" --upgrade esphome esphome-device-builder esptool
|
||||||
msg_ok "Updated ESPHome Device Builder"
|
msg_ok "Updated ESPHome Device Builder"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -56,8 +56,7 @@ function update_script() {
|
|||||||
cd /opt/fireshare
|
cd /opt/fireshare
|
||||||
$STD uv venv --clear
|
$STD uv venv --clear
|
||||||
$STD .venv/bin/python -m ensurepip --upgrade
|
$STD .venv/bin/python -m ensurepip --upgrade
|
||||||
$STD .venv/bin/python -m pip install --upgrade --break-system-packages pip
|
$STD uv pip install --python .venv/bin/python --no-cache --reinstall app/server
|
||||||
$STD .venv/bin/python -m pip install --no-cache-dir --break-system-packages --ignore-installed app/server
|
|
||||||
cp .venv/bin/fireshare /usr/local/bin/fireshare
|
cp .venv/bin/fireshare /usr/local/bin/fireshare
|
||||||
set -a
|
set -a
|
||||||
source /opt/fireshare/fireshare.env
|
source /opt/fireshare/fireshare.env
|
||||||
|
|||||||
+4
-4
@@ -31,11 +31,11 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
setup_mariadb
|
setup_mariadb
|
||||||
if [[ -f /opt/${APP}_version.txt ]]; then
|
RELEASE=$(curl -fsSL https://api.github.com/repos/glpi-project/glpi/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
|
||||||
mv /opt/"${APP}_version.txt" ~/.glpi
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
fi
|
|
||||||
if check_for_gh_release "glpi" "glpi-project/glpi"; then
|
|
||||||
msg_error "Currently we don't provide an update function for this ${APP}."
|
msg_error "Currently we don't provide an update function for this ${APP}."
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,13 +38,12 @@ function update_script() {
|
|||||||
cd "$INSTALL_DIR"
|
cd "$INSTALL_DIR"
|
||||||
$STD uv venv --clear .venv
|
$STD uv venv --clear .venv
|
||||||
$STD "$VENV_PYTHON" -m ensurepip --upgrade
|
$STD "$VENV_PYTHON" -m ensurepip --upgrade
|
||||||
$STD "$VENV_PYTHON" -m pip install --upgrade pip
|
$STD uv pip install --python "$VENV_PYTHON" jupyter
|
||||||
$STD "$VENV_PYTHON" -m pip install jupyter
|
|
||||||
msg_ok "Migrated to uv and installed Jupyter"
|
msg_ok "Migrated to uv and installed Jupyter"
|
||||||
else
|
else
|
||||||
|
PYTHON_VERSION="3.12" setup_uv
|
||||||
msg_info "Updating Jupyter"
|
msg_info "Updating Jupyter"
|
||||||
$STD "$VENV_PYTHON" -m pip install --upgrade pip
|
$STD uv pip install --python "$VENV_PYTHON" --upgrade jupyter
|
||||||
$STD "$VENV_PYTHON" -m pip install --upgrade jupyter
|
|
||||||
msg_ok "Jupyter updated"
|
msg_ok "Jupyter updated"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -45,13 +45,12 @@ function update_script() {
|
|||||||
cd /opt/prometheus-pve-exporter
|
cd /opt/prometheus-pve-exporter
|
||||||
$STD uv venv --clear "$PVE_VENV_PATH"
|
$STD uv venv --clear "$PVE_VENV_PATH"
|
||||||
$STD "$PVE_VENV_PATH/bin/python" -m ensurepip --upgrade
|
$STD "$PVE_VENV_PATH/bin/python" -m ensurepip --upgrade
|
||||||
$STD "$PVE_VENV_PATH/bin/python" -m pip install --upgrade pip
|
$STD uv pip install --python "$PVE_VENV_PATH/bin/python" prometheus-pve-exporter
|
||||||
$STD "$PVE_VENV_PATH/bin/python" -m pip install prometheus-pve-exporter
|
|
||||||
msg_ok "Migrated to uv/venv"
|
msg_ok "Migrated to uv/venv"
|
||||||
else
|
else
|
||||||
msg_info "Updating Prometheus Proxmox VE Exporter"
|
msg_info "Updating Prometheus Proxmox VE Exporter"
|
||||||
PYTHON_VERSION="3.12" setup_uv
|
PYTHON_VERSION="3.12" setup_uv
|
||||||
$STD "$PVE_VENV_PATH/bin/python" -m pip install --upgrade prometheus-pve-exporter
|
$STD uv pip install --python "$PVE_VENV_PATH/bin/python" --upgrade prometheus-pve-exporter
|
||||||
msg_ok "Updated Prometheus Proxmox VE Exporter"
|
msg_ok "Updated Prometheus Proxmox VE Exporter"
|
||||||
fi
|
fi
|
||||||
local service_file="/etc/systemd/system/prometheus-pve-exporter.service"
|
local service_file="/etc/systemd/system/prometheus-pve-exporter.service"
|
||||||
|
|||||||
+13
-12
@@ -54,22 +54,19 @@ EOF
|
|||||||
msg_ok "Migrated PHP $CURRENT_PHP to 8.4"
|
msg_ok "Migrated PHP $CURRENT_PHP to 8.4"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -f /opt/${APP}_version.txt ]]; then
|
RELEASE=$(curl -fsSL https://api.github.com/repos/pterodactyl/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
mv /opt/"${APP}_version.txt" ~/.pterodactyl-panel
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
fi
|
|
||||||
|
|
||||||
if check_for_gh_release "pterodactyl-panel" "pterodactyl/panel"; then
|
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
cd /opt/pterodactyl-panel
|
cd /opt/pterodactyl-panel
|
||||||
$STD php artisan down
|
$STD php artisan down
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
create_backup /opt/pterodactyl-panel/.env
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "pterodactyl-panel" "pterodactyl/panel" "prebuild" "latest" "/opt/pterodactyl-panel" "panel.tar.gz"
|
cp -r /opt/pterodactyl-panel/.env /opt/
|
||||||
restore_backup
|
rm -rf * .*
|
||||||
|
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")
|
||||||
msg_info "Updating ${APP}"
|
tar -xzf "panel.tar.gz"
|
||||||
cd /opt/pterodactyl-panel
|
mv /opt/.env /opt/pterodactyl-panel/
|
||||||
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
||||||
$STD php artisan view:clear
|
$STD php artisan view:clear
|
||||||
$STD php artisan config:clear
|
$STD php artisan config:clear
|
||||||
@@ -77,13 +74,17 @@ EOF
|
|||||||
chown -R www-data:www-data /opt/pterodactyl-panel/*
|
chown -R www-data:www-data /opt/pterodactyl-panel/*
|
||||||
chmod -R 755 /opt/pterodactyl-panel/storage /opt/pterodactyl-panel/bootstrap/cache/
|
chmod -R 755 /opt/pterodactyl-panel/storage /opt/pterodactyl-panel/bootstrap/cache/
|
||||||
ln -s /opt/pterodactyl-panel /var/www/pterodactyl
|
ln -s /opt/pterodactyl-panel /var/www/pterodactyl
|
||||||
msg_ok "Updated ${APP}"
|
rm -rf "/opt/pterodactyl-panel/panel.tar.gz"
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
$STD php artisan queue:restart
|
$STD php artisan queue:restart
|
||||||
$STD php artisan up
|
$STD php artisan up
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-5
@@ -56,12 +56,17 @@ update_alpine() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
if [[ -f /opt/rclone_version.txt ]]; then
|
RELEASE=$(curl -s https://api.github.com/repos/rclone/rclone/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
mv /opt/rclone_version.txt ~/.rclone
|
if [ "${RELEASE}" != "$(cat /opt/rclone_version.txt)" ] || [ ! -f /opt/rclone_version.txt ]; then
|
||||||
fi
|
msg_info "Updating ${APP} LXC"
|
||||||
if check_for_gh_release "rclone" "rclone/rclone"; then
|
temp_file=$(mktemp)
|
||||||
fetch_and_deploy_gh_release "rclone" "rclone/rclone" "prebuild" "latest" "/opt/rclone" "rclone*linux-$(arch_resolve).zip"
|
curl -fsSL "https://github.com/rclone/rclone/releases/download/v${RELEASE}/rclone-v${RELEASE}-linux-$(arch_resolve).zip" -o "$temp_file"
|
||||||
|
$STD unzip -o "$temp_file" '*/**' -d /opt/rclone
|
||||||
|
rm -f "$temp_file"
|
||||||
|
echo "${RELEASE}" >/opt/rclone_version.txt
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+27
-16
@@ -66,30 +66,41 @@ update_alpine() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "rustdesk-server" "lejianwen/rustdesk-server"; then
|
APIRELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
msg_info "Stopping RustDesk Server"
|
RELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
if [ "${RELEASE}" != "$(cat ~/.rustdesk-server 2>/dev/null)" ] || [ ! -f ~/.rustdesk-server ]; then
|
||||||
|
msg_info "Updating RustDesk Server to v${RELEASE}"
|
||||||
$STD apk -U upgrade
|
$STD apk -U upgrade
|
||||||
$STD service rustdesk-server-hbbs stop
|
$STD service rustdesk-server-hbbs stop
|
||||||
$STD service rustdesk-server-hbbr stop
|
$STD service rustdesk-server-hbbr stop
|
||||||
msg_ok "Stopped RustDesk Server"
|
temp_file1=$(mktemp)
|
||||||
|
ARCH=$(arch_resolve "amd64" "arm64v8")
|
||||||
fetch_and_deploy_gh_release "rustdesk-server" "lejianwen/rustdesk-server" "prebuild" "latest" "/opt/rustdesk-server" "rustdesk-server-linux-$(arch_resolve "amd64" "arm64v8").zip"
|
curl -fsSL "https://github.com/lejianwen/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-linux-${ARCH}.zip" -o "$temp_file1"
|
||||||
|
$STD unzip "$temp_file1"
|
||||||
msg_info "Starting RustDesk Server"
|
cp -r "$ARCH"/* /opt/rustdesk-server/
|
||||||
|
echo "${RELEASE}" >~/.rustdesk-server
|
||||||
$STD service rustdesk-server-hbbs start
|
$STD service rustdesk-server-hbbs start
|
||||||
$STD service rustdesk-server-hbbr start
|
$STD service rustdesk-server-hbbr start
|
||||||
msg_ok "Started RustDesk Server"
|
rm -rf "$ARCH"
|
||||||
|
rm -f "$temp_file1"
|
||||||
|
msg_ok "Updated RustDesk Server"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
fi
|
fi
|
||||||
if check_for_gh_release "rustdesk-api" "lejianwen/rustdesk-api"; then
|
if [ "${APIRELEASE}" != "$(cat ~/.rustdesk-api)" ] || [ ! -f ~/.rustdesk-api ]; then
|
||||||
msg_info "Stopping RustDesk API"
|
msg_info "Updating RustDesk API to v${APIRELEASE}"
|
||||||
$STD service rustdesk-api stop
|
$STD service rustdesk-api stop
|
||||||
msg_ok "Stopped RustDesk API"
|
temp_file2=$(mktemp)
|
||||||
|
curl -fsSL "https://github.com/lejianwen/rustdesk-api/releases/download/v${APIRELEASE}/linux-$(arch_resolve).tar.gz" -o "$temp_file2"
|
||||||
fetch_and_deploy_gh_release "rustdesk-api" "lejianwen/rustdesk-api" "prebuild" "latest" "/opt/rustdesk-api" "linux-$(arch_resolve).tar.gz"
|
$STD tar zxvf "$temp_file2"
|
||||||
|
cp -r release/* /opt/rustdesk-api
|
||||||
msg_info "Starting RustDesk API"
|
echo "${APIRELEASE}" >~/.rustdesk-api
|
||||||
$STD service rustdesk-api start
|
$STD service rustdesk-api start
|
||||||
msg_ok "Started RustDesk API"
|
rm -rf release
|
||||||
|
rm -f "$temp_file2"
|
||||||
|
msg_ok "Updated RustDesk API"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. RustDesk API is already at v${APIRELEASE}"
|
||||||
fi
|
fi
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-2
@@ -42,8 +42,7 @@ function update_script() {
|
|||||||
cd /opt/scraparr
|
cd /opt/scraparr
|
||||||
$STD uv venv --clear /opt/scraparr/.venv
|
$STD uv venv --clear /opt/scraparr/.venv
|
||||||
$STD /opt/scraparr/.venv/bin/python -m ensurepip --upgrade
|
$STD /opt/scraparr/.venv/bin/python -m ensurepip --upgrade
|
||||||
$STD /opt/scraparr/.venv/bin/python -m pip install --upgrade pip
|
$STD uv pip install --python /opt/scraparr/.venv/bin/python -r /opt/scraparr/src/scraparr/requirements.txt
|
||||||
$STD /opt/scraparr/.venv/bin/python -m pip install -r /opt/scraparr/src/scraparr/requirements.txt
|
|
||||||
chmod -R 755 /opt/scraparr
|
chmod -R 755 /opt/scraparr
|
||||||
msg_ok "Updated Scraparr"
|
msg_ok "Updated Scraparr"
|
||||||
|
|
||||||
|
|||||||
+12
-7
@@ -29,29 +29,34 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
if [[ -f /opt/${APP}_version.txt ]]; then
|
RELEASE=$(curl -fsSL https://api.github.com/repos/benzino77/tasmocompiler/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
mv /opt/"${APP}_version.txt" ~/.tasmocompiler
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
fi
|
|
||||||
|
|
||||||
if check_for_gh_release "tasmocompiler" "benzino77/tasmocompiler"; then
|
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop tasmocompiler
|
systemctl stop tasmocompiler
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "tasmocompiler" "benzino77/tasmocompiler" "tarball"
|
|
||||||
|
|
||||||
msg_info "Updating TasmoCompiler"
|
msg_info "Updating TasmoCompiler"
|
||||||
|
cd /opt
|
||||||
|
rm -rf /opt/tasmocompiler
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/benzino77/tasmocompiler/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
curl -fsSL "https://github.com/benzino77/tasmocompiler/archive/refs/tags/v${RELEASE}.tar.gz" -o $(basename "https://github.com/benzino77/tasmocompiler/archive/refs/tags/v${RELEASE}.tar.gz")
|
||||||
|
tar xzf v${RELEASE}.tar.gz
|
||||||
|
mv tasmocompiler-${RELEASE}/ /opt/tasmocompiler/
|
||||||
cd /opt/tasmocompiler
|
cd /opt/tasmocompiler
|
||||||
$STD yarn install
|
$STD yarn install
|
||||||
export NODE_OPTIONS=--openssl-legacy-provider
|
export NODE_OPTIONS=--openssl-legacy-provider
|
||||||
$STD npm i
|
$STD npm i
|
||||||
$STD yarn build
|
$STD yarn build
|
||||||
|
rm -r "/opt/v${RELEASE}.tar.gz"
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated TasmoCompiler"
|
msg_ok "Updated TasmoCompiler"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start tasmocompiler
|
systemctl start tasmocompiler
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-2
@@ -62,7 +62,8 @@ update_alpine() {
|
|||||||
$STD apk -U upgrade
|
$STD apk -U upgrade
|
||||||
msg_ok "Updated packages"
|
msg_ok "Updated packages"
|
||||||
|
|
||||||
if check_for_gh_release "tinyauth" "tinyauthapp/tinyauth"; then
|
RELEASE=$(curl -s https://api.github.com/repos/tinyauthapp/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
if [ "${RELEASE}" != "$(cat ~/.tinyauth 2>/dev/null)" ] || [ ! -f ~/.tinyauth ]; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
$STD service tinyauth stop
|
$STD service tinyauth stop
|
||||||
msg_ok "Service Stopped"
|
msg_ok "Service Stopped"
|
||||||
@@ -81,12 +82,19 @@ update_alpine() {
|
|||||||
msg_ok "Migrated .env to v5 format"
|
msg_ok "Migrated .env to v5 format"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "tinyauth" "tinyauthapp/tinyauth" "singlefile" "latest" "/opt/tinyauth" "tinyauth-$(arch_resolve)"
|
msg_info "Updating Tinyauth"
|
||||||
|
rm -f /opt/tinyauth/tinyauth
|
||||||
|
curl -fsSL "https://github.com/tinyauthapp/tinyauth/releases/download/v${RELEASE}/tinyauth-$(arch_resolve)" -o /opt/tinyauth/tinyauth
|
||||||
|
chmod +x /opt/tinyauth/tinyauth
|
||||||
|
echo "${RELEASE}" >~/.tinyauth
|
||||||
|
msg_ok "Updated Tinyauth"
|
||||||
|
|
||||||
msg_info "Restarting Tinyauth"
|
msg_info "Restarting Tinyauth"
|
||||||
$STD service tinyauth start
|
$STD service tinyauth start
|
||||||
msg_ok "Restarted Tinyauth"
|
msg_ok "Restarted Tinyauth"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+17
-7
@@ -30,11 +30,11 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
ensure_dependencies zstd
|
ensure_dependencies zstd
|
||||||
if [[ -f /opt/${APP}_version.txt ]]; then
|
RELEASE=$(curl -fsSL https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
mv /opt/"${APP}_version.txt" ~/.wastebin
|
# Dirty-Fix 03/2025 for missing APP_version.txt on old installations, set to pre-latest release
|
||||||
fi
|
|
||||||
msg_info "Running Migration"
|
msg_info "Running Migration"
|
||||||
if [[ ! -f /opt/wastebin-data/.env ]]; then
|
if [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||||
|
echo "2.7.1" >/opt/${APP}_version.txt
|
||||||
mkdir -p /opt/wastebin-data
|
mkdir -p /opt/wastebin-data
|
||||||
cat <<EOF >/opt/wastebin-data/.env
|
cat <<EOF >/opt/wastebin-data/.env
|
||||||
WASTEBIN_DATABASE_PATH=/opt/wastebin-data/wastebin.db
|
WASTEBIN_DATABASE_PATH=/opt/wastebin-data/wastebin.db
|
||||||
@@ -60,18 +60,28 @@ EOF
|
|||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
fi
|
fi
|
||||||
msg_ok "Migration Done"
|
msg_ok "Migration Done"
|
||||||
if check_for_gh_release "wastebin" "matze/wastebin"; then
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
msg_info "Stopping Wastebin"
|
msg_info "Stopping Wastebin"
|
||||||
systemctl stop wastebin
|
systemctl stop wastebin
|
||||||
msg_ok "Wastebin Stopped"
|
msg_ok "Wastebin Stopped"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "wastebin" "matze/wastebin" "prebuild" "latest" "/opt/wastebin" "wastebin_*_$(arch_resolve "x86_64" "aarch64")-unknown-linux-musl.tar.zst"
|
msg_info "Updating Wastebin"
|
||||||
chmod +x /opt/wastebin/wastebin /opt/wastebin/wastebin-ctl
|
temp_file=$(mktemp)
|
||||||
|
curl -fsSL "https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_$(arch_resolve "x86_64" "aarch64")-unknown-linux-musl.tar.zst" -o "$temp_file"
|
||||||
|
tar -xf "$temp_file"
|
||||||
|
cp -f wastebin* /opt/wastebin/
|
||||||
|
chmod +x /opt/wastebin/wastebin
|
||||||
|
chmod +x /opt/wastebin/wastebin-ctl
|
||||||
|
rm -f "$temp_file"
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
msg_ok "Updated Wastebin"
|
||||||
|
|
||||||
msg_info "Starting Wastebin"
|
msg_info "Starting Wastebin"
|
||||||
systemctl start wastebin
|
systemctl start wastebin
|
||||||
msg_ok "Started Wastebin"
|
msg_ok "Started Wastebin"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,9 +60,8 @@ cd /opt/adventurelog/backend/server
|
|||||||
mkdir -p /opt/adventurelog/backend/server/media
|
mkdir -p /opt/adventurelog/backend/server/media
|
||||||
$STD uv venv --clear /opt/adventurelog/backend/server/.venv
|
$STD uv venv --clear /opt/adventurelog/backend/server/.venv
|
||||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m ensurepip --upgrade
|
$STD /opt/adventurelog/backend/server/.venv/bin/python -m ensurepip --upgrade
|
||||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install --upgrade pip
|
$STD uv pip install --python /opt/adventurelog/backend/server/.venv/bin/python -r requirements.txt
|
||||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install -r requirements.txt
|
$STD uv pip install --python /opt/adventurelog/backend/server/.venv/bin/python 'djangorestframework<3.15'
|
||||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install 'djangorestframework<3.15'
|
|
||||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage collectstatic --noinput
|
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage collectstatic --noinput
|
||||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage migrate
|
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage migrate
|
||||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage download-countries
|
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage download-countries
|
||||||
|
|||||||
@@ -19,9 +19,12 @@ $STD apk add --no-cache \
|
|||||||
python3
|
python3
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "it-tools" "sharevb/it-tools" "prebuild" "latest" "/usr/share/nginx/html" "it-tools-*.zip"
|
msg_info "Installing IT-Tools"
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/sharevb/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4)
|
||||||
msg_info "Configuring IT-Tools"
|
curl -fsSL "https://github.com/sharevb/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip" -o it-tools.zip
|
||||||
|
mkdir -p /usr/share/nginx/html
|
||||||
|
$STD unzip it-tools.zip -d /tmp/
|
||||||
|
mv /tmp/dist/* /usr/share/nginx/html
|
||||||
cat <<'EOF' >/etc/nginx/http.d/default.conf
|
cat <<'EOF' >/etc/nginx/http.d/default.conf
|
||||||
server {
|
server {
|
||||||
listen 80;
|
listen 80;
|
||||||
@@ -36,7 +39,8 @@ server {
|
|||||||
EOF
|
EOF
|
||||||
$STD rc-update add nginx default
|
$STD rc-update add nginx default
|
||||||
$STD rc-service nginx start
|
$STD rc-service nginx start
|
||||||
msg_ok "Configured IT-Tools"
|
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
|
||||||
|
msg_ok "Installed IT-Tools"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
|
|||||||
@@ -90,14 +90,20 @@ setup_alpine() {
|
|||||||
$STD rc-service postgresql start
|
$STD rc-service postgresql start
|
||||||
msg_ok "Installed PostreSQL"
|
msg_ok "Installed PostreSQL"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet" "tarball"
|
RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
|
||||||
msg_info "Building bitmagnet"
|
msg_info "Installing bitmagnet v${RELEASE}"
|
||||||
|
mkdir -p /opt/bitmagnet
|
||||||
|
temp_file=$(mktemp)
|
||||||
|
curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
||||||
|
tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet
|
||||||
cd /opt/bitmagnet
|
cd /opt/bitmagnet
|
||||||
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=v$(cat ~/.bitmagnet)"
|
VREL=v$RELEASE
|
||||||
|
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
|
||||||
chmod +x bitmagnet
|
chmod +x bitmagnet
|
||||||
$STD su - postgres -c "psql -c 'CREATE DATABASE bitmagnet;'"
|
$STD su - postgres -c "psql -c 'CREATE DATABASE bitmagnet;'"
|
||||||
msg_ok "Built bitmagnet"
|
echo "${RELEASE}" >/opt/bitmagnet_version.txt
|
||||||
|
msg_ok "Installed bitmagnet v${RELEASE}"
|
||||||
|
|
||||||
read -rp "${TAB3}Enter your TMDB API key if you have one: " tmdbapikey
|
read -rp "${TAB3}Enter your TMDB API key if you have one: " tmdbapikey
|
||||||
|
|
||||||
@@ -127,6 +133,8 @@ EOF
|
|||||||
msg_info "Starting bitmagnet"
|
msg_info "Starting bitmagnet"
|
||||||
$STD service bitmagnet start
|
$STD service bitmagnet start
|
||||||
msg_ok "Started bitmagnet"
|
msg_ok "Started bitmagnet"
|
||||||
|
|
||||||
|
rm -f "$temp_file"
|
||||||
}
|
}
|
||||||
|
|
||||||
run_os_setup
|
run_os_setup
|
||||||
|
|||||||
@@ -78,10 +78,12 @@ EOF
|
|||||||
read -r -p "${TAB3}Would you like to install xCaddy Addon? <y/N> " prompt
|
read -r -p "${TAB3}Would you like to install xCaddy Addon? <y/N> " prompt
|
||||||
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||||
GO_VERSION="$(curl -fsSL https://go.dev/VERSION?m=text | head -1 | cut -c3-)" setup_go
|
GO_VERSION="$(curl -fsSL https://go.dev/VERSION?m=text | head -1 | cut -c3-)" setup_go
|
||||||
fetch_and_deploy_gh_release "xcaddy" "caddyserver/xcaddy" "prebuild" "latest" "/opt/xcaddy" "xcaddy_*_linux_$(arch_resolve).tar.gz"
|
|
||||||
ln -sf /opt/xcaddy/xcaddy /usr/local/bin/xcaddy
|
|
||||||
msg_info "Setup xCaddy"
|
msg_info "Setup xCaddy"
|
||||||
cd /opt
|
cd /opt
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/caddyserver/xcaddy/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
curl -fsSL "https://github.com/caddyserver/xcaddy/releases/download/${RELEASE}/xcaddy_${RELEASE:1}_linux_amd64.tar.gz" -o "xcaddy_${RELEASE:1}_linux_amd64.tar.gz"
|
||||||
|
$STD tar xzf xcaddy_"${RELEASE:1}"_linux_amd64.tar.gz -C /usr/local/bin xcaddy
|
||||||
|
rm -rf /opt/xcaddy*
|
||||||
$STD xcaddy build
|
$STD xcaddy build
|
||||||
msg_ok "Setup xCaddy"
|
msg_ok "Setup xCaddy"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -60,8 +60,7 @@ msg_info "Installing Change Detection"
|
|||||||
mkdir -p /opt/changedetection
|
mkdir -p /opt/changedetection
|
||||||
$STD uv venv --clear /opt/changedetection/.venv
|
$STD uv venv --clear /opt/changedetection/.venv
|
||||||
$STD /opt/changedetection/.venv/bin/python -m ensurepip --upgrade
|
$STD /opt/changedetection/.venv/bin/python -m ensurepip --upgrade
|
||||||
$STD /opt/changedetection/.venv/bin/python -m pip install --upgrade pip
|
$STD uv pip install --python /opt/changedetection/.venv/bin/python changedetection.io
|
||||||
$STD /opt/changedetection/.venv/bin/python -m pip install changedetection.io
|
|
||||||
cat <<EOF >/opt/changedetection/.env
|
cat <<EOF >/opt/changedetection/.env
|
||||||
WEBDRIVER_URL=http://127.0.0.1:4444/wd/hub
|
WEBDRIVER_URL=http://127.0.0.1:4444/wd/hub
|
||||||
PLAYWRIGHT_DRIVER_URL=ws://localhost:3000/chrome?launch=eyJkZWZhdWx0Vmlld3BvcnQiOnsiaGVpZ2h0Ijo3MjAsIndpZHRoIjoxMjgwfSwiaGVhZGxlc3MiOmZhbHNlLCJzdGVhbHRoIjp0cnVlfQ==&blockAds=true
|
PLAYWRIGHT_DRIVER_URL=ws://localhost:3000/chrome?launch=eyJkZWZhdWx0Vmlld3BvcnQiOnsiaGVpZ2h0Ijo3MjAsIndpZHRoIjoxMjgwfSwiaGVhZGxlc3MiOmZhbHNlLCJzdGVhbHRoIjp0cnVlfQ==&blockAds=true
|
||||||
@@ -71,7 +70,7 @@ msg_ok "Installed Change Detection"
|
|||||||
|
|
||||||
msg_info "Installing Browserless & Playwright"
|
msg_info "Installing Browserless & Playwright"
|
||||||
mkdir /opt/browserless
|
mkdir /opt/browserless
|
||||||
$STD /opt/changedetection/.venv/bin/python -m pip install playwright
|
$STD uv pip install --python /opt/changedetection/.venv/bin/python playwright
|
||||||
$STD git clone https://github.com/browserless/chrome /opt/browserless
|
$STD git clone https://github.com/browserless/chrome /opt/browserless
|
||||||
$STD npm ci --include=optional --include=dev --prefix /opt/browserless
|
$STD npm ci --include=optional --include=dev --prefix /opt/browserless
|
||||||
$STD npm install --save-exact playwright-core@1.62.1 --prefix /opt/browserless
|
$STD npm install --save-exact playwright-core@1.62.1 --prefix /opt/browserless
|
||||||
|
|||||||
@@ -65,7 +65,10 @@ setup_alpine() {
|
|||||||
$STD rc-update add docker default
|
$STD rc-update add docker default
|
||||||
msg_ok "Installed Docker"
|
msg_ok "Installed Docker"
|
||||||
|
|
||||||
DOCKER_COMPOSE_LATEST_VERSION=$(get_latest_github_release "docker/compose" false)
|
get_latest_release() {
|
||||||
|
curl -fsSL https://api.github.com/repos/"$1"/releases/latest | grep '"tag_name":' | cut -d'"' -f4
|
||||||
|
}
|
||||||
|
DOCKER_COMPOSE_LATEST_VERSION=$(get_latest_release "docker/compose")
|
||||||
read -r -p "${TAB3}Would you like to add Docker Compose? <y/N> " prompt
|
read -r -p "${TAB3}Would you like to add Docker Compose? <y/N> " prompt
|
||||||
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||||
msg_info "Installing Docker Compose $DOCKER_COMPOSE_LATEST_VERSION"
|
msg_info "Installing Docker Compose $DOCKER_COMPOSE_LATEST_VERSION"
|
||||||
|
|||||||
@@ -51,7 +51,12 @@ EOF
|
|||||||
$STD systemctl restart mariadb
|
$STD systemctl restart mariadb
|
||||||
msg_ok "Configured MariaDB for ERPNext"
|
msg_ok "Configured MariaDB for ERPNext"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "wkhtmltopdf" "wkhtmltopdf/packaging" "binary" "latest" "" "wkhtmltox_*.bookworm_$(arch_resolve).deb"
|
msg_info "Installing wkhtmltopdf"
|
||||||
|
WKHTMLTOPDF_URL="https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_$(arch_resolve).deb"
|
||||||
|
$STD curl -fsSL -o /tmp/wkhtmltox.deb "$WKHTMLTOPDF_URL"
|
||||||
|
$STD apt install -y /tmp/wkhtmltox.deb
|
||||||
|
rm -f /tmp/wkhtmltox.deb
|
||||||
|
msg_ok "Installed wkhtmltopdf"
|
||||||
|
|
||||||
msg_info "Installing Frappe Bench"
|
msg_info "Installing Frappe Bench"
|
||||||
useradd -m -s /bin/bash frappe
|
useradd -m -s /bin/bash frappe
|
||||||
|
|||||||
@@ -26,8 +26,7 @@ mkdir -p /root/config
|
|||||||
cd /opt/esphome
|
cd /opt/esphome
|
||||||
$STD uv venv --clear /opt/esphome/.venv
|
$STD uv venv --clear /opt/esphome/.venv
|
||||||
$STD /opt/esphome/.venv/bin/python -m ensurepip --upgrade
|
$STD /opt/esphome/.venv/bin/python -m ensurepip --upgrade
|
||||||
$STD /opt/esphome/.venv/bin/python -m pip install --upgrade pip
|
$STD uv pip install --python /opt/esphome/.venv/bin/python esphome esphome-device-builder esptool
|
||||||
$STD /opt/esphome/.venv/bin/python -m pip install esphome esphome-device-builder esptool
|
|
||||||
msg_ok "Setup and Installed ESPHome Device Builder"
|
msg_ok "Setup and Installed ESPHome Device Builder"
|
||||||
|
|
||||||
msg_info "Linking esphome to /usr/local/bin"
|
msg_info "Linking esphome to /usr/local/bin"
|
||||||
|
|||||||
@@ -98,7 +98,6 @@ mkdir -p /opt/fireshare-{data,videos,images,processed}
|
|||||||
cd /opt/fireshare
|
cd /opt/fireshare
|
||||||
$STD uv venv
|
$STD uv venv
|
||||||
$STD .venv/bin/python -m ensurepip --upgrade
|
$STD .venv/bin/python -m ensurepip --upgrade
|
||||||
$STD .venv/bin/python -m pip install --upgrade --break-system-packages pip
|
|
||||||
ln -sf /usr/local/bin/ffmpeg /usr/bin/ffmpeg
|
ln -sf /usr/local/bin/ffmpeg /usr/bin/ffmpeg
|
||||||
ln -sf /usr/local/bin/ffprobe /usr/bin/ffprobe
|
ln -sf /usr/local/bin/ffprobe /usr/bin/ffprobe
|
||||||
echo "/usr/local/lib" >/etc/ld.so.conf.d/usr-local.conf
|
echo "/usr/local/lib" >/etc/ld.so.conf.d/usr-local.conf
|
||||||
@@ -106,7 +105,7 @@ echo "/usr/local/cuda/lib64" >>/etc/ld.so.conf.d/usr-local.conf
|
|||||||
echo "/usr/local/nvidia/lib" >>/etc/ld.so.conf.d/nvidia.conf
|
echo "/usr/local/nvidia/lib" >>/etc/ld.so.conf.d/nvidia.conf
|
||||||
echo "/usr/local/nvidia/lib64" >>/etc/ld.so.conf.d/nvidia.conf
|
echo "/usr/local/nvidia/lib64" >>/etc/ld.so.conf.d/nvidia.conf
|
||||||
ldconfig
|
ldconfig
|
||||||
$STD .venv/bin/python -m pip install --no-cache-dir --break-system-packages --ignore-installed app/server
|
$STD uv pip install --python .venv/bin/python --no-cache --reinstall app/server
|
||||||
cp .venv/bin/fireshare /usr/local/bin/fireshare
|
cp .venv/bin/fireshare /usr/local/bin/fireshare
|
||||||
export FLASK_APP="/opt/fireshare/app/server/fireshare:create_app()"
|
export FLASK_APP="/opt/fireshare/app/server/fireshare:create_app()"
|
||||||
export DATA_DIRECTORY=/opt/fireshare-data
|
export DATA_DIRECTORY=/opt/fireshare-data
|
||||||
|
|||||||
@@ -41,7 +41,14 @@ Password: $DB_PASS
|
|||||||
EOF
|
EOF
|
||||||
msg_ok "Set up database"
|
msg_ok "Set up database"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "glpi" "glpi-project/glpi" "prebuild" "latest" "/opt/glpi" "glpi-*.tgz"
|
msg_info "Installing GLPi"
|
||||||
|
cd /opt
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/glpi-project/glpi/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
|
||||||
|
curl -fsSL "https://github.com/glpi-project/glpi/releases/download/${RELEASE}/glpi-${RELEASE}.tgz" -o $(basename "https://github.com/glpi-project/glpi/releases/download/${RELEASE}/glpi-${RELEASE}.tgz")
|
||||||
|
$STD tar -xzvf glpi-${RELEASE}.tgz
|
||||||
|
cd /opt/glpi
|
||||||
|
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||||
|
msg_ok "Installed GLPi"
|
||||||
|
|
||||||
msg_info "Setting Downstream file"
|
msg_info "Setting Downstream file"
|
||||||
cat <<EOF >/opt/glpi/inc/downstream.php
|
cat <<EOF >/opt/glpi/inc/downstream.php
|
||||||
@@ -126,6 +133,7 @@ $STD a2dissite 000-default.conf
|
|||||||
$STD a2enmod rewrite
|
$STD a2enmod rewrite
|
||||||
$STD a2ensite glpi.conf
|
$STD a2ensite glpi.conf
|
||||||
rm -rf /opt/glpi/install/install.php
|
rm -rf /opt/glpi/install/install.php
|
||||||
|
rm -rf /opt/glpi-${RELEASE}.tgz
|
||||||
msg_ok "Setup Service"
|
msg_ok "Setup Service"
|
||||||
|
|
||||||
msg_info "Setup Cronjob"
|
msg_info "Setup Cronjob"
|
||||||
|
|||||||
@@ -26,7 +26,11 @@ msg_info "Installing runlike"
|
|||||||
$STD pip install runlike
|
$STD pip install runlike
|
||||||
msg_ok "Installed runlike"
|
msg_ok "Installed runlike"
|
||||||
|
|
||||||
CORE_LATEST_VERSION=$(get_latest_github_release "home-assistant/core")
|
get_latest_release() {
|
||||||
|
curl -fsSL https://api.github.com/repos/$1/releases/latest | grep '"tag_name":' | cut -d'"' -f4
|
||||||
|
}
|
||||||
|
|
||||||
|
CORE_LATEST_VERSION=$(get_latest_release "home-assistant/core")
|
||||||
|
|
||||||
setup_docker
|
setup_docker
|
||||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/portainer.sh)" <<<"y"
|
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/portainer.sh)" <<<"y"
|
||||||
|
|||||||
@@ -20,8 +20,7 @@ mkdir -p /opt/jupyter
|
|||||||
cd /opt/jupyter
|
cd /opt/jupyter
|
||||||
$STD uv venv --clear /opt/jupyter/.venv
|
$STD uv venv --clear /opt/jupyter/.venv
|
||||||
$STD /opt/jupyter/.venv/bin/python -m ensurepip --upgrade
|
$STD /opt/jupyter/.venv/bin/python -m ensurepip --upgrade
|
||||||
$STD /opt/jupyter/.venv/bin/python -m pip install --upgrade pip
|
$STD uv pip install --python /opt/jupyter/.venv/bin/python jupyter
|
||||||
$STD /opt/jupyter/.venv/bin/python -m pip install jupyter
|
|
||||||
ln -s /opt/jupyter/.venv/bin/jupyter /usr/local/bin/jupyter
|
ln -s /opt/jupyter/.venv/bin/jupyter /usr/local/bin/jupyter
|
||||||
ln -s /opt/jupyter/.venv/bin/jupyter-lab /usr/local/bin/jupyter-lab
|
ln -s /opt/jupyter/.venv/bin/jupyter-lab /usr/local/bin/jupyter-lab
|
||||||
ln -s /opt/jupyter/.venv/bin/jupyter-notebook /usr/local/bin/jupyter-notebook
|
ln -s /opt/jupyter/.venv/bin/jupyter-notebook /usr/local/bin/jupyter-notebook
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ setup_alpine() {
|
|||||||
sed -i 's|# *include "mod_fastcgi.conf"|include "mod_fastcgi.conf"|' /etc/lighttpd/lighttpd.conf
|
sed -i 's|# *include "mod_fastcgi.conf"|include "mod_fastcgi.conf"|' /etc/lighttpd/lighttpd.conf
|
||||||
sed -i 's|/usr/bin/php-cgi|/usr/bin/php-cgi83|g' /etc/lighttpd/mod_fastcgi.conf
|
sed -i 's|/usr/bin/php-cgi|/usr/bin/php-cgi83|g' /etc/lighttpd/mod_fastcgi.conf
|
||||||
mkdir -p /var/www/localhost/htdocs
|
mkdir -p /var/www/localhost/htdocs
|
||||||
ADMINER_VERSION=$(get_latest_github_release "vrana/adminer")
|
ADMINER_VERSION=$(curl -fsSL https://api.github.com/repos/vrana/adminer/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||||
curl -fsSL "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php" -o /var/www/localhost/htdocs/adminer.php
|
curl -fsSL "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php" -o /var/www/localhost/htdocs/adminer.php
|
||||||
chown lighttpd:lighttpd /var/www/localhost/htdocs/adminer.php
|
chown lighttpd:lighttpd /var/www/localhost/htdocs/adminer.php
|
||||||
chmod 755 /var/www/localhost/htdocs/adminer.php
|
chmod 755 /var/www/localhost/htdocs/adminer.php
|
||||||
|
|||||||
@@ -32,8 +32,7 @@ msg_info "Installing Mylar3"
|
|||||||
mkdir -p /opt/mylar3-data
|
mkdir -p /opt/mylar3-data
|
||||||
$STD uv venv --clear /opt/mylar3/.venv
|
$STD uv venv --clear /opt/mylar3/.venv
|
||||||
$STD /opt/mylar3/.venv/bin/python -m ensurepip --upgrade
|
$STD /opt/mylar3/.venv/bin/python -m ensurepip --upgrade
|
||||||
$STD /opt/mylar3/.venv/bin/python -m pip install --upgrade pip
|
$STD uv pip install --python /opt/mylar3/.venv/bin/python --no-cache -r /opt/mylar3/requirements.txt
|
||||||
$STD /opt/mylar3/.venv/bin/python -m pip install --no-cache-dir -r /opt/mylar3/requirements.txt
|
|
||||||
msg_ok "Installed Mylar3"
|
msg_ok "Installed Mylar3"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
|
|||||||
@@ -25,7 +25,10 @@ $STD apk add docker
|
|||||||
$STD rc-service docker start
|
$STD rc-service docker start
|
||||||
$STD rc-update add docker default
|
$STD rc-update add docker default
|
||||||
|
|
||||||
DOCKER_COMPOSE_LATEST_VERSION=$(get_latest_github_release "docker/compose" false)
|
get_latest_release() {
|
||||||
|
curl -fsSL https://api.github.com/repos/$1/releases/latest | grep '"tag_name":' | cut -d'"' -f4
|
||||||
|
}
|
||||||
|
DOCKER_COMPOSE_LATEST_VERSION=$(get_latest_release "docker/compose")
|
||||||
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
|
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
|
||||||
mkdir -p $DOCKER_CONFIG/cli-plugins
|
mkdir -p $DOCKER_CONFIG/cli-plugins
|
||||||
curl -fsSL https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_LATEST_VERSION/docker-compose-linux-$(arch_resolve "x86_64" "aarch64") -o ~/.docker/cli-plugins/docker-compose
|
curl -fsSL https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_LATEST_VERSION/docker-compose-linux-$(arch_resolve "x86_64" "aarch64") -o ~/.docker/cli-plugins/docker-compose
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ msg_ok "Installed Dependencies"
|
|||||||
JAVA_VERSION="21" setup_java
|
JAVA_VERSION="21" setup_java
|
||||||
|
|
||||||
msg_info "Installing OneDev"
|
msg_info "Installing OneDev"
|
||||||
RELEASE=$(get_latest_github_release "theonedev/onedev" false)
|
RELEASE=$(curl -fsSL https://api.github.com/repos/theonedev/onedev/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
||||||
cd /opt
|
cd /opt
|
||||||
curl -fsSL "https://code.onedev.io/onedev/server/~site/onedev-latest.tar.gz" -o onedev-latest.tar.gz
|
curl -fsSL "https://code.onedev.io/onedev/server/~site/onedev-latest.tar.gz" -o onedev-latest.tar.gz
|
||||||
tar -xzf onedev-latest.tar.gz
|
tar -xzf onedev-latest.tar.gz
|
||||||
|
|||||||
@@ -180,7 +180,7 @@ setup_alpine() {
|
|||||||
sed -i 's|# *include "mod_fastcgi.conf"|include "mod_fastcgi.conf"|' /etc/lighttpd/lighttpd.conf
|
sed -i 's|# *include "mod_fastcgi.conf"|include "mod_fastcgi.conf"|' /etc/lighttpd/lighttpd.conf
|
||||||
sed -i 's|/usr/bin/php-cgi|/usr/bin/php-cgi83|g' /etc/lighttpd/mod_fastcgi.conf
|
sed -i 's|/usr/bin/php-cgi|/usr/bin/php-cgi83|g' /etc/lighttpd/mod_fastcgi.conf
|
||||||
mkdir -p /var/www/localhost/htdocs
|
mkdir -p /var/www/localhost/htdocs
|
||||||
ADMINER_VERSION=$(get_latest_github_release "vrana/adminer")
|
ADMINER_VERSION=$(curl -fsSL https://api.github.com/repos/vrana/adminer/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||||
curl -fsSL "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php" -o /var/www/localhost/htdocs/adminer.php
|
curl -fsSL "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php" -o /var/www/localhost/htdocs/adminer.php
|
||||||
chown lighttpd:lighttpd /var/www/localhost/htdocs/adminer.php
|
chown lighttpd:lighttpd /var/www/localhost/htdocs/adminer.php
|
||||||
chmod 755 /var/www/localhost/htdocs/adminer.php
|
chmod 755 /var/www/localhost/htdocs/adminer.php
|
||||||
|
|||||||
@@ -21,8 +21,7 @@ cd /opt/prometheus-pve-exporter
|
|||||||
|
|
||||||
$STD uv venv --clear /opt/prometheus-pve-exporter/.venv
|
$STD uv venv --clear /opt/prometheus-pve-exporter/.venv
|
||||||
$STD /opt/prometheus-pve-exporter/.venv/bin/python -m ensurepip --upgrade
|
$STD /opt/prometheus-pve-exporter/.venv/bin/python -m ensurepip --upgrade
|
||||||
$STD /opt/prometheus-pve-exporter/.venv/bin/python -m pip install --upgrade pip
|
$STD uv pip install --python /opt/prometheus-pve-exporter/.venv/bin/python prometheus-pve-exporter
|
||||||
$STD /opt/prometheus-pve-exporter/.venv/bin/python -m pip install prometheus-pve-exporter
|
|
||||||
cat <<EOF >/opt/prometheus-pve-exporter/pve.yml
|
cat <<EOF >/opt/prometheus-pve-exporter/pve.yml
|
||||||
default:
|
default:
|
||||||
user: prometheus@pve
|
user: prometheus@pve
|
||||||
|
|||||||
@@ -64,10 +64,12 @@ read -p "${TAB3}Provide an email address for admin login, this should be a valid
|
|||||||
read -p "${TAB3}Enter your First Name: " NAME_FIRST
|
read -p "${TAB3}Enter your First Name: " NAME_FIRST
|
||||||
read -p "${TAB3}Enter your Last Name: " NAME_LAST
|
read -p "${TAB3}Enter your Last Name: " NAME_LAST
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "pterodactyl-panel" "pterodactyl/panel" "prebuild" "latest" "/opt/pterodactyl-panel" "panel.tar.gz"
|
|
||||||
|
|
||||||
msg_info "Installing pterodactyl Panel"
|
msg_info "Installing pterodactyl Panel"
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/pterodactyl/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
mkdir /opt/pterodactyl-panel
|
||||||
cd /opt/pterodactyl-panel
|
cd /opt/pterodactyl-panel
|
||||||
|
curl -fsSL "https://github.com/pterodactyl/panel/releases/download/v${RELEASE}/panel.tar.gz" -o "panel.tar.gz"
|
||||||
|
tar -xzf "panel.tar.gz"
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
ADMIN_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
ADMIN_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||||
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
||||||
@@ -86,7 +88,9 @@ pterodactyl Admin Username: admin
|
|||||||
pterodactyl Admin Email: $ADMIN_EMAIL
|
pterodactyl Admin Email: $ADMIN_EMAIL
|
||||||
pterodactyl Admin Password: $ADMIN_PASS
|
pterodactyl Admin Password: $ADMIN_PASS
|
||||||
EOF
|
EOF
|
||||||
|
rm -rf "/opt/pterodactyl-panel/panel.tar.gz"
|
||||||
rm -rf "/tmp/debsuryorg-archive-keyring.deb"
|
rm -rf "/tmp/debsuryorg-archive-keyring.deb"
|
||||||
|
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
|
||||||
msg_ok "Installed pterodactyl Panel"
|
msg_ok "Installed pterodactyl Panel"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
|
|||||||
@@ -57,9 +57,12 @@ setup_alpine() {
|
|||||||
apache2-utils fuse3
|
apache2-utils fuse3
|
||||||
msg_ok "Installed dependencies"
|
msg_ok "Installed dependencies"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "rclone" "rclone/rclone" "prebuild" "latest" "/opt/rclone" "rclone*linux-$(arch_resolve).zip"
|
msg_info "Installing rclone"
|
||||||
|
temp_file=$(mktemp)
|
||||||
msg_info "Configuring rclone"
|
mkdir -p /opt/rclone
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/rclone/rclone/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
curl -fsSL "https://github.com/rclone/rclone/releases/download/v${RELEASE}/rclone-v${RELEASE}-linux-$(arch_resolve).zip" -o "$temp_file"
|
||||||
|
$STD unzip -j "$temp_file" '*/**' -d /opt/rclone
|
||||||
cd /opt/rclone
|
cd /opt/rclone
|
||||||
RCLONE_PASSWORD=$(head -c 16 /dev/urandom | xxd -p -c 16)
|
RCLONE_PASSWORD=$(head -c 16 /dev/urandom | xxd -p -c 16)
|
||||||
$STD htpasswd -cb -B /opt/login.pwd admin "$RCLONE_PASSWORD"
|
$STD htpasswd -cb -B /opt/login.pwd admin "$RCLONE_PASSWORD"
|
||||||
@@ -68,7 +71,9 @@ rclone-Credentials
|
|||||||
rclone User Name: admin
|
rclone User Name: admin
|
||||||
rclone Password: $RCLONE_PASSWORD
|
rclone Password: $RCLONE_PASSWORD
|
||||||
EOF
|
EOF
|
||||||
msg_ok "Configured rclone"
|
echo "${RELEASE}" >/opt/rclone_version.txt
|
||||||
|
rm -f "$temp_file"
|
||||||
|
msg_ok "Installed rclone"
|
||||||
|
|
||||||
msg_info "Enabling rclone Service"
|
msg_info "Enabling rclone Service"
|
||||||
cat <<EOF >/etc/init.d/rclone
|
cat <<EOF >/etc/init.d/rclone
|
||||||
@@ -91,6 +96,8 @@ EOF
|
|||||||
msg_info "Starting rclone"
|
msg_info "Starting rclone"
|
||||||
$STD service rclone start
|
$STD service rclone start
|
||||||
msg_ok "Started rclone"
|
msg_ok "Started rclone"
|
||||||
|
|
||||||
|
rm -rf "$temp_file"
|
||||||
}
|
}
|
||||||
|
|
||||||
run_os_setup
|
run_os_setup
|
||||||
|
|||||||
@@ -24,9 +24,13 @@ setup_deb_based() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setup_alpine() {
|
setup_alpine() {
|
||||||
fetch_and_deploy_gh_release "rustdesk-server" "lejianwen/rustdesk-server" "prebuild" "latest" "/opt/rustdesk-server" "rustdesk-server-linux-$(arch_resolve "amd64" "arm64v8").zip"
|
RELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
msg_info "Installing RustDesk Server v${RELEASE}"
|
||||||
msg_info "Configuring RustDesk Server"
|
temp_file1=$(mktemp)
|
||||||
|
ARCH=$(arch_resolve "amd64" "arm64v8")
|
||||||
|
curl -fsSL "https://github.com/lejianwen/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-linux-${ARCH}.zip" -o "$temp_file1"
|
||||||
|
$STD unzip "$temp_file1"
|
||||||
|
mv "$ARCH" /opt/rustdesk-server
|
||||||
mkdir -p /root/.config/rustdesk
|
mkdir -p /root/.config/rustdesk
|
||||||
cd /opt/rustdesk-server
|
cd /opt/rustdesk-server
|
||||||
./rustdesk-utils genkeypair >/tmp/rustdesk_keys.txt
|
./rustdesk-utils genkeypair >/tmp/rustdesk_keys.txt
|
||||||
@@ -35,11 +39,15 @@ setup_alpine() {
|
|||||||
chmod 600 /root/.config/rustdesk/id_ed25519
|
chmod 600 /root/.config/rustdesk/id_ed25519
|
||||||
chmod 644 /root/.config/rustdesk/id_ed25519.pub
|
chmod 644 /root/.config/rustdesk/id_ed25519.pub
|
||||||
rm /tmp/rustdesk_keys.txt
|
rm /tmp/rustdesk_keys.txt
|
||||||
msg_ok "Configured RustDesk Server"
|
echo "${RELEASE}" >~/.rustdesk-server
|
||||||
|
msg_ok "Installed RustDesk Server v${RELEASE}"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "rustdesk-api" "lejianwen/rustdesk-api" "prebuild" "latest" "/opt/rustdesk-api" "linux-$(arch_resolve).tar.gz"
|
APIRELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
msg_info "Installing RustDesk API v${APIRELEASE}"
|
||||||
msg_info "Configuring RustDesk API"
|
temp_file2=$(mktemp)
|
||||||
|
curl -fsSL "https://github.com/lejianwen/rustdesk-api/releases/download/v${APIRELEASE}/linux-$(arch_resolve).tar.gz" -o "$temp_file2"
|
||||||
|
$STD tar zxvf "$temp_file2"
|
||||||
|
mv release /opt/rustdesk-api
|
||||||
cd /opt/rustdesk-api
|
cd /opt/rustdesk-api
|
||||||
ADMINPASS=$(head -c 16 /dev/urandom | xxd -p -c 16)
|
ADMINPASS=$(head -c 16 /dev/urandom | xxd -p -c 16)
|
||||||
$STD ./apimain reset-admin-pwd "$ADMINPASS"
|
$STD ./apimain reset-admin-pwd "$ADMINPASS"
|
||||||
@@ -49,7 +57,8 @@ RustDesk WebUI
|
|||||||
Username: admin
|
Username: admin
|
||||||
Password: $ADMINPASS
|
Password: $ADMINPASS
|
||||||
EOF
|
EOF
|
||||||
msg_ok "Configured RustDesk API"
|
echo "${APIRELEASE}" >~/.rustdesk-api
|
||||||
|
msg_ok "Installed RustDesk API v${APIRELEASE}"
|
||||||
|
|
||||||
msg_info "Enabling RustDesk Server Services"
|
msg_info "Enabling RustDesk Server Services"
|
||||||
cat <<EOF >/etc/init.d/rustdesk-server-hbbs
|
cat <<EOF >/etc/init.d/rustdesk-server-hbbs
|
||||||
@@ -115,6 +124,8 @@ EOF
|
|||||||
$STD service rustdesk-server-hbbr start
|
$STD service rustdesk-server-hbbr start
|
||||||
$STD service rustdesk-api start
|
$STD service rustdesk-api start
|
||||||
msg_ok "Started RustDesk Server"
|
msg_ok "Started RustDesk Server"
|
||||||
|
|
||||||
|
rm -f "$temp_file1" "$temp_file2"
|
||||||
}
|
}
|
||||||
|
|
||||||
run_os_setup
|
run_os_setup
|
||||||
|
|||||||
@@ -20,8 +20,7 @@ msg_info "Installing Scraparr"
|
|||||||
cd /opt/scraparr
|
cd /opt/scraparr
|
||||||
$STD uv venv --clear /opt/scraparr/.venv
|
$STD uv venv --clear /opt/scraparr/.venv
|
||||||
$STD /opt/scraparr/.venv/bin/python -m ensurepip --upgrade
|
$STD /opt/scraparr/.venv/bin/python -m ensurepip --upgrade
|
||||||
$STD /opt/scraparr/.venv/bin/python -m pip install --upgrade pip
|
$STD uv pip install --python /opt/scraparr/.venv/bin/python -r /opt/scraparr/src/scraparr/requirements.txt
|
||||||
$STD /opt/scraparr/.venv/bin/python -m pip install -r /opt/scraparr/src/scraparr/requirements.txt
|
|
||||||
chmod -R 755 /opt/scraparr
|
chmod -R 755 /opt/scraparr
|
||||||
mkdir -p /scraparr/config
|
mkdir -p /scraparr/config
|
||||||
mv /opt/scraparr/config.yaml /scraparr/config/config.yaml
|
mv /opt/scraparr/config.yaml /scraparr/config/config.yaml
|
||||||
|
|||||||
@@ -26,10 +26,13 @@ curl -fsSL -o get-platformio.py https://raw.githubusercontent.com/platformio/pla
|
|||||||
$STD python3 get-platformio.py
|
$STD python3 get-platformio.py
|
||||||
msg_ok "Setup Platformio"
|
msg_ok "Setup Platformio"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "tasmocompiler" "benzino77/tasmocompiler" "tarball"
|
|
||||||
|
|
||||||
msg_info "Setup TasmoCompiler"
|
msg_info "Setup TasmoCompiler"
|
||||||
mkdir /tmp/Tasmota
|
mkdir /tmp/Tasmota
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/benzino77/tasmocompiler/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
curl_download "/tmp/v${RELEASE}.tar.gz" "https://github.com/benzino77/tasmocompiler/archive/refs/tags/v${RELEASE}.tar.gz"
|
||||||
|
cd /tmp
|
||||||
|
tar xzf /tmp/v${RELEASE}.tar.gz
|
||||||
|
mv tasmocompiler-${RELEASE}/ /opt/tasmocompiler/
|
||||||
cd /opt/tasmocompiler
|
cd /opt/tasmocompiler
|
||||||
$STD yarn install
|
$STD yarn install
|
||||||
export NODE_OPTIONS=--openssl-legacy-provider
|
export NODE_OPTIONS=--openssl-legacy-provider
|
||||||
@@ -39,6 +42,8 @@ mkdir -p /usr/local/bin
|
|||||||
ln -s ~/.platformio/penv/bin/platformio /usr/local/bin/platformio
|
ln -s ~/.platformio/penv/bin/platformio /usr/local/bin/platformio
|
||||||
ln -s ~/.platformio/penv/bin/pio /usr/local/bin/pio
|
ln -s ~/.platformio/penv/bin/pio /usr/local/bin/pio
|
||||||
ln -s ~/.platformio/penv/bin/piodebuggdb /usr/local/bin/piodebuggdb
|
ln -s ~/.platformio/penv/bin/piodebuggdb /usr/local/bin/piodebuggdb
|
||||||
|
rm -f /tmp/v${RELEASE}.tar.gz
|
||||||
|
echo "${RELEASE}" >"/opt/tasmocompiler_version.txt"
|
||||||
msg_ok "Setup TasmoCompiler"
|
msg_ok "Setup TasmoCompiler"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
|
|||||||
@@ -64,9 +64,11 @@ setup_alpine() {
|
|||||||
$STD apk add --no-cache openssl apache2-utils
|
$STD apk add --no-cache openssl apache2-utils
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "tinyauth" "tinyauthapp/tinyauth" "singlefile" "latest" "/opt/tinyauth" "tinyauth-$(arch_resolve)"
|
msg_info "Installing Tinyauth"
|
||||||
|
mkdir -p /opt/tinyauth
|
||||||
msg_info "Configuring Tinyauth"
|
RELEASE=$(curl -s https://api.github.com/repos/tinyauthapp/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
curl -fsSL "https://github.com/tinyauthapp/tinyauth/releases/download/v${RELEASE}/tinyauth-$(arch_resolve)" -o /opt/tinyauth/tinyauth
|
||||||
|
chmod +x /opt/tinyauth/tinyauth
|
||||||
PASS=$(openssl rand -base64 8 | tr -dc 'a-zA-Z0-9' | head -c 8)
|
PASS=$(openssl rand -base64 8 | tr -dc 'a-zA-Z0-9' | head -c 8)
|
||||||
USER=$(htpasswd -Bbn "tinyauth" "${PASS}")
|
USER=$(htpasswd -Bbn "tinyauth" "${PASS}")
|
||||||
|
|
||||||
@@ -75,7 +77,8 @@ Tinyauth Credentials
|
|||||||
Username: tinyauth
|
Username: tinyauth
|
||||||
Password: ${PASS}
|
Password: ${PASS}
|
||||||
EOF
|
EOF
|
||||||
msg_ok "Configured Tinyauth"
|
echo "${RELEASE}" >~/.tinyauth
|
||||||
|
msg_ok "Installed Tinyauth"
|
||||||
|
|
||||||
read -r -p "${TAB3}Enter your Tinyauth subdomain (e.g. https://tinyauth.example.com): " app_url
|
read -r -p "${TAB3}Enter your Tinyauth subdomain (e.g. https://tinyauth.example.com): " app_url
|
||||||
|
|
||||||
|
|||||||
@@ -17,10 +17,15 @@ msg_info "Installing dependencies"
|
|||||||
$STD apt install -y zstd
|
$STD apt install -y zstd
|
||||||
msg_ok "Installed dependencies"
|
msg_ok "Installed dependencies"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "wastebin" "matze/wastebin" "prebuild" "latest" "/opt/wastebin" "wastebin_*_$(arch_resolve "x86_64" "aarch64")-unknown-linux-musl.tar.zst"
|
msg_info "Installing Wastebin"
|
||||||
chmod +x /opt/wastebin/wastebin /opt/wastebin/wastebin-ctl
|
temp_file=$(mktemp)
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
msg_info "Configuring Wastebin"
|
curl -fsSL "https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_$(arch_resolve "x86_64" "aarch64")-unknown-linux-musl.tar.zst" -o "$temp_file"
|
||||||
|
tar -xf "$temp_file"
|
||||||
|
mkdir -p /opt/wastebin
|
||||||
|
mv wastebin* /opt/wastebin/
|
||||||
|
chmod +x /opt/wastebin/wastebin
|
||||||
|
chmod +x /opt/wastebin/wastebin-ctl
|
||||||
|
|
||||||
mkdir -p /opt/wastebin-data
|
mkdir -p /opt/wastebin-data
|
||||||
cat <<EOF >/opt/wastebin-data/.env
|
cat <<EOF >/opt/wastebin-data/.env
|
||||||
@@ -30,7 +35,10 @@ WASTEBIN_HTTP_TIMEOUT=30
|
|||||||
WASTEBIN_SIGNING_KEY=$(openssl rand -hex 32)
|
WASTEBIN_SIGNING_KEY=$(openssl rand -hex 32)
|
||||||
WASTEBIN_PASTE_EXPIRATIONS=0,600,3600=d,86400,604800,2419200,29030400
|
WASTEBIN_PASTE_EXPIRATIONS=0,600,3600=d,86400,604800,2419200,29030400
|
||||||
EOF
|
EOF
|
||||||
msg_ok "Configured Wastebin"
|
rm -f "$temp_file"
|
||||||
|
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||||
|
|
||||||
|
msg_ok "Installed Wastebin"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/wastebin.service
|
cat <<EOF >/etc/systemd/system/wastebin.service
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
RELEASE=$(get_latest_github_release "wazuh/wazuh" | cut -d. -f1,2)
|
RELEASE=$(curl -fsSL https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '"tag_name"' | awk -F '"' '{print substr($4, 2, length($2)-4)}')
|
||||||
|
|
||||||
msg_warn "WARNING: This script will run an external installer from a third-party source (https://wazuh.com/)."
|
msg_warn "WARNING: This script will run an external installer from a third-party source (https://wazuh.com/)."
|
||||||
msg_warn "The following code is NOT maintained or audited by our repository."
|
msg_warn "The following code is NOT maintained or audited by our repository."
|
||||||
|
|||||||
Reference in New Issue
Block a user