125 lines
3.9 KiB
Bash
Executable file
125 lines
3.9 KiB
Bash
Executable file
#!/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/"
|