{% extends "admin/_layout.html" %} {% from "_macros.html" import icon %} {% set section = "general" %} {% block title %}General - {{ brand.name }}{% endblock %} {% block heading %}General{% endblock %} {% block admin_content %}

Instance-wide settings. These are stored in the database and take effect immediately — no restart, and they survive one.

{% if saved %}
{{ icon("check", "icon--sm") }} Settings saved.
{% endif %} {# The instance name used to be here. It lives on Customization now, with the logo, the wording and the themes -- one field, one page. Left as a link rather than duplicated: two controls writing one value is how each becomes the answer to "why did my change not stick?". #}

The name, the logo, the wording and the themes are on Customization.

Default system prompt

Applied to every chat that does not have a prompt of its own. A model's prompt overrides this, and a chat's prompt overrides both — most specific wins outright rather than the three being stacked together.

Leave empty to send no system prompt at all.

Compaction

A long conversation eventually fills the model's context. When it gets close, the earlier turns are summarised and the summary is sent in their place. The messages themselves are kept and stay readable in the transcript — they simply stop being sent.

Percent of the model's context length. 0 turns automatic compaction off; the button in each chat still works. Nothing happens for a model whose context length is unset under Models — that is "unknown", not "small", and this will not act on a number nobody supplied. The wording of the summary is under Prompts.

Tool calls in an ordinary chat

A model ends its own turn the moment it stops asking for tools — that is it saying it has what it needs, and nothing here overrides it. This is a ceiling for the case where it never says so.

Several tools can be called in one round, so this is not a count of tools. Leave room for at least two: knowledge_get and notes_get read a document by an id a search returned, so a ceiling of one leaves the library searchable and not readable. 0 means no ceiling, which is how an agent chat already works — those are bounded under Agents by time and tokens instead.

Registration {% if values.allow_signup %} open {% else %} closed {% endif %}

Turn this off once your users exist. Sign-in is unaffected — existing accounts keep working, and the "Create one" link disappears from the sign-in page.

{% if values.allow_signup and user_count > 0 %}
{{ icon("warning", "alert__icon") }}
Registration is open.
This instance has {{ user_count }} account{{ '' if user_count == 1 else 's' }}. Anyone who can reach it can add another, and every account can use your configured models and API keys.
{% endif %}

LEMBAS_ALLOW_SIGNUP in the environment sets only the starting value. Once saved here, this setting wins.

{% endblock %}