The server home page is the single bookmark every app on the server opens from. Instead of memorizing the address of each agent and tool, you visit one page and see their cards. It is a static board: MultiAgent builds it from its own database and uploads it to the server, where Nginx serves it at the root /. It needs no container of its own — the installed Nginx is enough — and the page keeps no state at all.
The page has no sign-in of its own. Everything is decided by the central login: when it is on, the root is gated together with the other protected apps; when it is off, the page is open. This way one account unlocks both the board and every app on it.
The “Home page” tab
The tab sits just to the right of the Nginx tab — Nginx is installed first, otherwise there is nowhere to install the board. The tab holds the install, the apply button (a rebuild and re-upload), the page’s public address, the number of cards and the language choice; there are no login and password fields — the page is static and has no sign-in of its own.
What is on the board
The cards are what MultiAgent tracks in its own database. One card per agent, product and tool with an address, with the projects’ real logos: agents carry the Agent logo, apps the logo of their template, tools their own. When there is no logo, the card gets a small square with the first letter of the name. An app card’s caption drops the word “App”: “Analytics App” becomes “Analytics” — the card says what the app is, not that it is an app. That is only the caption on the board: the record in the interface keeps its full name.
- Extra link icons — the top-right corner of an agent’s or app’s card shows the icons you set on its “Links” tab: hover to see a tooltip with the link’s title;
- The corner button row — common actions live not as cards but as icon buttons in the top-right corner of the board, over the grid. From left to right: “Git” — only while Forgejo runs on the server, leading to its public subfolder; “QR login” — only while central login is on; and always “Logout” on the far right — it ends the central-login session, signs out of every agent and product (their tokens are deleted) and returns to the board. One click ends every session on the server at once, instead of leaving each app separately. The corner buttons do not count as apps: they are not part of the card count on the tab;
- Same tab — a card opens in the same tab, and the browser’s back button returns to the board.
QR login
The “QR login” button opens a page with a large code, and below it the same link for copying (one click puts it on the clipboard). On a phone it is enough to point the camera at the code, or to open the link you were sent: the device signs into the central login and lands on the board right away — no password to type. The link can be copied and sent to a person: they sign in the same way, without a password.
The code is single-use and lives for 24 hours. It works until it is used: after the first sign-in the link stops working, and an unused one expires in a day. The server keeps up to ten live codes at once, and each opening of the page shows the next one in turn — the one you just saw will not repeat. So you can hand out access to several people or devices, and one person’s sign-in does not cancel the others.
If a code has already been used or has expired, the page says so and offers a link to the board — a new code is issued by the “Login link” button in the server card header. You can return to the board from the code page with the “Home” button in its corner.
The logout page is arranged the same way: it first asks for confirmation, and nothing ends until you answer. It looks like the board itself — the same background — but the buttons differ: “Cancel” is plain and goes back without touching anything, while “Logout” is red and ends the sessions.
The board is always current
You never edit the page by hand: MultiAgent rebuilds it on every change that touches the line-up of apps — an agent or tool deployed, a record renamed, a link added, the central login turned on or off. The build also runs at the end of every Nginx apply — even when the route configuration itself did not change. That is why a missed update never stays missed: the board catches up with the current state on the next apply. The manual apply button does the same at once, when you need to catch up. Uploads are frugal: when the same page already sits on the server, the file is not sent again.
The page’s language is chosen on the tab — English or Russian. Without an explicit choice the page renders in MultiAgent’s own language; saving the choice rebuilds the board immediately, with nothing else to do.
If an older home page used to run on the server, the install cleanly removes it and puts the new one in place — every step is visible in the progress feed.
Access and priorities
The board is served at the server’s root, and the app subfolders always take priority: an agent with the slug settings is served at /settings/, while the home page keeps working at the root. The board is just static files handed out by Nginx: if Nginx is stopped, the board goes down with it, but the app containers themselves keep running untouched.
The browser-tab icon of MultiAgent itself is always the same: no event changes it. That tasks have piled up waiting for a decision is signalled only by the number before the tab title, not by the picture.