<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MahiCenter Cloud — AI Gateway Multi-Model</title>
<meta name="description" content="Satu endpoint OpenAI-compatible untuk semua model AI. Failover otomatis, catatan pemakaian jujur, harga kaki lima.">
<link rel="icon" type="image/jpeg" href="logo-icon-small.jpg">
<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=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;600;700&family=Newsreader:opsz,wght@6..72,500;6..72,600;6..72,700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="shared.css?v=20261025e">
</head>
<body data-page="home">

<header class="nav">
  <div class="nav-inner">
    <a class="brand" href="/"><span class="brand-mark"><img src="logo-icon-small.jpg" alt="MahiCenter"></span><span class="brand-name">MahiCenter <b>Cloud</b></span></a>
    <nav class="nav-menu">
      <a href="/" data-nav="home">Beranda</a>
      <a href="/models.html" data-nav="models">Model</a>
      <a href="/leaderboard.html" data-nav="leaderboard">Peringkat</a>
      <a href="/check.html" data-nav="check">Cek Kunci</a>
      <a href="/docs.html" data-nav="docs">Dokumentasi</a>
    </nav>
    <div class="nav-right">
      <span class="status-chip" id="navStatus"><span class="status-dot"></span> Memuat…</span>
      <a class="btn btn-accent" href="https://t.me/mahicenterrouterbot" target="_blank" rel="noopener">Bot Telegram</a>
      <button class="hamburger" id="hamburger" aria-label="Menu">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M4 7h16M4 12h16M4 17h16"/></svg>
      </button>
    </div>
  </div>
</header>
<div class="drawer" id="drawer">
  <a href="/" data-nav="home">Beranda</a>
  <a href="/models.html" data-nav="models">Model</a>
  <a href="/leaderboard.html" data-nav="leaderboard">Peringkat</a>
  <a href="/check.html" data-nav="check">Cek Kunci</a>
  <a href="/docs.html" data-nav="docs">Dokumentasi</a>
</div>

<main>
<section class="hero">
  <div class="wrap hero-grid">
    <div>
      <div class="kicker">MahiCenter Cloud · AI Gateway</div>
      <h1 class="display" style="margin-top:14px">Satu endpoint<br>untuk semua model AI-mu.</h1>
      <p class="hero-sub">Ganti model tanpa ubah kode. MahiCenter meneruskan request OpenAI-compatible ke pool upstream dengan failover otomatis, pencatatan pemakaian per pengguna, dan angka yang benar-benar hidup — bukan statistik pajangan.</p>
      <div class="hero-actions">
        <a class="btn btn-accent btn-lg" href="https://t.me/mahicenterrouterbot" target="_blank" rel="noopener">Dapatkan Kunci API</a>
        <a class="btn btn-lg" href="/docs.html">Dokumentasi</a>
      </div>
      <div class="hero-note">
        <span class="mono" style="color:var(--text-2)">api2.mahicenter.cloud/v1</span>
        <button class="btn-mini" onclick="copyText('https://api2.mahicenter.cloud/v1','Base URL disalin')">salin</button>
        <span>·</span>
        <span>OpenAI-compatible</span>
        <span>·</span>
        <span><b id="heroModels">—</b> model aktif</span>
      </div>
    </div>

    <div class="svc-card">
      <div class="svc-head"><span>Telemetri langsung</span><span class="svc-dot"></span></div>
      <div class="svc-row"><div><div class="svc-name">Gateway API</div><div class="svc-sub">api2 · Frankfurt</div></div><span class="svc-val" id="svcGateway">…</span></div>
      <div class="svc-row"><div><div class="svc-name">Request tercatat</div><div class="svc-sub">sepanjang operasi</div></div><span class="svc-val" id="svcRequests">—</span></div>
      <div class="svc-row"><div><div class="svc-name">Latensi inferensi</div><div class="svc-sub">rata-rata seluruh request</div></div><span class="svc-val" id="svcLatency">—</span></div>
      <div class="svc-row"><div><div class="svc-name">Model tersedia</div><div class="svc-sub">dari /v1/models</div></div><span class="svc-val" id="svcModels">—</span></div>
      <div class="svc-row"><div><div class="svc-name">Pembayaran</div><div class="svc-sub">QRIS, verifikasi manual owner</div></div><span class="svc-val" style="color:var(--text-2)">manual</span></div>
    </div>
  </div>
</section>

<section class="wrap kpi-row" id="kpiRow">
  <div class="kpi"><div class="kpi-val" id="kpiTokens"><span class="skel sk-lg"></span></div><div class="kpi-label">Token diproses</div><div class="kpi-sub">akumulasi seluruh pengguna</div></div>
  <div class="kpi"><div class="kpi-val" id="kpiRequests"><span class="skel sk-md"></span></div><div class="kpi-label">Permintaan</div><div class="kpi-sub">inferensi tercatat</div></div>
  <div class="kpi"><div class="kpi-val" id="kpiUsers"><span class="skel sk-md"></span></div><div class="kpi-label">Pengguna</div><div class="kpi-sub" id="kpiUsersSub">—</div></div>
  <div class="kpi"><div class="kpi-val" id="kpiLatency"><span class="skel sk-sm"></span></div><div class="kpi-label">Latensi rata-rata</div><div class="kpi-sub">failover multi-key</div></div>
</section>

<section class="wrap section">
  <div class="section-head">
    <div>
      <h2 class="section-title">Dibangun untuk dipakai serius</h2>
      <p class="section-desc">Tiga hal yang kami jaga — sisanya silakan nilai sendiri dari kode error-nya.</p>
    </div>
  </div>
  <div class="cards-3">
    <div class="feature"><div class="feature-no">01</div><h3>OpenAI-compatible asli</h3><p>SDK OpenAI apa pun langsung jalan. Ganti <code class="mono">base_url</code>, pakai kunci MahiCenter, selesai — tidak ada format permintaan ala sendiri.</p></div>
    <div class="feature"><div class="feature-no">02</div><h3>Failover multi-key</h3><p>Request yang gagal di satu upstream key dicoba di key berikutnya otomatis. Kamu tidak perlu menulis retry atau antri migrasi saat provider ngadat.</p></div>
    <div class="feature"><div class="feature-no">03</div><h3>Angka jujur</h3><p>Semua statistik di situs ini dihitung dari request log yang sebenarnya, diperbarui tiap belasan detik. Kalau upstream mati, yang tampil gagal — bukan angka manis.</p></div>
  </div>
</section>

<section class="wrap section">
  <div class="section-head">
    <div>
      <h2 class="section-title">Cara mulai, tiga langkah</h2>
      <p class="section-desc">Dari nol sampai request pertama biasanya kurang dari lima menit.</p>
    </div>
  </div>
  <div class="steps">
    <div class="step"><h3>Ambil kunci di bot</h3><p>Ketik <code>/buy</code> di @mahicenterrouterbot, bayar via QRIS sesuai invoice kartu, kunci terkirim begitu owner memverifikasi.</p></div>
    <div class="step"><h3>Ganti base URL</h3><p>Set <code>base_url</code> ke <code>https://api2.mahicenter.cloud/v1</code> di SDK kesayanganmu — Python, Node, cURL, semuanya sama.</p></div>
    <div class="step"><h3>Panggil model</h3><p>Pilih dari <span id="stepModels">—</span> model di <a href="/models.html">katalog</a>. Ganti model cukup ganti satu string.</p></div>
  </div>
</section>

<section class="wrap section partner-section" id="partnership">
  <div class="partner-card">
    <div class="partner-copy">
      <span class="topic-index">Partnership</span>
      <h2 class="section-title" style="margin:10px 0 8px">Strategic Partnership — MahiCenter Cloud × SFG</h2>
      <p class="section-desc">MahiCenter Cloud operates in official partnership with <b>SFG (SANN404 Forum Group)</b>. Through this partnership, members of both communities get shared access to our managed, multi-model AI gateway: one OpenAI-compatible endpoint, unified billing through the official Telegram bot, and human-run support on both sides.</p>
      <p class="section-desc" style="margin-top:10px">This collaboration focuses on reliable AI access for Indonesian developers — routing, failover, and uptime are handled by MahiCenter Cloud infrastructure, while SFG supports community outreach, onboarding, and coordination.</p>
    </div>
    <div class="partner-visual">
      <img src="partnership.png" alt="MahiCenter Cloud × SFG (SANN404 Forum Group)">
    </div>
  </div>
</section>
</main>

<footer class="footer">
  <div class="wrap footer-inner">
    <div>
      <h4 style="display:flex;align-items:center;gap:8px"><img src="logo-icon-small.jpg" alt="" style="height:20px;width:20px;border-radius:5px;border:1px solid var(--border)"> MahiCenter Cloud</h4>
      <p class="footer-desc">Gateway AI multi-model OpenAI-compatible. Dijalankan di Frankfurt, dijaga oleh manusia — bukan autopilot.</p>
    </div>
    <div>
      <h4>Halaman</h4>
      <div class="footer-links">
        <a href="/models.html">Katalog model</a>
        <a href="/leaderboard.html">Peringkat</a>
        <a href="/check.html">Cek kunci</a>
        <a href="/docs.html">Dokumentasi</a>
      </div>
    </div>
    <div>
      <h4>Endpoint</h4>
      <div class="footer-links">
        <a href="/v1/models">GET /v1/models</a>
        <a href="/api/public/summary">GET /api/public/summary</a>
        <a href="https://t.me/mahicenterrouterbot" target="_blank" rel="noopener">Bot Telegram</a>
      </div>
    </div>
  </div>
  <div class="wrap footer-base">
    <span>endpoint&nbsp;<code>https://api2.mahicenter.cloud/v1</code></span>
    <span id="footerClock"></span>
  </div>
</footer>

<script src="shared.js?v=20261025e"></script>
<script>
document.addEventListener('svc:summary', (e) => {
  const d = e.detail;
  const set = (id, val) => { const el = document.getElementById(id); if (el) el.textContent = val; };
  set('kpiTokens', fmtToken(d.total_tokens));
  set('kpiRequests', fmtNum(d.total_requests));
  set('kpiUsers', fmtNum(d.total_users) + ' akun');
  set('kpiUsersSub', (d.users_with_usage || 0) + ' aktif pakai API · ' + (d.active_keys || 0) + ' kunci aktif');
  set('kpiLatency', fmtLatency(d.avg_latency_ms));
  set('svcRequests', fmtNum(d.total_requests));
  set('svcLatency', fmtLatency(d.avg_latency_ms));
  set('svcModels', d.models_count || '—');
  set('heroModels', d.models_count || '—');
  set('stepModels', d.models_count || '—');
  const nav = document.getElementById('navStatus');
  set('svcGateway', (nav && nav.textContent.includes('ms')) ? nav.textContent.trim() : 'Online');
});
</script>
</body>
</html>
