Skip to content

Installation Guide

Requirements

MinimumRecommended
OSDebian 11/12, Ubuntu 22.04/24.04/26.04Ubuntu 24.04 LTS
RAM512MB (1GB for WordPress)2GB+
Disk5GB free20GB+
CPU1 core2+ cores
Archx86_64, aarch64x86_64

Install on a fresh, dedicated VPS. AidiPanel provisions the system Nginx, PHP-FPM, database, Redis, firewall defaults, and service configuration; it is not an in-place importer for an existing production web stack.

Before installing AidiPanel, update and upgrade the fresh base system:

bash
sudo apt update
sudo apt upgrade -y

Wait for both commands to finish successfully. If /var/run/reboot-required exists afterward, run sudo reboot, reconnect to the server, and continue only after the reboot completes.


Quick Install

On a fresh VPS:

bash
curl -fsSL https://get.aidipanel.com | sudo bash

get.aidipanel.com redirects to the installer from the latest stable GitHub release. To pass installer options through the pipe, use bash -s --:

bash
curl -fsSL https://get.aidipanel.com | sudo bash -s -- --db-engine mysql84 --port 9443
bash
curl -fLO https://github.com/rezzaidr/AidiPanel/releases/latest/download/install-aidipanel.sh
curl -fLO https://github.com/rezzaidr/AidiPanel/releases/latest/download/SHA256SUMS
grep ' install-aidipanel.sh$' SHA256SUMS | sha256sum -c -
sudo bash install-aidipanel.sh

Continue only when the checksum command prints install-aidipanel.sh: OK.

This installs the full stack and deploys the web panel automatically:

  • Nginx + FastCGI Cache
  • PHP 8.5 (default) — 8.2 / 8.3 / 8.4 available on-demand
  • MariaDB 12.3 LTS (default database engine)
  • Redis
  • Certbot (Let's Encrypt)
  • UFW firewall + Fail2ban
  • AidiPanel CLI + web panel

At the end, it prints a random panel password. Save it — it is also written to /opt/aidipanel/credentials.conf.


Install from a Source Archive

If you downloaded the GitHub source archive for a tagged release:

bash
unzip AidiPanel-<version>.zip
cd AidiPanel-<version>
sudo bash install.sh

The installer detects and deploys the panel-app/ directory alongside it.


Options

bash
sudo bash install.sh [OPTIONS]

  --port PORT           Panel HTTPS port (default: 8443)
  --db-engine ENGINE    Database engine (default: mariadb123)
  --db-root-pass PASS   Set DB root password non-interactively
  --no-redis            Skip Redis installation
  --dry-run             Simulate install without making changes

Examples:

bash
# Custom panel port
sudo bash install.sh --port 9443

# MySQL 8.4 instead of MariaDB
sudo bash install.sh --db-engine mysql84

# Without Redis
sudo bash install.sh --no-redis

Database Engine Options

FlagEngineNotes
mariadb123MariaDB 12.3 LTSDefault
mariadb118MariaDB 11.8
mariadb114MariaDB 11.4 LTS
mariadb1011MariaDB 10.11 LTS
mysql97MySQL 9.7 LTS
mysql84MySQL 8.4 LTS
mysql80MySQL 8.0

Note: On Ubuntu 26.04, only MariaDB 11.8/12.3 can install — MySQL and MariaDB 10.11/11.4 are upstream-blocked on that release.


After Install

1. Access the panel

https://<server-ip>:8443

Login with admin and the random password shown at the end of the install.

2. Add your first site

bash
sudo aidipanel site:add --domain example.com --user example --type php

This creates a dedicated Linux user example, the web root at /home/example/htdocs/example.com, and a PHP-FPM pool running as that user. PHP defaults to 8.5; pass --php 8.3 to choose another installed version.

For WordPress, the web panel provides the simplest setup form. The equivalent CLI flow installs WordPress, its database, and its admin account together:

bash
printf '%s\n' 'StrongPassword123!' |
sudo aidipanel site:add \
  --domain blog.example.com \
  --user blog \
  --type wordpress \
  --wp-title 'Example Blog' \
  --wp-admin-user admin \
  --wp-admin-pass-stdin \
  --wp-admin-email admin@example.com

Use a unique password and avoid a literal --wp-admin-pass on a shared shell because it can be retained in shell history. Subdirectory multisite is available with --wp-multisite subdir; wildcard subdomain multisite is not yet managed.

3. Install SSL

bash
sudo aidipanel ssl:install --domain example.com --email admin@example.com

Once a trusted certificate is active, enable force HTTPS and HSTS from the site's SSL tab when appropriate.


Files & Directories

PathDescription
/opt/aidipanel/Panel home directory
/opt/aidipanel/public/Panel web root
/opt/aidipanel/storage/db/aidipanel.sqlitePanel database
/opt/aidipanel/credentials.confGenerated credentials
/etc/aidipanel/php.confPHP version policy (default + available)
/home/<site-user>/htdocs/<domain>Site web root
/etc/nginx/sites-available/Nginx vhost configs
/var/cache/nginx/fastcgi/FastCGI cache files
/usr/local/bin/aidipanelCLI tool
/var/log/aidipanel-install.logInstall log

Credentials

All generated credentials are saved to /opt/aidipanel/credentials.conf:

bash
sudo cat /opt/aidipanel/credentials.conf

Keep this file secure — it contains the database root password and panel admin password.


Updating an Existing Installation

Do not run the installer again on an installed server; it refuses to overwrite an existing panel. Use the verified updater instead:

bash
sudo aidipanel self:update

The updater downloads matching CLI and panel release assets, verifies them against SHA256SUMS, and preserves panel users, passwords, sites, databases, configuration, and runtime storage.


Supported OS Versions

OSVersionCodename
Ubuntu22.04 LTSjammy
Ubuntu24.04 LTSnoble
Ubuntu26.04 LTSresolute
Debian12bookworm
Debian11bullseye

Uninstall

There is no automated uninstaller yet. Back up all sites and databases, then follow the manual uninstall guide. It separates panel-only, single-site, and full-stack removal without resetting unrelated firewall rules.

Site users and their home directories under /home/ are left untouched; remove them individually if desired.