XAXA Server control panel

Getting Started

Installation

1. Prepare the server

Create a server with a supported operating system at any provider (Hetzner, DigitalOcean, AWS, Vultr, Oracle Cloud, OVH…). Point at least one domain to its IP if you want SSL right away.

Make sure ports 22, 80, 443, 8443 and 2083 are open in your provider's cloud firewall or security group.

2. Run the installer

Connect via SSH and run as root:

curl -sSL https://xaxa.com.tr/install.sh | sudo bash

The installation takes about 3–8 minutes depending on the server.

Options

Pass options after bash -s --:

curl -sSL https://xaxa.com.tr/install.sh | sudo bash -s -- --db=mysql --php=8.2,8.3,8.4
Option Default Description
--db=mariadb|mysql mariadb Database server. MySQL is available on Ubuntu only.
--php=8.3,8.4 8.2,8.3,8.4,8.5 Comma-separated PHP versions for sites. 8.4 is always installed (the panel uses it). A version the distribution's repository does not offer yet is skipped with a warning. PHP 8.1 is not supported; xaxa update removes it when no site uses it.
--add-php=8.2 — Install one more PHP-FPM version on an existing installation (same as xaxa php-install 8.2).
--allow-downgrade — Install a release older than the installed panel; the installer refuses that by default.
--source=/path — Install from a local checkout instead of the latest release (for development).
--update — Update an existing installation.
--rollback — Switch back to the previous release (same as xaxa rollback).
--base-url=https://… https://xaxa.com.tr Where the installer and release packages are downloaded from (also XAXA_BASE_URL).

If the installation is interrupted, run the same command again: completed steps are saved in /etc/xaxa/install-state and skipped. Installed panel files alone do not count as done; the runtime installation must finish too. If no admin exists yet, a one-time admin link is shown at the end, so you do not need to run xaxa setup-token separately.

Release packages are signed with minisign; the installer verifies the signature before unpacking. IPv6 is detected automatically — if the server has a global IPv6 address, sites and the panel also listen on it.

Downloads are verified: ttyd, uv, Composer, WP-CLI, the Sury key package (Debian) and, on Ubuntu 22.04 which has no package for it, minisign are pinned to exact versions with SHA-256 checksums; the Node.js checksum list must carry a valid signature of a Node.js releaser. phpMyAdmin comes from the distribution package.

Prefer to read before you run? Download it first: curl -sSLO https://xaxa.com.tr/install.sh && less install.sh && sudo bash install.sh.

At the end, the installer prints a one-time link like:

https://203.0.113.10:8443/setup/3f9c…

Open it, create the first admin account and you are in. Your browser will warn about the self-signed certificate on port 8443 — this is expected. You can put the panel behind a domain later.

Provider notes

  • AWS — allow ports 80, 443, 8443 and 2083 in the instance's security group. Log in as ubuntu/admin and use sudo.
  • Google Cloud — create firewall rules for tcp:80,443,8443,2083.
  • Oracle Cloud — open the ports in the VCN security list. Ubuntu images also ship iptables rules; the installer replaces them with UFW.
  • Hetzner, DigitalOcean, Vultr — if you use their cloud firewall, add the four ports.

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