AnitaPanel documentation
Everything needed to install, license and operate AnitaPanel on an Ubuntu or Debian server. The panel manages the common hosting services directly; you retain root access at all times.
Requirements
- A fresh VPS or dedicated server with root access.
- Optional: a domain or subdomain pointing to the server for trusted HTTPS.
- Ports 22, 80, 443 and 2087 open. Port 53 is required for authoritative DNS.
- At least 2 GB of free disk space for the panel and its releases.
- An AnitaPanel license key from your customer area.
Installation
Run the installer as root on a fresh server. No license key, hostname or email is required.
Open https://SERVER_IP:2087, sign in with the printed administrator password and activate a license from the License page.
Optional flags for a trusted domain certificate and automatic activation:
The installer performs these steps:
- Installs Nginx, MariaDB, PHP-FPM, BIND, Certbot, firewall and Python dependencies for the detected Linux family.
- Configures UFW on Debian/Ubuntu or firewalld on AlmaLinux/CloudLinux and other RHEL-family systems.
- Creates an isolated release layout under
/opt/anitapanel. - Writes a root-only environment file at
/etc/anitapanel/anitapanel.env. - Creates the panel database and initial administrator.
- Configures a systemd service, an IP:2087 TLS bootstrap panel and optional Let's Encrypt HTTPS.
License activation
Installation does not require a license key. After the panel starts, sign in as the administrator and open License. Activation binds an installation to a server slot and returns a signed license token.
The panel revalidates every 12 hours. A signed token is cached so short outages do not interrupt hosting. License expiry or revocation stops new hosting changes but never deletes websites or data.
Websites
Open Websites and create a domain. The panel creates the document root at /var/www/<domain>/public_html, writes an Nginx virtual host and reloads Nginx after configuration validation.
- Point the domain's A and AAAA records at the server before issuing SSL.
- Upload files through the file manager or use SFTP with your own system account.
- Suspend a website to disable its Nginx site without deleting files.
- Delete a website and choose whether to remove its files.
DNS
AnitaPanel can host authoritative DNS with BIND. Add a zone and ensure the domain's registrar uses ns1.anitapanel.com and ns2.anitapanel.com or your own branded nameservers.
Each zone is generated from panel-managed records, validated with named-checkzone and loaded with rndc reload. Deleting the apex NS records is blocked.
SSL
SSL certificates are issued by Let's Encrypt through Certbot. HTTP-01 validation requires port 80 to reach the server. Cloudflare-proxied domains work as long as Cloudflare forwards the challenge to the origin.
Backups
A backup archive includes the website directory, MariaDB dumps for databases assigned to the site and a JSON manifest. Archives are stored under /var/backups/anitapanel and can be downloaded from the panel.
Backups are not a substitute for off-site replication. Download critical archives and copy them to remote storage.
Updates
When AnitaPanel publishes a new release, the panel verifies the signed manifest, displays the changelog and offers a one-click install. The updater:
- Downloads the release over HTTPS and verifies its SHA-256 checksum.
- Extracts it into a new release directory.
- Updates the virtual environment and runs database migrations.
- Atomically switches the current symlink.
- Restarts the panel and probes the health endpoint.
- Restores the previous release if the health check fails.
Security
- Run the panel behind HTTPS and restrict SSH access to trusted networks where possible.
- Enable the firewall from the panel; core ports are protected against accidental removal.
- Use unique, long passwords for panel accounts and rotate database users.
- Keep the server operating system patched with
unattended-upgrades. - Review the activity log after granting new administrator access.
API
The central service exposes license and release endpoints used by installed panels. Endpoints require JSON and are intended for server-to-server traffic.
| Endpoint | Purpose |
|---|---|
POST /api/license/activate | Bind a license key to a server instance. |
POST /api/license/validate | Refresh the signed license token. |
POST /api/panel/update | Fetch the signed latest release manifest. |
GET /api/public-keys | Retrieve signing public keys for an install. |
Common issues
SSL issuance fails
Confirm ports 80 and 443 reach the server, the domain resolves to the origin, and the Nginx configuration passes nginx -t. Cloudflare proxy and firewall rules are common causes.
Panel shows license offline
Check that the server can reach https://anitapanel.com. Cached tokens remain valid; the panel retries automatically every 30 minutes after a failed check.
Database connection refused
Verify MariaDB is running from the Server page. Database users connect over localhost only. Use an SSH tunnel for external access.
Website shows the default page
Confirm DNS points to the server and place your application inside public_html. Check the site's Nginx error log from the website detail page.