Skip to main content

Environment Setup


Create configuration file

We'll need to start by copying over the default settings file, called .env.example. We'll want this to be called .env, so it's just a case of copying the file over in order to set up the Panel exactly how you want it.

cp .env.example .env

Install Composer packages

After this, we'll need to install Composer dependencies - which will allow the PHP code in our project (such as the backend and admin-side) to run properly.

composer install --no-dev --optimize-autoloader

Finally, we'll generate a random token which will be the encryption/app key for our project.

Danger

This encryption key is used to store important data (such as API keys). Do NOT share this key with anyone - protect it like a password. If you lose this key, all data is impossible to recover.

php artisan key:generate --force

Configure Panel Environment

Jexactyl uses CLI commands to configure most of the base settings of the Panel. The following will allow you to set up general, database and mail settings.

php artisan p:environment:setup
php artisan p:environment:database
php artisan p:environment:mail # Not required to run the Panel.

Database Migration

Now we need to set up all 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 set up the database tables and then add all the Nests & Eggs that power Jexactyl.

php artisan migrate --seed --force

Create admin user

To access the Panel for the first time, you'll need to make a user via the CLI - don't worry, you can create users easily via the frontend! Here's a simple command which will take you through the steps of setting up the initial admin account:

php artisan p:user:make

Assign Permissions

In order for the webserver you're using to access the Panel files, we'll need to assign it permissions with the chown command. Here's how to do this for all types of webservers:

# If using NGINX or Apache (not on CentOS):
chown -R www-data:www-data /var/www/jexactyl/*

# If using NGINX on CentOS:
chown -R nginx:nginx /var/www/jexactyl/*

# If using Apache on CentOS:
chown -R apache:apache /var/www/jexactyl/*