Update index.html

This commit is contained in:
2026-06-21 01:34:59 +00:00
parent be07315b2b
commit 2d94331c4a
+169 -42
View File
@@ -8,99 +8,226 @@
</head> </head>
<body> <body>
<header class="hero"> <header class="hero">
<nav> <nav class="nav">
<div class="logo">ByteGeist</div> <div class="logo">ByteGeist</div>
<div class="nav-links"> <div class="nav-links">
<a href="#architecture">Architecture</a> <a href="#architecture">Architecture</a>
<a href="#operations">Operations</a>
<a href="#security">Security</a> <a href="#security">Security</a>
<a href="#cicd">CI/CD</a> <a href="#development">CI/CD</a>
<a href="#docs">Docs</a> <a href="#recovery">Recovery</a>
</div> </div>
</nav> </nav>
<section class="hero-content"> <section class="hero-grid">
<p class="eyebrow">Self-Hosted Infrastructure Lab</p> <div class="hero-content">
<p class="eyebrow">Self-Hosted Infrastructure Platform</p>
<h1>Infrastructure, security, monitoring, and automation built from scratch.</h1> <h1>Infrastructure, security, monitoring, and automation built from scratch.</h1>
<p class="subtext"> <p class="subtext">
ByteGeist Cloud is a self-hosted homelab platform running on Ubuntu, Docker, Authentik, ByteGeist Cloud is a self-hosted homelab platform running on Ubuntu, Docker,
Grafana, Loki, Prometheus, CrowdSec, Gitea, and Woodpecker CI. Authentik, Grafana, Loki, Prometheus, CrowdSec, Gitea, and Woodpecker CI.
</p> </p>
<div class="buttons"> <div class="buttons">
<a href="https://wiki.casko.dev" class="btn primary">View Documentation</a> <a href="https://wiki.casko.dev" class="btn primary">View Documentation</a>
<a href="https://git.casko.dev" class="btn secondary">View Git Server</a> <a href="https://git.casko.dev" class="btn secondary">View Git Server</a>
</div> </div>
</div>
<div class="hero-image">
<img src="assets/images/portfolio-grafana-operations.png" alt="ByteGeist Grafana operations dashboard" />
</div>
</section> </section>
</header> </header>
<main> <main>
<section class="stats"> <section class="stats">
<div><span>25+</span><p>Containers</p></div> <div><span>26</span><p>Containers</p></div>
<div><span>20+</span><p>Services</p></div> <div><span>20+</span><p>Services</p></div>
<div><span>SSO</span><p>Authentik</p></div> <div><span>SSO</span><p>Authentik</p></div>
<div><span>CI/CD</span><p>Woodpecker</p></div> <div><span>CI/CD</span><p>Woodpecker</p></div>
</section> </section>
<section id="architecture" class="section"> <section class="section intro">
<h2>Platform Overview</h2> <h2>What is ByteGeist?</h2>
<p> <p>
ByteGeist uses Nginx Proxy Manager for routing, Authentik for identity, Grafana and ByteGeist Cloud is a self-hosted infrastructure platform built to practice real-world
Prometheus for monitoring, Loki and Alloy for logs, and Woodpecker for automation. Linux administration, Docker operations, networking, identity management, monitoring,
logging, security hardening, backup planning, disaster recovery, and CI/CD automation.
</p> </p>
</section>
<div class="cards"> <section id="architecture" class="section">
<div class="card"> <div class="section-heading">
<h3>Infrastructure</h3> <p class="eyebrow">Architecture</p>
<p>Ubuntu 24.04, Docker, Docker Compose, Portainer, and Nginx Proxy Manager.</p> <h2>Platform Design</h2>
<p>
Traffic flows through Nginx Proxy Manager, authentication is centralized through
Authentik, and services are monitored, logged, backed up, and documented.
</p>
</div> </div>
<div class="card">
<h3>Identity</h3> <div class="feature-image wide">
<p>Centralized SSO using Authentik, OAuth2, OIDC, Forward Auth, and 2FA.</p> <img src="assets/images/bytegeist-architecture.png" alt="ByteGeist architecture diagram" />
</div> </div>
<div class="card"> </section>
<h3>Observability</h3>
<p>Grafana dashboards, Prometheus metrics, Loki logs, Node Exporter, and cAdvisor.</p> <section id="operations" class="section">
<div class="section-heading">
<p class="eyebrow">Operations</p>
<h2>Monitoring & Logging</h2>
<p>
Grafana, Prometheus, Loki, Alloy, Node Exporter, and cAdvisor provide visibility
into system health, container workloads, and infrastructure logs.
</p>
</div> </div>
<div class="screenshot-grid">
<article class="screenshot-card">
<img src="assets/images/portfolio-grafana-operations.png" alt="Grafana operations dashboard" />
<div>
<h3>Infrastructure Monitoring</h3>
<p>System health, uptime, memory, CPU, disk usage, and container metrics in Grafana.</p>
</div>
</article>
<article class="screenshot-card">
<img src="assets/images/portfolio-grafana-logs.png" alt="Grafana logs dashboard" />
<div>
<h3>Centralized Logging</h3>
<p>Loki and Grafana provide searchable logs for containers and infrastructure troubleshooting.</p>
</div>
</article>
</div> </div>
</section> </section>
<section id="security" class="section dark"> <section id="security" class="section dark">
<h2>Security Controls</h2> <div class="section-heading">
<div class="cards"> <p class="eyebrow">Security</p>
<div class="card"> <h2>Identity & Threat Detection</h2>
<h3>SSH Hardening</h3> <p>
<p>Password authentication disabled. ED25519 key-only access enforced.</p> Authentik provides single sign-on and access control while Fail2Ban and CrowdSec
detect and block hostile traffic.
</p>
</div> </div>
<div class="card">
<div class="screenshot-grid">
<article class="screenshot-card">
<img src="assets/images/portfolio-authentik-applications.png" alt="Authentik application portal" />
<div>
<h3>Centralized Identity</h3>
<p>SSO, OAuth2, OIDC, Forward Auth, and 2FA protect access to internal services.</p>
</div>
</article>
<article class="screenshot-card">
<img src="assets/images/portfolio-crowdsec-decisions.png" alt="CrowdSec security decisions" />
<div>
<h3>Threat Detection</h3> <h3>Threat Detection</h3>
<p>Fail2Ban and CrowdSec detect brute-force attempts and automatically block attackers.</p> <p>CrowdSec detects brute-force behavior and creates firewall decisions to block attackers.</p>
</div>
<div class="card">
<h3>Access Control</h3>
<p>Services protected with Authentik SSO, 2FA, HTTPS, and reverse proxy policies.</p>
</div> </div>
</article>
</div> </div>
</section> </section>
<section id="cicd" class="section"> <section id="development" class="section">
<h2>Automation &amp; CI/CD</h2> <div class="section-heading">
<p class="eyebrow">Development</p>
<h2>Git Hosting & CI/CD</h2>
<p> <p>
Woodpecker CI is integrated with Gitea to run automated pipelines when code is pushed. Gitea hosts the code and infrastructure repositories while Woodpecker CI runs automated
The first test pipeline successfully cloned a repository, executed build steps, and returned exit code 0. pipelines triggered by repository activity.
</p> </p>
</div>
<div class="screenshot-grid">
<article class="screenshot-card">
<img src="assets/images/portfolio-gitea-dashboard.png" alt="Gitea dashboard" />
<div>
<h3>Self-Hosted Git</h3>
<p>Gitea manages source code, project history, documentation, and infrastructure repositories.</p>
</div>
</article>
<article class="screenshot-card">
<img src="assets/images/portfolio-woodpecker-pipeline.png" alt="Woodpecker successful pipeline" />
<div>
<h3>CI/CD Automation</h3>
<p>Woodpecker successfully runs automated pipelines connected to Gitea repositories.</p>
</div>
</article>
</div>
</section> </section>
<section id="docs" class="section"> <section class="section">
<h2>Documentation &amp; Recovery</h2> <div class="section-heading">
<p class="eyebrow">Service Portal</p>
<h2>Centralized Dashboard</h2>
<p> <p>
ByteGeist includes disaster recovery documentation, backup validation, service inventory, Dashy acts as the launchpad for the environment, organizing infrastructure,
restore procedures, and operational notes for maintaining the platform. observability, development, security, tools, and user services.
</p> </p>
</div>
<div class="screenshot-grid">
<article class="screenshot-card">
<img src="assets/images/portfolio-cloud-dashboard-overview.png" alt="Dashy dashboard overview" />
<div>
<h3>Operations Portal</h3>
<p>Quick access to core infrastructure, observability, and development services.</p>
</div>
</article>
<article class="screenshot-card">
<img src="assets/images/portfolio-cloud-dashboard-services.png" alt="Dashy service catalog" />
<div>
<h3>Service Catalog</h3>
<p>Organized access to security tools, utilities, file management, and public sites.</p>
</div>
</article>
</div>
</section>
<section id="recovery" class="section dark">
<div class="section-heading">
<p class="eyebrow">Recovery</p>
<h2>Documentation & Disaster Recovery</h2>
<p>
ByteGeist includes documented restore procedures, backup validation, service inventory,
DNS information, and recovery priorities.
</p>
</div>
<div class="feature-image">
<img src="assets/images/portfolio-wiki-disaster-recovery.png" alt="ByteGeist disaster recovery documentation" />
</div>
</section>
<section class="section skills">
<h2>Skills Demonstrated</h2>
<div class="skills-grid">
<span>Linux Administration</span>
<span>Docker</span>
<span>Docker Compose</span>
<span>Reverse Proxies</span>
<span>SSL/TLS</span>
<span>DNS</span>
<span>SSO</span>
<span>OAuth2 / OIDC</span>
<span>Monitoring</span>
<span>Centralized Logging</span>
<span>CI/CD</span>
<span>Security Hardening</span>
<span>Threat Detection</span>
<span>Backup Strategy</span>
<span>Disaster Recovery</span>
<span>Technical Documentation</span>
</div>
</section> </section>
</main> </main>
<footer> <footer>
<p>ByteGeist Cloud • Built by Keith Casko</p> <p>ByteGeist Cloud • Built and maintained by Keith Casko</p>
</footer> </footer>
</body> </body>
</html> </html>