Files
infrapuzzle/projects/moritzgrafde/AGENTS.md
T

46 lines
1.7 KiB
Markdown

# AGENTS.md — Moritz Graf Personal Website (`moritzgrafde`)
> [!NOTE]
> **Domain**: Personal portfolio and homepage for Moritz Graf.
> **Live Production URL**: `https://moritzgraf.de`
> **Kubernetes Manifest**: `k8s/web/moritzgrafde.yaml` (Namespace: `web`)
> **Container Image**: `registry.haumdaucher.de/moritzgrafde:latest`
> **Source Location**: `projects/moritzgrafde/` (Migrated from standalone `moritzgraf` repo)
---
## 🏛️ Architecture & Build Pipeline
1. **Stack**:
- Static site generated with [Hugo](https://gohugo.io/) using the `hugo-goa` theme.
- Served via lightweight `nginx` container (`Dockerfile`).
- The compiled static site is maintained in `public/`.
2. **Container Build & Architecture**:
- The target Kubernetes node `haumdaucher` runs on **`linux/amd64`**.
- Build command:
```bash
docker build --platform linux/amd64 -t registry.haumdaucher.de/moritzgrafde:latest .
docker push registry.haumdaucher.de/moritzgrafde:latest
```
3. **Deployment**:
- Deployed to the Kubernetes cluster in namespace `web`.
- Ingress controller: Traefik, Let's Encrypt SSL via `cert-manager`.
- Rollout restart:
```bash
kubectl rollout restart deployment/moritzgrafde -n web
kubectl rollout status deployment/moritzgrafde -n web
```
---
## 📁 Repository Structure
- `content/`: Hugo content markdown files.
- `themes/hugo-goa/`: Hugo Goa theme layouts and partials.
- `public/`: Pre-rendered production assets and HTML ready for the Nginx container.
- `Dockerfile`: Minimal Nginx container copying `./public/` to `/usr/share/nginx/html/`.
- `build.sh`: Convenience build, push, and redeploy script.
- `config.toml`: Hugo site configuration.