Replace the FTPS-based deployment approach with rsync over SSH for more reliable and efficient mirroring of the Hugo site. This change addresses issues with the previous approach and provides true mirror behavior. Key changes: - Replace lftp with rsync for file synchronization - Add --delete flag for true mirror behavior (removes stale remote files) - Simplify authentication to use SSH keys only (no password needed) - Update all documentation and OpenSpec artifacts - Add .envrc to gitignore for direnv users Environment variables: - SSH_USER: SSH username (required) - SSH_HOST: server hostname (required) - SSH_PORT: SSH port (optional, defaults to 22) - REMOTE_ROOT: remote directory path (optional, defaults to /httpsdocs) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1.1 KiB
1.1 KiB
Change Proposal: add-ftps-deployment
Why
Currently there is no automated way to deploy the built Hugo site to the production server. Manual file transfers are error-prone and time-consuming. This change adds a deployment script to automate uploads via rsync over SSH, properly mirroring content (including deletions).
What Changes
- Add deployment script
scripts/deploy.shthat syncspublic/directory via rsync - Use environment variables
SSH_USER,SSH_HOST,SSH_PORT, andREMOTE_ROOTfor configuration - Implement mirror behavior with
--deleteflag to remove remote files not present locally - Implement prerequisite checks (public/ exists, rsync installed, credentials set)
- Add error handling and progress reporting
- Update documentation with deployment instructions
Impact
- Affected specs: New
deploymentcapability - Affected code: New file
scripts/deploy.sh - Dependencies: Requires
rsyncto be installed - Configuration: User must set
SSH_USERandSSH_HOSTenvironment variablesSSH_PORTdefaults to 22REMOTE_ROOTdefaults to /httpsdocs
- No changes to existing Hugo templates, content, or build process