Table of Contents

aaPanel - Getting Started Guide

aaPanel is a free web hosting control panel that lets you deploy websites with Nginx or Apache, MySQL or MariaDB, and PHP – all managed through a simple web interface. This server comes with aaPanel 8.0.7 pre-installed. The software stack (LAMP/LNMP) is not pre-installed – you choose and install it on first login.


Step 1 – Verify aaPanel Works

Your server’s IP address and root password are shown in the Server Information section on the Overview tab of your server in the client portal. The application settings you entered when ordering, passwords included, are shown in the aaPanel Credentials card on the same tab. aaPanel is available immediately after your server is created. Open https://your.server.ip:7800/login in a browser to verify it works. Keep the /login part: opening the address without it shows a “404 Not Found” page, which is aaPanel hiding itself from random scans rather than a broken server. The login URL is also shown when you connect over SSH and saved in /root/.aapanel_credentials.

aaPanel login:

  • Username: admin
  • Password: the Panel Password you entered during the order, exactly as entered (special characters such as ! # @ included)

aaPanel only works over HTTPS. When your server is created it requests a Let’s Encrypt certificate for its own IP address, so the panel usually opens without any browser warning. If the certificate could not be issued (the server is not reachable from the internet on port 80, or it sits behind a router), the panel keeps a self-signed one and the browser warns – click Advanced > Proceed (or Accept the Risk in Firefox). This is expected and safe.

If you placed the server behind a VyOS router on a private network, the server has only a private address, so it does not get the IP certificate: the aaPanel login page shows a browser warning (click “Advanced” and proceed). Forward ports 22 (SSH), 80 (HTTP), 443 (HTTPS) and 7800 (aaPanel) to the server on the router’s Configuration tab (Port forwarding), and point the domains of your websites to the router’s public address. aaPanel hosts websites that must be reachable from the internet.

Firewall. If you turn on the Firewall for this server in the client portal, allow incoming TCP port 80 in its rules, along with 443 (HTTPS) and 7800 (aaPanel). Renewing the IP certificate needs port 80 reachable from the internet, and without that rule renewal fails.


Step 2 – Install Your Web Stack

On first login, aaPanel will prompt you to choose a web stack:

Stack Components
LNMP (recommended)Nginx + MySQL + PHP
LAMPApache + MySQL + PHP

Select your preferred stack and versions, then click One-Click to install. Installation takes 5-15 minutes depending on your server resources.

You can also install components individually from the App Store tab.


Step 3 – Add Your First Website

After installing a web stack, click Website → Add site and enter your domain name. aaPanel will create the web directory and configuration automatically.

Before adding a domain, point it to your server by creating A records at your domain registrar:

Type Name Value
A@your.server.ip
Awwwyour.server.ip

DNS changes usually take a few minutes, but can take up to 24 hours. You can check the status at dnschecker.org.


Step 4 – Enable SSL for Your Domain

aaPanel has built-in Let’s Encrypt support. To enable a free SSL certificate:

  1. Go to Website and click on your domain
  2. Click the SSL tab
  3. Select Let’s Encrypt
  4. Check the domain names and click Apply

The certificate will be installed and renewed automatically.

The certificate of the panel itself (the one on port 7800) is issued for your server’s IP address when the server is created. It is short-lived, and renewing it needs port 80 free for a few seconds – once your own site occupies that port, renew at a convenient moment with /opt/setup/renew-cert.sh over SSH.


Post-Installation

Fail2Ban – Brute-Force Protection

Your server comes with Fail2Ban pre-configured to protect SSH from brute-force attacks.

Rule Max Attempts Ban Duration
SSH5 failed logins1 hour

Useful commands:

# Check banned IPs
fail2ban-client status sshd

# Unban an IP
fail2ban-client set sshd unbanip 1.2.3.4

aaPanel also has its own brute-force protection. Configure it in Panel Settings. If you accidentally lock yourself out, open the Console on your server’s Overview tab in the client portal.

Service Management

aaPanel runs as a systemd service. Services installed through aaPanel (Nginx, Apache, MySQL, PHP-FPM) are best managed from the panel, but systemd works too:

# Restart aaPanel itself
systemctl restart btpanel

# Check aaPanel status
systemctl status btpanel

# Web stack (after installation)
systemctl status nginx
systemctl restart mysql

One-Click Applications

aaPanel includes a one-click installer for popular applications. Go to App Store to install WordPress, Laravel, Node.js, Java, Python and other frameworks without using the command line.

Server Credentials

The aaPanel login address and username are stored in /root/.aapanel_credentials and shown when you connect over SSH. The password is the Panel Password from your order – it is not stored on the server. You can change it in the panel under Settings.

Software Included

Component Details
Ubuntu24.04 LTS
aaPanel8.0.7 (English edition)
SecurityFail2Ban, UFW firewall

Troubleshooting

Problem Solution
Can’t access aaPanel Use the full URL including the path: https://your.server.ip:7800/login. The address without a path returns a “404 Not Found” page on purpose – that is the panel hiding itself, not a broken server. If the browser warns about the certificate, accept the warning and continue
Panel loading slowly on first access aaPanel initialization takes up to 1 minute after first boot. Wait and refresh the page
Forgot panel password SSH in, run bt and choose 5 (Change panel password). This command accepts letters, digits, underscore, comma and dot only; after signing in you can set a password with any characters under Settings
LAMP/LNMP installation failed Ensure your server has at least 1 GB RAM and 10 GB disk. Retry installation from the App Store tab
Domain not resolving Check that your domain’s A record points to the server IP. Use dnschecker.org to verify
Blocked by Fail2Ban Use the Console on your server’s Overview tab in the client portal to unban your IP: fail2ban-client set sshd unbanip 1.2.3.4
Forgot root password Use the Console on your server’s Overview tab in the client portal to reset it