205
scripts/uninstall.sh
Executable file
205
scripts/uninstall.sh
Executable file
@@ -0,0 +1,205 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user