Installing features and keeping server software current

Install or disable optional features, update the software Hostctl pins such as Node.js, and keep the operating system patched.

For server admins: the steps need admin access to the panel or the server.

Hostctl starts small. Mail, databases, FTP, WordPress tools and the rest are features you install when you need them, from Server → System → Features. Server → System → Server software then shows what needs updating: the operating system's packages and the programs Hostctl installs itself.

Installing a feature

  1. Open Server → System → Features.
  2. Press Install on the feature and confirm.
  3. The Setup log opens below the list and shows each step. The badge changes from "installing" to "installed" when it's done.

You can leave the page while it works. To see the log again later, press Log on the feature.

If an install fails, the badge says "failed" and the reason shows under the description. Fix the cause (often the server couldn't download a package), then press Install again.

MySQL Server and MariaDB Server can't run side by side. Installing one disables the other first, which stops every database on it. Pick one before customers create databases.

Spam protection, Portainer Agent and Prometheus & Grafana have their own pages, linked at the top of the Features page.

Disabling a feature

Press Disable on an installed feature and confirm. Its services stop and are no longer started at boot, for every customer at once. The packages stay installed, so installing it again later is quick.

Disabling Email Server closes mail to the outside: nobody can send or receive until it's installed again. Disable it only when no domain uses mail.

Updating Node.js and other pinned software

A few programs don't come from Ubuntu's packages. Hostctl installs them at a version it has checked: Node.js (LTS), WordPress Toolkit (WP-CLI), Malware Scanning (Linux Malware Detect), SnappyMail and Website Snapshots (a headless browser). A new Hostctl release can pin newer versions.

When one is behind, Server software lists it under Software Hostctl installs as "installed → available". For Node.js, Malware Scanning, SnappyMail and Website Snapshots, the Features page also says "… is available: install again to update".

To update it:

  1. On Server → System → Features, press Disable on the feature and confirm.
  2. When the badge says "not installed", press Install and confirm.

For Node.js this also adds any Node.js line a newer Hostctl release has started to offer. Node.js apps keep running throughout. For the other features, the feature is unavailable for the minute or two in between: for example, webmail links disappear while SnappyMail is off.

Keeping the operating system up to date

Ubuntu installs its own security fixes every day. Hostctl adds the PHP and PostgreSQL repositories it uses to the same automatic updates. Docker and Erlang are left out, because updating them restarts containers or can jump to a new major version.

Server → System → Server software shows:

  • Automatic security updates: On or Off, and when they last ran;
  • Security updates waiting: how many, and whether any have waited more than a day;
  • Restarts: whether the server needs a reboot, or services are still running code an update replaced;
  • Updates available: every package that can be updated, grouped by where it comes from, with security fixes marked.

The page checks a few minutes after the panel starts and every six hours. Press Check now to check straight away. Admins get one email about each set of security updates still waiting after a day.

Installing updates from the panel

  • Install security updates installs what automatic updates would.
  • Install all updates installs everything, including Docker. Containers restart when Docker updates, so it asks first.

Packages keep the server's own configuration files. Services such as the database restart briefly while they update. The install keeps running if you leave the page.

If the result says the last install "didn't finish cleanly", automatic updates may have been running at the same time. Press Check now, then try once more. The details are in the journal:

sudo journalctl -u hostctl-server-updates.service

Restarting services and rebooting

After an update, programs that were already running keep the old code until they restart. Under Restarts after updates, press Restart these to restart the services listed, such as PHP-FPM, nginx, Postfix or MySQL.

Containers, SSH sessions and the panel are listed separately and never restarted from here. A reboot covers them. Hostctl never reboots the server for you: when Reboot needed shows, reboot at a quiet time from your provider's console or with:

sudo reboot