46 lines
1.7 KiB
Markdown
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.
|