Static site for builds.kestrelsnest.social: an index page with one card per build, an rsync deploy script modelled on pantry, and the Green Man mask guide with its templates and print files. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GrX9qMoNihcWLX3xoJhabw
2.1 KiB
2.1 KiB
Builds
Write-ups of things I've made, each with its templates, print files and a step-by-step guide.
Live: https://builds.kestrelsnest.social
A static site with no build step. Each build is a self-contained folder; the top-level index.html links to them.
Files
index.html - Site index: one card per build
og-image.jpg - OpenGraph image for the index (1200 x 630)
deploy - Deployment script (rsync to server)
greenman/ - Green Man mask
index.html - The build and painting guides as one page
img/ - Photos and part renders
dl/ - Downloads: templates, guide PDFs, print files
Adding a build
- Make a folder for it, named in lowercase with no spaces (
greenman,atompunk). Put its page at<folder>/index.html, with its images and downloads inside the folder so its links stay relative. - In the top-level
index.html, copy a<li class="build">block to the top of the list and change the link, image, alt text, title, description and tags. The card image is cropped to 4:3, biased toward the top of the photo. - Run
./deploy -nto check what will be uploaded, then./deploy.
Local preview
python3 -m http.server 8000
Then open http://localhost:8000.
Deployment on YunoHost (My Webapp)
1. Install My Webapp
In the YunoHost admin panel:
- Go to Applications → Install
- Search for "My Webapp"
- Configure:
- Label: Builds
- Domain/Path:
builds.kestrelsnest.social - PHP version: none needed
- Database: none needed
- Install
2. Point the deploy script at it
Each My Webapp gets a numbered folder on the server. Find this one:
ssh social 'ls -d /var/www/my_webapp*'
Set DIR in deploy to that folder's www directory, which for this site is /var/www/my_webapp__3/www (already set).
3. Deploy
./deploy -n # dry run
./deploy
The script rsyncs this folder to the server and deletes anything there that is no longer here. It skips the project's own files (deploy, README.md, CLAUDE.md, .git).