Files
llmgw/internal/web/locales/en/install.json
T
Ilker ManapandClaude Opus 5.5 fea5774fe5 The install guide shows every screen of a real install
/install takes a reader from three bare Ubuntu machines to a first answer:
what each machine needs and the commands that check it, the release fetched
and its checksum checked, the eight setup screens, the system's state and
the console, and a first request with a key from the account page. Every
screen is from an install of v0.14.9 on three fresh VMs, recorded with tmux
and kept as terminal frames: the page shows them as text, and plays a
session back when asked, fetching it compressed from /install/cast/. The
administrator's password and the API key were masked before the recording
was kept, and a test fails if either shape reaches the page.

/about gains what llmgw now does beyond routing, and its install steps are
today's: the setup screens and node add, not onboard-node.sh and a model
file, with a link into the guide.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 01:35:08 +02:00

114 lines
11 KiB
JSON

{
"install.meta.description": "Installing llmgw, step by step: what each machine needs, then every screen of a real three-machine install, recorded.",
"install.title": "Install guide",
"install.nav.label": "Install guide",
"install.nav.before": "Before you start",
"install.nav.binary": "Get llmgw",
"install.nav.setup": "Set up",
"install.nav.check": "Check it",
"install.nav.use": "First request",
"install.nav.next": "What next",
"install.nav.trouble": "If it goes wrong",
"install.nav.about": "About llmgw",
"install.step": "Step %s",
"install.hero.eyebrow": "Install guide · recorded with %s",
"install.hero.title": "From three bare machines to a <em>first answer</em>.",
"install.hero.lede": "Every screen on this page is from a real install: three fresh Ubuntu 24.04 machines and the release anyone can download. The only change made beforehand was turning SSH password login on, as a stock Ubuntu server has it. Read the step, see the screen, or press play and watch the session as it ran.",
"install.hero.machines": "machines, high availability",
"install.hero.steps": "steps, after the checks",
"install.hero.time": "of installing, once the questions are answered",
"install.hero.hidden": "screens left out",
"install.before.title": "Before you start",
"install.before.intro": "One machine, or three for high availability. Check each one first; the setup screens check them again before they install anything.",
"install.before.commands": "The same checks by hand, on each machine:",
"install.req.machines": "Machines",
"install.req.machines.text": "One, or three for high availability: each of the three can run the gateway, two keep the store replicated, and losing any one loses nothing.",
"install.req.system": "System",
"install.req.system.text": "Ubuntu 22.04 or 24.04, Debian 12 or RHEL 10; x86-64 or ARM64.",
"install.req.size": "Size",
"install.req.size.text": "At least 2 CPUs and 3.5 GB of memory on each; 15 GB of free disk on the first machine and 30 GB on the two that keep the store.",
"install.req.clock": "Clock",
"install.req.clock.text": "Synchronised: the machines must agree within a second.",
"install.req.network": "Network",
"install.req.network.text": "The machines reach one another. Users reach the gateway on <code>8080</code>; nodes reach <code>7443</code> and <code>8081</code>. Internet access to download engines and models, or an offline bundle.",
"install.req.access": "Access",
"install.req.access.text": "<code>sudo</code> on every machine. SSH from the first machine to the other two, with a password, a key or the ssh agent; a machine nothing may log into joins with a code instead.",
"install.req.names": "Names",
"install.req.names.text": "A hostname of its own on each machine. It becomes the machine's name in the cluster.",
"install.req.gpus": "GPU nodes",
"install.req.gpus.text": "Added later, with the NVIDIA driver installed. llmgw installs llama.cpp, vLLM, Python and CUDA itself.",
"install.req.memory_note": "<strong>Memory, when the first machine also serves models.</strong> In this recording it runs the starter model and both guardrail judges. With 8 GB there was no room left for the starter model; with 12 GB everything fits.",
"install.binary.title": "Get llmgw",
"install.binary.intro": "One static file, the same on every machine. Only the first needs it: setup copies it to the others.",
"install.binary.text": "The latest release, its checksum checked. <code>sha256sum</code> must say <code>OK</code>; if it does not, the download is damaged.",
"install.setup.title": "Set up",
"install.setup.intro": "With nothing installed, llmgw opens its setup screens. They ask, check every machine, show the plan, and install.",
"install.setup.text": "On the first machine:",
"install.setup.keys": "Keyboard only: arrows to move, Space to turn a part on or off, Enter to open its settings or go on, Esc to go back. It works over a serial console too.",
"install.sc1.tab": "One or three",
"install.sc1.text": "<strong>One machine or three.</strong> Nothing of llmgw is installed yet, so the setup starts here. One machine runs everything; three are high availability.",
"install.sc2.tab": "What to install",
"install.sc2.text": "<strong>Every part, on or off.</strong> Enter on a part opens its settings and says what it does. Here this machine is also a node, with the small starter model, so there is something to ask the moment the install ends.",
"install.sc3.tab": "Administrator",
"install.sc3.text": "<strong>The control plane's settings.</strong> The administrator's email (a password is made for it and shown once, at the end), other names nodes reach this machine by, the portal's language, and whether people may sign up.",
"install.sc4.tab": "The other two",
"install.sc4.text": "<strong>The machines that keep the store.</strong> Address, user, and how to log in: the ssh agent, a key file, a password or a join code. Passwords are kept in memory only, for this setup.",
"install.sc5.tab": "Checks",
"install.sc5.text": "<strong>Every machine, checked before anything is installed:</strong> login, system, processor, CPUs, memory, disk, clock, ports, internet and whether the machines reach one another. Fix what fails and press R.",
"install.sc6.tab": "Plan",
"install.sc6.text": "<strong>What will be installed, and what is left out.</strong> Esc goes back to change it; Enter installs.",
"install.sc7.tab": "Install",
"install.sc7.text": "<strong>Installed while you watch:</strong> the certificate authority and certificates, etcd on all three, PostgreSQL under Patroni on the other two, the control plane on all three, the mirror, the guardrails' judges and the starter model.",
"install.sc8.tab": "Done",
"install.sc8.text": "<strong>The administrator's password, shown once.</strong> Copy it now. Below it, the same install as one command, for a script.",
"install.setup.whole": "The whole setup, as it ran",
"install.setup.script.title": "The same, from a script",
"install.setup.script.intro": "What the last screen prints. Safe to run again: it keeps what exists and finishes what is missing.",
"install.check.title": "Check it",
"install.check.intro": "From any of the three machines.",
"install.check.text": "<code>llmgw status</code> is the whole system in a few lines: nodes, replicas, models, which control plane leads, and the store. Run again, <code>sudo llmgw</code> is the console. In a browser, <code>http://&lt;first machine&gt;:8080</code> is the portal; sign in with the password from the last setup screen.",
"install.use.title": "The first request",
"install.use.intro": "With a key from the account page.",
"install.use.text": "On the account page, <strong>Create a key</strong>: it is shown once. Any OpenAI client works with it; only the base URL changes, to <code>http://&lt;first machine&gt;:8080/v1</code>. The chat page answers too, with the same models.",
"install.cast.0-prereq": "The checks on the first machine, then a name for each of the three.",
"install.cast.1-binary": "The latest release, its checksum checked, installed.",
"install.cast.2-setup": "Every screen of the setup, from the first question to the administrator's password. Long waits are shortened; nothing is left out.",
"install.cast.3-check": "The system's state, then the console.",
"install.cast.4-request": "A key from the account page, and the starter model answering.",
"install.shot.login": "The portal's sign-in, at port 8080 of the first machine.",
"install.shot.admin": "The cluster page: the node, its memory and disk, and the models with what each holds.",
"install.shot.newkey": "A key made on the account page, shown once, with a request to copy.",
"install.shot.chat": "The chat page, with the starter model.",
"install.next.title": "What next",
"install.next.intro": "Each is in the console, under Do, as well as on the command line.",
"install.next.nodes.title": "GPU nodes",
"install.next.nodes.text": "<code>sudo llmgw node add &lt;user&gt;@&lt;address&gt;</code> logs in, installs llmgw, checks the node with <code>llmgw doctor</code>, and starts its agent. The node installs its engines itself.",
"install.next.models.title": "Models",
"install.next.models.text": "<code>/admin/mirror</code> → Explore models: what your nodes can run, downloaded once into the mirror, then served always on or on demand.",
"install.next.people.title": "People",
"install.next.people.text": "Accounts, organisations and projects, budgets and limits; single sign-on with Entra ID, Active Directory or OIDC.",
"install.next.https.title": "HTTPS",
"install.next.https.text": "Put Caddy or nginx in front of port 8080 before anyone outside a trusted network uses it. The configurations are on the <a href=\"%s#proxy\">about page</a>.",
"install.trouble.title": "If it goes wrong",
"install.trouble.intro": "What this install met, and what else is common.",
"install.trouble.see": "What you see",
"install.trouble.do": "What to do",
"install.trouble.starter.see": "<code>starter model … has nowhere to run</code> at the end of the install",
"install.trouble.starter.do": "The first machine has no room left after the judges. <code>llmgw ctl explain-placement &lt;model&gt;</code> says what it lacks. Give it more memory, or add a node, then run <code>sudo llmgw</code> again: it finishes what is missing.",
"install.trouble.judge.see": "An answer comes back empty, with <code>\"finish_reason\": \"content_filter\"</code>",
"install.trouble.judge.do": "The guardrails' judge gave no verdict in time, and an unchecked answer is refused, not let through. The judge needs free cores; on a machine shared with a model it can miss its budget. Give the judges more cores, or a machine of their own.",
"install.trouble.ssh.see": "The checks cannot log in to another machine",
"install.trouble.ssh.do": "Many cloud images turn SSH password login off. Use a key file or the ssh agent instead, or a join code: <code>llmgw join &lt;code&gt;</code> on that machine.",
"install.trouble.check.see": "A check fails: ports, clock, disk",
"install.trouble.check.do": "Each says what it found. Fix it on that machine and press R on the checks screen.",
"install.trouble.node.see": "Anything else about a machine",
"install.trouble.node.do": "<code>sudo llmgw doctor</code> on it. <code>--json</code> writes everything it read, to send to whoever helps you.",
"install.footer.recorded": "screens recorded with %s",
"install.footer.full": "The full install guide",
"install.play": "Play",
"install.pause": "Pause",
"install.again": "Play again",
"install.tty_label": "A terminal screen, recorded",
"install.hero.time_value": "~3 min"
}