#!/bin/bash set -euo pipefail # ============================================================================== # Cryptomator Installation Script # ============================================================================== # Installs Cryptomator - Client-side cloud storage encryption # # Threat Model: # - Cloud provider snooping (Dropbox, Google Drive, etc.) # - Data breaches exposing cloud files # - Government data requests to cloud providers # - Cloud employee access to files # # How Cryptomator Protects: # - Client-side encryption before files leave your computer # - Zero-knowledge: Cloud provider can't decrypt files # - Encrypts filenames and directory structure # - Works with any cloud provider (Dropbox, GDrive, OneDrive, etc.) # # Source: https://cryptomator.org/ # ============================================================================== # Colors readonly GREEN='\033[0;32m' readonly YELLOW='\033[1;33m' readonly RED='\033[0;31m' readonly NC='\033[0m' log() { echo -e "${GREEN}[INFO]${NC} $*"; } warn() { echo -e "${YELLOW}[WARN]${NC} $*"; } error() { echo -e "${RED}[ERROR]${NC} $*"; exit 1; } echo "=== Cryptomator Installation ===" echo "" echo "Choose installation method:" echo " 1) .deb package (recommended - better system integration)" echo " 2) AppImage (portable, works across distros)" echo "" read -p "Enter choice [1-2]: " choice case $choice in 1) log "Installing Cryptomator .deb package..." # Get latest release log "Fetching latest release..." LATEST_URL=$(curl -s https://api.github.com/repos/cryptomator/cryptomator/releases/latest \ | grep "browser_download_url.*amd64.deb" \ | cut -d '"' -f 4) if [ -z "$LATEST_URL" ]; then error "Could not find latest .deb package" fi log "Downloading from: $LATEST_URL" cd /tmp wget -O cryptomator.deb "$LATEST_URL" log "Installing .deb package..." sudo apt install -y ./cryptomator.deb rm cryptomator.deb log "✅ Cryptomator .deb installed" ;; 2) log "Installing Cryptomator AppImage..." # Get latest AppImage log "Fetching latest release..." LATEST_URL=$(curl -s https://api.github.com/repos/cryptomator/cryptomator/releases/latest \ | grep "browser_download_url.*x86_64.AppImage\"" \ | cut -d '"' -f 4) if [ -z "$LATEST_URL" ]; then error "Could not find latest AppImage" fi log "Downloading from: $LATEST_URL" mkdir -p ~/.local/bin cd ~/.local/bin wget -O Cryptomator.AppImage "$LATEST_URL" chmod +x Cryptomator.AppImage # Create desktop entry log "Creating desktop entry..." mkdir -p ~/.local/share/applications cat > ~/.local/share/applications/cryptomator.desktop << 'DESKTOP' [Desktop Entry] Name=Cryptomator Exec=$HOME/.local/bin/Cryptomator.AppImage Icon=cryptomator Type=Application Categories=Utility;Security; DESKTOP log "✅ Cryptomator AppImage installed to ~/.local/bin/Cryptomator.AppImage" ;; *) error "Invalid choice" ;; esac echo "" log "Verifying installation..." if command -v cryptomator >/dev/null 2>&1 || [ -f ~/.local/bin/Cryptomator.AppImage ]; then log "✅ Cryptomator installed successfully!" else warn "Installation verification failed" fi echo "" echo "=== Installation Complete ===" echo "" echo "Usage:" echo " 1. Launch Cryptomator from application menu" echo " 2. Create a new vault in your cloud storage folder" echo " 3. Set a strong password" echo " 4. Unlock vault and mount it" echo " 5. Copy files into mounted vault" echo " 6. Files are encrypted before sync to cloud!" echo "" echo "📖 Documentation: https://docs.cryptomator.org/"