repos
/ orchard main

orchard

mirror

Every site I host, in one repo, along with the Cloudflare Tunnel and Caddy that front them. It's all Go, Vite, and SQLite, and it runs on a desktop at home with nothing listening on an inbound port.

blogbuncaddycloudflare-tunneldockergogolanghomelabhtml-templatemonorepoself-hostedseosqlitestatic-sitetypstuptime-monitoringviteweb-analytics

2.2 KB · 55 lines · HTML Raw History
 1<!doctype html>
 2<html lang="en">
 3<head>
 4<meta charset="utf-8">
 5<meta name="viewport" content="width=device-width, initial-scale=1">
 6<meta name="robots" content="noindex, nofollow">
 7<title>chat &middot; a conversation with a model on hardware you own</title>
 8<link rel="stylesheet" href="{{asset "static/app.css"}}">
 9  <!-- Analytics, first party and on this estate. The id is identity rather than
10       a credential, so it is a constant here like every other site's. -->
11  <script>
12    (function (m, e, t, r, i, c, s) {
13      m.collectorQueue = m.collectorQueue || r;
14      m.collectorServer = c;
15      m.collectorId = s;
16      m.collectorScript = e.createElement(t);
17      m.collectorScript.src = c + i;
18      e.head.appendChild(m.collectorScript);
19    })(window, document, "script", [], "/static/collector.js",
20       "https://analytics.bythewood.me", "73f89553-a3fa-4c4a-b567-9a9a0550240b");
21  </script>
22</head>
23<body class="landing-body">
24<main class="landing">
25  <a class="brand" href="/">
26    <span class="key">C<i class="cur"></i></span>
27    <span class="brand-name">chat</span>
28  </a>
29
30  <p class="eyebrow">Self hosted &middot; {{.Model}} &middot; {{.Ctx}} token window</p>
31
32  <h1>A conversation with a model running on <span class="accent">hardware you own</span>.</h1>
33
34  <p class="lede">
35    No API key, no third party, and nothing leaving the house. It reaches for a tool
36    when the answer depends on something it cannot know, reads the files you give it,
37    and keeps the thread in a database you can delete.
38  </p>
39
40  <ul class="points">
41    <li><b>Ten tools</b>, all keyless: search, page fetching, weather, markets, scores, odds, music, conversion and arithmetic.</li>
42    <li><b>Attachments</b> by drag and drop or picker. PDFs, spreadsheets, documents, code and logs, read into the turn and never stored.</li>
43    <li><b>Incognito</b> writes nothing down, here or at the model gateway, verified by counting rows either side of a turn.</li>
44    <li><b>Compaction</b> summarises the oldest exchanges once the window fills, so a long thread keeps working.</li>
45  </ul>
46
47  <div class="ctas">
48    <a class="btn" href="/login">Open chat &rarr;</a>
49    <a class="btn ghost" href="{{.Source}}" target="_blank" rel="noopener">View source</a>
50  </div>
51
52</main>
53</body>
54</html>