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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions