Deployment to GitHub Pages
uu_framework sites deploy automatically to GitHub Pages at www.sonder.art/{repo-name}/.
How It Works
- Push to main → GitHub Actions workflow triggers
- Build → Python preprocessing + Eleventy + Tailwind CSS
- Deploy → Uploaded to GitHub Pages
Prerequisites
1. Repository Settings
- Go to Settings > Pages
- Set Source to “GitHub Actions”
- (Optional) Verify custom domain shows
www.sonder.art
2. Organization Setup (One-time)
For custom domain www.sonder.art:
- Create
{org}.github.iorepository (if not exists) - Add
CNAMEfile withwww.sonder.art - Configure DNS:
Arecords pointing to GitHub Pages IPsCNAMEforwwwpointing to{org}.github.io
Creating a New Course Repo
-
Create repo at
{org}/{course-name} -
Copy uu_framework structure:
{course-name}/ ├── .github/workflows/deploy.yaml # Copy from {repo-name} ├── clase/ # Your course content ├── uu_framework/ # Copy entire directory └── .gitignore # Copy from {repo-name} -
Update docker-compose.yaml (for local dev):
environment: - PATH_PREFIX=/{course-name}/ -
Push to main → Automatic deployment
Workflow Details
The workflow (.github/workflows/deploy.yaml) is designed to be reusable:
- Auto-detects repo name for path prefix
- Adds CNAME for custom domain
- Caches dependencies for faster builds
Key Environment Variables
| Variable | Source | Purpose |
|---|---|---|
PATH_PREFIX |
Auto from repo name | URL path prefix |
CUSTOM_DOMAIN |
Workflow env | CNAME file content |
NODE_ENV |
Set to production |
Optimizes build |
Manual Deployment
Trigger manually via GitHub:
- Go to Actions tab
- Select Deploy to GitHub Pages
- Click Run workflow
Troubleshooting
Build Fails
- Check Actions tab for error logs
- Common issues:
- Missing
package-lock.jsoninuu_framework/eleventy/ - Python dependencies not listed
- Invalid markdown syntax
- Missing
404 on Deployed Site
- Verify GitHub Pages is enabled
- Check
pathPrefixmatches repo name - Wait 2-5 minutes for DNS propagation
CSS Not Loading
- Check
pathPrefixin URLs - Verify Tailwind build step succeeded
- Check browser console for 404s
Local Testing Before Deploy
# Start dev server
docker compose -f uu_framework/docker/docker-compose.yaml up dev
# Build production version
docker compose -f uu_framework/docker/docker-compose.yaml run build
# Check _site/ output
ls -la _site/
URLs
| Environment | URL |
|---|---|
| Production | https://www.sonder.art/{repo-name}/ |
| Local dev | http://localhost:3000/{repo-name}/ |