Panel installation

Deploy the PHP control plane on a Debian or Ubuntu web host.

The Panel installer creates the database config, installs modules, creates the first administrator, writes the install lock, and can optionally create an Apache or Nginx virtual host.

Debian/Ubuntu firstApache or NginxMariaDB or MySQLinstall.state.json lock

Recommended

Use the root CLI installer when possible.

The CLI installer is the maintained path for new Debian or Ubuntu Panel hosts. It installs OS packages, prepares the database, runs the shared PHP install engine, and repairs web permissions.

Run installer

curl -fsSL https://raw.githubusercontent.com/GameServerPanel/GSP/unstable/scripts/install-panel.sh -o install-panel.sh
sudo bash install-panel.sh

The script requires root unless it is run with --dry-run. It refuses non-Debian/Ubuntu hosts instead of guessing package names.

Prompts

  • Apache or Nginx
  • MariaDB or MySQL server
  • optional Panel domain
  • install path, repository URL, and branch
  • database host, port, name, user, password, and table prefix
  • initial admin username, email, and password

Completion

If a domain is supplied, the installer prints http://domain/ or https://domain/ depending on the Certbot choice. Without a domain, it prints the install path.

After login, add remote servers for the Linux or Windows agents.

Manual path

Manual clone users can still run the web installer.

This path is useful when the web root, Git transport, database server, or hosting policy needs manual control.

Baseline packages

sudo apt update
sudo apt install apache2 mysql-client unzip tar screen sudo subversion git rsync \
    php php-cli php-common php-mysql php-gd php-curl php-mbstring php-zip \
    php-xml php-pear libapache2-mod-php -y
sudo apt install php-xmlrpc -y
sudo a2enmod rewrite headers
sudo systemctl restart apache2

For a local database, install either mariadb-server or mysql-server. For Nginx, use nginx and php-fpm instead of Apache modules.

Web installer

  • Open check.php to review PHP extensions, PEAR, commands, writable paths, rewrite support, and optional database connectivity.
  • Open install.php and enter MySQL or MariaDB credentials.
  • Use the default gsp_ table prefix unless you have a deliberate compatibility plan.
  • Create the first administrator with an 8 character or longer password.

Generated files

The installer writes includes/config.inc.php with database host, port, user, password, name, table prefix, and mysql database type.

Successful installs also write includes/install.state.json. Keep that file in place.

Domain and web server

DNS must point at the Panel host before certificate issuance.

The installer can write one Panel vhost. More complex split Panel, website, or billing vhosts should be managed with the example Apache configs in the Panel repository.

Apache behavior

When requested, the CLI writes /etc/apache2/sites-available/gsp-panel.conf, enables rewrite and headers, enables the site, reloads Apache, and can run certbot --apache -d domain.

Nginx behavior

When requested, the CLI writes /etc/nginx/sites-available/gsp-panel, symlinks it into sites-enabled, detects a PHP-FPM socket, runs nginx -t, reloads Nginx, and can run certbot --nginx -d domain.

Permissions

The supported model is installer user as owner and the web group as group. Directories become 775, files become 664, and includes/config.inc.php plus includes/install.state.json become 640.

Safeguards

Repair and reinstall are intentionally gated.

These rules come from the shared installer engine used by both install.php and the CLI wrapper.

Existing installs

Anonymous browser access cannot reinstall once the Panel appears installed. The installer treats the Panel as installed when the state file exists, or when a readable config plus admin user is found.

Browser repair

Browser reinstall requires an authenticated admin session and a filesystem gate at includes/install.maintenance. The gate expires after one hour and is removed after a successful run.

CLI repair

sudo bash scripts/install-panel.sh --repair-permissions --path /var/www/gsp-panel --owner "$USER" --group www-data

Root CLI install and repair count as authorized maintenance.