Skip to content

Add SSH rsync publishing target #453

@livid

Description

@livid

Summary

Add an optional SSH rsync publishing target to Planet, letting users sync the generated site to a remote server via rsync over SSH alongside or instead of IPNS publishing.

Features

  • SSH rsync toggle and destination in the Publishing settings tab (user@host:/path format)
  • SSH key selection — users can select a private key from ~/.ssh/ which gets copied into the app's sandbox container, solving sandbox permission issues without requiring Full Disk Access
  • Parallel publishing — IPNS and SSH rsync publish concurrently via withTaskGroup
  • Rsync log window — logs all rsync operations to tmp/rsync.log with auto-updating display, error highlighting, and a clear button (accessible via Tools > SSH Rsync Log)
  • Error detection — shows a yellow warning banner in the log window when SSH key errors are detected, directing users to select a key in Publishing settings
  • Validation — destination format validated on save with user-friendly error alerts

Files changed

  • MyPlanetModel.swift — new properties (sshRsyncEnabled, sshRsyncDestination, sshRsyncKeyPath), publishViaSSHRsync method, parallel publish logic
  • BackupMyPlanetModel.swift — backup support for new fields
  • MyPlanetEditView.swift — Publishing tab UI with toggle, address field, SSH key picker
  • PlanetError.swiftInvalidSSHRsyncDestinationError, SSHRsyncPublishError
  • KeyboardShortcutHelper.swift — Tools menu entry
  • New files: SSHRsync/SSHRsyncLogger.swift, SSHRsync/SSHRsyncLogView.swift

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions