Files
markusgraf_ch/openspec/changes/add-ftps-deployment/proposal.md
T
gurixandClaude fcb82acc6f refactor: switch from FTPS/lftp to rsync for deployment
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>
2025-10-28 16:02:35 +01:00

22 lines
1.1 KiB
Markdown

# 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.sh` that syncs `public/` directory via rsync
- Use environment variables `SSH_USER`, `SSH_HOST`, `SSH_PORT`, and `REMOTE_ROOT` for configuration
- Implement mirror behavior with `--delete` flag 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 `deployment` capability
- Affected code: New file `scripts/deploy.sh`
- Dependencies: Requires `rsync` to be installed
- Configuration: User must set `SSH_USER` and `SSH_HOST` environment variables
- `SSH_PORT` defaults to 22
- `REMOTE_ROOT` defaults to /httpsdocs
- No changes to existing Hugo templates, content, or build process