Jun ’25 – Present




I built this portfolio with React and Next.js and host it on a Raspberry Pi. A private dashboard lets me manage the content shown on its pages.
GitHub Actions deploys the site through a self-hosted runner on the Raspberry Pi. The runner builds a Docker image and deploys it to the Pi.
The Raspberry Pi runs the Next.js app in Docker. Nginx reverse-proxies requests, and Cloudflare Tunnel exposes the site securely without opening inbound ports.
The private dashboard lets me create and update project pages, descriptions, tags, collaborators, and media. The backend validates updates and stores the content in MongoDB. Prisma defines the data models and provides the database client. Public pages read saved project data through the app’s data layer.
Drag to pan · pinch or scroll to zoom
Rendering diagram…