Sync the self-hosting stack

This commit is contained in:
2026-08-21 15:54:16 +02:00
parent 114a006df1
commit e8a357bb2a
3 changed files with 97 additions and 26 deletions
+10 -8
View File
@@ -138,17 +138,19 @@ OPENAI_API_KEY=
#RUN_SHUTDOWN_GRACE_SEC=25
# ---------------------------------------------------------------------------
# Licence (required to create anything)
# Licence (optional — without one you get the community edition)
# ---------------------------------------------------------------------------
# Your licence key. REQUIRED to create anything new. Ask antoine@luxit.be for one.
# Leave this empty and the instance runs the COMMUNITY EDITION: 1 organization, 3 users, 5 agents,
# 10 assets, no expiry, nothing to renew, and nothing reported to anybody. Every feature works inside
# those numbers. A full limit refuses the NEXT thing of that kind and touches nothing already there.
#
# Without it, an instance keeps running everything already set up and refuses to create new
# organizations, users, agents and assets — so an existing deployment does not stop working when
# this reaches it, and a fresh install gets as far as its first administrator and then needs a key.
# An unlicensed instance also contacts nobody at all. See the README for exactly what a licensed one
# reports.
# A key raises the limits — ask antoine@luxit.be for one. It is verified offline, on this machine. A
# licensed instance then reports counts and its own address to your provider; the README lists every
# field it sends. A key that expires or is withdrawn drops back to the allowances above, never to
# nothing.
#
# This value SEEDS the database on first boot and does not govern it afterwards: a renewal arrives
# through the check-in and is stored, so leaving an old key here cannot roll you back.
# through the check-in and is stored, so leaving an old key here cannot roll you back. To replace a
# key, use Settings → Licence.
#JARVIS_LICENSE_KEY=
+29
View File
@@ -9,6 +9,35 @@ one of them changed. An entry says which artefact and which version, so `web 0.1
Every version published to a channel appears here. Nothing is written from memory afterwards: a build
cannot be published without its entry.
## api 0.83.0 · web 0.104.0 — 2026-08-21
**Jarvis no longer needs a licence key to be useful.** An instance without one now runs the
**community edition** — 1 organization, 3 users, 5 agents, 10 assets — perpetually, free, with every
feature working and nothing reported to anybody. Install it, connect it to something real, and see
what it does before there is anyone to talk to. A licence raises those limits; it does not switch the
product on.
This replaces the behaviour of the last three days, where an instance with no key came up, accepted
its first administrator account and then refused everything else. **If you installed Jarvis and found
it would not let you create anything, this is the release that fixes it** — upgrade, and the
allowances above apply immediately. Nothing needs to be reset, re-run or re-entered.
**A licence that stops applying now falls back to the same allowances**, instead of refusing every
creation. Expired, withdrawn, or a key that will not verify: your instance keeps running everything
already set up and may still create up to the community numbers. There is no state left in which
Jarvis stops being usable over a billing question.
**Fixed: an unreadable licence key blocked every creation.** The licence screen said nothing was
being withheld, and something was — a key that lost a character in a paste resolved every limit to
zero. It now falls back to the community allowances, which is what the screen always claimed.
**On the licence screen**, a fresh install no longer shows a red "No licence" badge. It says
Community edition, lists what that allows against what you use, and states plainly that nothing is
reported. The refusal you get when a limit is full names the edition and what raises it.
Nothing else changes. No configuration, no migration, no new variable — `JARVIS_LICENSE_KEY` is now
documented as optional, and it always could be left empty.
## api 0.82.0 · web 0.103.0 · agent 0.27.0 — 2026-08-21
**Nothing changes in what these builds do.** They are identical in behaviour to api 0.81.0,
+58 -18
View File
@@ -17,6 +17,11 @@ The difference from an assistant that writes commands for you to paste is that t
This repository runs Jarvis from published container images — no source, no build, no account with
the project.
**And no licence key.** A fresh install comes up on the **community edition**: one organization,
three users, five agents, ten assets, no expiry, nothing to renew, and nothing reported to anybody.
Everything Jarvis does works inside those numbers — every connector, the agent, the remote terminal,
the assistant itself. A licence from your provider raises the limits; it does not switch anything on.
- [What it does](#what-it-does)
- [What decides whether a tool call runs](#what-decides-whether-a-tool-call-runs)
- [What it looks like](#what-it-looks-like)
@@ -30,6 +35,7 @@ the project.
- [When it does not come up](#when-it-does-not-come-up)
- [Backups, and restoring one](#backups-and-restoring-one)
- [Removing it](#removing-it)
- [The community edition](#the-community-edition)
- [Licence keys, and what your instance reports](#licence-keys-and-what-your-instance-reports)
- [Getting a licence, and getting help](#getting-a-licence-and-getting-help)
@@ -154,8 +160,8 @@ inventory on every heartbeat.
- A hostname and a TLS terminator in front of it. Jarvis speaks plain HTTP and does not manage
certificates.
- An API key for an OpenAI-compatible endpoint. The api will not start without one.
- A licence key. See [Licence keys](#licence-keys-and-what-your-instance-reports) — without one an
instance runs but creates nothing new.
- **No licence key.** Jarvis runs the [community edition](#the-community-edition) out of the box; a
key raises the limits when you outgrow them.
- Roughly 2 GB of RAM for the stack and room for Postgres to grow.
## Install
@@ -363,7 +369,7 @@ so a first-boot failure is almost always one line of `.env`:
| The sign-in page loads but cannot sign in | `WEB_ORIGIN` is not the address the browser used, scheme included. It accepts one origin, not a list. |
| Chat never answers and nothing streams | The WebSocket upgrade is not being forwarded. |
| An answer dies part-way through, every time | The proxy's read timeout is too short. |
| Everything works but nothing can be created | No licence key. See below. |
| Everything works but one kind of thing cannot be created | A limit is full — the community edition's, or your licence's. The message names which. See below. |
| An agent installer answers 503 | No agent build is published — the overlay is off. That is a supported state. |
The api takes about a minute on first boot, syncing the schema before it listens. `docker compose ps`
@@ -406,19 +412,51 @@ docker compose down -v # also deletes the volumes — every conversation,
`down -v` is not recoverable from anything but a dump you already took.
## The community edition
**Jarvis runs without a licence key, for as long as you like.** An instance with no key runs the
community edition:
| | Community edition |
| --- | --- |
| Organizations | 1 |
| Users | 3 |
| Agents | 5 |
| Assets | 10 |
| Term | Perpetual. No expiry, nothing to renew, no key to lose |
| Reporting | None. Nothing leaves your network, ever |
| Features | All of them — every connector, the agent, the remote terminal, the assistant |
Nothing is disabled, watermarked or time-limited. What a licence buys is a **higher ceiling**, not
the product: the same images, the same code, larger numbers. This is deliberate and it is the reason
the images are public — you should be able to install Jarvis, connect it to something real, and find
out whether it earns a place in your work before there is anybody to talk to.
When a limit is full, Jarvis refuses **the next** thing of that kind and says which limit it was.
Nothing already there is touched: no organization is closed, no user locked out, no agent
disconnected, and the assistant keeps working on everything you have. So an instance that grows past
the community numbers — through an imported estate, say — keeps running in full; it simply cannot
add to that meter until a key raises it.
**A community instance contacts nobody.** No check-in, no telemetry, no licence server, no counting.
The reporting described below begins only once a key is in place, and never before. One consequence
we accept knowingly: we cannot tell how many community instances exist. If Jarvis is useful to you,
the only way we find out is if you say so.
To go further — more organizations for a real client base, more seats, more machines — ask for a key
(see [below](#getting-a-licence-and-getting-help)).
## Licence keys, and what your instance reports
**Jarvis needs a licence key.** Ask for one (see [below](#getting-a-licence-and-getting-help)) and
put it in `.env` as `JARVIS_LICENSE_KEY`. The key is a signed token your instance verifies
**offline** — it carries your term and your limits, and it needs no network to be checked.
**A licence key raises the limits.** Ask for one (see
[below](#getting-a-licence-and-getting-help)) and put it in `.env` as `JARVIS_LICENSE_KEY`, or paste
it under **Settings → Licence**. The key is a signed token your instance verifies **offline** — it
carries your term and your limits, and it needs no network to be checked.
Without one, an instance keeps running everything already set up — every organization, every user,
every agent, every asset, and the assistant itself — and refuses only to create NEW ones: no new
organization, user, agent or asset. So an existing deployment does not stop working when this reaches
it, and a fresh install gets as far as its first administrator account and then needs a key.
**An unlicensed instance contacts nobody.** No check-in, no telemetry, nothing leaves your network at
all. The reporting below starts only once a key is in place.
**A licence that stops applying drops back to the community edition**, and never to nothing. Expired,
withdrawn, or a key that will not verify: the instance keeps every allowance in the table above and
keeps running everything already set up. There is no state in which Jarvis stops being usable because
of a billing question, and there never will be.
A licensed instance then reports to the address written into that key, at an interval your provider
sets — every ten minutes on the current arrangement, so that a renewal or a revocation reaches you
@@ -444,17 +482,19 @@ licensed instance it is sent.** It used to be a switch on the licence screen; it
because an installation the publisher can identify only by a fingerprint is one where "which of these
is the customer calling about" has no answer. The screen shows you the exact address that leaves,
under **Settings → Platform → Licence**. If that is not acceptable for your deployment, the answer is
to run unlicensed — which contacts nobody at all — or to take it up with us before installing.
to stay on the community edition — which contacts nobody at all — or to take it up with us before
installing.
The reply can carry a renewed key, which your instance adopts on its own — so a renewal reaches you
without anybody re-pasting anything.
**Your platform does not stop working because of a licence.** Expiry gives you a grace period — as
long as your key says, which on the current plans is 30 days, and none at all on a trial. After it,
Jarvis refuses only the creation of new organizations, users, agents and assets; everything already
set up keeps running, and so does the assistant. There is no state in which Jarvis disables, deletes
or locks you out of something you are already using. If the check-in cannot reach the server, nothing
changes at all: the key you hold is what governs, and it is checked without a network.
the instance returns to the community edition's allowances: everything already set up keeps running,
the assistant included, and only creating something beyond those numbers is refused. There is no
state in which Jarvis disables, deletes or locks you out of something you are already using. If the
check-in cannot reach the server, nothing changes at all: the key you hold is what governs, and it is
checked without a network.
## Getting a licence, and getting help