Manual Deployment Guide
Manual Deployment Guide
Follow these steps whenever you want to publish updates to https://www.seas.upenn.edu/~ccwatson/.
1. Prerequisites
- Ruby, Bundler, and Jekyll installed locally; run
bundle installfrom the repo root once per environment. - SSH access to
ccwatson@eniac.seas.upenn.eduwith write permission to~/public_html/(set upssh-agentor be ready for password prompts). - Optional: Node.js for updating JavaScript assets (
npm installthennpm run build:js).
2. Preview Locally (optional)
bundle exec jekyll serve -l -H localhost --baseurl ''
Visit http://localhost:4000 to confirm changes render correctly. Stop the server with Ctrl+C.
3. Deploy to SEAS Hosting
scripts/deploy_public_html.sh
The script:
- Builds the production site with
JEKYLL_ENV=production bundle exec jekyll build. - Syncs the
_site/output toccwatson@eniac.seas.upenn.edu:public_html/usingrsync --deleteso removed files disappear from the server.
Custom Targets
- Set
REMOTEto deploy from a different workstation or jump host, e.g.REMOTE=myuser@remote.seas.upenn.edu scripts/deploy_public_html.sh. - Set
REMOTE_PATHwhen publishing into a subdirectory:REMOTE_PATH=public_html/portfolio scripts/deploy_public_html.sh.
4. Verify
- Open
https://www.seas.upenn.edu/~ccwatson/in a fresh browser window or private tab. - Check navigation, images, and downloads (especially under
/files/) to ensure paths resolve with the configured/~ccwatsonbase URL.
5. Troubleshooting
- If the build fails, rerun
bundle installand fix Liquid/YAML errors reported in the console. - If assets look stale, delete
_site/locally and rerun the deploy script. - For authentication issues, ensure your SSH key is added with
ssh-addor try logging in manually viassh ccwatson@eniac.seas.upenn.eduto confirm access.
