# SiteGround SFTP Backup (July 2026) When SiteGround hosting is decommissioned (migrating to app3 netcup), all 21 sites were backed up to Wasabi S3 via SFTP. ## Key Constraints - **No remote shell access.** SiteGround's SFTP on port 18765 blocks `exec_command()` — no remote `tar`, no `find | wc`, no `echo`. Only pure SFTP operations (listdir, read, write). This means per-file streaming over the SFTP channel, which is very slow for large WordPress sites with thousands of files. - **Directory structure:** Sites live at `///public_html` (nested directory with same name as site). - **Speed:** Each file requires a separate SFTP round-trip to open and read. The backup script uses `paramiko.SFTPClient` to recursively traverse directories and stream each file into a local `tarfile` in Python. For a 14K-file site, this takes 20-30 minutes. ## SFTP Credentials Stored in the recovery manual and /root/.ssh/siteground.key (chmod 600). Key is DES-EDE3-CBC encrypted with passphrase `LoveMyBoys73!`. ## Restore Process To restore a site from the S3 backup to a new host: 1. Pull the backup: `aws s3 cp s3://hermes-vps-backups/siteground//-.tar.gz .` 2. Extract: `tar xzf -.tar.gz -C ` 3. Import MySQL database (needs a separate SQL dump — SFTP doesn't cover MySQL) 4. Update wp-config.php with new DB credentials 5. Point DNS to the new host IP 6. Run `coolify` (or the site provisioning tool on app3) to wire up SSL ## Note on MySQL Only site FILES were backed up via SFTP. The MySQL databases were NOT exported during the SFTP backup. To migrate a WordPress site fully, a MySQL dump is also needed from the SiteGround phpMyAdmin or via the existing RunCloud MySQL connection.