XAXA Server control panel

XAXA

Update

Updating XAXA replaces the panel code, runs database migrations and restarts the panel services. Your sites, databases and configuration are not touched.

The panel does not look for new versions by itself. Click Instance → Updates → Check for updates: the card shows the installed version, when it was last checked and, when a newer one is out, an Update now button.

Update from the panel

On Admin → Instance, click Update now in the Updates card. The panel runs xaxa update (below) in the background as its own systemd unit and shows the log on the same page. The panel restarts during the update and may not answer for a few seconds; sites keep running. If the new version does not start, the previous one is restored by itself and the card shows the log. The log is kept in /var/log/xaxa-update.log (root only).

Update over SSH

Connect via SSH as root (or a sudo user) and run:

xaxa update

This downloads the latest release package, checks its minisign signature with the public key saved on this server at install time, and runs the installer from inside the verified package with --update. The installer served by the website is never run: whoever controls the website cannot run code on your server. The update:

  1. Uses the verified release package.
  2. Unpacks it to a new folder under /opt/xaxa-releases/; .env and storage/ are shared between releases.
  3. Applies the current server configuration (nginx, PHP, fail2ban, unattended upgrades) and re-installs the root agent and sudoers rule.
  4. Snapshots the panel database, runs migrations and rebuilds caches.
  5. Switches /opt/xaxa to the new release, restarts the panel and checks that it answers. If it does not — or if a migration fails before that — the previous release, its root agent and the database snapshot are restored automatically, and the broken release is removed.
  6. Runs xaxa resync-sites, so template improvements reach existing sites (vhosts you edited by hand are left alone).

If no admin account exists yet, the update also prints a one-time setup link at the end. If an admin exists, no setup token is created.

The last three releases are kept. To go back manually (the root agent is switched back too):

xaxa rollback

Updating from 0.2.x runs the old xaxa command one last time, which still fetches the installer from the website. From then on updates run only signed packages. The update also moves phpMyAdmin and the web terminal to port 2083: open it in your provider's cloud firewall if there is one (UFW is opened automatically).

Operating system updates

Security updates are installed automatically by unattended-upgrades. Run a full upgrade from time to time:

apt update && apt full-upgrade

Found a mistake or need help? support@xaxa.com.tr