Repository navigation
Releases: Dokoyamo-Lisa/Meridian
Release list
Rosélune 1.4.0
Upgrade the panel, then the agents (Settings › Updates - nobody is disconnected). The new server
features need agent 1.4; on servers added before, nothing new is installed until you ask (Servers ›
Install missing software).
- Security mode (per server, Security mode on its page): what the agent does by itself
against what production servers meet every day - blocks addresses that keep guessing SSH
passwords (5 failures in 10 minutes: an hour out of SSH, a day after 3 blocks in a day; never a
private address, one that signed in lately, the panel's own or the one you turned it on from),
makes SSH take keys only (after checking that an account which may sign in has a key, so nobody is
locked out), and stops a known crypto-miner the health check finds, quarantining its program. It
does nothing until a person turns it on in a browser and confirms - never an API token, an
assistant or the bot - and everything it does is in the timeline. Needs agent 1.4. - The agent prepares a new server by itself: once it has its first state it makes sure Xray and
Hysteria are in place - from their official GitHub releases, checked against their published
checksums - and looks at what the host offers (nftables, WireGuard, a clock kept in time, a public
address). The panel shows every step as it goes (in the setup guide right after the agent
connects, and on the server's page), with the download's progress, and says what to do about
anything the host lacks. A core the server had whose program file goes missing later is installed
again by itself, and so is one a protocol needs. - Servers that ran before get nothing new without asking: on a server added before 1.4, the agent
shows the cores it lacks as missing, with an Install button on the server's page - and
Install missing software on Servers does it on every such server at once (nobody is
disconnected). - Reinstall, or start a server over (⋯ › Reinstall… / Clean reinstall… on the server's
page, or several servers at once from Servers): a reinstall downloads every core again from
its official release and sets every proxy the panel has for the server up again - the same ports,
keys and links; when a download fails nothing changes. A clean reinstall starts the server over as
if just added: its protocols and forwards are removed (in the panel too - after typing the server's
name), the cores and everything Rosélune set up there are cleared, fresh cores come from the
official releases and the setup script runs once more. One core alone (Xray or Hysteria) can be
installed again too. Needs agent 1.4; also as the assistants' reinstall_server. - Cores come from their official release first, with the panel's copy only as a fallback (it was
the other way round), and a source whose file does not match its checksum is passed over for the
next. - Cores that upgrade themselves (optional, Settings › Cores): off by default; on, Xray and
Hysteria follow the versions in Settings at night, one server at a time - each restarts once. - Servers with several IP addresses: a protocol can be given one of its own even behind a
cloud's elastic or floating IP - the agent asks, from that address, which public address its
traffic leaves with, and links then give that one. An address devices could not reach is refused. - A warning about Cloudflare: when you add or change a protocol, the domains it depends on are
looked up. A REALITY camouflage site behind Cloudflare, a domain pointed at Cloudflare's proxy (the
orange cloud), the address in its links proxied by Cloudflare, or a CDN domain on Cloudflare is
shown in red in the form, and saving asks once more - it risks being taken for abuse (saving still
works). www.cloudflare.com is no longer picked as a camouflage site by itself. - A setup script per server (1.4 agents): a script the agent runs after the cores are in place,
as root, once for each version - to install a package, open a port at the host's firewall or tune
the kernel. Its output and exit code come back to the panel. Browser sessions only, confirmed. It is
also where proxy software Rosélune does not manage can be installed - the page says plainly what
that costs (Rosélune cannot audit it: no counting, quotas, limits, rules or logs for it, and the
health check cannot vouch for its programs) and that support for a missing proxy can be asked for
from @JensenSu on Telegram. - VLESS · TLS · Vision is offered as a starting point in the protocol form.
- The protocol form shows Port and Name at once, right under the choice of protocol (they were
folded away), and on a server with several usable addresses the address too - a private one with
the public address devices reach it at. - Phones: long words (addresses, links in error messages) no longer widen the page; the health
check's risks keep their full width with the buttons below them; the health intro is folded; a
scrolling tab strip keeps the chosen tab in view. - Quick search: Ctrl K or ⌘K (or /, or the magnifier at the top on a phone) finds a
server, a user, a protocol or a page and opens it. - Copy a user's link from the list (the copy button by their name), and copy a protocol to other
servers (its ⋯ menu): the same settings with keys of their own, on the same port where it is
free there. - Several servers at once: tick servers on Servers to install missing software, reinstall or
start them over together. - Fixes: a server with no mieru, Snell or AnyTLS protocol could report an error about their list after
its folder was cleared; uninstalling an agent now also stops users' own servers (mieru, Snell,
AnyTLS).
Rosélune 1.3.2
Fixes; upgrade the panel, then the agents (Settings › Updates - nobody is disconnected).
- An agent installed again for another panel no longer skips that panel's first actions. Agents
remembered which actions they had done by number only, and a new panel numbers its actions from 1
again: an agent reinstalled for a new panel (or a panel restored from an older backup) ignored
restarts and upgrades whose numbers it had seen before. Actions now carry when they were made, and
an install for another panel or server forgets the old panel's actions, its state and the relay it
reached that panel through. Tested: a new panel's action 31 and another's action 27 both ran on an
agent that had done actions 27-31 for an earlier panel. - The note for servers with IPv6 only (the Add a server dialog, and the page of such a server
that cannot reach the panel) no longer suggests a relay, which such a server could never learn of,
and makes sense when the panel is reached at an IPv4 address: it asks for a domain name with an
AAAA record. - Certificates: the page now says that AnyTLS uses them too and reads a replaced one at once.
- The guide covers every feature: more protocols, a port for each person (mieru, Snell, AnyTLS),
certificates, the server's page, servers in special places, importing a setup, sharing servers,
traffic splitting, a person's page, limits, monitoring, health checks and protective steps,
country rules, sign-in safety, the status page, branding, the Telegram bot, and automation.
Install or upgrade: see the README. Panels with automatic updates install it by themselves at night (only releases signed with Rosélune's release key); every agent follows. Check the files with sha256sum -c SHA256SUMS --ignore-missing.
Rosélune 1.3.1
Security: upgrade every server's agent, then press restart needed. In 1.3.0, the users of mieru
and Snell could reach the server itself and the private network behind it through their own
server: their processes ran as root and lacked the guard Xray's traffic has - tested: a Snell user
opened a page that listened only on the server's loopback, and SSH on a private address. Agent 1.3.1
runs every user's own server (mieru, Snell and the new AnyTLS) as the account meridian-solo,
without any rights, and nftables refuses that account's new connections to the server itself and to
private, link-local and cloud-metadata networks (DNS to the server's own resolver excepted) - what
users ask for reaches the public internet only. New and changed servers start that way at once;
those already running move over when you press restart needed on the server (or Restart
everything). Servers without mieru or Snell were never affected.
- AnyTLS: a new protocol - TLS whose padding hides the tell-tale pattern of TLS inside TLS. Like
mieru and Snell, each user gets their own port and a small server (sing-box 1.14.2, from its GitHub
releases, checked against its checksum; about 15-25 MB of memory each), so usage, speed limits,
device limits and cuts are exact per user. The certificate is self-signed (no domain; pinned by
the mihomo apps, sing-box and Surge - iOS 5.17, Mac 6.4.3 and later), from Let's Encrypt, your own,
or a shared one (then Stash and the Hiddify apps - Hiddify, NekoBox, Karing - can use it too); a
renewed certificate is read again without a restart. Tested end to end with mihomo and sing-box:
connecting, a wrong pin refused, the server's own and private addresses out of reach, counting,
the quota cut and coming back. Needs agent 1.3.1 and nftables. - Restart everything - on a server (More actions), on every server at once (Servers, and
Settings › When a user's data runs out): Xray, Hysteria2, every user's own server and the realm
forwards restart once, with whatever waited for a restart, then the agent - after a confirmation
that says everyone reconnects. Use it after upgrading agents: until Xray restarts, a long
connection's data is counted only when it ends, so strict mode cuts late there. Never automatic.
Needs agent 1.3.1 (older ones are named and left out). The assistant has it too
(restart_all_servers,server_action restart_all), only after your yes. - The health check looks further: SSH that lets passwords sign in (or accounts without a
password), accounts with an empty password, programs with administrator rights in/tmp,
/var/tmpor/dev/shm, changed sign-in rules (/etc/pam.d,/etc/security), start-up files
(/etc/profile,/etc/profile.d,bash.bashrc,/etc/environment, root's.bashrcand
.profile), library paths (/etc/ld.so.conf.d), and updates waiting for a restart of the server.
Files newly watched are learned quietly at the first check after the upgrade. - Protective steps: where the server can do something about a risk, the risk has a button that
says what - Stop it (the process; its program goes into quarantine when it sits outside the
system folders), Remove this key, Lock the account (its processes stop too), Turn it
off (a service started at boot), Move to quarantine (a planted scheduled task, sudoers or
profile file,ld.so.preload, a program with administrator rights in a temporary folder), SSH:
keys only, Block the addresses that keep guessing SSH passwords. Nothing happens until you
press it and confirm - in the browser only: tokens, assistants and the bot cannot. The server
checks everything again first (the same process, the file as it was found), refuses Rosélune's own
and the system's own, never removes the last way in (keys only needs an account with a key; never
blocks your own address, a private one or one that signed in), and every step but stopping a
process can be undone from the risk. Each request, its result and who asked are in the timeline.
Needs agent 1.3.1. - Fixed: a device limit was not enforced for mieru and Snell users unless they also had Hysteria2
on the same server - devices over it are now turned away on their own servers too. - Fixed: sing-box apps before 1.14 refused a whole subscription that contained Snell (an outbound
type sing-box 1.14 brought); Snell now goes only to sing-box apps that say they run 1.14 or later. - The assistant can set how many users mieru, Snell and AnyTLS have room for (
users) and mieru's
transport (transport: tcporudp).
Install or upgrade: see the README. Panels with automatic updates install it by themselves at night (only releases signed with Rosélune's release key); every agent follows. Check the files with sha256sum -c SHA256SUMS --ignore-missing.
Rosélune 1.3.0
Meridian is now Rosélune - in the Romance look, with a rose of its own. A panel still called
Meridian takes the new name, the rose and the Romance look by itself (a look someone had picked
stays); a panel with a name of its own keeps its name, the umbrella and the look it had. Either way
the timeline says so, and Settings › Panel changes any of it. The programs, services, paths, settings
files and this repository keep the name meridian, so nothing changes on the servers.
A user who uses up their data is now suspended by itself. After the upgrade, anyone already over
their quota stops being served at once, until their data starts over. Agents need no upgrade.
- Out of data: once a user has used all of their quota, no server serves them - from the report
that used it up, on every server, live (nothing restarts, nobody else is touched). They are back
by themselves when their data starts over: at their next reset (now checked every minute, not
every hour), or at once when you raise their quota, reset their usage or start a new period on a
plan. A quota that never resets keeps them out until you do one of those. A pause stays yours:
nothing resumes a paused user. - Strict or loose (Settings › Panel › When a user's data runs out): strict, the default, cuts
everything they have open at once, on every protocol; loose refuses new connections at once and
lets what is open go on for at most 10 minutes or 5 GB more (both adjustable), whichever comes
first - then cuts it. - Cut means cut, on every protocol. A user taken off a server - out of data, paused, deleted, their
credentials reset, their access narrowed - loses what they still had open there too, within
seconds: their connections to VLESS, VMess, Trojan, Shadowsocks, SOCKS5 and HTTP are closed (only
theirs, even behind an address others share - the agent knows each connection's user from Xray's
log), Hysteria2 sessions are ended, WireGuard devices removed with the connections they had open
through the server. The server's own connections to the sites end with them. Before, connections
already open ran on until they ended by themselves. Needs agent 1.3 (Settings › Updates › Upgrade
all agents); older agents only refuse new connections. - Traffic counted as it flows, everywhere. Xray counted long VLESS Vision, SOCKS5 and HTTP
downloads only when they ended (its zero-copy relay), so a quota could not stop one in time. Agent
1.3 starts Xray so it counts everything as it flows. On a server whose Xray is already running this
waits for a restart, shown as restart needed - press it when it suits you. - Everyone sees it: a red Out of data in Users and on the user's page (with Raise quota and
Reset usage… right there), the count on the Overview, the alert Sam used all of their 100 GB -
suspended, back on 1 Nov, the notification, and the Telegram bot. The user's own page, their
link's page and/usagein Telegram tell them when they can connect again. Their link keeps
working, so their apps keep the profile and connect again the moment the data is back. - mieru and Snell: two new protocols. Each user gets their own port and a small server
process (mieru's server mita, from its GitHub releases; Surge's snell-server 5, from Surge's
site, checked against pinned checksums), so usage, speed limits, device limits and cuts are exact
per user. A protocol has room for 50 users by default (1-1000), on the ports from its port on.
Links: mieru for the mihomo apps (Clash Verge Rev, FlClash, Mihomo Party) and Stash; Snell, as
version 4, for Surge, Stash, the mihomo apps and sing-box. Tested end to end with mihomo and
sing-box: connecting, counting, the quota cut, live speed limits. mieru over UDP is left out for
users with a speed limit (it stalls under one). Needs agent 1.3 and nftables. - Speed limits and Hysteria2: a Hysteria2 transfer of a user with a speed limit stalled
completely (its apps declare no bandwidth by default, and their congestion control does not
survive a limit that drops what goes over). A limited user's Hysteria2 links now declare 95% of
the limit, and the server lets in only Hysteria2 apps that declare a rate within it - tested at 200
and 300 Mbps. After a limit is lowered, an app still on the old link is turned away until it takes
the new one, and the timeline says which user. Everything else follows a changed limit within
seconds, downloads already running included. - Rosélune: the name on every page, message, notification, guide page and help text, and the
name a new panel starts with. - Romance, refined, is the default look of the panel, the status page and users' pages: the name
in italic serif under a frosted top bar, navigation in the serif with a fading rose underline,
tables headed in small capitals, cushioned cards and windows over a softly blurred page, and a
sign-in on a card of frosted paper among falling petals (none with reduced motion). Text now reads
at 4.5:1 or more on the blush paper (the faintest, timestamps and chart labels, at 3:1), and the
accent is the rose of the logo.
Loading screens, the browser's bar on phones, subscription pages and the region notice follow the
site's look too (they were always dark Ice or Paper). - The rose, Rosélune's own logo: five rose petals, a blush bloom inside them and the moon at its
heart - its petals fly in while pages load, and signing in opens the page as a rising moon. The
umbrella stays one click away (Settings › Panel › Name and logo), and an uploaded logo works as
before. - Follow the device: a site's look can be Ice for devices set to dark and Paper for those set to
light - what pages opened with before 1.3 (default_toneauto). - API: a user's
statuscan beout_of_data, and the overview countsout_of_data. Settings have
logo_mark(rose|umbrella);default_toneisromanceby default and refuses an unknown look
with the list of looks. The MCP toolset_brandingtakesmark. The MCP tools and the assistant
skills describe the rules. - Fixed: the status page's globe stayed empty - not even the earth - while no server had a known
location. - Fixed: the sign-in page's title took the top bar's letter spacing in the Romance and Umbrella
looks. - Fixed: resetting the usage of a user whose limit on a protocol had stopped that protocol serves
them there again at once (the servers waited for the next change before).
Meridian 1.2.0
Upgrading keeps everything as it is. Agents need no upgrade (nothing changed for them); the
panel's database gets one new table for passkeys.
- Passkeys: sign in to the panel with Face ID, a fingerprint, Windows Hello or a security key
instead of the password and code - Settings › Security › Passkeys, then Sign in with a
passkey on the sign-in page. A passkey cannot be guessed or phished, works only at the panel's
own address, and counts as both factors (no two-factor code). Passwords keep working beside it.
Adding and removing passkeys is notified with the other sign-in events. - Tighter sign-in limits: three tries per address and five per username from new addresses
within 15 minutes; three wrong passwords shut an address out (15 minutes, longer if it comes
back); ten from one network - its IPv4 /24 or IPv6 /24 - within an hour keep the whole network out
for a day, and the supervisor is told. Addresses that signed in to the account before are never
held back by their network or slowed down at their own username, and passkeys always get in. - The account menu's Passkeys & password opens Settings › Security, whose sections are numbered
in order again (two were both 03). Signed-in browsers show which ones signed in with a passkey.
Also in the repository, outside the panel and the agents:
- The guide as a website: doc.losantos.space, built from these very
documents (site/:cd site && go run ./build). - A public demo: deep.losantos.space - eight servers and sixteen
people that do not exist, a month of history and agents reporting live, on a panel visitors may
look around in and nobody can change.demo/is the kit to run one.
Meridian 1.1.0
Upgrading keeps everything as it is. Nothing changed for agents: 1.0.0 agents keep working, and
upgrading them is optional.
- Two new looks: Umbrella - black glass, white type and one signal red, a laboratory's grid
and hazard tape - and Romance - blush paper, rose ink, a serif voice, rounded and soft. Both
dress the panel, the status page (its globe and charts too) and users' pages; anyone can pick
them with the palette button. - The site's look: Settings › Panel › Name and logo › Look sets what people see before they
pick one themselves (default_tone; MCPset_brandingtakeslook). - The palette button's menu is called Look, as in Settings, and always marks the look on screen
(it kept marking the one from when the page opened after a look was picked in Settings).
Meridian 1.0.0
Upgrading keeps everything as it is: an existing panel keeps its SQLite database (move it to
PostgreSQL whenever you like: meridian db to-postgres), and agents from 0.7 keep working - upgrade
them for the new features (Settings › Updates › Upgrade all agents - nobody is disconnected).
One change of behaviour: changes from Telegram (pausing users, deciding about health risks) now
need a listed Telegram user or your own linked Telegram account - an empty list no longer lets
everyone in the chat make changes.
New
- PostgreSQL: a new panel keeps its data in PostgreSQL, installed from the distribution's
packages and reached over its local socket without a password (--database sqlitekeeps SQLite).
meridian db status,meridian db to-postgres URLandmeridian db to-sqlitemove the data either
way, with the counts checked and the old database kept. Backups are SQLite files either way and
restore into either. Settings › Updates shows the database. - A server's history on the status page: a server's details have charts of processor, memory,
disk, disk activity, network, load, connections and temperature (where the host has sensors), from
an hour to 30 days, as areas, lines or bars, smoothed or as measured, with the time a server did
not report hatched; hovering one chart shows the same moment on all of them. Each viewer picks the
charts they want; you decide which visitors get (Settings › Panel › Status page). An icon for each
operating system, what the host runs in (KVM, Xen, OpenVZ, LXC ...) and its kernel. - Ping monitors (Monitor › Ping): the servers measure the way to addresses you choose, every 10
seconds to an hour - three ICMP echoes or three TCP connections a round. Rounds measured while a
server cannot reach the panel arrive later, so no gap is left that the server did not have. Their
charts are in each server's details (visitors see public monitors by name, never their address);
/pingin the Telegram bot. - Telegram for users: users link up to two Telegram accounts - signing in once in the bot's Mini
App (the password goes to the panel, never through the chat) or with a code from their page - and
ask the bot for their data left (/usage) and devices (/devices), or open their page in
Telegram. They can unlink one a month; you can unlink any at any time (Settings › Notifications). - The panel in Telegram: your own linked Telegram accounts open the panel in the Mini App and use
the bot's commands in a private chat (allowed only from a signed-in browser). A sign-in from
Telegram cannot change passwords, two-factor, API tokens, sessions, the console, plugins or the
site rule. Sign-ins from Telegram are guarded like the sign-in page. - Shared servers: a server can report to up to two more panels. The other panel adds it as
shared and gives a code; with it the agent runs that panel's protocols, users, forwards and rules
too - everything but the console, upgrades, the country rule and relaying, which stay with the
server's own panel. Ports and networks in use are refused to the other panel. - Limits per protocol: at most so much data through one protocol each cycle, for a user or in a
plan, with alerts when one is used up - or the protocol stops serving them until the cycle starts
over. The users' circles show what is left: full at the start of a cycle, running down. - Traffic in colour: users' charts show what each protocol (or server) carried.
- Subscription links: a provider's subscription read on a schedule; its nodes work as exits, in
load balancers and for users. - The console: a root shell on each server, in the panel, for the supervisor only (with the
password asked again). - Backups: download, or WebDAV and S3 on a schedule (encrypted), and restore from the panel.
- Users: what counts toward the quota, a start date, resets every N days, speed and device limits
enforced by the servers, preset plans. - Sign-in protection: escalating shut-outs, no lockout of the owner, Cloudflare Turnstile on the
panel's own pages, and maintenance mode. - Your own styles: CSS for the panel and for the status page and users' pages.
- Status page switches: whether visitors and users get the overview and the events.
- Protocols page: search, filters, and choosing who gets each protocol in a few clicks.
- Also in 1.0 (merged earlier): agent relays and a WebSocket link to the panel, health checks and the
Telegram bot, plugins, traffic splitting with external nodes, dynamic DNS and IPv6-only servers,
VLESS Encryption, Hysteria2 port hopping and Trojan with REALITY.
Security
- Changes from Telegram need an explicitly allowed account (see above).
- The health check reads only regular files, opened without blocking: an
authorized_keysturned
into a FIFO can no longer hang it, and a linked one is followed only to anotherauthorized_keys. - A server shared with the panel cannot be set to use or to be a relay (its agent ignored it).
API and MCP
New endpoints: ping monitors (/api/ping-monitors), a server's charts (/api/servers/{id}/series,
and for the status page /api/status/servers/{id}/series), Telegram links (/api/telegram/*,
/api/portal/telegram*, the Mini App's /api/tg/*); status_charts, telegram_user_link and
telegram_panel in the settings; database in GET /api/update. MCP tools: list_ping_monitors,
set_ping_monitor, remove_ping_monitor, server_charts, list_telegram_links,
unlink_telegram; set_status_page takes charts, set_notifications takes user_link.
Upgrading: a panel installed with 0.7.0 or later updates itself (Settings › Updates › Update
now, or overnight with automatic updates on) and keeps its SQLite database; older installs run
sudo ./install-panel.sh --upgrade from the unpacked release. Then upgrade the agents (Settings ›
Updates › Upgrade all agents) - nobody is disconnected. New installs get PostgreSQL.
Meridian 0.7.4
Security: upgrade the panel and the agents (Settings › Updates › Upgrade all agents - nobody is
disconnected). Meridian is now built with Go 1.27.2 and golang.org/x/net 0.60.0, which fix twelve
published issues in Go's HTTP server and client, HTTP/2, TLS, header parsing and HTML templates
(GO-2026-6599, 6600, 6603, 6605, 6607 to 6613 and 6617). go.mod names the toolchain, so builds
from source use it.
- IP addresses are off the status page by default, and the switch now applies to everyone who
opens it - you included (the panel always shows them). A panel that never changed the switch
stops showing addresses when it upgrades; to show them again, turn on Settings › Panel › Status
page › Show IP addresses.
Upgrading: a panel installed with 0.7.0 or later updates itself (Settings › Updates › Update
now); older installs run sudo ./install-panel.sh --upgrade from the unpacked release. Then upgrade
the agents (Settings › Updates › Upgrade all agents).
Every file is listed in SHA256SUMS, signed in SHA256SUMS.sig with Meridian's release key (panels
verify it before installing an update).
Meridian 0.7.3
The agents have no changes in this version: upgrading them is optional.
- Every IP address on the status page: a server's list now also has the addresses its protocols
give users - an address of their own, or one set for their links. Behind NAT these differ from the
address the agent finds, which is the one the server reaches the internet from (servers behind
the same NAT showed only that shared address). For a server behind NAT without protocols, set
Address clients connect to on its page to show where it is reached.
0.7.2 made the status page show every server to everyone, IP addresses included - see its notes.
Upgrading: a panel installed with 0.7.0 or later updates itself (Settings › Updates › Update
now); older installs run sudo ./install-panel.sh --upgrade from the unpacked release.
Every file is listed in SHA256SUMS, signed in SHA256SUMS.sig with Meridian's release key (panels
verify it before installing an update).
Meridian 0.7.2
After upgrading, a status page that is turned on shows every server to everyone, IP addresses
included. To keep the addresses to yourself turn off Settings › Panel › Status page › Show IP
addresses; to give visitors only the sign-in, as before, turn off Show the servers to everyone.
The agents have no changes in this version: upgrading them is optional.
- The status page is a probe page: after the umbrella loads, visitors see every server on the
live globe and in detail - where it is and its IP addresses, up or down, availability, throughput,
load, memory, disk, connections, the system it runs, bandwidth and traffic this month and the day
its paid period ends (the server's Renews on date). Prices, users, protocols and ports are never
shown. Sign in at the top right takes users to their own page, with their own use shown on
each server too; the supervisor signs in from the same button. - More detail per server: cards show the addresses (click one to copy it), the system, load,
memory and disk used of total, bandwidth used with what was sent, received and today and when it
resets, how long the machine has been running, connections and "paid until"; the servers table has
an Expires column; a server's panel adds its addresses, resources (all three load averages, swap),
system (OS, architecture, cores, processor, memory, disk, paid until) and what its bandwidth
counts. A paid period ending within a week, or ended, is shown to the supervisor as needing
attention. - API:
GET /api/statusand/api/status/liveanswer visitors while the status page shows the
servers (status_public, and the addresses withstatus_ips); a wrong API token is refused, not
treated as a visitor. New fields per server:addrs,host,cycle,expires,bandwidth.mode,
and insysthe load averages, memory, swap and disk used and total, connections andbooted;
supervisorsays whether the supervisor is signed in. MCP:set_status_pagetakespublicand
show_ips. - Linux only: Meridian runs on Linux - the panel, the agent and the command-line tool. Releases
no longer include command-line builds for macOS or Windows; to connect an AI assistant from a
desktop, use the panel's MCP address over HTTPS (docs/mcp.md).
Upgrading: a panel installed with 0.7.0 or later updates itself (Settings › Updates › Update
now); older installs run sudo ./install-panel.sh --upgrade from the unpacked release.
Every file is listed in SHA256SUMS, signed in SHA256SUMS.sig with Meridian's release key (panels
verify it before installing an update).