Make Samba and rclone backup system optional

- Add interactive prompt before Samba installation
- Add interactive prompt before rclone backup system setup
- Update summary section to conditionally display installed components
- Fix indentation in backup script section
This commit is contained in:
Claude
2025-12-28 00:18:18 +00:00
parent 893d13af53
commit 0a88f8ae1f
+47 -7
View File
@@ -243,7 +243,18 @@ echo "Verifying Docker installation..."
docker --version || echo "Warning: Docker verification failed" docker --version || echo "Warning: Docker verification failed"
docker compose version || echo "Warning: Docker Compose verification failed" docker compose version || echo "Warning: Docker Compose verification failed"
# Install and Configure Samba # Samba File Sharing (Optional)
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "SAMBA FILE SHARING (Optional)"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "Samba allows you to share folders over the network to Windows, Mac, and Linux."
echo "The script will share your primary drive at ~/drives/primary"
echo ""
read -p "Install and configure Samba file sharing? (y/n): " INSTALL_SAMBA
if [ "$INSTALL_SAMBA" = "y" ] || [ "$INSTALL_SAMBA" = "Y" ]; then
echo "" echo ""
echo "Installing Samba file sharing..." echo "Installing Samba file sharing..."
echo " - Samba: SMB/CIFS file server for network file sharing" echo " - Samba: SMB/CIFS file server for network file sharing"
@@ -302,6 +313,9 @@ SAMBA_CONFIG
else else
echo "✗ Samba installation failed, skipping configuration" echo "✗ Samba installation failed, skipping configuration"
fi fi
else
echo "Skipping Samba installation."
fi
# Install NetBird # Install NetBird
echo "" echo ""
@@ -341,7 +355,22 @@ if [ -f /tmp/rustdesk.deb ]; then
rm /tmp/rustdesk.deb rm /tmp/rustdesk.deb
fi fi
# Create rclone backup script and instructions # Rclone Split Backup System (Optional)
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "RCLONE SPLIT BACKUP SYSTEM (Optional)"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "This sets up a split backup system using rclone:"
echo " - Creates mount points for primary + 2 backup drives"
echo " - Installs backup script that splits data across backup drives"
echo " - Optionally configures automatic daily backups"
echo ""
echo "Useful when: Primary drive (e.g., 4TB) > individual backup drives (e.g., 2TB each)"
echo ""
read -p "Set up rclone split backup system? (y/n): " SETUP_BACKUP
if [ "$SETUP_BACKUP" = "y" ] || [ "$SETUP_BACKUP" = "Y" ]; then
echo "" echo ""
echo "Setting up rclone backup configuration..." echo "Setting up rclone backup configuration..."
echo "" echo ""
@@ -627,7 +656,9 @@ TIMER
echo "✓ Rclone backup script created at /usr/local/bin/backup-scripts/rclone-backup.sh" echo "✓ Rclone backup script created at /usr/local/bin/backup-scripts/rclone-backup.sh"
echo "✓ Systemd service/timer created (disabled by default)" echo "✓ Systemd service/timer created (disabled by default)"
else
echo "Skipping rclone backup system setup."
fi
# Full system upgrade # Full system upgrade
echo "" echo ""
@@ -644,13 +675,17 @@ echo ""
echo "=== Installation Complete! ===" echo "=== Installation Complete! ==="
echo "" echo ""
echo "Installed Software:" echo "Installed Software:"
echo " ✓ net-tools, ncdu, git, curl, wget, vim, htop, tree, zip/unzip" echo " ✓ net-tools, ncdu, git, curl, wget, vim, htop, tree, zip/unzip, rclone"
echo " ✓ rclone - Backup/sync tool"
echo " ✓ OpenSSH Server - SSH remote access" echo " ✓ OpenSSH Server - SSH remote access"
echo " ✓ Samba - File sharing (Primary drive shared)"
echo " ✓ Docker Engine + Docker Compose" echo " ✓ Docker Engine + Docker Compose"
if [ "$INSTALL_SAMBA" = "y" ] || [ "$INSTALL_SAMBA" = "Y" ]; then
echo " ✓ Samba - File sharing (Primary drive shared)"
fi
echo " ✓ NetBird - Mesh VPN" echo " ✓ NetBird - Mesh VPN"
echo " ✓ RustDesk - Remote desktop" echo " ✓ RustDesk - Remote desktop"
if [ "$SETUP_BACKUP" = "y" ] || [ "$SETUP_BACKUP" = "Y" ]; then
echo " ✓ Rclone split backup system configured"
fi
echo "" echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "SSH AUTHENTICATION SETUP" echo "SSH AUTHENTICATION SETUP"
@@ -702,6 +737,7 @@ echo " ✓ Just GitHub or just Launchpad"
echo " ✓ Just NetBird SSH" echo " ✓ Just NetBird SSH"
echo " ✓ None (password auth only - if no keys imported)" echo " ✓ None (password auth only - if no keys imported)"
echo "" echo ""
if [ "$SETUP_BACKUP" = "y" ] || [ "$SETUP_BACKUP" = "Y" ]; then
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "RCLONE BACKUP SETUP - Exact Drive Mirroring" echo "RCLONE BACKUP SETUP - Exact Drive Mirroring"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
@@ -912,10 +948,13 @@ echo " rclone check $ACTUAL_HOME/drives/primary/documents \\"
echo " $ACTUAL_HOME/drives/backup1/documents \\" echo " $ACTUAL_HOME/drives/backup1/documents \\"
echo " --checksum --one-way" echo " --checksum --one-way"
echo "" echo ""
fi
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "OTHER IMPORTANT NOTES" echo "OTHER IMPORTANT NOTES"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "" echo ""
if [ "$INSTALL_SAMBA" = "y" ] || [ "$INSTALL_SAMBA" = "Y" ]; then
echo " Samba File Sharing:" echo " Samba File Sharing:"
if command -v smbd &> /dev/null && grep -q "\[Primary\]" /etc/samba/smb.conf 2>/dev/null; then if command -v smbd &> /dev/null && grep -q "\[Primary\]" /etc/samba/smb.conf 2>/dev/null; then
echo " ✓ Share 'Primary' is accessible at:" echo " ✓ Share 'Primary' is accessible at:"
@@ -925,9 +964,10 @@ echo " • Username: $ACTUAL_USER"
echo " • Use the Samba password you just set" echo " • Use the Samba password you just set"
echo "" echo ""
else else
echo " Not configured (Samba installation may have failed)" echo " ✗ Installation may have failed - check 'systemctl status smbd'"
echo "" echo ""
fi fi
fi
echo " Docker: Log out and back in for group membership to take effect" echo " Docker: Log out and back in for group membership to take effect"
echo "" echo ""
echo " NetBird:" echo " NetBird:"