diff --git a/README.md b/README.md index e215bc4..4ae9300 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,47 @@ -This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). +# SYSTEM_LAB // Portfolio & The_Forge -## Getting Started +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. -First, run the development server: +## ๐Ÿ—๏ธ 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-dynamic` runtime environment injection. + +## ๐Ÿš€ Deployment & Build + +The project utilizes a specialized build process to ensure compatibility with the production Hetzner node environment: + +### Manual Build ```bash -npm run dev -# or -yarn dev -# or -pnpm dev -# or -bun dev +docker buildx build --platform linux/amd64 -t portfolio:latest . ``` -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. +### Automated Pipeline -You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. +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. -This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. +## ๐Ÿงช The_Forge Integration -## Learn More +"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. -To learn more about Next.js, take a look at the following resources: +--- -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. - -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! - -## Deploy on Vercel - -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. - -Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. +Built for performance and technical transparency.