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:
+47
-7
@@ -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:"
|
||||||
|
|||||||
Reference in New Issue
Block a user