2 KiB
SYSTEM_LAB // Portfolio & The_Forge
A high-performance, containerized professional portfolio and R&D lab built with Next.js 15, Tailwind CSS, and TypeScript. This project serves as both a public showcase and a dynamic bridge to a private Forgejo instance for real-time development tracking.
🏗️ Architecture Summary
- Infrastructure: Hosted on a Hetzner cloud node.
- Containerization: Fully Dockerized for linux/amd64 architectures.
- CI/CD: Automated build and deployment via Woodpecker CI.
- CDN: Assets and media served via Bunny CDN for global performance.
- Data Layer: Dynamic changelog fetching from private repositories via Forgejo API.
🛠️ Technical Stack
- Framework: Next.js 15 (App Router).
- Styling: Tailwind CSS with a monospace "Technical Lab" aesthetic.
- Icons: Lucide React.
- Deployment: Docker Compose with
force-dynamicruntime environment injection.
🚀 Deployment & Build
The project utilizes a specialized build process to ensure compatibility with the production Hetzner node environment:
Manual Build
docker buildx build --platform linux/amd64 -t portfolio:latest .
Automated Pipeline
Deployments are triggered via Git Releases. The Woodpecker pipeline executes the following steps: -Build: Compiles the Next.js application for linux/amd64. -Push: Uploads the image to a private container registry. -Deploy: Re-creates the container on the Hetzner node, injecting the FORGEJO_TOKEN from a secure .env file at runtime.
🧪 The_Forge Integration
"The Forge" is a dynamic project log system that provides a glimpse into active R&D cycles. -Metadata: Configured via data/forge.ts for project-specific details. -Real-time Logs: Fetched server-side from private changelog.md files. -Status: Includes a conditional ACTIVE_STREAM pulse based on commit recency. -Performance: Utilizes Next.js data caching with a 1-hour revalidation window.
Built for performance and technical transparency.