Compare commits

..

1 Commits

Author SHA1 Message Date
MickLesk 4bbdfc374e copyparty: use fetch_and_deploy_gh_release for version tracking on install/update 2026-08-19 22:39:16 +02:00
3 changed files with 7 additions and 82 deletions
+2 -37
View File
@@ -30,35 +30,9 @@ function update_script() {
exit
fi
if [[ ! -f /etc/systemd/system/bgutil-provider.service ]]; then
msg_info "Adding BgUtil POT Provider"
ensure_dependencies ffmpeg libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev pkg-config
fetch_and_deploy_gh_release "bgutil-ytdlp-pot-provider" "Brainicism/bgutil-ytdlp-pot-provider" "tarball"
cd /opt/bgutil-ytdlp-pot-provider/server
$STD npm ci
$STD npx tsc
cat <<EOF >/etc/systemd/system/bgutil-provider.service
[Unit]
Description=BgUtil YT-DLP POT Provider
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/bgutil-ytdlp-pot-provider/server
ExecStart=/usr/bin/node build/main.js
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now bgutil-provider
msg_ok "Added BgUtil POT Provider"
fi
if check_for_gh_release "tubearchivist" "tubearchivist/tubearchivist"; then
msg_info "Stopping Services"
systemctl stop bgutil-provider tubearchivist tubearchivist-celery tubearchivist-beat
systemctl stop tubearchivist tubearchivist-celery tubearchivist-beat
msg_ok "Stopped Services"
create_backup \
@@ -84,17 +58,8 @@ EOF
mkdir -p /opt/yt_plugins/bgutil
$STD uv pip install --python /opt/tubearchivist/.venv/bin/python --target /opt/yt_plugins/bgutil -r /opt/tubearchivist/backend/requirements.plugins.txt
fi
$STD uv pip install --python /opt/tubearchivist/.venv/bin/python -U --prerelease allow "yt-dlp[default]"
msg_ok "Rebuilt Tube Archivist"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bgutil-ytdlp-pot-provider" "Brainicism/bgutil-ytdlp-pot-provider" "tarball"
msg_info "Rebuilding BgUtil POT Provider"
cd /opt/bgutil-ytdlp-pot-provider/server
$STD npm ci
$STD npx tsc
msg_ok "Rebuilt BgUtil POT Provider"
msg_info "Restoring Configuration"
sed -i 's|^TA_APP_DIR=/opt/tubearchivist$|TA_APP_DIR=/opt/tubearchivist/backend|' /opt/tubearchivist/.env
sed -i 's|^TA_CACHE_DIR=/opt/tubearchivist/cache$|TA_CACHE_DIR=/cache|' /opt/tubearchivist/.env
@@ -111,7 +76,7 @@ EOF
msg_ok "Restored Configuration"
msg_info "Starting Services"
systemctl start bgutil-provider tubearchivist tubearchivist-celery tubearchivist-beat
systemctl start tubearchivist tubearchivist-celery tubearchivist-beat
systemctl reload nginx
msg_ok "Started Services"
msg_ok "Updated successfully!"
+3 -36
View File
@@ -25,26 +25,13 @@ $STD apt install -y \
libsasl2-dev \
libssl-dev \
sqlite3 \
ffmpeg \
libcairo2-dev \
libpango1.0-dev \
libjpeg-dev \
libgif-dev \
librsvg2-dev \
pkg-config
ffmpeg
msg_ok "Installed Dependencies"
UV_PYTHON="3.13" setup_uv
NODE_VERSION="24" setup_nodejs
fetch_and_deploy_gh_release "deno" "denoland/deno" "prebuild" "latest" "/usr/local/bin" "deno-$(arch_resolve "x86_64" "aarch64")-unknown-linux-gnu.zip"
fetch_and_deploy_gh_release "bgutil-ytdlp-pot-provider" "Brainicism/bgutil-ytdlp-pot-provider" "tarball"
msg_info "Building BgUtil POT Provider Server"
cd /opt/bgutil-ytdlp-pot-provider/server
$STD npm ci
$STD npx tsc
msg_ok "Built BgUtil POT Provider Server"
msg_info "Installing ElasticSearch"
setup_deb822_repo \
@@ -129,10 +116,6 @@ EOF
systemctl enable -q --now redis-server
msg_ok "Set up Tube Archivist"
msg_info "Installing yt-dlp Nightly"
$STD uv pip install --python /opt/tubearchivist/.venv/bin/python -U --prerelease allow "yt-dlp[default]"
msg_ok "Installed yt-dlp Nightly"
msg_info "Configuring Nginx"
sed -i 's/^user www-data;$/user root;/' /etc/nginx/nginx.conf
cat <<'EOF' >/etc/nginx/sites-available/default
@@ -247,26 +230,10 @@ exec $PYTHON backend_start.py
RUNEOF
chmod +x /opt/tubearchivist/backend/run.sh
ln -sf /opt/tubearchivist/.env /opt/tubearchivist/backend/.env
cat <<EOF >/etc/systemd/system/bgutil-provider.service
[Unit]
Description=BgUtil YT-DLP POT Provider
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/bgutil-ytdlp-pot-provider/server
ExecStart=/usr/bin/node build/main.js
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
cat <<EOF >/etc/systemd/system/tubearchivist.service
[Unit]
Description=Tube Archivist Backend
After=network.target elasticsearch.service redis-server.service bgutil-provider.service
After=network.target elasticsearch.service redis-server.service
[Service]
Type=simple
@@ -319,7 +286,7 @@ RuntimeMaxSec=3600
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now bgutil-provider tubearchivist tubearchivist-celery tubearchivist-beat
systemctl enable -q --now tubearchivist tubearchivist-celery tubearchivist-beat
msg_ok "Created Services"
motd_ssh
+2 -9
View File
@@ -38,7 +38,6 @@ LOG_PATH="/var/log/copyparty"
DATA_PATH="/var/lib/copyparty"
SVC_USER="copyparty"
SVC_GROUP="copyparty"
SRC_URL="https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py"
DEFAULT_PORT=3923
# ==============================================================================
@@ -115,11 +114,8 @@ function update() {
fi
msg_ok "Stopped service"
msg_info "Updating ${APP}"
curl -fsSL "$SRC_URL" -o "$BIN_PATH"
chmod +x "$BIN_PATH"
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "copyparty-sfx.py" "9001/copyparty" "singlefile" "latest" "/usr/local/bin" "copyparty-sfx.py"
chown "$SVC_USER:$SVC_GROUP" "$BIN_PATH"
msg_ok "Updated ${APP}"
msg_info "Starting service"
if [[ "$OS" == "Alpine" ]]; then
@@ -186,11 +182,8 @@ function install() {
chown "$SVC_USER:$SVC_GROUP" "$DATA_PATH"
fi
msg_info "Downloading ${APP}"
curl -fsSL "$SRC_URL" -o "$BIN_PATH"
chmod +x "$BIN_PATH"
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "copyparty-sfx.py" "9001/copyparty" "singlefile" "latest" "/usr/local/bin" "copyparty-sfx.py"
chown "$SVC_USER:$SVC_GROUP" "$BIN_PATH"
msg_ok "Downloaded to ${BIN_PATH}"
msg_info "Creating configuration"
cat <<EOF >"$CONF_PATH"