Personal portfolio running on a self-managed Kubernetes cluster hosted entirely on Oracle Cloud Infrastructure's Always Free tier — no monthly infrastructure cost.
Live: ederbrito.com.br
This repository contains the full source for my personal portfolio site and the infrastructure that runs it. It serves two purposes:
- A working portfolio — built with Next.js, featuring a blog, project showcase, photo gallery, and about page.
- An infrastructure template — a reproducible, zero-cost Kubernetes setup on OCI that others can fork and adapt.
| Layer | Technology |
|---|---|
| Frontend | Next.js 16, React 19, TypeScript, Once UI |
| Container | Docker (multi-stage, node:24-alpine, non-root) |
| Orchestration | Kubernetes 1.36 on OCI (Oracle Kubernetes Engine) |
| CNI / networking | Cilium (exclusive) + Hubble |
| Ingress | Cilium Gateway API |
| TLS | cert-manager + Let's Encrypt |
| Observability | Prometheus, Grafana, Loki, Alloy, cAdvisor, Node Exporter, Jaeger, Hubble |
| Infrastructure | Terraform (OCI provider) |
| CI/CD | GitHub Actions |
| Cloud | Oracle Cloud Infrastructure — Always Free tier |
Internet
│
▼
OCI Load Balancer (free tier)
│
▼
Cilium Gateway (Gateway API)
│
├──▶ ederbrito.com.br → Next.js frontend (namespace: ederbrito)
├──▶ grafana.ederbrito.com.br → Grafana
├──▶ jaeger.ederbrito.com.br → Jaeger
├──▶ prometheus.ederbrito.com.br → Prometheus
├──▶ loki.ederbrito.com.br → Loki
└──▶ hubble.ederbrito.com.br → Hubble UI
OKE Cluster (2× VM.Standard.A1.Flex — ARM, 2 OCPUs / 12GB RAM each)
Private subnet ← NAT Gateway → Internet
Terraform provisions the OCI infrastructure (VCN, OKE cluster, DNS). Cilium/Hubble, cert-manager, and Kubernetes manifests handle everything running inside the cluster.
The entire setup runs at $0/month using OCI's Always Free tier with an external DNS provider (e.g., Cloudflare). If using OCI DNS, the cost is ~$0.50/month for the DNS zone.
See the infrastructure README for a full breakdown.
ederbrito.com.br/
├── AGENTS.md # Short guide for AI coding tools
├── src/
│ └── frontend/ # Next.js application → see src/frontend/README.md
└── sre/
├── frontend/ # Kubernetes manifests for the frontend app
├── dashboards/ # Grafana JSON dashboards (manual import)
└── common/ # Terraform (OCI infra) + platform/observability manifests
# → see sre/README.md
- Agent guide (AI tools) — short monorepo map and edit boundaries
- Frontend — setup, local dev, deployment
- Infrastructure — Terraform, Kubernetes, observability, CI/CD
MIT — see LICENSE.
The frontend is based on Magic Portfolio (CC BY-NC 4.0). Attribution required; commercial use requires an Once UI Pro license.
Éder Brito — ederbrito.com.br · GitHub