Reviactyl Logo

Getting Started

Please Read Before Proceeding

Only use this guide if you don't have a panel already. If you already have Pterodactyl installation, then follow the migration guide.

This Panel is designed to run on your own web server. You will need to have root access to your server in order to run and use this panel.

You are expected to understand how to read documentation to use this Panel. This panel does not exist as a drag-and-drop service to run your servers. It is a highly complex system requiring multiple dependencies and administrators willing to spend some time learning how to use it. If you expect to be able to install this with no understanding of basic linux system administration you should stop and turn around now.

Supported OSeS

Reviactyl runs on a wide range of operating systems, so pick whichever you are most familiar with.

This guide primarily focuses on Ubuntu 24.04 LTS. Extra Dependencies may or may not needed if you're using different supported OSeS.

Operating SystemStatusNotes
Ubuntu 22.04Fully SupportedRequires additional repositories for PHP
Ubuntu 24.04Fully SupportedMariaDB can be installed without the repo setup script.
Debian 11Fully SupportedReviactyl is tested primarily on Debian. This is our preferred choice of OS
Debian 12Fully SupportedReviactyl is tested primarily on Debian. This is our preferred choice of OS
Debian 12Fully SupportedReviactyl is tested primarily on Debian. This is our preferred choice of OS
RHEL / Rocky Linux / AlmaLinuxFully SupportedExtra repos are required.

Dependencies

  • PHP 8.2, 8.3, 8.4 or 8.5 (recommended) with the following extensions: cli, openssl, gd, mysql, PDO, mbstring, tokenizer, bcmath, xml or dom, curl, zip, pgsql, sqlite3, redis, intl, and fpm if you are planning to use NGINX.
  • MySQL 9 or MariaDB 11 or PostgreSQL 18
  • Redis (redis-server)
  • A webserver (Apache, NGINX, Caddy, etc.)
  • curl
  • tar
  • unzip
  • git
  • composer v2

Example Dependency Installation

# Add "add-apt-repository" command
apt -y install software-properties-common curl apt-transport-https ca-certificates gnupg

# Add additional repositories for PHP (Ubuntu 22.04)
LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php

# Add Redis official APT repository
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

# Update repositories list
apt update

# Install Dependencies
apt -y install php8.5 php8.5-{common,cli,gd,mbstring,bcmath,xml,fpm,curl,zip,intl,redis,sqlite3} nginx tar unzip git redis-server

# Install MySQL/MariaDB Dependencies (Optional)
apt install -y php8.5-mysql mariadb-server

# Install PostgreSQL Dependencies (Optional)
apt install -y php8.5-pgsql postgresql postgresql-contrib

Installing Composer

Composer is a dependency manager for PHP that allows us to ship everything you'll need code wise to operate the Panel. You'll need composer installed before continuing in this process.

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Download Files

mkdir -p /var/www/reviactyl
cd /var/www/reviactyl
curl -Lo panel.tar.gz https://github.com/reviactyl/panel/releases/latest/download/panel.tar.gz
tar -xzvf panel.tar.gz
chmod -R 755 storage/* bootstrap/cache/

Installation

cp .env.example .env
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
php artisan key:generate --force

Backup Your APP_KEY

Back up your encryption key (APP_KEY in the .env file).
If you lose it, all encrypted data is irrecoverable, even with database backups.

grep APP_KEY /var/www/reviactyl/.env

Environment Configuration

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

Database Setup

php artisan migrate --seed --force

Create your First User

php artisan p:user:make

Set Permissions

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

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

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

Queue Listeners

Crontab Configuration

* * * * * php /var/www/reviactyl/artisan schedule:run >> /dev/null 2>&1

Create Queue Worker

# /etc/systemd/system/reviq.service
[Unit]
Description=Reviactyl Queue Worker
After=redis-server.service

[Service]
User=www-data
Group=www-data
Restart=always
ExecStart=/usr/bin/php /var/www/reviactyl/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s

[Install]
WantedBy=multi-user.target

If you are using RHEL, Rocky Linux, or AlmaLinux, replace redis-server.service with redis.service.
If you are not using Redis, remove the After= line.

sudo systemctl enable --now redis-server
sudo systemctl enable --now reviq.service