feat: add SFTP and FTP backup destinations#1466
Open
Lumantis wants to merge 1 commit intoCortexFlow-AI:canaryfrom
Open
feat: add SFTP and FTP backup destinations#1466Lumantis wants to merge 1 commit intoCortexFlow-AI:canaryfrom
Lumantis wants to merge 1 commit intoCortexFlow-AI:canaryfrom
Conversation
Extends the backup destination system to support SFTP and FTP in addition to the existing S3-compatible storage. Changes: - Add destinationType, host, port, username, password, basePath columns to the destination table (migration 0150) - Add getRcloneFlags() and getRcloneRemote() helpers that dispatch to the correct rclone remote syntax based on destination type - Add obscureRclonePassword() using execFileAsync to safely obscure passwords for rclone without shell injection risk - Update all backup, restore, and volume-backup files to use the new helpers instead of hardcoded :s3: paths - Update destination router to obscure SFTP/FTP passwords on save and build type-aware test connection commands - Add destination type selector (S3/SFTP/FTP) to the UI with conditional form fields per type - Show destination type badge in the destinations list Closes CortexFlow-AI#168 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #168
Summary
Adds SFTP and FTP as backup destination types alongside the existing S3-compatible storage.
destinationTypefield on destinations (s3|sftp|ftp, defaults tos3for backward compatibility)getRcloneFlags()andgetRcloneRemote()helpers dispatch rclone syntax per type — all 15+ backup/restore files updated in one consistent passobscureRclonePassword()usesexecFileAsync("rclone", ["obscure", password])(no shell injection) to store rclone-obscured passwords for SFTP/FTP0150adds new columns with safe defaults so existing S3 destinations are unaffectedHow it works
rclone already ships in the dokploy Docker image and supports SFTP/FTP natively via
:sftp:and:ftp:remotes with inline flags. No new dependencies needed.Test plan
🤖 Generated with Claude Code