|
| 1 | +apiVersion: v1 |
| 2 | +kind: ConfigMap |
| 3 | +metadata: |
| 4 | + name: showcase-html |
| 5 | + namespace: showcase |
| 6 | +data: |
| 7 | + index.html: | |
| 8 | + <!DOCTYPE html> |
| 9 | + <html lang="en"> |
| 10 | + <head> |
| 11 | + <meta charset="utf-8"> |
| 12 | + <meta name="viewport" content="width=device-width, initial-scale=1"> |
| 13 | + <title>mdapi.ch — a self-hosted Kubernetes homelab</title> |
| 14 | + <meta name="description" content="mdapi.ch is a self-hosted, GitOps-driven Kubernetes homelab. Public showcase of the platform, the sites it hosts, and the services members can request."> |
| 15 | + <style> |
| 16 | + :root{ |
| 17 | + --bg:#0f1115; --panel:#171a21; --line:#262b36; |
| 18 | + --ink:#EAEEF7; --muted:#9aa6bd; --accent:#7FA5F9; --accent-2:#a7f3d0; |
| 19 | + } |
| 20 | + *{box-sizing:border-box} |
| 21 | + html,body{margin:0;padding:0} |
| 22 | + body{background:var(--bg);color:var(--ink); |
| 23 | + font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif; |
| 24 | + -webkit-font-smoothing:antialiased} |
| 25 | + a{color:var(--accent);text-decoration:none} |
| 26 | + a:hover{text-decoration:underline} |
| 27 | + .wrap{max-width:980px;margin:0 auto;padding:0 20px} |
| 28 | + header.hero{padding:72px 0 40px;border-bottom:1px solid var(--line)} |
| 29 | + .badge{display:inline-block;font-size:13px;color:var(--accent-2); |
| 30 | + border:1px solid var(--line);border-radius:999px;padding:4px 12px;margin-bottom:18px} |
| 31 | + h1{font-size:clamp(28px,5vw,44px);line-height:1.15;margin:.1em 0 .3em;letter-spacing:-.02em} |
| 32 | + h1 .dot{color:var(--accent)} |
| 33 | + .lede{font-size:clamp(16px,2.4vw,19px);color:var(--muted);max-width:64ch;margin:0 0 28px} |
| 34 | + .cta{display:flex;gap:12px;flex-wrap:wrap} |
| 35 | + .btn{display:inline-block;padding:11px 18px;border-radius:10px;font-weight:600} |
| 36 | + .btn.primary{background:var(--accent);color:#0b1020} |
| 37 | + .btn.ghost{border:1px solid var(--line);color:var(--ink)} |
| 38 | + .btn:hover{text-decoration:none;filter:brightness(1.08)} |
| 39 | + section{padding:44px 0;border-bottom:1px solid var(--line)} |
| 40 | + h2{font-size:22px;margin:0 0 6px;letter-spacing:-.01em} |
| 41 | + .sub{color:var(--muted);margin:0 0 22px;max-width:62ch} |
| 42 | + .grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))} |
| 43 | + .card{display:block;background:var(--panel);border:1px solid var(--line); |
| 44 | + border-radius:12px;padding:16px 16px 14px;transition:border-color .15s,transform .15s} |
| 45 | + .card:hover{border-color:var(--accent);transform:translateY(-2px);text-decoration:none} |
| 46 | + .card .t{font-weight:650;color:var(--ink);margin:0 0 2px} |
| 47 | + .card .d{font-size:13.5px;color:var(--muted);margin:0} |
| 48 | + .card .host{font-size:12px;color:var(--accent);margin-top:8px;display:block} |
| 49 | + .members{background:linear-gradient(180deg,rgba(127,165,249,.08),transparent)} |
| 50 | + .pill{font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:999px; |
| 51 | + padding:3px 10px;margin:0 6px 8px 0;display:inline-block} |
| 52 | + footer{padding:34px 0 60px;color:var(--muted);font-size:13.5px} |
| 53 | + footer a{color:var(--muted);text-decoration:underline} |
| 54 | + </style> |
| 55 | + </head> |
| 56 | + <body> |
| 57 | + <header class="hero"><div class="wrap"> |
| 58 | + <span class="badge">self-hosted · GitOps · Kubernetes</span> |
| 59 | + <h1>mdapi<span class="dot">.</span>ch</h1> |
| 60 | + <p class="lede">A self-hosted homelab running a production-grade Kubernetes stack at home — |
| 61 | + identity, mail, storage, automation, home-automation and the websites it hosts, all |
| 62 | + declared in public GitOps. This is the front door; the deep dive lives in the docs.</p> |
| 63 | + <div class="cta"> |
| 64 | + <a class="btn primary" href="https://docs.mdapi.ch">Explore the docs →</a> |
| 65 | + <a class="btn ghost" href="https://github.com/MDAPI-Repos">View the GitOps on GitHub</a> |
| 66 | + </div> |
| 67 | + </div></header> |
| 68 | +
|
| 69 | + <section><div class="wrap"> |
| 70 | + <h2>Explore the platform</h2> |
| 71 | + <p class="sub">Everything below is documented, end to end — architecture, security model, |
| 72 | + storage, networking and operations. Start here.</p> |
| 73 | + <div class="grid"> |
| 74 | + <a class="card" href="https://docs.mdapi.ch"> |
| 75 | + <p class="t">Documentation</p><p class="d">Architecture, security, storage, networking, operations — the full write-up.</p> |
| 76 | + <span class="host">docs.mdapi.ch</span></a> |
| 77 | + <a class="card" href="https://gitlab.mdapi.ch"> |
| 78 | + <p class="t">GitLab</p><p class="d">Self-hosted GitLab EE: the source, registry and CI behind the platform.</p> |
| 79 | + <span class="host">gitlab.mdapi.ch</span></a> |
| 80 | + <a class="card" href="https://webmail.mdapi.ch"> |
| 81 | + <p class="t">Webmail</p><p class="d">Roundcube webmail for accounts hosted on the platform's mail server.</p> |
| 82 | + <span class="host">webmail.mdapi.ch</span></a> |
| 83 | + </div> |
| 84 | + </div></section> |
| 85 | +
|
| 86 | + <section><div class="wrap"> |
| 87 | + <h2>Sites hosted here</h2> |
| 88 | + <p class="sub">Public websites served from the cluster — each its own GitOps-managed deployment.</p> |
| 89 | + <div class="grid"> |
| 90 | + <a class="card" href="https://tillo.ch"><p class="t">Tillo</p><p class="d">Personal site.</p><span class="host">tillo.ch</span></a> |
| 91 | + <a class="card" href="https://dellambrogio.ch"><p class="t">Dell'Ambrogio</p><p class="d">Family / professional site.</p><span class="host">dellambrogio.ch</span></a> |
| 92 | + <a class="card" href="https://ivodellambrogio.ch"><p class="t">Ivo Dell'Ambrogio</p><p class="d">Personal portfolio.</p><span class="host">ivodellambrogio.ch</span></a> |
| 93 | + <a class="card" href="https://coiffuredreams.ch"><p class="t">Coiffure Dreams</p><p class="d">Salon site.</p><span class="host">coiffuredreams.ch</span></a> |
| 94 | + <a class="card" href="https://spider3.ch"><p class="t">Spider3</p><p class="d">Project site.</p><span class="host">spider3.ch</span></a> |
| 95 | + </div> |
| 96 | + </div></section> |
| 97 | +
|
| 98 | + <section class="members"><div class="wrap"> |
| 99 | + <h2>For members</h2> |
| 100 | + <p class="sub">Family & friends get a personalised portal — your apps, plus a marketplace |
| 101 | + where you can request your own services. Sign in to see what's yours and what you can ask for.</p> |
| 102 | + <div style="margin-bottom:18px"> |
| 103 | + <span class="pill">📬 a personal @name mailbox</span> |
| 104 | + <span class="pill">🌐 your own website</span> |
| 105 | + <span class="pill">📁 file / SFTP space</span> |
| 106 | + <span class="pill">🔗 a subdomain + certificate</span> |
| 107 | + </div> |
| 108 | + <a class="btn primary" href="https://start.mdapi.ch">Sign in to your portal →</a> |
| 109 | + </div></section> |
| 110 | +
|
| 111 | + <footer><div class="wrap"> |
| 112 | + Built on RKE2 · Rancher · Fleet · Longhorn · Ceph · cert-manager. |
| 113 | + GitOps is public at <a href="https://github.com/MDAPI-Repos">github.com/MDAPI-Repos</a>. |
| 114 | + Neighbours of the En Vuassu association: <a href="https://www.envuassu.ch">envuassu.ch</a>. |
| 115 | + </div></footer> |
| 116 | + </body> |
| 117 | + </html> |
0 commit comments