191 lines
10 KiB
XML
191 lines
10 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080" shape-rendering="geometricPrecision">
|
||
<defs>
|
||
<!-- Dot grid -->
|
||
<pattern id="dots" width="48" height="48" patternUnits="userSpaceOnUse">
|
||
<circle cx="24" cy="24" r="1.1" fill="#c86800" opacity="0.14"/>
|
||
</pattern>
|
||
|
||
<!-- Scan lines -->
|
||
<pattern id="scanlines" width="1" height="4" patternUnits="userSpaceOnUse">
|
||
<rect width="1" height="2" fill="#000" opacity="1"/>
|
||
</pattern>
|
||
|
||
<!-- Glow for the >_ mark -->
|
||
<filter id="glow" x="-40%" y="-40%" width="180%" height="180%">
|
||
<feGaussianBlur stdDeviation="16" result="blur1"/>
|
||
<feGaussianBlur stdDeviation="5" result="blur2"/>
|
||
<feMerge>
|
||
<feMergeNode in="blur1"/>
|
||
<feMergeNode in="blur1"/>
|
||
<feMergeNode in="blur2"/>
|
||
<feMergeNode in="SourceGraphic"/>
|
||
</feMerge>
|
||
</filter>
|
||
|
||
<!-- Soft radial glow behind the mark -->
|
||
<radialGradient id="centerGlow" cx="50%" cy="50%" r="50%">
|
||
<stop offset="0%" stop-color="#e8870a" stop-opacity="0.07"/>
|
||
<stop offset="100%" stop-color="#e8870a" stop-opacity="0"/>
|
||
</radialGradient>
|
||
|
||
<!-- Vignette -->
|
||
<radialGradient id="vignette" cx="50%" cy="50%" r="72%">
|
||
<stop offset="0%" stop-color="#000" stop-opacity="0"/>
|
||
<stop offset="100%" stop-color="#000" stop-opacity="0.6"/>
|
||
</radialGradient>
|
||
</defs>
|
||
|
||
<!-- ============================================================
|
||
1. Background layers
|
||
============================================================ -->
|
||
<rect width="1920" height="1080" fill="#1a1918"/>
|
||
<rect width="1920" height="1080" fill="url(#dots)"/>
|
||
<rect width="1920" height="1080" fill="url(#scanlines)" opacity="0.035"/>
|
||
|
||
<!-- ============================================================
|
||
2. Corner text blocks — actual homelab / OpenBSD content
|
||
All at low opacity so they read as ambient context,
|
||
not competing with the central mark.
|
||
============================================================ -->
|
||
|
||
<!-- === TOP-LEFT: pf.conf (fw01) === -->
|
||
<g font-family="'Courier New', Courier, monospace" font-size="13" fill="#8a8075">
|
||
<!-- heading -->
|
||
<text x="80" y="96" opacity="0.55" fill="#b87838"># /etc/pf.conf -- fw01 (SuperMicro 1U)</text>
|
||
<text x="80" y="118" opacity="0.38">ext_if = "em0"</text>
|
||
<text x="80" y="136" opacity="0.38">vlan10 = "vlan10" <tspan opacity="0.6" fill="#5a5450"># servers</tspan></text>
|
||
<text x="80" y="154" opacity="0.38">vlan20 = "vlan20" <tspan opacity="0.6" fill="#5a5450"># desktop</tspan></text>
|
||
<text x="80" y="172" opacity="0.38">vlan30 = "vlan30" <tspan opacity="0.6" fill="#5a5450"># game</tspan></text>
|
||
<text x="80" y="190" opacity="0.38">vlan40 = "vlan40" <tspan opacity="0.6" fill="#5a5450"># iot/guest</tspan></text>
|
||
<text x="80" y="216" opacity="0.28" fill="#5a5450">set block-policy drop</text>
|
||
<text x="80" y="234" opacity="0.28" fill="#5a5450">set skip on lo</text>
|
||
<text x="80" y="252" opacity="0.28" fill="#5a5450">block all</text>
|
||
<text x="80" y="270" opacity="0.28" fill="#5a5450">antispoof for $ext_if inet</text>
|
||
<text x="80" y="296" opacity="0.38">pass in on $ext_if proto tcp \</text>
|
||
<text x="80" y="314" opacity="0.38"> to port { 22 80 443 } keep state</text>
|
||
<text x="80" y="332" opacity="0.38">pass out on $ext_if all keep state</text>
|
||
<text x="80" y="356" opacity="0.28" fill="#5a5450">pass in on $vlan10 all keep state</text>
|
||
<text x="80" y="374" opacity="0.28" fill="#5a5450">pass in on $vlan20 to $vlan10</text>
|
||
<text x="80" y="392" opacity="0.28" fill="#5a5450">block in on $vlan40 to 10.0.0.0/8</text>
|
||
</g>
|
||
|
||
<!-- === TOP-RIGHT: network topology === -->
|
||
<g font-family="'Courier New', Courier, monospace" font-size="13" fill="#8a8075" text-anchor="end">
|
||
<text x="1840" y="96" opacity="0.55" fill="#b87838"># ridgwaysystems.org -- network</text>
|
||
<text x="1840" y="118" opacity="0.38"> internet</text>
|
||
<text x="1840" y="136" opacity="0.28" fill="#5a5450"> |</text>
|
||
<text x="1840" y="154" opacity="0.42"> fw01 10.0.1.1 OpenBSD</text>
|
||
<text x="1840" y="172" opacity="0.32" fill="#5a5450"> pf relayd unbound wireguard</text>
|
||
<text x="1840" y="190" opacity="0.28" fill="#5a5450"> |</text>
|
||
<text x="1840" y="216" opacity="0.38">+-- vlan10 10.0.10.0/24 servers</text>
|
||
<text x="1840" y="234" opacity="0.28" fill="#5a5450">| srv01 R720 httpd gitea mail</text>
|
||
<text x="1840" y="252" opacity="0.28" fill="#5a5450">| srv02 R710 dns vmm backup</text>
|
||
<text x="1840" y="270" opacity="0.38">+-- vlan20 10.0.20.0/24 desktop</text>
|
||
<text x="1840" y="288" opacity="0.28" fill="#5a5450">| ws01 ansible control node</text>
|
||
<text x="1840" y="306" opacity="0.38">+-- vlan30 10.0.30.0/24 game</text>
|
||
<text x="1840" y="324" opacity="0.28" fill="#5a5450">| linux VMs via vmm(4)</text>
|
||
<text x="1840" y="342" opacity="0.38">+-- vlan40 10.0.40.0/24 iot/guest</text>
|
||
<text x="1840" y="360" opacity="0.28" fill="#5a5450"> block to 10.0.0.0/8</text>
|
||
</g>
|
||
|
||
<!-- === BOTTOM-LEFT: service status === -->
|
||
<g font-family="'Courier New', Courier, monospace" font-size="13" fill="#8a8075">
|
||
<text x="80" y="700" opacity="0.55" fill="#b87838">$ rcctl status</text>
|
||
<text x="80" y="722" opacity="0.38">httpd <tspan fill="#4a8a4a" opacity="0.9">active</tspan> srv01 :80 :443</text>
|
||
<text x="80" y="740" opacity="0.38">relayd <tspan fill="#4a8a4a" opacity="0.9">active</tspan> fw01 :80 :443</text>
|
||
<text x="80" y="758" opacity="0.38">unbound <tspan fill="#4a8a4a" opacity="0.9">active</tspan> fw01 :53</text>
|
||
<text x="80" y="776" opacity="0.38">nsd <tspan fill="#4a8a4a" opacity="0.9">active</tspan> srv02 :53</text>
|
||
<text x="80" y="794" opacity="0.38">smtpd <tspan fill="#4a8a4a" opacity="0.9">active</tspan> srv01 :25 :465</text>
|
||
<text x="80" y="812" opacity="0.38">gitea <tspan fill="#4a8a4a" opacity="0.9">active</tspan> srv01 :3000</text>
|
||
<text x="80" y="830" opacity="0.38">prometheus <tspan fill="#4a8a4a" opacity="0.9">active</tspan> srv01 :9090</text>
|
||
<text x="80" y="848" opacity="0.38">grafana <tspan fill="#4a8a4a" opacity="0.9">active</tspan> srv01 :3001</text>
|
||
<text x="80" y="866" opacity="0.38">wireguard <tspan fill="#4a8a4a" opacity="0.9">active</tspan> fw01 :51820</text>
|
||
<text x="80" y="884" opacity="0.38">matrix <tspan fill="#c8a020" opacity="0.9">degraded</tspan> srv01 :8448</text>
|
||
<text x="80" y="902" opacity="0.38">jellyfin <tspan fill="#4a8a4a" opacity="0.9">active</tspan> srv02 :8096</text>
|
||
<text x="80" y="920" opacity="0.28" fill="#5a5450">game-srv stopped srv02</text>
|
||
</g>
|
||
|
||
<!-- === BOTTOM-RIGHT: hardware inventory === -->
|
||
<g font-family="'Courier New', Courier, monospace" font-size="13" fill="#8a8075" text-anchor="end">
|
||
<text x="1840" y="700" opacity="0.55" fill="#b87838"># hardware inventory</text>
|
||
<text x="1840" y="722" opacity="0.42">fw01 SuperMicro 1U OpenBSD 7.6</text>
|
||
<text x="1840" y="740" opacity="0.28" fill="#5a5450"> Xeon E3-1230v2 / 16 GB ECC</text>
|
||
<text x="1840" y="758" opacity="0.28" fill="#5a5450"> pf · relayd · wireguard</text>
|
||
<text x="1840" y="782" opacity="0.42">srv01 Dell R720 OpenBSD 7.6</text>
|
||
<text x="1840" y="800" opacity="0.28" fill="#5a5450"> 2x Xeon E5-2600 / 64 GB ECC</text>
|
||
<text x="1840" y="818" opacity="0.28" fill="#5a5450"> httpd · gitea · smtpd · matrix</text>
|
||
<text x="1840" y="842" opacity="0.42">srv02 Dell R710 OpenBSD 7.6</text>
|
||
<text x="1840" y="860" opacity="0.28" fill="#5a5450"> Xeon X5650 / 48 GB ECC</text>
|
||
<text x="1840" y="878" opacity="0.28" fill="#5a5450"> nsd · vmm · jellyfin</text>
|
||
<text x="1840" y="902" opacity="0.42">ws01 desktop Linux</text>
|
||
<text x="1840" y="920" opacity="0.28" fill="#5a5450"> Ryzen / 32 GB ansible</text>
|
||
</g>
|
||
|
||
<!-- ============================================================
|
||
3. Center focal area
|
||
============================================================ -->
|
||
|
||
<!-- Soft radial glow behind the mark -->
|
||
<ellipse cx="960" cy="530" rx="540" ry="340" fill="url(#centerGlow)"/>
|
||
|
||
<!-- "OpenBSD" label above the mark -->
|
||
<text
|
||
x="960" y="368"
|
||
text-anchor="middle"
|
||
font-family="'Courier New', Courier, monospace"
|
||
font-size="15"
|
||
letter-spacing="10"
|
||
fill="#b87838"
|
||
opacity="0.55">OPENBSD HOMELAB</text>
|
||
|
||
<!-- >_ mark, centered: x span 740–1180, y span 390–692 -->
|
||
<g filter="url(#glow)">
|
||
<polyline
|
||
points="740,390 940,540 740,690"
|
||
fill="none"
|
||
stroke="#e8870a"
|
||
stroke-width="26"
|
||
stroke-linecap="round"
|
||
stroke-linejoin="round"/>
|
||
<line
|
||
x1="980" y1="690"
|
||
x2="1180" y2="690"
|
||
stroke="#e8870a"
|
||
stroke-width="26"
|
||
stroke-linecap="round"/>
|
||
</g>
|
||
|
||
<!-- Site name below the mark -->
|
||
<text
|
||
x="960" y="795"
|
||
text-anchor="middle"
|
||
font-family="'Courier New', Courier, monospace"
|
||
font-size="22"
|
||
letter-spacing="6"
|
||
fill="#5a5450"
|
||
opacity="0.8">ridgwaysystems.org</text>
|
||
|
||
<!-- ============================================================
|
||
4. Finishing
|
||
============================================================ -->
|
||
|
||
<!-- Corner bracket marks (brighter now) -->
|
||
<polyline points="52,84 52,52 84,52"
|
||
fill="none" stroke="#3a3836" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||
<polyline points="1836,52 1868,52 1868,84"
|
||
fill="none" stroke="#3a3836" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||
<polyline points="52,996 52,1028 84,1028"
|
||
fill="none" stroke="#3a3836" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||
<polyline points="1836,1028 1868,1028 1868,996"
|
||
fill="none" stroke="#3a3836" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||
|
||
<!-- Thin horizontal separator lines flanking the center mark -->
|
||
<line x1="80" y1="540" x2="640" y2="540"
|
||
stroke="#2e2c2a" stroke-width="1" opacity="0.6"/>
|
||
<line x1="1280" y1="540" x2="1840" y2="540"
|
||
stroke="#2e2c2a" stroke-width="1" opacity="0.6"/>
|
||
|
||
<!-- Vignette overlay -->
|
||
<rect width="1920" height="1080" fill="url(#vignette)"/>
|
||
</svg>
|