Xactyl LogoXactyl
Getting started

Installation

Now that all of the files have been downloaded we need to configure some core aspects of the Panel.

Database Configuration

You will need a database setup and a user with the correct permissions created for that database before continuing any further. See below to create a user and database for your Xactyl panel quickly. To find more detailed information please have a look at Setting up MySQL.

# If using MariaDB (v11.0.0+) (This is the default when installing Xactyl by following the documentation.)
mariadb -u root -p

# If using MySQL
mysql -u root -p
# Remember to change 'yourPassword' below to be a unique password
CREATE USER 'xactyl'@'127.0.0.1' IDENTIFIED BY 'yourPassword';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'xactyl'@'127.0.0.1' WITH GRANT OPTION;
exit

First we will copy over our default environment settings file, install core dependencies, and then generate a new application encryption key.

cp .env.example .env
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader

# Only run the command below if you are installing this Panel for
# the first time and do not have any Xactyl Panel data in the database.
php artisan key:generate --force

DANGER

Back up your encryption key (APP_KEY in the .env file). It is used as an encryption key for all data that needs to be stored securely (e.g. API keys). Store it somewhere safe - not just on your server. If you lose it, all encrypted data is irrecoverable, even with database backups.

To grab your APP_KEY, open a terminal and run the following in your panel directory:

grep APP_KEY /var/www/xactyl/.env

You should see something like:

APP_KEY=base64:YOUR_LONG_RANDOM_STRING

Copy that entire line and save it somewhere secure:

  • A password manager
  • An encrypted file on your local machine
  • A secure USB drive
  • A trusted cloud vault

Do not keep it only on the server. If you lose this key, your encrypted data is permanently unrecoverable.

Environment Configuration

Xactyl's core environment is easily configured using a few different CLI commands built into the app. This step will cover setting up things such as sessions, caching, database credentials, and email sending.

php artisan p:environment:setup
php artisan p:environment:database

# To use PHP's internal mail sending (not recommended), select "mail". To use a
# custom SMTP server, select "smtp".
php artisan p:environment:mail

Database Setup

Now we need to setup all of the base data for the Panel in the database you created earlier. The command below may take some time to run depending on your machine. Please DO NOT exit the process until it is completed! This command will setup the database tables and then add all of the Nests & Eggs that power Xactyl.

php artisan migrate --seed --force

Add The First User

You'll then need to create an administrative user so that you can log into the panel. To do so, run the command below. At this time passwords must meet the following requirements: 8 characters, mixed case, at least one number.

php artisan p:user:make

Set Permissions

The last step in the installation process is to set the correct permissions on the Panel files so that the webserver can use them correctly.

# If using NGINX, Apache or Caddy (not on RHEL / Rocky Linux / AlmaLinux)
chown -R www-data:www-data /var/www/xactyl/*

# If using NGINX on RHEL / Rocky Linux / AlmaLinux
chown -R nginx:nginx /var/www/xactyl/*

# If using Apache on RHEL / Rocky Linux / AlmaLinux
chown -R apache:apache /var/www/xactyl/*

On this page