No description
| backend | ||
| frontend | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
🌐 Portfolio Website
Personal portfolio website built with modern technologies.
Live: simonemiglio.eu
📌 Primary Repository: Forgejo
🪞 Mirrors: GitHub • GitLab • Codeberg
📋 Table of Contents
🛠 Tech Stack
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | Vue 3 + Vite | SPA framework & build tool |
| Backend | ElysiaJS + Bun | API server |
| Language | TypeScript | Type safety |
| Styling | CSS3 | Custom design |
| Container | Podman | Production deployment |
🚀 Quick Start
Prerequisites
- Bun (v1.0+)
Installation
# Clone the repository
git clone https://forgejo.it/simonemiglio/Website.git
cd Website
# Install and run backend
cd backend
bun install
bun run dev
# In a new terminal - install and run frontend
cd frontend
bun install
bun run dev
Access
| Service | URL |
|---|---|
| Frontend (dev) | http://localhost:5173 |
| Backend API | http://localhost:3000 |
| API Docs | http://localhost:3000/api/docs |
📁 Project Structure
Website/
├── backend/ # ElysiaJS API Server
│ ├── src/
│ │ ├── modules/ # API endpoints
│ │ │ ├── bio/ # Personal info
│ │ │ ├── projects/ # Portfolio projects
│ │ │ ├── skills/ # Technical skills
│ │ │ └── connect/ # Contact endpoints
│ │ └── index.ts # Entry point
│ ├── Containerfile # Production container
│ └── package.json
│
├── frontend/ # Vue 3 SPA
│ ├── src/
│ │ ├── components/ # Vue components
│ │ │ ├── layout/ # Header, Footer
│ │ │ └── sections/ # Page sections
│ │ ├── App.vue # Root component
│ │ └── main.ts # Entry point
│ ├── public/ # Static assets
│ ├── Containerfile # Production container
│ └── package.json
│
└── README.md
💻 Development
Backend Development
cd backend
bun run dev # Starts with hot-reload on port 3000
The backend auto-restarts on file changes.
Frontend Development
cd frontend
bun run dev # Starts Vite dev server on port 5173
Vite provides Hot Module Replacement (HMR) for instant updates.
API Proxy
The frontend dev server is configured to proxy /api/* requests to the backend at localhost:3000.
📦 Production Build
Frontend
cd frontend
bun run build
Creates optimized static files in frontend/dist/.
Backend
The backend runs TypeScript directly with Bun in production:
cd backend
bun src/index.ts
🚢 Deployment
This project is designed for deployment with Podman on a Linux server.
Container Images
Both frontend/ and backend/ include Containerfile definitions:
# Build frontend
cd frontend
podman build -t portfolio-frontend .
# Build backend
cd backend
podman build -t portfolio-backend .
Infrastructure
For full server deployment including reverse proxy, see the Homelab repository which contains:
- Pod YAML definitions
- Caddy reverse proxy configuration
- Systemd Quadlet integration
📄 License
MIT License - See LICENSE for details.
Created by Simone Miglio 🇮🇹