This repository contains a full-stack portfolio website and API, designed for deployment via containers and orchestration. It consists of three main components:
- ASP.NET Core API (
aspnet-api/PortfolioBack): Serves as the backend for portfolio data, projects, skills, and assets. Uses PostgreSQL (with pgvector) for storage and supports vector search for advanced queries. Provides RESTful endpoints for frontend consumption. - Next.js Frontend (
nextjs-app): A modern, responsive portfolio site built with Next.js, React, TypeScript, Tailwind CSS, and Supabase. Features include an AI-powered chat, project gallery with carousels, contact page, dark mode, and integration with Supabase for data and image storage. - PostgreSQL: Database service with vector search support for semantic queries.
- AI-powered chat (frontend)
- Project gallery with carousels
- Contact page
- Responsive design & dark mode
- Supabase integration
- RESTful API for projects, skills, assets, and search
- Containerized deployment with Docker Compose
- Docker
- Node.js & npm (for frontend development)
- .NET SDK (for backend development)
- Clone the repository:
git clone https://github.com/theoriginaltudor/portfolio-vps.git cd portfolio-vps - Start services (all containers):
podman-compose -f db.compose.yaml up --build # or docker-compose -f db.compose.yaml up --build - Frontend:
cd nextjs-app npm install npm run dev - Backend:
cd aspnet-api/PortfolioBack dotnet run
- Use
compose.yamlfor production orchestration. - Nginx reverse proxies requests to Next.js and serves images from
/images/. - Environment variables for database and API connections are required.
/api/projects– List all projects/api/skills– List all skills/api/assets– Project assets/api/search– Vector search for projects/api/data-transfer– Data transfer operations
- ASP.NET Core, Entity Framework Core, PostgreSQL (pgvector)
- Next.js, React, TypeScript, Tailwind CSS, Supabase
- Docker / Podman Compose
aspnet-api/PortfolioBack/– Backend APInextjs-app/– Frontend appcompose.yaml,dev.compose.yaml– Container orchestration
MIT
For more details, see the individual README files in nextjs-app/ and backend folders.