Repository navigation
ci: deploy to Bluehost over SSH with rsync (FTP fallback, dry-run option) - #129
Merged
Merged
Conversation
Bluehost's FTP server dropped the connection after a few files on every deploy since the morning of 7 Oct 2026. The deploy now uses rsync over SSH (only changed files, resumes cleanly) when the BLUEHOST_SSH_KEY secret is set, with --delete for files the build no longer makes and protect filters for server-only paths (cgi-bin, temp, .well-known, FTP state, error logs). FTP stays as the fallback without the key. A manual run can be a dry run that lists the changes and skips IndexNow and the cache purge.
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.
Summary
BLUEHOST_SSH_KEYsecret is set:--deleteremoves files the build no longer makes (old asset hashes, Vantir's old pre-built page);cgi-bin,temp,.well-known, the FTP state files anderror_log.dry_run: true): rsync only lists the changes; FTP, IndexNow and the Cloudflare purge are skipped.Why
Since the morning of 7 Oct 2026, Bluehost's FTP server drops the connection after a few files on every deploy (four failures, including with a 120 s timeout), so PR #128 isn't live yet.
Setup (done)
xktf_github_deployadded; login tested from a PC./home4/fmxpeumy/public_html/; rsync is on the server.BLUEHOST_SSH_HOST,BLUEHOST_SSH_USER,BLUEHOST_SSH_PATH,BLUEHOST_SSH_PORT.BLUEHOST_SSH_KEY(the private key) is added by the account owner.Testing
gh workflow run deploy.yml --ref ci/ssh-rsync-deploy -f dry_run=trueto see the exact list of changes before anything is written.