frank@home:~$ docs bare

Getting in

Everything here lives behind two doors. The first is Anubis, a quiet bot-check: the first time you visit any guarded page in a session you see a short "making sure you're not a bot" screen. It runs once. The second door is Authentik, the family single sign-on: log in once and every guarded service (this homepage, search, chat, media requests, and friends) opens for you without a second password.

When something looks broken

Media & files

Talking to the AI

The everyday front door is Open WebUI, the family chat app. Open the address, click Continue with authentik, and use the same single sign-on as everything else — no separate password. Your conversations are saved to your account, so history follows you between devices.

Open WebUI chat screen with a question and the AI's answer

Below the text box, the model box on the right chooses which model answers you. Family accounts get frank-zealot — the fleet's fast all-rounder, which also sees images: drag a photo or screenshot straight into the chat box. Frank's account can additionally reach the bigger models.

The Open WebUI welcome screen with the family model selected in the model box

Open WebUI keeps your chat history; the raw model endpoints (used by developer tools, see API access) do not.

The running models

Three models serve the family, named for the Protoss units of StarCraft. The homepage "Model Information" panel shows whether each one is up right now — and plays the unit's voice if you click its quoted line.

Naming: the Open WebUI picker and the raw API show exactly the Protoss names used on this page (renamed 2026-10-09). The name you read here is the name you type into a config file.

frank-zealot — the fast utility model

frank-dragoon — deep reasoning

API access — the AI on your own laptop

Developer assistants like Opencode and Pi are chat programs that run on your own computer and can read your files, run commands, and edit code while they talk. They are all built to speak the same standard language as the big commercial products (the "OpenAI-compatible" API), and our server speaks it too. You give the program three things — an address, a personal key, and a model name — and your laptop thinks through our hardware.

Step 1 — get your personal key

  1. Open ai.franksdank.cloud and log in.
  2. Click your circle (bottom-left corner) → Settings → Account.
  3. Scroll to API keys → press Show (it flips to Hide) — the key appears as a row of dots.
  4. Press the copy icon beside the key (the eye previews it; the ⋯ menu rotates it later). The key looks like sk-3f2a….
The Open WebUI Account settings page, scrolled to the API keys section with the masked key, preview, copy and rotate controls

The key is a password. Anyone who has it can use our AI as you. Paste it only into the program's config file — never into a shared chat, a screenshot, or a git repository.

Step 2 — the three details every tool asks for

Proof that it works, from any terminal (replace the key):

curl https://ai.franksdank.cloud/api/v1/chat/completions \
  -H "Authorization: Bearer PASTE-YOUR-KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "frank-zealot", "messages": [{"role": "user", "content": "Hello!"}]}'

Step 3a — Opencode

Install once (npm install -g opencode-ai), then create the file ~/.config/opencode/opencode.json with:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "frank": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Frank fleet",
      "options": {
        "baseURL": "https://ai.franksdank.cloud/api/v1",
        "apiKey": "PASTE-YOUR-KEY"
      },
      "models": {
        "frank-zealot": { "name": "frank-zealot" }
      }
    }
  }
}

Start opencode and pick the model with /model — it appears as frank/frank-zealot.

Step 3b — Pi

Create the file ~/.pi/agent/models.json with:

{
  "providers": {
    "frank": {
      "baseUrl": "https://ai.franksdank.cloud/api/v1",
      "api": "openai-completions",
      "apiKey": "PASTE-YOUR-KEY",
      "models": [
        { "id": "frank-zealot" }
      ]
    }
  }
}

Then start Pi with pi --model frank/frank-zealot.

The key works only for the family AI — it is not your Authentik password, and losing it costs nothing beyond asking Frank to rotate it. Want a bigger model (frank-archon, frank-dragoon)? Ask Frank to raise your access.