Files
media-downloader/scripts/uninstall.sh
Todd 0d7b2b1aab Initial commit
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 22:42:55 -04:00

206 lines
7.3 KiB
Bash
Executable File

#!/bin/bash
# Media Downloader Uninstaller Script
# Version: 11.27.0
set -e
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Installation directory
INSTALL_DIR="/opt/media-downloader"
echo -e "${RED}╔════════════════════════════════════════════════╗${NC}"
echo -e "${RED}║ Media Downloader Uninstaller ║${NC}"
echo -e "${RED}╚════════════════════════════════════════════════╝${NC}"
echo ""
# Check if running as root
if [[ $EUID -ne 0 ]]; then
echo -e "${RED}This script must be run as root (use sudo)${NC}"
exit 1
fi
echo -e "${YELLOW}This will remove:${NC}"
echo " - Installation directory: $INSTALL_DIR"
echo " - All systemd services and timers"
echo " - Command wrapper: /usr/local/bin/media-downloader"
echo ""
echo -e "${YELLOW}Services to be removed:${NC}"
echo " - media-downloader (scheduler)"
echo " - media-downloader-api (web API)"
echo " - media-downloader-frontend (web UI)"
echo " - xvfb-media-downloader (virtual display)"
echo " - media-cache-builder (timer)"
echo " - media-embedding-generator (timer)"
echo " - media-celebrity-enrichment (timer)"
echo ""
echo -e "${YELLOW}This will NOT remove:${NC}"
echo " - Downloaded media files (if stored elsewhere)"
echo " - Python packages installed system-wide"
echo " - Redis server"
echo " - FlareSolverr Docker container"
echo ""
read -p "Continue with uninstallation? (y/n) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "Uninstallation cancelled"
exit 1
fi
# ============================================================================
# STOP ALL SERVICES
# ============================================================================
echo -e "${YELLOW}Stopping all services...${NC}"
# Stop main services
for service in media-downloader media-downloader-api media-downloader-frontend xvfb-media-downloader; do
if systemctl is-active --quiet $service 2>/dev/null; then
echo " Stopping $service..."
systemctl stop $service
fi
done
# Stop timers
for timer in media-cache-builder media-embedding-generator media-celebrity-enrichment; do
if systemctl is-active --quiet $timer.timer 2>/dev/null; then
echo " Stopping $timer.timer..."
systemctl stop $timer.timer
fi
done
# ============================================================================
# DISABLE SERVICES
# ============================================================================
echo -e "${YELLOW}Disabling services...${NC}"
# Disable main services
for service in media-downloader media-downloader-api media-downloader-frontend xvfb-media-downloader; do
if systemctl is-enabled --quiet $service 2>/dev/null; then
echo " Disabling $service..."
systemctl disable $service
fi
done
# Disable timers
for timer in media-cache-builder media-embedding-generator media-celebrity-enrichment; do
if systemctl is-enabled --quiet $timer.timer 2>/dev/null; then
echo " Disabling $timer.timer..."
systemctl disable $timer.timer
fi
done
# ============================================================================
# REMOVE SYSTEMD FILES
# ============================================================================
echo -e "${YELLOW}Removing systemd files...${NC}"
rm -f /etc/systemd/system/media-downloader.service
rm -f /etc/systemd/system/media-downloader-api.service
rm -f /etc/systemd/system/media-downloader-frontend.service
rm -f /etc/systemd/system/xvfb-media-downloader.service
rm -f /etc/systemd/system/media-cache-builder.service
rm -f /etc/systemd/system/media-cache-builder.timer
rm -f /etc/systemd/system/media-embedding-generator.service
rm -f /etc/systemd/system/media-embedding-generator.timer
rm -f /etc/systemd/system/media-celebrity-enrichment.service
rm -f /etc/systemd/system/media-celebrity-enrichment.timer
# Reload systemd
systemctl daemon-reload
# ============================================================================
# BACKUP DATA
# ============================================================================
if [ -d "$INSTALL_DIR" ]; then
BACKUP_DIR="$HOME/media-downloader-backup-$(date +%Y%m%d-%H%M%S)"
echo -e "${GREEN}Creating backup at $BACKUP_DIR${NC}"
mkdir -p "$BACKUP_DIR"
# Backup config directory
if [ -d "$INSTALL_DIR/config" ]; then
cp -r "$INSTALL_DIR/config" "$BACKUP_DIR/"
echo " ✓ Configuration directory backed up"
fi
# Backup sessions
if [ -d "$INSTALL_DIR/sessions" ]; then
cp -r "$INSTALL_DIR/sessions" "$BACKUP_DIR/"
echo " ✓ Sessions backed up"
fi
# Backup cookies
if [ -d "$INSTALL_DIR/cookies" ]; then
cp -r "$INSTALL_DIR/cookies" "$BACKUP_DIR/"
echo " ✓ Forum cookies backed up"
fi
# Backup database directory
if [ -d "$INSTALL_DIR/database" ]; then
cp -r "$INSTALL_DIR/database" "$BACKUP_DIR/"
echo " ✓ Database directory backed up"
fi
# Backup data directory
if [ -d "$INSTALL_DIR/data" ]; then
cp -r "$INSTALL_DIR/data" "$BACKUP_DIR/"
echo " ✓ Data directory backed up"
fi
fi
# ============================================================================
# REMOVE INSTALLATION
# ============================================================================
# Remove installation directory
if [ -d "$INSTALL_DIR" ]; then
echo -e "${YELLOW}Removing installation directory...${NC}"
rm -rf "$INSTALL_DIR"
fi
# Remove command wrapper
if [ -f "/usr/local/bin/media-downloader" ]; then
echo -e "${YELLOW}Removing command wrapper...${NC}"
rm -f "/usr/local/bin/media-downloader"
fi
# ============================================================================
# COMPLETION
# ============================================================================
echo ""
echo -e "${GREEN}╔════════════════════════════════════════════════╗${NC}"
echo -e "${GREEN}║ Uninstallation Complete! ║${NC}"
echo -e "${GREEN}╚════════════════════════════════════════════════╝${NC}"
echo ""
if [ -n "$BACKUP_DIR" ] && [ -d "$BACKUP_DIR" ]; then
echo -e "${BLUE}Backup created at:${NC} $BACKUP_DIR"
echo ""
echo -e "${YELLOW}To restore your data to a new installation:${NC}"
echo " 1. Install Media Downloader again:"
echo " sudo ./scripts/install.sh"
echo ""
echo " 2. Restore your backed up data:"
echo " sudo cp -r $BACKUP_DIR/database/* /opt/media-downloader/database/"
echo " sudo cp -r $BACKUP_DIR/config/* /opt/media-downloader/config/"
echo " sudo cp -r $BACKUP_DIR/sessions /opt/media-downloader/"
echo " sudo cp -r $BACKUP_DIR/cookies /opt/media-downloader/"
echo " sudo cp -r $BACKUP_DIR/data/* /opt/media-downloader/data/"
echo " sudo chown -R \$USER:\$USER /opt/media-downloader/"
echo ""
echo " 3. Restart the services:"
echo " sudo systemctl restart media-downloader"
echo " sudo systemctl restart media-downloader-api"
fi