Build static Astro pilot for Happy Tails

This commit is contained in:
Kevin
2026-09-02 00:54:33 -04:00
parent cfe0a7d98d
commit 56a80951b7
42 changed files with 7171 additions and 134 deletions
+31 -52
View File
@@ -1,64 +1,43 @@
# Happy Tails Pet Care
# Happy Tails Astro pilot
A professional website created for Happy Tails Pet Care using SloanOps template system.
This repository is a static Astro pilot for `3031023.xyz`. The existing
Cloudflare Pages site remains the rollback target while this branch is tested.
## Overview
## Repository layout
This site was generated using the SloanOps client onboarding system and is designed for deployment to Cloudflare Pages via Gitea Actions CI/CD.
- `sites/www/` is the primary-site content location; it serves `3031023.xyz`.
- `sites/blog/` is the separate `blog.3031023.xyz` sample site.
- `sites.json` is the operator-controlled manifest. It is not public intake.
- `src/` contains shared Astro presentation code.
- `schemas/` and `fixtures/` provide the Phase 1 JSON contract proof.
## Customization
The blog is static JSON in this phase. Markdown content, CMS workflows, public
sign-up changes, n8n changes, and onboarding-worker changes are deliberately
out of scope.
### Content Updates
- Edit HTML files in the root directory to update page content
- Modify images in the `images/` directory
- Update text content directly in HTML files
## Local checks
### Styling
- All colors, fonts, and spacing are controlled via CSS variables in `css/style.css`
- To rebrand: modify the `:root` variables at the top of `css/style.css`
- Font families can be changed in the HTML `<head>` section
Use Node 22.
### Deployment
Pushes to the `master` branch trigger automatic deployment to Cloudflare Pages.
Preview deployments are created for all other branches.
## Structure
```
3031023-xyz/
├── index.html # Home page
├── about.html # About page (if included)
├── services.html # Services page (if included)
├── products.html # Products page (if included)
├── contact.html # Contact page
├── css/
│ └── style.css # All styles with CSS variables
├── js/
│ └── main.js # Interactive components (mobile menu, etc.)
├── images/ # Image assets
└── .gitea/
└── workflows/
└── deploy.yml # Cloudflare Pages CI/CD configuration
```bash
npm ci
SITE_KEY=www npm run build:site
SITE_KEY=www npm run verify:build
SITE_KEY=blog npm run build:site
SITE_KEY=blog npm run verify:build
```
## Deployment Setup
Each selected site builds to `dist/<site-key>/`. The Worker configurations use
only static assets and a custom 404 page. They contain no custom domains,
routes, account IDs, or secrets.
1. Ensure Cloudflare API token and account ID are configured as secrets in your Gitea repository:
- `CF_API_TOKEN`: Your Cloudflare API token
- `CF_ACCOUNT_ID`: Your Cloudflare account ID
## Preview deployment
2. Push to the repository to trigger deployment:
```bash
git add .
git commit -m "Initial commit"
git push origin master
```
The Gitea workflow deploys only a non-production Worker from the pilot branch:
`3031023-xyz-www-preview` by default, or the manually selected `blog` site.
It uses repository secrets `CF_WORKER_PREVIEW_TOKEN` and `CF_ACCOUNT_ID`.
Routine jobs do not configure DNS or custom domains.
3. The site will be available at: https://3031023.xyz
## Maintenance
- Update content by editing HTML files
- Update styling by modifying CSS variables in `css/style.css`
- Add new images to the `images/` directory and reference them in HTML
- For structural changes, modify the appropriate HTML template
Production hostname attachment and the `www` redirect are manual,
operator-controlled cutover steps. See `docs/pilot-baseline.md` for the
rollback record.