Fixed and updated README
This commit is contained in:
parent
4771990d3c
commit
1e94089b24
61
README.md
61
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.
|
||||
|
|
|
|||
Loading…
Reference in a new issue