# Portfolio Landing Page + Git Instance Visuals ## Architecture - **Root domain** (`https://gabrielpereira.me/`) → Portfolio landing page - **Git subdomain** (`https://git.gabrielpereira.me/`) → Gitea/Forgejo instance This separation means visitors hit the curated portfolio first, then choose which repository to explore. --- ## 1. Portfolio Landing Page The file `index.html` is a self-contained, single-file portfolio landing page. ### Deployment: Static Host (Recommended) **GitHub Pages** - Create repo `gabrielpereira/gabrielpereira.me` - Commit `index.html` as the repo root (or in `/docs` folder) - Enable Pages → deploy from root (or `/docs`) - In repo Settings → Pages, add custom domain `gabrielpereira.me` - Add DNS A record pointing to GitHub Pages IPs **Cloudflare Pages** - Drag `index.html` into Cloudflare Pages dashboard - Custom domain: `gabrielpereira.me` **Netlify / Vercel** - Drag the `portfolio/` folder into deploy UI - Set custom domain to `gabrielpereira.me` ### Deployment: Self-Hosted (Nginx/Caddy) Place `index.html` at: ``` /var/www/gabrielpereira.me/index.html ``` Nginx config: ```nginx server { listen 443 ssl; server_name gabrielpereira.me; root /var/www/gabrielpereira.me; index index.html; location / { try_files $uri $uri/ =404; } } server { listen 443 ssl; server_name git.gabrielpereira.me; location / { proxy_pass http://localhost:3000; # your Gitea/Forgejo proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; } } ``` Caddyfile: ``` gabrielpereira.me { root * /var/www/gabrielpereira.me file_server } git.gabrielpereira.me { reverse_proxy localhost:3000 } ``` --- ## 2. Gitea / Forgejo Visual Improvements The file `git-custom-header.html` contains both **CSS overrides** and an **HTML banner**. ### How to apply **Forgejo / Gitea v1.20+ (Admin Panel)** 1. Log in as admin → Site Administration → Customizations 2. Paste the `