Skip to main content
All pages in this manual

Keeping it safe and current

Software, search and the system monitor

What this page is for: three things that sit across the whole panel — Server → Software, where you add optional programs to this server with one press; the search at the top of every page, which finds a place by any of the words people use for it; and the system monitor, which keeps the server's load, processor, memory, swap, disk and network for days so you can look back at them.

You need

  • The owner's login to install or remove software and to switch the system monitor on or off. A temporary login sees the Software tab and the monitor's charts read-only; the read-only demo shows them and changes nothing.
  • Nothing else for the search: it works on every page, for everyone who can sign in.

The rule that does not move: nothing on these pages runs until you ask for it. A program on the Software tab is not installed, and does not run, until you press Install; the system monitor keeps nothing until you switch it on.


Server software

Open Software in the menu. All software is its first tab; PHP and Node.js are the next two.

The line at the top says what this server has: its memory (and how much is free), free disk, processor (amd64 or arm64) and operating system.

Under it is one list of every program on this server — the ones SixPanel installed itself and the ones you can add — grouped by what each is for, always in this order: Web server, Languages and runtimes, Databases, Caching, Email, Security, Tools (Docker, the FTP server, Local AI). nginx stands beside Apache, MariaDB beside PostgreSQL, Redis beside Memcached.

Each row says on its first line the program's name, its state — Running, Stopped, Off, Failed, Installing…, Not installed, or On this server for one that is not a service (certbot, PHP, Node.js) — its version, and Update waiting or Security update when a newer version is offered. Under that:

  • what the program is, in a line;
  • Used by, and the projects, websites and mail domains that use it (below);
  • for a program you add here, what it needs: memory, disk, the processor it is built for and the operating systems it runs on. A program this server cannot run says Cannot be installed here, with the reason — for example the memory it needs and what this server has — and its Install button stays grey.

A program's parts stand under it, each with its own state: the mail server's Postfix, Dovecot and Rspamd under Email (once it is installed), and the PHP-FPM of each PHP version under PHP.

The buttons at the end of a row (under it on a phone) are the ones that program has:

  • Install asks first — the dialog repeats what the program needs and says that nothing else on the server changes — and then runs as a job. One install or removal runs at a time, like every job on the panel.
  • Manage opens the program's own page — for example Docker's containers, images and volumes. Updates opens its updates, Open the page its settings are on.
  • Reload (nginx) and Restart (MariaDB, Redis) — see below.
  • Start a program that is stopped or failed — the first thing to press when one has crashed. Stop and Restart ask first and name what stops working: "Until then these stop working: Jar Shop, mail-example.com". Each runs as a job, and is refused with that job's name while another job runs. Stop leaves it stopped until you start it again.
  • Log shows the newest lines of the program's own log (its systemd journal), read again with Refresh.
  • Start at boot decides whether the program starts by itself when the server starts.
  • Remove takes the program off the server and keeps its data, so installing it again finds everything where it was. To delete the data as well, tick Also delete its data and type the program's name to confirm — that cannot be undone.

Not every program has every button, on purpose:

  • nginx, MariaDB and Redis have no Stop and are always started at boot. Every website and shop on the server uses them, and a stopped one would leave all of them down until somebody came back. Their own Reload or Restart is the safe way.
  • Varnish, Apache and Memcached run exactly while a website uses them, and SixPanel starts them again when one is down. They have Start and Restart but no Stop and no boot switch: turn one off on each website's page instead.
  • Local AI and phpMyAdmin are turned on and off (Start, Stop); that also decides whether they start at boot.
  • PostgreSQL, Docker, the email server and the FTP server have every button. Docker is stopped together with its socket, so nothing starts it again behind your back.

Remove is refused while anything uses the program. The dialog lists each project, website and mail domain that uses it, each a link to where it does, and offers no removal: turn the program off there, or remove them, first. The server refuses it too, whoever asks.

Only the owner of the server sees these buttons; a temporary login sees the state alone.

While a job you started from a row runs — an install, a removal, a restart — that row says which step it is on ("step 2 of 5 — Install the packages"). When the job has ended, the row says done or failed, with the reason, for ten minutes. Watch the log beside it opens that job's log; the bar at the top of the page names the running job as well.

A program's own page starts with its row from the list — its state, who uses it and the same buttons — so nginx, MariaDB and Redis have their Reload or Restart there too, above their updates. All software at the top of the page brings you back to the list.

PHP, Node.js and ionCube have their rows too, with what this server has (the server's own version, the extra versions, which PHP versions have ionCube on). They are managed on their own tabs: Open goes to Software → PHP or Software → Node.js.

One-click apps — ready-made apps that run in Docker on this server, each with its own address — appear under the list when this version of SixPanel carries them, each with what it needs and a Set up button. They are not programs on the server, so the filters leave them out: they show under All.

nginx, MariaDB, Redis, certbot, phpMyAdmin and, once SixPanel Email's webmail is installed, Webmail (Roundcube) are installed with SixPanel, and every website and shop uses them. Their rows say what the others' do, and more: Redis how many of its instances run, certbot how many certificates there are and when the renewals were last checked, and the webmail which PHP version and pool it runs in.

  • Reload on nginx tests its configuration first and then reloads it: no request is dropped. A configuration nginx refuses is not loaded, and the server keeps serving as before.
  • Restart on MariaDB or Redis asks you first, because every website and shop loses its connection to it for a moment. The background workers are paused around it and started again afterwards.
  • While another job runs (a deploy, a backup, an install), Restart is refused with that job's name — a restart in the middle of it would break it. Wait for it to finish, then press again.

Only the owner of the server sees Reload and Restart.

Finding one quickly

The buttons above the list filter it: All, Running, Stopped, Updates and Not installed, each with the number of programs it shows — counted from the list itself, parts included, so a number is always the rows you get. Failed and Installing appear beside them while a program is in that state: a program that crashed is never counted among the stopped ones. Search software narrows the list to the programs whose name or description has the words you type. Nothing is asked of the server again while you filter or search.

Check everything now, beside the search, asks every program whether a newer version is offered. It runs as a job and installs nothing.

Update all… appears beside it while a program has an update waiting, and each such row has its own Update. Both open the same dialog, which lists every program it will update, from which version to which, each ticked — the row's with that one program alone. Untick one to leave it as it is. A database server in the list (MariaDB, PostgreSQL, MongoDB, SQL Server) asks first whether to copy every database, or whether you have a backup. Nothing runs until you press Update. Then one job updates them one after the other, each exactly as its own Update on its page: only its own packages move, it is restarted the way it must be and checked, and its old version is put back if anything is wrong. A program that fails does not stop the others; the job ends failed, naming each one that was not updated and why, and each row says how its own update went.

Left out of Update all, on purpose: a program you held at its version, a version you skipped, an update the check found could not be installed as it stands, and Local AI, which moves with a SixPanel update. An update that would leave no way back is never made from here: open that program's page, where its Update asks you that question.

Who uses it

A card says Used by and names the projects, websites and mail domains that use that program — for example Redis lists every project (each has its own Redis), MariaDB every project and website with a MariaDB database, PHP the websites on each version, Docker the Docker apps and the websites with a MongoDB or SQL Server database, Email and Webmail the mail domains. Each name opens the page where it uses it.

The same card where it is used

The pages that use a program show its card too — the same card, with the same state and the same Restart, and an On Software button that brings you back to its row here:

  • Server → Database and a project's Database page: MariaDB, PostgreSQL, MongoDB, SQL Server and phpMyAdmin.
  • Email: Email, its three parts and the webmail.
  • FTP (the project's and the website's): ProFTPD. AI: Local AI. A Docker app's page: Docker. Domain & SSL (the project's and the website's): certbot.
  • A project's Services page: its own Redis and MariaDB. A website's Cache page: its Redis, Memcached and Varnish. Its PHP page: the PHP-FPM it runs on, and Apache when it uses it. Its Database page: the database engines and the Redis it uses. Its Overview: the Node.js, Python or Java it runs on, or Docker.

On a project's or website's page only what that project or website uses is shown, and Restart on its Redis restarts that Redis only: the question names the project, its cache and queue pause for about a second, its background workers are paused around it, and nothing else on the server is touched. The same rules hold as on this tab: only the owner sees Restart, it asks first, and it is refused while another job runs.

A program that is not part of your version of SixPanel is simply not on the tab; it appears after the update that brings it. If a program's own code cannot be read, its card says Not available on this server with the reason, and the rest of the tab works.

Updates

Most of what the server runs exists once on it: nginx, Apache, MariaDB, PostgreSQL, Redis, Memcached, Varnish, Docker, the mail server (Postfix, Dovecot, Rspamd), ProFTPD, certbot and the Brotli module, from your release's own package sources; MongoDB and SQL Server, as container images; phpMyAdmin and the ionCube Loader, from their own download sites; and the webmail (Roundcube), from Roundcube's own releases, while it is installed. Updates of the server's software, folded under the list, is the table of each one's version installed and the version available at the last check. A row with an update waiting says Update waiting, or Security update when the new version is in the release's security pocket. Check everything now asks again.

Each program's own page has an Updates section:

  • Check now asks again for this one program.
  • Update moves only this program's own packages, never the whole server. Nothing restarts while they are unpacked. Then the program restarts the way it must:
  • nginx and Apache test their configuration first, then reload, and restart only when the program file itself was replaced;
  • MariaDB, PostgreSQL, MongoDB and SQL Server first copy every database (choose Make a copy of every database first, or say you have a backup), then restart and must answer again;
  • Memcached, Varnish, Redis, Docker and the mail server restart every part that was running, and each one must answer. The version installed now is kept, and it is put back if anything is wrong. The job log says what moved, from which version to which.
  • Hold at this version holds its packages with apt. Neither this page nor the daily security updates move them while they are held.
  • Skip version … stops offering that one version. A newer one is offered again.

phpMyAdmin and the webmail are downloaded and checked against the checksum their makers publish before anything is switched; the version in use stays until the new one answers. The webmail's database (address books, settings) is brought up to the new version with Roundcube's own tool. Only a newer release of the same line is offered (Roundcube 1.7.4 → 1.7.5, never 1.7 → 1.8). A Roundcube release published without a checksum is shown as available, with the words verify it by hand, and is not installed from here. After an update, the version in use and the one before it are kept on the server; older ones are removed.

A new major version is never an update. PostgreSQL 18 → 19, MariaDB 11.8 → 12, or another MongoDB line is a migration of every database, and the page says so. Only a newer build of the version this release carries is offered. The Node.js SixPanel itself runs on is never offered here: it moves with SixPanel's own updates. Local AI (Ollama) also moves with a SixPanel update, because its download is checked against the checksum the signed release carries.

Tia can tell you what is installed and whether a program fits this server ("can this server run PostgreSQL?"). She installs or removes a program only through the same steps, and always asks you first — the bell at the top of the page shows her request.

The Search field is at the top of every page. Press Ctrl K (⌘K on a Mac) or / to open it from anywhere; on a phone it is the magnifier in the page's header.

It finds:

  • every page and every tab of the panel — Server → Firewall, Settings → Updates;
  • the settings and actions on them — Two-factor login (2FA), phpMyAdmin (database browser), Disk cleanup, System monitor;
  • your projects and websites by name or domain, and each page of them — type blog cron for the scheduled tasks of the website blog;
  • the optional programs on Software;
  • every page of this manual and every heading in it (they open in a new tab).

Each result says where it lives: Server → Firewall, Settings → Alerts, blog, Manual · Backups. Use ↑ ↓ to move, Enter to open, Esc to close.

People call one place by different names, and the search knows them. A few of them:

You typeIt finds
cron, cron job, cronjob, crontab, scheduled task, timerCron jobs
firewall, ports, open port, ufwServer → Firewall
SSL, HTTPS, certificate, Let's EncryptDomain & SSL
database, MySQL, MariaDB, phpMyAdmin, PostgreSQLDatabase
env, environment variables, .envApp .env, a website's Environment
email, mail, SMTP, mailboxthe email settings and the email server
FTP, SFTPthe FTP server, and the backup storage that can use SFTP
DNS, records, nameserversCloudflare → DNS, and the Cloudflare page
backup, snapshot, restoreBackups
logs, errors, error logLogs
Tia, assistant, chatbotAI → Tia
vhost, nginx config, server blockthe web-server configuration pages
upgrade, update, new versionSettings → Updates

When a place was found by another of its names, the result says what it is called here — "timer" is called "Cron jobs" here — so the next time you know the panel's word for it.

In your language too. The panel's own labels in the language you chose find their places, and so does every English word in the table above, whatever language the panel is in.

A small typo is forgiven. A word that matches nothing as typed is matched with one letter wrong (two in a word of seven letters or more) — firewal, databse, certifcate — and the result says closest to "…". Words of four letters or fewer are never guessed at: one letter apart, smtp is sftp.

Nothing is sent to the server while you type: the search reads what the page already knows, and the list of tabs once, when it first opens.

System monitor

It is the first card on Home. (It was under the checks on Server → Monitoring until 20 Oct 2026; that tab is the checks and incidents alone now.) Home draws it after every other card, in a space already kept for it, and it reads its history once each time you open Home — so it never makes Home slower, and nothing under it moves when the charts arrive.

Under its title, one row says what this server is: its name, how long it has been up, its cores, total memory, total disk and operating system, and whether the web server (nginx) and the database are running.

It keeps, once a minute:

  • the load average over 1, 5 and 15 minutes;
  • CPU — how much of the processor was in use, and how much of the time it was waiting for disk;
  • memory in use, of the total;
  • swap in use (a server with no swap says so);
  • Storage — how much of the disk's space is used, as a percentage and as "X GB of Y GB": the disk that holds your websites (/var/www), or / when there is no such folder — the note under the chart names it. It is the Disk meter at the top of Home, over time. Days kept before this chart existed have no Storage line; the other charts of those days are drawn as before;
  • disk I/O — how much was read and written each second, and how busy the disk was;
  • network I/O — what came in and went out each second.

It is off until you switch it on. Tick Keep history; the first readings appear within two minutes. Choose how long to keep them under Keep history for — from one day to a year, 30 days unless you change it; older days are deleted by themselves once a day. The card shows how much it takes on disk. Clear history deletes every day it kept (the switch stays as it is). Switching it off stops the readings and keeps what was kept, until you clear it or its days pass.

What it costs the server: nothing you could measure. It starts no program: once a minute it reads the kernel's own counters (five small files under /proc) and asks the filesystem how full it is, and it writes ten readings at a time, not one a minute. A day is about 130 KB on disk; a finished day is compressed to less than half of that. The files are in the panel's own data folder, /opt/sixpanel/data/panel/sysmon/, one per day.

The charts. Choose Today, Yesterday, Last 7 days or Custom (a From and a To day, up to 31 days at a time). Times and days are your own computer's. The card reads once each time you open Home; press Today again for the newest minutes. Under each chart are its average and its highest value.

  • Read a moment. Move the pointer over any chart — or touch it on a phone — and a line marks that minute on every chart at once, with one box listing every value at that moment. With the keyboard, Tab to a chart and use the left and right arrow keys (Esc hides the line).
  • Zoom in. Drag across a chart to show just that stretch on every chart; the range reads Custom, and Reset zoom goes back. A zoom uses what is already on the page — it asks the server nothing.
  • The 90% line. CPU, Memory and Storage carry a faint dashed line at 90%, where the panel starts to call a resource tight. A line that runs along it for long is worth a look.
  • A minute with no reading — the server was off, the panel was restarting, or the monitor was switched off — is a gap in the line, never a drop to zero.
  • Percentages are always drawn from 0 to 100%, so a server at 2% looks quiet, as it is.
  • A long range shows each point as the average of the minutes it covers.

The newest point of each chart is this moment; the rest is its history.

Tia reads the same history when you ask her — "was the server slow yesterday at 3 pm?", "what happened to memory this week?" — and says so when it is switched off.

Something unclear?Ask Tia