fix(homepage): Jellyfin takes the family login; document the voice models #145

Merged
dank merged 1 commits from docs/homepage-jellyfin-login-and-tts into main 2026-11-04 12:56:45 -08:00
2 changed files with 64 additions and 12 deletions
Showing only changes of commit f7c41966b0 - Show all commits

No files matched your search

+62 -10
View File
@@ -33,7 +33,7 @@ There is no signup button on purpose.</p>
<p><strong>2. Pick what you want to do:</strong></p>
<table>
<tr><th>I want to&hellip;</th><th>Open</th><th>Needs its own login?</th></tr>
<tr><td>watch a film or a show</td><td><a href="https://jelly.franksdank.cloud">Jellyfin</a></td><td>yes &mdash; ask Frank</td></tr>
<tr><td>watch a film or a show</td><td><a href="https://jelly.franksdank.cloud">Jellyfin</a></td><td>no &mdash; your franksdank.cloud login</td></tr>
<tr><td>watch it on a TV that already has Plex</td><td><a href="https://plex.franksdank.cloud/web">Plex</a></td><td>yes &mdash; a Plex account, Frank invites it</td></tr>
<tr><td>listen to an audiobook</td><td><a href="https://audiobooks.franksdank.cloud/audiobookshelf">Audiobookshelf</a></td><td>no &mdash; the family password</td></tr>
<tr><td>ask a computer a question, privately</td><td><a href="https://ai.franksdank.cloud">AI chat</a></td><td>no</td></tr>
@@ -77,15 +77,17 @@ There is no signup button on purpose.</p>
<li><strong>Authentik</strong> is the front desk. It asks who you are, once per device
per few days, and after that you drift from app to app without being stopped again.</li>
</ul>
<p>One account opens: the homepage, search, Marreta, the AI chat, Files, Gitea.</p>
<p>One account opens: the homepage, search, Marreta, the AI chat, Files, Gitea, and Jellyfin
(there it is typed as username + password, not the automatic sign-in).</p>
<figure>
<img src="/img/onboarding/door-authentik.webp" alt="The sign-in screen: an identification field, then a password field">
<figcaption>The front desk. Your username first, then your password. Nothing here signs
you up for anything; if you don't have an account yet, ask Frank.</figcaption>
</figure>
<p class="key-warn">Three doors keep their own accounts and will not take the family
password: <strong>Jellyfin</strong>, <strong>Plex</strong> (a Plex account, its own e-mail
login) and the e-book door. Frank creates those by hand.</p>
<p class="key-warn">Two doors keep their own accounts and will not take the family
password: <strong>Plex</strong> (a Plex account, its own e-mail
login) and the e-book door. Frank creates those by hand. <strong>Jellyfin does take the
family login</strong> &mdash; your franksdank.cloud username and password.</p>
<p class="foot-note">Want your own password? It lives at
<a href="https://auth.franksdank.cloud/if/flow/default-user-settings-flow/">account settings</a>
&mdash; the same button you get at the bottom of the homepage.</p>
@@ -128,8 +130,10 @@ account of any company's, and the posters and episode guides are all filled in.<
<h3>Getting in</h3>
<ul>
<li>Pick your name. There is no list of names on the login screen &mdash; type yours.</li>
<li>Type the password Frank set for you. <strong>It is not the family password</strong>;
this is the most common wrong door.</li>
<li>Type your <strong>franksdank.cloud password</strong> &mdash; the same one that opens the
homepage, search and the AI chat. There is no separate Jellyfin password.</li>
<li>Refused, but the same password opens the homepage? Your name hasn't been given library
access yet &mdash; ask Frank, it's a one-line change on his side.</li>
<li>No name yet? Ask Frank to make one. There is no self-service signup, on purpose.</li>
</ul>
<figure>
@@ -147,7 +151,8 @@ account of any company's, and the posters and episode guides are all filled in.<
</ul>
<h3>If it misbehaves</h3>
<ul>
<li>Wrong password and no error you understand? That's the family password again.</li>
<li>It rejects a password that works everywhere else? Your name isn't on the library-access
list yet &mdash; ask Frank.</li>
<li>A film with a blank poster is missing artwork, not missing files &mdash; Frank can refresh it.</li>
<li>Buffering away from home usually means the pipe out of the house, not the server.</li>
</ul>
@@ -167,7 +172,8 @@ Plex's own sign-in, and that is correct: Plex is closed-source and insists on a
both; the artwork, watch-state and profiles are separate.</li>
<li>Choose Plex when your TV already has the Plex app on it, or you want Plex's trailers
and music. Otherwise Jellyfin is the one the household uses.</li>
<li>Ask Frank for an invitation; he can also tell you which of the two has the thing you're looking for.</li>
<li>Need a Plex account of your own? Ask Frank to invite it; he can also tell you which of
the two has the thing you're looking for.</li>
</ul>
</section>
@@ -359,6 +365,51 @@ Qwen3.8-Flash-Next v2, abliterated
(<a href="https://huggingface.co/prism-ml/Ternary-Bonsai-2-9B-gguf">prism-ml/Ternary-Bonsai-2-9B-gguf</a>)
with a small adapter fitted that removes its refusal reflex. All three accept pictures. Ask
Frank before pointing a script at one of them directly; the address is on the homepage.</p>
<h3>And the voices</h3>
<p>Two speech models live in this house, and they are different animals. One of them
speaks as a <em>specific person</em>; the other is a pack of stock voices that ships inside
the tools you already use.</p>
<table>
<tr><th>Name</th><th>Runs on</th><th>Good at</th><th>Notes</th></tr>
<tr>
<td><code>frank-tts</code></td>
<td>the Strix Halo machine's built-in graphics, sharing the card with <code>frank-dragoon</code></td>
<td>cloning: it speaks as one particular voice, chosen by name</td>
<td>five voices today &mdash; <code>dr.kern</code>, <code>garrickhagon</code>,
<code>jeffhays</code>, <code>vaati</code>, <code>wilwheaton</code>; ask for one by name and
you get it. No key, but it is a house-hardware door: it answers on the house network only</td>
</tr>
<tr>
<td><strong>Kokoro</strong></td>
<td>your own browser, or Frank's own terminal &mdash; no server in the loop</td>
<td>instant plain narration, quick and cheap</td>
<td>about two dozen preset voices with coded names (<code>af_heart</code>,
<code>bm_george</code>&hellip;). It cannot clone, and it will never answer to the five names
above</td>
</tr>
</table>
<ul>
<li><strong>The AI chat's speaker button is Kokoro.</strong> That is why it offers a
different list of names, and why it starts talking a moment before anything on the server
could. It speaks in your browser, on your machine.</li>
<li><strong>The podcast maker uses the clones.</strong> An episode's two hosts are
<code>wilwheaton</code> and <code>vaati</code>, rendered by <code>frank-tts</code>. That door
is Frank's for now.</li>
<li><strong>Frank's coding agent narrates through the clones too</strong> &mdash; the default
voice is <code>wilwheaton</code>.</li>
<li><strong>Want your own voice in the list?</strong> Ask Frank. It needs about twenty
seconds of you talking plainly, once; the voice then carries your name.</li>
</ul>
<p class="foot-note">The exact weights: <code>frank-tts</code> is a Qwen3 talker
(1.7&nbsp;billion parameters, 4-bit) plus its 12&nbsp;Hz audio codec, driven by
<code>qwentts.cpp</code>; Kokoro is a much smaller 82-million-parameter model whose voices are
baked in. A cloned voice is not a setting &mdash; it is a directory of reference audio on the
server, which is why adding one is a fifteen-minute job and not a checkbox. Programmers on the
house network: <code>POST http://192.168.0.143:7772/v1/audio/speech</code> with
<code>{"input": "&hellip;", "voice": "vaati"}</code> gets you WAV or MP3, and
<a href="http://192.168.0.143:7772/v1/audio/voices"><code>/v1/audio/voices</code></a> answers
the live list, so this page can never lie to you for long.</p>
</section>
<section id="api-access">
@@ -401,7 +452,8 @@ one you were given? Ask Frank to widen the key.</p>
scripts it needs (or an extension is). Allow scripts for that site, or try another browser.
Still looping? Ask Frank &mdash; the guard can be told you're a person.</li>
<li><strong>"Invalid password" on the front desk.</strong> Right password, wrong door: the
family login does not open Jellyfin, Plex or the e-book door.</li>
family login does not open Plex or the e-book door. Jellyfin does take it, but only for the
names Frank has given library access.</li>
<li><strong>The AI is slow.</strong> Each model only holds a couple of conversations at once
(two, three or four, depending which). It is a queue, not a crash &mdash; or Frank is
mid-conversation; the big one is on the same machine as the films.</li>
+2 -2
View File
@@ -110,7 +110,7 @@
"name": "Jellyfin",
"category": "user",
"section": "Media Library Apps",
"description": "Open source media server for the film and TV library: its own logins (no Authentik here), so ask Frank for an account.",
"description": "Open source media server for the film and TV library. Sign in with your franksdank.cloud username and password — the same login as the rest of the house; ask Frank if yours isn't in yet.",
"url": "http://jelly.franksdank.cloud",
"docs": "",
"probe": "192.168.0.235:8096",
@@ -136,7 +136,7 @@
"name": "Marreta",
"category": "user",
"section": "Web Apps",
"description": "Paywall sledgehammer: hand it an article URL and it drags the page back through the VPN with the paywall chrome, cookie wall and trackers stripped; a headless browser renders the JS-heavy ones. Best effort — hard paywalls and login walls still win.",
"description": "Paywall sledgehammer: hand it an article URL and it will attempt to smash its paywall. Note: does not work on all sites.",
"url": "http://marreta.franksdank.cloud",
"docs": "",
"probe": "127.0.0.1:8082",