693 lines
39 KiB
HTML
693 lines
39 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>LemonLink | Homelab & Services</title>
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Space+Grotesk:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
<link rel="stylesheet" href="styles.css">
|
|
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🍋</text></svg>">
|
|
</head>
|
|
<body>
|
|
<!-- Animated Background -->
|
|
<div class="bg-animation">
|
|
<div class="bg-blob blob-1"></div>
|
|
<div class="bg-blob blob-2"></div>
|
|
<div class="bg-blob blob-3"></div>
|
|
<div class="bg-grid"></div>
|
|
</div>
|
|
|
|
<!-- Navigation -->
|
|
<nav class="navbar">
|
|
<div class="nav-container">
|
|
<a href="#" class="logo">
|
|
<span class="logo-icon">🍋</span>
|
|
<span class="logo-text">Lemon<span class="logo-highlight">Link</span></span>
|
|
</a>
|
|
<ul class="nav-links">
|
|
<li><a href="#homelab" class="nav-link">Homelab</a></li>
|
|
<li><a href="#services" class="nav-link">Services</a></li>
|
|
<li><a href="#projects" class="nav-link">Projects</a></li>
|
|
<li><a href="#network" class="nav-link">Network</a></li>
|
|
<li><a href="#contact" class="nav-link nav-cta">Get in Touch</a></li>
|
|
</ul>
|
|
<button class="mobile-menu-btn" aria-label="Toggle menu">
|
|
<span></span>
|
|
<span></span>
|
|
<span></span>
|
|
</button>
|
|
</div>
|
|
</nav>
|
|
|
|
<!-- Hero Section -->
|
|
<section class="hero">
|
|
<div class="hero-content">
|
|
<div class="hero-badge">
|
|
<span class="badge-dot"></span>
|
|
<span>Systems Online</span>
|
|
</div>
|
|
<h1 class="hero-title">
|
|
<span class="title-line">Welcome to</span>
|
|
<span class="title-line title-gradient">LemonLink</span>
|
|
</h1>
|
|
<p class="hero-subtitle">
|
|
A powerful homelab ecosystem running on enterprise-grade hardware.
|
|
Hosting 50+ services across dual Xeon servers and Raspberry Pi 5.
|
|
Built by ImpulsiveFPS with passion for self-hosting.
|
|
</p>
|
|
<div class="hero-stats">
|
|
<div class="stat-item">
|
|
<span class="stat-number" data-target="99.9">0</span>
|
|
<span class="stat-suffix">%</span>
|
|
<span class="stat-label">Uptime</span>
|
|
</div>
|
|
<div class="stat-item">
|
|
<span class="stat-number" data-target="24">0</span>
|
|
<span class="stat-suffix">/7</span>
|
|
<span class="stat-label">Monitoring</span>
|
|
</div>
|
|
<div class="stat-item">
|
|
<span class="stat-number" data-target="50">0</span>
|
|
<span class="stat-suffix">+</span>
|
|
<span class="stat-label">Containers</span>
|
|
</div>
|
|
</div>
|
|
<div class="hero-cta">
|
|
<a href="#services" class="btn btn-primary">
|
|
<span>Explore Services</span>
|
|
<svg class="btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M5 12h14M12 5l7 7-7 7"/>
|
|
</svg>
|
|
</a>
|
|
<a href="#homelab" class="btn btn-secondary">
|
|
<span>View Homelab</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="hero-visual">
|
|
<div class="server-rack">
|
|
<div class="server-unit">
|
|
<div class="server-lights">
|
|
<span class="light green"></span>
|
|
<span class="light blue"></span>
|
|
<span class="light amber"></span>
|
|
</div>
|
|
<div class="server-vents"></div>
|
|
</div>
|
|
<div class="server-unit">
|
|
<div class="server-lights">
|
|
<span class="light green"></span>
|
|
<span class="light blue"></span>
|
|
<span class="light amber"></span>
|
|
</div>
|
|
<div class="server-vents"></div>
|
|
</div>
|
|
<div class="server-unit">
|
|
<div class="server-lights">
|
|
<span class="light green"></span>
|
|
<span class="light blue"></span>
|
|
<span class="light amber"></span>
|
|
</div>
|
|
<div class="server-vents"></div>
|
|
</div>
|
|
<div class="server-unit">
|
|
<div class="server-lights">
|
|
<span class="light green"></span>
|
|
<span class="light blue"></span>
|
|
<span class="light amber"></span>
|
|
</div>
|
|
<div class="server-vents"></div>
|
|
</div>
|
|
</div>
|
|
<div class="floating-cards">
|
|
<div class="float-card card-1">
|
|
<span class="card-icon">🐳</span>
|
|
<span>Docker</span>
|
|
</div>
|
|
<div class="float-card card-2">
|
|
<span class="card-icon">☸️</span>
|
|
<span>K8s</span>
|
|
</div>
|
|
<div class="float-card card-3">
|
|
<span class="card-icon">🔒</span>
|
|
<span>Secure</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Homelab Section -->
|
|
<section id="homelab" class="section homelab-section">
|
|
<div class="section-container">
|
|
<div class="section-header">
|
|
<span class="section-badge">🏠 Infrastructure</span>
|
|
<h2 class="section-title">The Homelab</h2>
|
|
<p class="section-desc">A powerful self-hosted ecosystem running on enterprise-grade hardware</p>
|
|
</div>
|
|
|
|
<div class="homelab-grid">
|
|
<div class="infra-card featured">
|
|
<div class="infra-visual">
|
|
<div class="rack-animation">
|
|
<div class="rack-unit active">
|
|
<div class="unit-leds">
|
|
<span></span><span></span><span></span><span></span>
|
|
</div>
|
|
</div>
|
|
<div class="rack-unit active">
|
|
<div class="unit-leds">
|
|
<span></span><span></span><span></span><span></span>
|
|
</div>
|
|
</div>
|
|
<div class="rack-unit active">
|
|
<div class="unit-leds">
|
|
<span></span><span></span><span></span><span></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="infra-content">
|
|
<h3>Proxmox Server</h3>
|
|
<p>Dell PowerEdge with dual Xeon processors running Proxmox VE with 50+ containers and VMs</p>
|
|
<div class="infra-specs">
|
|
<span class="spec">24 Cores</span>
|
|
<span class="spec">96 GB RAM</span>
|
|
<span class="spec">2x Xeon E5645</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="infra-card">
|
|
<div class="infra-icon">🖧</div>
|
|
<div class="infra-content">
|
|
<h3>Network Stack</h3>
|
|
<p>1 Gbps fiber internet with managed switching and Tailscale mesh VPN</p>
|
|
<div class="infra-specs">
|
|
<span class="spec">1 Gbps</span>
|
|
<span class="spec">Tailscale</span>
|
|
<span class="spec">NPM</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="infra-card">
|
|
<div class="infra-icon">💾</div>
|
|
<div class="infra-content">
|
|
<h3>Storage Array</h3>
|
|
<p>TrueNAS SCALE with 12TB raw storage for media, backups, and datasets</p>
|
|
<div class="infra-specs">
|
|
<span class="spec">12 TB Raw</span>
|
|
<span class="spec">9 TB Usable</span>
|
|
<span class="spec">SCALE</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="infra-card">
|
|
<div class="infra-icon">🍓</div>
|
|
<div class="infra-content">
|
|
<h3>RPi 5 Node</h3>
|
|
<p>Raspberry Pi 5 8GB with 128GB NVMe running Docker containers and Portainer</p>
|
|
<div class="infra-specs">
|
|
<span class="spec">8GB RAM</span>
|
|
<span class="spec">128GB NVMe</span>
|
|
<span class="spec">ARM64</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="tech-stack">
|
|
<h3 class="stack-title">Powered By</h3>
|
|
<div class="stack-marquee">
|
|
<div class="stack-track">
|
|
<span class="tech-item">Proxmox</span>
|
|
<span class="tech-item">Docker</span>
|
|
<span class="tech-item">Kubernetes</span>
|
|
<span class="tech-item">TrueNAS</span>
|
|
<span class="tech-item">UniFi</span>
|
|
<span class="tech-item">Nginx</span>
|
|
<span class="tech-item">Traefik</span>
|
|
<span class="tech-item">Prometheus</span>
|
|
<span class="tech-item">Grafana</span>
|
|
<span class="tech-item">Portainer</span>
|
|
<span class="tech-item">Proxmox</span>
|
|
<span class="tech-item">Docker</span>
|
|
<span class="tech-item">Kubernetes</span>
|
|
<span class="tech-item">TrueNAS</span>
|
|
<span class="tech-item">UniFi</span>
|
|
<span class="tech-item">Nginx</span>
|
|
<span class="tech-item">Traefik</span>
|
|
<span class="tech-item">Prometheus</span>
|
|
<span class="tech-item">Grafana</span>
|
|
<span class="tech-item">Portainer</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Services Section -->
|
|
<section id="services" class="section services-section">
|
|
<div class="section-container">
|
|
<div class="section-header">
|
|
<span class="section-badge">⚡ Available Now</span>
|
|
<h2 class="section-title">Services</h2>
|
|
<p class="section-desc">Self-hosted applications running on the LemonLink infrastructure</p>
|
|
</div>
|
|
|
|
<!-- Public Services -->
|
|
<div class="services-category">
|
|
<h3 class="category-title">
|
|
<span class="category-icon">🌐</span>
|
|
Public Services
|
|
</h3>
|
|
<div class="services-grid">
|
|
<a href="https://git.lemonlink.eu" class="service-card public" target="_blank" rel="noopener">
|
|
<div class="service-glow"></div>
|
|
<div class="service-icon" style="--icon-color: #609926; font-size: 28px;">🍵</div>
|
|
<h3 class="service-name">Gitea</h3>
|
|
<p class="service-desc">Self-hosted Git service for code repositories</p>
|
|
<div class="service-status checking" data-status-url="https://git.lemonlink.eu/api/v1/version">
|
|
<span class="status-dot"></span>
|
|
<span class="status-text">Checking...</span>
|
|
</div>
|
|
<div class="service-arrow">
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M7 17L17 7M17 7H7M17 7V17"/>
|
|
</svg>
|
|
</div>
|
|
</a>
|
|
|
|
<a href="https://tool.lemonlink.eu" class="service-card public" target="_blank" rel="noopener">
|
|
<div class="service-glow"></div>
|
|
<div class="service-icon" style="--icon-color: #f59e0b; font-size: 28px;">🔧</div>
|
|
<h3 class="service-name">IT-Tools</h3>
|
|
<p class="service-desc">Handy tools for developers and IT professionals</p>
|
|
<div class="service-status checking" data-status-url="https://tool.lemonlink.eu">
|
|
<span class="status-dot"></span>
|
|
<span class="status-text">Checking...</span>
|
|
</div>
|
|
<div class="service-arrow">
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M7 17L17 7M17 7H7M17 7V17"/>
|
|
</svg>
|
|
</div>
|
|
</a>
|
|
|
|
<a href="https://retro.lemonlink.eu" class="service-card public" target="_blank" rel="noopener">
|
|
<div class="service-glow"></div>
|
|
<div class="service-icon" style="--icon-color: #8b5cf6; font-size: 28px;">👾</div>
|
|
<h3 class="service-name">Retro Arcade</h3>
|
|
<p class="service-desc">Play classic DOS games including Doom! (Legally free)</p>
|
|
<div class="service-status checking" data-status-url="https://retro.lemonlink.eu">
|
|
<span class="status-dot"></span>
|
|
<span class="status-text">Checking...</span>
|
|
</div>
|
|
<div class="service-arrow">
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M7 17L17 7M17 7H7M17 7V17"/>
|
|
</svg>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Private Services -->
|
|
<div class="services-category">
|
|
<h3 class="category-title">
|
|
<span class="category-icon">🔒</span>
|
|
Private Services
|
|
</h3>
|
|
<div class="services-grid">
|
|
<a href="./services/nextcloud.html" class="service-card private-service" target="_blank">
|
|
<div class="service-glow"></div>
|
|
<div class="service-icon" style="--icon-color: #0082c9; font-size: 28px;">☁️</div>
|
|
<h3 class="service-name">Nextcloud</h3>
|
|
<p class="service-desc">Private cloud storage, files, and collaboration</p>
|
|
<div class="service-status online">
|
|
<span class="status-dot"></span>
|
|
<span>Restricted</span>
|
|
</div>
|
|
<div class="service-arrow">
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M7 17L17 7M17 7H7M17 7V17"/>
|
|
</svg>
|
|
</div>
|
|
</a>
|
|
|
|
<a href="./services/netdata.html" class="service-card private-service" target="_blank">
|
|
<div class="service-glow"></div>
|
|
<div class="service-icon" style="--icon-color: #00ab44; font-size: 28px;">📈</div>
|
|
<h3 class="service-name">Netdata</h3>
|
|
<p class="service-desc">Real-time system monitoring and metrics</p>
|
|
<div class="service-status online">
|
|
<span class="status-dot"></span>
|
|
<span>Restricted</span>
|
|
</div>
|
|
<div class="service-arrow">
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M7 17L17 7M17 7H7M17 7V17"/>
|
|
</svg>
|
|
</div>
|
|
</a>
|
|
|
|
<div class="service-card private-service" data-service="immich">
|
|
<div class="service-glow"></div>
|
|
<div class="service-icon" style="--icon-color: #ad5c5c; font-size: 28px;">🖼️</div>
|
|
<h3 class="service-name">Immich</h3>
|
|
<p class="service-desc">Self-hosted photo and video backup solution</p>
|
|
<div class="service-status online">
|
|
<span class="status-dot"></span>
|
|
<span>Restricted</span>
|
|
</div>
|
|
<div class="service-arrow">
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/>
|
|
</svg>
|
|
</div>
|
|
</div>
|
|
|
|
<a href="./services/portainer.html" class="service-card private-service" target="_blank">
|
|
<div class="service-glow"></div>
|
|
<div class="service-icon" style="--icon-color: #13b6a6; font-size: 28px;">🐳</div>
|
|
<h3 class="service-name">Portainer</h3>
|
|
<p class="service-desc">Docker container management interface</p>
|
|
<div class="service-status online">
|
|
<span class="status-dot"></span>
|
|
<span>Restricted</span>
|
|
</div>
|
|
<div class="service-arrow">
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M7 17L17 7M17 7H7M17 7V17"/>
|
|
</svg>
|
|
</div>
|
|
</a>
|
|
|
|
<a href="./services/pihole.html" class="service-card private-service" target="_blank">
|
|
<div class="service-glow"></div>
|
|
<div class="service-icon" style="--icon-color: #f97316; font-size: 28px;">🛡️</div>
|
|
<h3 class="service-name">Pi-hole</h3>
|
|
<p class="service-desc">Network-wide ad blocking and DNS filtering</p>
|
|
<div class="service-status online">
|
|
<span class="status-dot"></span>
|
|
<span>Restricted</span>
|
|
</div>
|
|
<div class="service-arrow">
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M7 17L17 7M17 7H7M17 7V17"/>
|
|
</svg>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Projects Section -->
|
|
<section id="projects" class="section projects-section">
|
|
<div class="section-container">
|
|
<div class="section-header">
|
|
<span class="section-badge">🚀 Creations</span>
|
|
<h2 class="section-title">Projects</h2>
|
|
<p class="section-desc">Things I've built and contributed to</p>
|
|
</div>
|
|
|
|
<div class="projects-showcase">
|
|
<div class="project-card large">
|
|
<div class="project-image">
|
|
<div class="project-visual">
|
|
<div class="code-window">
|
|
<div class="window-header">
|
|
<span class="win-btn red"></span>
|
|
<span class="win-btn yellow"></span>
|
|
<span class="win-btn green"></span>
|
|
</div>
|
|
<div class="window-content">
|
|
<div class="code-line"><span class="code-keyword">const</span> <span class="code-var">project</span> = {</div>
|
|
<div class="code-line"> name: <span class="code-string">"Awesome App"</span>,</div>
|
|
<div class="code-line"> status: <span class="code-string">"Production"</span>,</div>
|
|
<div class="code-line"> stars: <span class="code-number">1337</span></div>
|
|
<div class="code-line">};</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="project-info">
|
|
<div class="project-tags">
|
|
<span class="tag">React</span>
|
|
<span class="tag">TypeScript</span>
|
|
<span class="tag">Node.js</span>
|
|
</div>
|
|
<h3 class="project-name">LemonLink Infrastructure</h3>
|
|
<p class="project-desc">A comprehensive homelab setup running 50+ Docker containers across dual Xeon servers and Raspberry Pi 5. Features automated deployments, monitoring, and a complete self-hosted ecosystem.</p>
|
|
<div class="project-links">
|
|
<a href="https://git.lemonlink.eu/impulsivefps" class="project-link" target="_blank">
|
|
<svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
|
|
<span>View on Gitea</span>
|
|
</a>
|
|
<a href="https://dash.lemonlink.eu" class="project-link" target="_blank">
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6M15 3h6v6M10 14L21 3"/>
|
|
</svg>
|
|
<span>Dashboard</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="projects-small">
|
|
<div class="project-card small">
|
|
<div class="project-tags">
|
|
<span class="tag">Docker</span>
|
|
<span class="tag">Proxmox</span>
|
|
</div>
|
|
<h3 class="project-name">Container Platform</h3>
|
|
<p class="project-desc">50+ containers managed via Portainer on Proxmox and RPi5</p>
|
|
<a href="https://git.lemonlink.eu/impulsivefps" class="project-link" target="_blank">
|
|
<svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="project-card small">
|
|
<div class="project-tags">
|
|
<span class="tag">NAS</span>
|
|
<span class="tag">ZFS</span>
|
|
</div>
|
|
<h3 class="project-name">TrueNAS SCALE</h3>
|
|
<p class="project-desc">12TB storage array with 9TB usable for media and backups</p>
|
|
<a href="https://git.lemonlink.eu/impulsivefps" class="project-link" target="_blank">
|
|
<svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="project-card small">
|
|
<div class="project-tags">
|
|
<span class="tag">VPN</span>
|
|
<span class="tag">Mesh</span>
|
|
</div>
|
|
<h3 class="project-name">Tailscale Network</h3>
|
|
<p class="project-desc">Zero-config mesh VPN connecting all nodes securely</p>
|
|
<a href="https://git.lemonlink.eu/impulsivefps" class="project-link" target="_blank">
|
|
<svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Skills & Stack Section -->
|
|
<section id="skills" class="section skills-section">
|
|
<div class="section-container">
|
|
<div class="section-header">
|
|
<span class="section-badge">🛠️ Toolbox</span>
|
|
<h2 class="section-title">Skills & Stack</h2>
|
|
<p class="section-desc">Technologies and tools powering the homelab</p>
|
|
</div>
|
|
|
|
<div class="tech-grid">
|
|
<!-- Virtualization -->
|
|
<div class="tech-card">
|
|
<div class="tech-header">
|
|
<div class="tech-icon" style="--icon-bg: rgba(229, 126, 32, 0.15); --icon-color: #e57e20;">📦</div>
|
|
<h3 class="tech-title">Virtualization</h3>
|
|
</div>
|
|
<div class="tech-items">
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #e57e20;"></span>Proxmox VE</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #e57e20;"></span>KVM/QEMU</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #e57e20;"></span>LXC</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #e57e20;"></span>VMware</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Containerization -->
|
|
<div class="tech-card">
|
|
<div class="tech-header">
|
|
<div class="tech-icon" style="--icon-bg: rgba(36, 150, 237, 0.15); --icon-color: #2496ed;">🐳</div>
|
|
<h3 class="tech-title">Containers</h3>
|
|
</div>
|
|
<div class="tech-items">
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #2496ed;"></span>Docker</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #2496ed;"></span>Compose</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #2496ed;"></span>Portainer</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #2496ed;"></span>Kubernetes</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Networking -->
|
|
<div class="tech-card">
|
|
<div class="tech-header">
|
|
<div class="tech-icon" style="--icon-bg: rgba(34, 211, 238, 0.15); --icon-color: #22d3ee;">🌐</div>
|
|
<h3 class="tech-title">Networking</h3>
|
|
</div>
|
|
<div class="tech-items">
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #22d3ee;"></span>Nginx PM</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #22d3ee;"></span>Tailscale</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #22d3ee;"></span>VLANs</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #22d3ee;"></span>WireGuard</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Storage -->
|
|
<div class="tech-card">
|
|
<div class="tech-header">
|
|
<div class="tech-icon" style="--icon-bg: rgba(139, 92, 246, 0.15); --icon-color: #8b5cf6;">💾</div>
|
|
<h3 class="tech-title">Storage</h3>
|
|
</div>
|
|
<div class="tech-items">
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #8b5cf6;"></span>TrueNAS</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #8b5cf6;"></span>ZFS</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #8b5cf6;"></span>NFS</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #8b5cf6;"></span>Samba</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Monitoring -->
|
|
<div class="tech-card">
|
|
<div class="tech-header">
|
|
<div class="tech-icon" style="--icon-bg: rgba(34, 197, 94, 0.15); --icon-color: #22c55e;">📊</div>
|
|
<h3 class="tech-title">Monitoring</h3>
|
|
</div>
|
|
<div class="tech-items">
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #22c55e;"></span>Netdata</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #22c55e;"></span>Grafana</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #22c55e;"></span>Prometheus</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #22c55e;"></span>Uptime Kuma</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Development -->
|
|
<div class="tech-card">
|
|
<div class="tech-header">
|
|
<div class="tech-icon" style="--icon-bg: rgba(245, 158, 11, 0.15); --icon-color: #f59e0b;">⚡</div>
|
|
<h3 class="tech-title">Development</h3>
|
|
</div>
|
|
<div class="tech-items">
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #f59e0b;"></span>Git/Gitea</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #f59e0b;"></span>CI/CD</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #f59e0b;"></span>Bash</div>
|
|
<div class="tech-item"><span class="dot" style="--dot-color: #f59e0b;"></span>Python</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Contact Section -->
|
|
<section id="contact" class="section contact-section">
|
|
<div class="section-container">
|
|
<div class="contact-card">
|
|
<div class="contact-content">
|
|
<span class="section-badge">👋 Let's Connect</span>
|
|
<h2 class="contact-title">ImpulsiveFPS</h2>
|
|
<p class="contact-desc">Homelab enthusiast running 50+ services on dual Xeon hardware. Passionate about self-hosting, networking, and building reliable infrastructure. This site showcases my journey into the world of self-hosted solutions.</p>
|
|
<div class="contact-actions">
|
|
<a href="https://git.lemonlink.eu/impulsivefps" class="btn btn-primary btn-large" target="_blank">
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/>
|
|
<polyline points="22,6 12,13 2,6"/>
|
|
</svg>
|
|
<span>View My Gitea</span>
|
|
</a>
|
|
</div>
|
|
<div class="social-links" style="display: none;">
|
|
<!-- Social links hidden until set up -->
|
|
</div>
|
|
</div>
|
|
<div class="contact-visual">
|
|
<div class="terminal">
|
|
<div class="terminal-header">
|
|
<span class="terminal-dot red"></span>
|
|
<span class="terminal-dot yellow"></span>
|
|
<span class="terminal-dot green"></span>
|
|
</div>
|
|
<div class="terminal-body">
|
|
<div class="terminal-line">
|
|
<span class="prompt">➜</span>
|
|
<span class="path">~</span>
|
|
<span class="command">whoami</span>
|
|
</div>
|
|
<div class="terminal-output">lemon_admin</div>
|
|
<div class="terminal-line">
|
|
<span class="prompt">➜</span>
|
|
<span class="path">~</span>
|
|
<span class="command">uptime</span>
|
|
</div>
|
|
<div class="terminal-output">99.9% availability</div>
|
|
<div class="terminal-line">
|
|
<span class="prompt">➜</span>
|
|
<span class="path">~</span>
|
|
<span class="cursor">|</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Footer -->
|
|
<footer class="footer">
|
|
<div class="footer-container">
|
|
<div class="footer-brand">
|
|
<a href="#" class="logo">
|
|
<span class="logo-icon">🍋</span>
|
|
<span class="logo-text">Lemon<span class="logo-highlight">Link</span></span>
|
|
</a>
|
|
<p class="footer-tagline">Built by ImpulsiveFPS with 💛 and lots of ☕</p>
|
|
</div>
|
|
<div class="footer-links">
|
|
<div class="footer-col">
|
|
<h4>Navigation</h4>
|
|
<a href="#homelab">Homelab</a>
|
|
<a href="#services">Services</a>
|
|
<a href="#projects">Projects</a>
|
|
<a href="#network">Network</a>
|
|
</div>
|
|
<div class="footer-col">
|
|
<h4>Services</h4>
|
|
<a href="https://cloud.lemonlink.eu" target="_blank">Nextcloud</a>
|
|
<a href="https://media.lemonlink.eu" target="_blank">Jellyfin</a>
|
|
<a href="https://git.lemonlink.eu" target="_blank">GitLab</a>
|
|
<a href="https://monitor.lemonlink.eu" target="_blank">Monitoring</a>
|
|
</div>
|
|
<div class="footer-col">
|
|
<h4>Connect</h4>
|
|
<a href="https://git.lemonlink.eu/impulsivefps">Gitea</a>
|
|
<a href="https://dash.lemonlink.eu">Dashboard</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="footer-bottom">
|
|
<p>© 2026 LemonLink. All rights reserved.</p>
|
|
<p class="footer-made">Powered by 2x Xeon E5645 | 96GB RAM | TrueNAS SCALE</p>
|
|
</div>
|
|
</footer>
|
|
|
|
<script src="script.js"></script>
|
|
</body>
|
|
</html>
|