diff --git a/.gitignore b/.gitignore index 9d212b1..c8ce7a0 100644 --- a/.gitignore +++ b/.gitignore @@ -7,5 +7,5 @@ /.hugo_build.lock static/apt .working -# settings.local.json +settings.local.json .amplified diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..b7d1cd6 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,105 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +This is a Hugo static site for the Wild Cloud platform (mywildcloud.org) that serves multiple purposes: +- Marketing and documentation website +- APT repository for Debian packages +- UI component distribution system +- Community hub for the Wild Cloud ecosystem + +## Development Commands + +### Prerequisites +- Install Hugo (minimum v0.87.0) +- Install dart-sass + +### Development Server +```bash +hugo server -D +``` + +### Build and Deploy +```bash +scripts/deploy.sh +``` + +The deploy script performs: +1. `hugo build` - Generates static site in `public/` directory +2. `docker build -t payneio/mywildcloud.org .` - Creates Docker image with nginx:alpine +3. `docker push payneio/mywildcloud.org` - Pushes to registry +4. `kubectl rollout restart deployment mywildcloud -n mywildcloud` - Deploys to Kubernetes + +## Architecture + +### Theme Configuration +- **Theme:** Blowfish v2+ (modern Hugo theme) +- **Color Scheme:** "blowfish" with light default appearance +- **Layout:** Custom homepage layout with basic header +- **Custom Assets:** Wild Cloud logo and custom CSS in `/assets/` + +### Content Structure +- **Main Pages:** Homepage, About, Get Started, Contribute +- **Additional Areas:** Foundation, Learning, Projects (generated content) +- **Special Content:** APT repository hosting and UI releases + +### Key Features +- **APT Repository:** Complete Debian package repository in `/static/apt/` + - Packages for `wild-cloud-central` (multiple versions, amd64/arm64) + - GPG signing and repository metadata + - Installation script (`install-apt.sh`) +- **UI Releases:** Versioned UI component releases in `/ui-releases/` + - JSON manifest with version, archive URLs, and checksums +- **Analytics:** Google Analytics integration (G-YSHP7PL9R1) +- **SEO:** XML sitemap, robots.txt, and meta tags configured + +### Configuration Files +- **Hugo Config:** `config/_default/hugo.toml` - Main site configuration +- **Theme Config:** `config/_default/params.toml` - Blowfish theme settings +- **Menus:** `config/_default/menus.en.toml` - Navigation structure +- **Markup:** `config/_default/markup.toml` - Content rendering options + +### Deployment Architecture +- **Development:** Local Hugo server with draft content +- **Production:** Containerized deployment using Docker + Kubernetes +- **Base URL:** https://www.mywildcloud.org/ +- **Container:** nginx:alpine serving static files from `/usr/share/nginx/html` + +## Theme Customization + +### Custom CSS +- Location: `/assets/css/custom.css` +- Custom font implementation and Wild Cloud branding + +### Custom Layouts +- Homepage override: `/layouts/home.html` +- Uses basic header layout instead of default theme layout + +### Theme Features Configuration +- **Enabled:** Search, auto appearance switching, breadcrumbs, table of contents +- **Disabled:** Author info, dates, views, likes, comments +- **Analytics:** Google Analytics integration +- **Social:** Meta tags and social sharing configured + +## Content Management + +### Taxonomies +- Tags, categories, authors, series +- Weighted related content indices + +### Content Types +- Standard markdown pages +- Foundation/principles content +- Learning resources +- Project documentation +- Package repository metadata + +## Important Notes + +- The site doubles as a software distribution platform with integrated APT repository +- All content changes require rebuilding and redeploying the Docker container +- The Kubernetes deployment uses rolling updates for zero-downtime deployments +- Package distribution is handled through static file serving from `/static/apt/` +- UI releases are distributed via JSON manifest and tarball system \ No newline at end of file