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 |
| LAMP | Apache + 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 |
| A | www | your.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:
- Go to Website and click on your domain
- Click the SSL tab
- Select Let’s Encrypt
- 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 |
|---|---|---|
| SSH | 5 failed logins | 1 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 |
|---|---|
| Ubuntu | 24.04 LTS |
| aaPanel | 8.0.7 (English edition) |
| Security | Fail2Ban, 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 |