Add site index, deploy script and Green Man mask build
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
This commit is contained in:
commit
2dba395059
31 files changed
+355
No files matched your search
@@ -0,0 +1,56 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
Builds is a static site of craft build write-ups: templates, 3D print files and step-by-step guides. There is no build step and no backend.
|
||||
|
||||
**Live URL:** https://builds.kestrelsnest.social
|
||||
|
||||
## File Structure
|
||||
|
||||
- `index.html` - Site index (HTML/CSS in one file, no JavaScript). One `<li class="build">` card per build, newest first.
|
||||
- `og-image.jpg` - OpenGraph image for the index, 1200 x 630
|
||||
- `deploy` - Rsync deployment script
|
||||
- `<build>/` - One folder per build, self-contained: `index.html`, `img/`, `dl/`
|
||||
- `greenman/` - Green Man mask
|
||||
|
||||
## Conventions
|
||||
|
||||
- Each build folder is self-contained and uses relative links, so it works at any path.
|
||||
- Build pages and the index share a look: Bricolage Grotesque for headings, Inter for text, the same green accent and neutral tokens, light and dark via `prefers-color-scheme`.
|
||||
- Downloads live in `<build>/dl/`. Zip files there are part of the site, so `*.zip` is deliberately NOT in `.gitignore`.
|
||||
- `greenman/index.html` is generated from the mask kit's own source (not in this repo). Hand edits to it are lost when the kit is regenerated; change the source and re-copy.
|
||||
|
||||
## Adding a build
|
||||
|
||||
1. Create `<name>/index.html` with its `img/` and `dl/`.
|
||||
2. Add a card to the top of the list in the top-level `index.html`.
|
||||
3. `./deploy -n`, then `./deploy`.
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
python3 -m http.server 8000
|
||||
```
|
||||
|
||||
Then open `http://localhost:8000`.
|
||||
|
||||
## Deployment
|
||||
|
||||
The `deploy` script uses rsync to push to YunoHost (a My Webapp static app, like pantry):
|
||||
|
||||
```bash
|
||||
./deploy -n # dry run, changes nothing
|
||||
./deploy # push
|
||||
```
|
||||
|
||||
**Important deployment notes:**
|
||||
- `DIR` in `deploy` is `/var/www/my_webapp__3/www`. The script refuses to run if it is ever reset to the `my_webapp__N` placeholder.
|
||||
- rsync runs with `--delete`: anything on the server that is not in this folder is removed. Do not keep server-only files in the web root.
|
||||
- `HOST=social` is an SSH config alias, the same one pantry uses.
|
||||
|
||||
## OpenGraph
|
||||
|
||||
Meta tags in the index `<head>` point to `https://builds.kestrelsnest.social/og-image.jpg`. If the URL changes, update `og:image`, `og:url` and `twitter:image`.
|
||||
Reference in new issue
Block a user