How to Install DirectAdmin on Ubuntu 24.04 VPS: Commercial Control Panel Setup Guide
DirectAdmin has quietly become one of the most respected commercial web hosting control panels in the industry. While cPanel dominates the conversation, DirectAdmin offers a lighter footprint, saner pricing, and a famously stable codebase that routinely runs for years without surprises. This guide walks through a complete DirectAdmin installation on Ubuntu 24.04 LTS, from licensing and the setup.sh installer to CustomBuild 2.0, Let's Encrypt, user and reseller accounts, DNS, and backup configuration.
Want a proven VPS for DirectAdmin? The CloudCore Professional plan gives you the 6 vCPU, 12 GB RAM, and NVMe storage that DirectAdmin needs to host dozens of busy sites comfortably. Spin up a VPS here and follow along.
Table of Contents
What is DirectAdmin?
DirectAdmin is a commercial web hosting control panel first released in 2003 by JBMC Software. It provides a graphical interface for administering a Linux server as a multi-tenant hosting platform: creating hosting accounts, managing email, databases, DNS zones, FTP, SSL certificates, and cron jobs. Where most open-source panels aim for feature breadth, DirectAdmin is known for the opposite philosophy: a small, fast, stable codebase that does the essentials extremely well.
The panel is structured around three account levels. Admin users have root-equivalent control of the server and manage licensing, server-wide packages, service configuration, and the underlying stack. Reseller users are resold slices of the server they can use to create their own hosting accounts and set their own packages -- this is the hook that makes DirectAdmin popular with hosting companies and agencies. User accounts are the actual end-customer hosting accounts: one per domain or one per customer, each with its own home directory, mail, DNS zone, and databases.
Under the hood, DirectAdmin on Ubuntu 24.04 orchestrates a familiar LAMP-style stack: MariaDB for databases, Exim and Dovecot for mail, Apache, Nginx, or OpenLiteSpeed for HTTP, and BIND (named) for authoritative DNS. The glue that holds this together is CustomBuild 2.0, DirectAdmin's own build system that compiles and updates the stack from source, giving you fine-grained control over PHP versions, modules, and web server binaries without touching the distribution's package manager.
The panel is used by thousands of hosting providers around the world and is the control panel of choice for many European and Asian hosts. Its defining qualities are frugal resource usage (it runs happily on a 2 GB VPS where cPanel demands 4 GB to start), a permissive license structure (you can move licenses between servers), and a development team that still responds to email.
Why Self-Host DirectAdmin Instead of cPanel?
If you are familiar with cPanel, moving to DirectAdmin feels like switching from a sprawling Swiss Army knife to a well-made chef's knife. Both cut, but one is faster and lighter in the hand. The concrete reasons to choose DirectAdmin over cPanel on a self-hosted VPS come down to cost, performance, and control.
License cost is dramatically lower. A cPanel Solo license is capped at one account and still runs around USD 17 per month at the current tier. A cPanel Admin license (five accounts) starts near USD 27 per month, climbing rapidly as account counts grow. DirectAdmin's Standard tier starts at about USD 5 per month for a single-account server and scales gently from there, with Lite and Pro tiers priced at a fraction of the equivalent cPanel bracket. For resellers with dozens of accounts, the yearly difference is easily four figures.
Resource usage is a fraction of cPanel's. DirectAdmin's control panel daemon is a compiled C++ binary that uses around 50-100 MB of resident RAM. cPanel's Perl-based stack consistently reserves 1-2 GB just for the panel, leaving less headroom for customer sites. On a 4 GB VPS, the difference can be the deciding factor between a snappy server and constant swap thrashing.
Stability and upgrade behavior are predictable. DirectAdmin is conservative about releases: the panel rarely breaks third-party integrations, and CustomBuild 2.0 keeps stack upgrades isolated from distribution package upgrades. There is no equivalent of a surprise cPanel major version breaking Apache modules overnight.
No vendor lock-in. DirectAdmin does not require its own repository or patched packages at the OS level. If you ever want to move off, the data directories (/home/$user/), MariaDB dumps, and Exim mail spools are all in standard locations with standard formats.
Against these benefits, DirectAdmin does ship with a smaller out-of-the-box feature set than cPanel (fewer one-click apps, a plainer file manager, fewer bundled plugins), and the UI -- while modern in current releases -- is less polished than WHM/cPanel. For hosting administrators who value efficiency, price, and predictability over glossy UX, the trade is firmly in DirectAdmin's favor.
DirectAdmin vs. Open-Source Alternatives
| Criteria | DirectAdmin | cPanel/WHM | Plesk | HestiaCP | CyberPanel |
|---|---|---|---|---|---|
| License | Commercial, tiered | Commercial, tiered | Commercial, tiered | Free (GPL) | Free (core) |
| Monthly cost (5 accts) | ~USD 5-15 | ~USD 27-47 | ~USD 15-30 | USD 0 | USD 0 |
| RAM footprint (idle) | ~100 MB | ~1.5 GB | ~800 MB | ~300 MB | ~500 MB |
| Default web server | Apache + Nginx | Apache | Nginx + Apache | Nginx + Apache | OpenLiteSpeed |
| cPanel migration tool | Built-in | N/A | Built-in | Third-party | Third-party |
| Resellers supported | Yes (native) | Yes (native) | Yes (native) | Limited | Limited |
| Typical use case | Commercial hosts, agencies | Large hosts | Windows + Linux mix | Self-hosters | WordPress focus |
DirectAdmin Licensing and Pricing
DirectAdmin is a paid control panel -- this is not optional. The installer will refuse to finish without a license key, and the panel phones home daily to validate. Pricing is tiered by the number of hosting accounts a server may create.
The three public tiers are:
- Standard -- Unlimited accounts, unlimited domains, full feature set. The normal choice for production hosting businesses.
- Lite -- Capped at a small number of accounts (typically 10) with a reduced feature set; oriented at personal or very small deployments.
- Pro Pack -- Standard plus advanced enterprise features (clustering, advanced reporting, priority support).
Two important practical notes. First, licenses are tied to the server's primary public IPv4 -- if you change the IP, you must update the license record in the DirectAdmin customer portal. Second, licenses are transferrable between servers, so rebuilding or migrating to a larger VPS is straightforward.
Prerequisites
Before running the installer, make sure you have all of these in place:
- A clean Ubuntu 24.04 LTS VPS with root SSH access. DirectAdmin strongly prefers a freshly provisioned server -- do not try to install it on top of an existing LAMP stack.
- At least 2 GB of RAM (4 GB+ strongly recommended for hosting real customer workloads).
- At least 20 GB of free disk space (80 GB+ recommended if you intend to host more than a handful of sites with mail).
- A resolvable hostname such as
server.yourdomain.comwith an A record pointing to the server's public IPv4. DirectAdmin uses this for the panel URL and Let's Encrypt. - A DirectAdmin license key and admin username, obtained from directadmin.com after purchasing.
- Ports open: 22 (SSH), 80/443 (HTTP/S), 2222 (DirectAdmin panel), 25/465/587 (SMTP), 110/995 (POP3), 143/993 (IMAP), 53 (DNS, TCP and UDP), 21 (FTP), 20 (FTP-data).
Recommended VPS: CloudCore Professional>
For a production DirectAdmin deployment hosting 10-50 customer sites, we recommend the CloudCore Professional plan:>
- 6 vCPU cores
- 12 GB RAM
- 100 GB NVMe SSD
- Unmetered bandwidth>
This comfortably runs DirectAdmin's full stack (Apache + Nginx + MariaDB + Exim + Dovecot) alongside customer sites, PHP workers, and scheduled backups with plenty of headroom.
Connect to the server as root:
ssh root@your-server-ipStep 1: Prepare the Ubuntu 24.04 Server
Start by bringing the system fully up to date and installing the small set of prerequisites the DirectAdmin installer expects. Ubuntu 24.04 (Noble Numbat) ships with most of what DirectAdmin needs, but a few packages help the installer's dependency checks pass cleanly.
apt update && apt upgrade -y
apt install -y wget curl gcc g++ make flex bison openssl libssl-dev \
perl perl-modules libperl-dev zlib1g-dev libxml2-dev \
libcurl4-openssl-dev libexpat1-dev libaio1t64 libnuma-dev \
ca-certificates tarIf the kernel was upgraded, reboot:
rebootSet a proper FQDN hostname. DirectAdmin requires a three-part hostname (server.example.com, not just server):
hostnamectl set-hostname server.yourdomain.comConfirm the change:
hostname -fExpected output:
server.yourdomain.comFinally, verify the hostname resolves publicly by running dig server.yourdomain.com +short from any machine -- it should return the VPS's public IP. If it does not, create the A record in your DNS provider before continuing.
Step 2: Purchase a DirectAdmin License
Head to directadmin.com and order a license that matches your planned usage. During checkout you will be asked for the primary public IPv4 of the target server; enter it exactly as shown by curl -s ifconfig.me on your VPS.
Once the order is processed, you will receive an email containing:
Keep this information in a password manager -- you will paste it into the installer in the next step.
Step 3: Download and Run setup.sh
DirectAdmin provides a single official installer script: setup.sh. It is distributed from files.directadmin.com and will pre-flight the OS, prompt for license credentials, download the control panel tarball, compile CustomBuild 2.0, and bootstrap the whole stack (MariaDB, Exim, Dovecot, PHP, and your chosen web server).
Download it:
cd /root
wget -O setup.sh https://www.directadmin.com/setup.sh
chmod 755 setup.shRun it:
./setup.sh autoThe installer first asks a handful of questions:
Please enter your Client ID : 123456
Please enter your License ID : 789012
Please enter your hostname (server.example.com) : server.yourdomain.com
Is server.yourdomain.com correct? (y,n) : yA typical installer run on a 6 vCPU VPS takes 20-35 minutes -- the bulk of the time is CustomBuild 2.0 compiling PHP, Apache/Nginx/OpenLiteSpeed, and the rest of the stack from source. Let it run to completion; do not interrupt it.
When the installer finishes, you will see the final credentials:
System Security Tips : http://help.directadmin.com/item.php?id=247Your System Hostname: server.yourdomain.com Your Server IP: 203.0.113.42
Your Admin Username: admin Your Admin Password: A9vK2pQ7rM4xL8bN
Your DirectAdmin URL: https://server.yourdomain.com:2222
Write the admin password down immediately. It is generated during install and not stored in plain text anywhere you can retrieve it later.
Step 4: Choose Your Web Server Stack
DirectAdmin's installer uses CustomBuild 2.0 to build the web server stack. On Ubuntu 24.04 you have three supported choices, each with a different performance and compatibility profile:
- Apache standalone -- The classic choice, maximum compatibility with
.htaccessand legacy PHP apps. Uses themod_php+php-fpmcombination. - Nginx + Apache (reverse proxy) -- Nginx handles static files and TLS termination, Apache handles dynamic PHP. Best balance of speed and compatibility for mixed workloads. This is the recommended default.
- OpenLiteSpeed -- A high-performance event-driven web server with native PHP LSAPI. Significantly faster than Apache for WordPress and similar PHP sites, at the cost of
.htaccessedge cases.
options.conf and rebuilding:cd /usr/local/directadmin/custombuild
./build set webserver nginx_apache
./build set php1_release 8.3
./build set mysql_inst mariadb
./build set mysql 10.11
./build update
./build all d
./build rewrite_confsA full rebuild of the stack via ./build all d takes around 20-40 minutes on a 6 vCPU server. The ./build rewrite_confs step re-renders Apache/Nginx/OpenLiteSpeed virtual host configs for every hosted site to match the new stack, so changes propagate to customer accounts automatically.
The MariaDB version is configurable the same way. DirectAdmin defaults to a recent LTS (typically 10.11 or newer). You can check the active version with:
mysql --versionFor mail, DirectAdmin uses the standard Exim 4 + Dovecot 2 combination. SpamAssassin and ClamAV integration are toggled in CustomBuild:
./build set spamassassin yes
./build spamassassin
./build set clamav yes
./build clamav
./build rewrite_confsStep 5: First Login and Admin Dashboard Tour
Point a browser at the URL the installer printed:
https://server.yourdomain.com:2222Your browser will flag a certificate warning on the first visit because the installer uses a self-signed certificate for port 2222 by default -- we fix that in Step 7. Accept the warning, then log in with the admin username and the password from the installer output.
The Admin dashboard is organized into three sections down the left sidebar:
- Admin Level -- Server-wide controls: license, service monitor, IP manager, admin backup/transfer, DNS administration, SSL settings.
- Reseller Level -- Reseller-scoped functions: create user accounts, manage packages, view resource usage. Every admin is also a reseller.
- User Level -- End-user-scoped functions: domain setup, email accounts, databases, file manager. Every reseller is also a user, so the admin sees all three.
Step 6: CustomBuild 2.0 and the PHP Selector
CustomBuild 2.0 is the engine that compiles and updates the DirectAdmin stack. It lives at /usr/local/directadmin/custombuild and is controlled both from the shell and from the CustomBuild menu inside the panel.
DirectAdmin supports multiple PHP versions simultaneously. A server can offer PHP 7.4, 8.1, 8.2, and 8.3 at the same time, and each hosted domain can pick its own. This is controlled by the php1_release, php2_release, php3_release, and php4_release keys in options.conf:
cd /usr/local/directadmin/custombuild
./build set php1_release 8.3
./build set php2_release 8.2
./build set php3_release 8.1
./build set php4_release no
./build update
./build php n
./build rewrite_confsUsers then pick their preferred PHP version from the Domain Setup screen in the user panel. Per-directory overrides are also supported -- a single account can run /blog/ on PHP 8.1 and /app/ on PHP 8.3 simultaneously.
To update all installed components to the latest versions published by DirectAdmin:
cd /usr/local/directadmin/custombuild
./build update
./build update_versions
./build all d
./build rewrite_confsSchedule this via cron if you want automatic stack updates -- ./build all d is idempotent and safe to run on servers in production, though it does briefly restart services.
Step 7: Configure Let's Encrypt SSL
DirectAdmin ships with Let's Encrypt integration enabled by default. Two things to configure:
1. Replace the panel's self-signed certificate on port 2222.
From the Admin panel, go to Admin Tools > Let's Encrypt and request a certificate for the server hostname (server.yourdomain.com). The panel will run the ACME HTTP-01 challenge, install the certificate, and automatically restart the directadmin service so the new certificate is live on port 2222.
Or from the CLI:
cd /usr/local/directadmin/scripts
./letsencrypt.sh request server.yourdomain.com 40962. Enable automatic Let's Encrypt for every new user.
In Admin Settings > Let's Encrypt, toggle Enable automatic creation/renewal of Let's Encrypt certificates to on. With this active, every time a user creates a domain or subdomain, DirectAdmin silently requests a certificate, configures the web server for HTTPS, and schedules auto-renewal.
Certificates renew via /etc/cron.d/directadmin_cron and DirectAdmin's letsencrypt.sh helper. You can verify the cron is active with:
cat /etc/cron.d/directadmin_cron | grep -i letsStep 8: Create Packages and Plans
Packages define the resource quotas a hosting account can consume. Before you can create customer accounts, you need at least one user package. For resellers, you also need at least one reseller package.
In the Admin sidebar, open Packages > User and click Add Package. A typical shared-hosting user package looks like:
- Bandwidth:
50000MB/month - Disk Quota:
10000MB - Domains:
1(or higher for multi-site accounts) - Subdomains:
10 - Email Accounts:
25 - Forwarders:
25 - Mailing Lists:
5 - Databases:
5 - Anonymous FTP: off
- CGI Access: on
- PHP Access: on
- SSL Access: on
- Skin: default
starter-10gb. Repeat with progressively larger quotas for business-50gb and agency-200gb plans.Reseller packages sit one level up -- they define how many users a reseller may create and the total pool of bandwidth/disk they can allocate. Create at least one reseller package (for example reseller-base) in Packages > Reseller before moving to the next step.
Tip: Setting "Can use this package" checkboxes on reseller packages lets you control exactly which user packages each reseller tier can offer to their own customers. This is how you implement multi-tier white-label pricing cleanly.
Step 9: Create Admin, Reseller, and User Accounts
DirectAdmin has a strict account hierarchy: admin > reseller > user. Every account belongs to exactly one level, and the creation flow depends on which level you are operating at.
Adding Additional Admin Accounts
It is good practice to add a secondary admin account so you have a recovery path if the primary admin credentials are lost. Go to Admin Level > Create Administrator, supply a username and email, and click Submit.
Creating a Reseller Account
Under Reseller Level > Add New Reseller, select the reseller package you created and provide:
- Username (3-8 lowercase letters/numbers)
- Email address (password gets sent here)
- Domain (the reseller's own domain, for example
reseller1.com) - IP address (either shared or a dedicated IP from the IP Manager)
https://server.yourdomain.com:2222, create their own user packages, and provision end-customer accounts.Creating a User (Hosting) Account
This is the most common operation on a production server. Under Reseller Level > Add New User, fill in:
- Username
- Password (or let it auto-generate)
- Domain
- User Package (chosen from the ones you defined in Step 8)
- IP address
- Notify User (toggle on to email credentials)
/home/$username/, sets up the vhost in Apache/Nginx/OpenLiteSpeed, adds DNS zones for the domain, provisions a system user, and -- if Let's Encrypt is enabled -- requests a certificate. The whole operation usually takes 5-15 seconds.Step 10: Configure DNS for Hosted Domains
DirectAdmin ships with BIND (named) for authoritative DNS, enabled by default. When a user creates a domain, DirectAdmin automatically generates a zone file, adds A records for the domain, www, mail, ftp, and any standard subdomains, plus MX and SPF records for mail.
For the DNS zones to actually resolve publicly, the domain needs its nameservers delegated to your server. You have two options:
Option A: Use your registrar's nameservers and point A records at the VPS. Simpler but means customers see your domain in their WHOIS. This is the typical setup for single-site VPS owners.
Option B: Run your own nameservers (ns1.yourdomain.com, ns2.yourdomain.com). The right choice for hosting businesses. Configure glue records at your registrar for both ns1.yourdomain.com and ns2.yourdomain.com pointing to the server's IP (or two IPs for redundancy), then set the server's default nameservers in Admin Settings > DNS Nameservers.
To test that a newly created domain's DNS is serving correctly:
dig @localhost example-user.comYou should see DirectAdmin's BIND responding with the A records it generated. Once the real nameservers propagate (1-24 hours), the same lookup against public resolvers should return the same answers.
Step 11: Set Up Backups with Admin Backup / Transfer
DirectAdmin's Admin Backup / Transfer is the native backup system. It produces self-contained tarball archives per user that include the home directory, databases, email, DNS zones, FTP accounts, and panel configuration. The same archives are the input format for restoring accounts or migrating them to another DirectAdmin server.
Configure Scheduled Backups
Open Admin Tools > Admin Backup / Transfer > Schedule and define a recurring job:
Local: /home/admin/admin_backups is the simplest. For production, configure an FTP or SFTP destination pointing at a separate backup VPS or object storage gateway. Off-site backups are non-negotiable.Save the schedule. DirectAdmin writes the job to /etc/cron.d/directadmin_cron and the first run will execute at the next scheduled tick.
On-Demand Backups
For ad-hoc backups (before stack upgrades or major migrations), use Admin Backup / Transfer > Create Backup. The same interface offers a Restore tab where you upload an existing backup archive to re-create an account.
cPanel Migration
DirectAdmin natively reads standard cPanel backup archives. If you are migrating from cPanel, upload the cpmove-username.tar.gz files to /home/admin/admin_backups/ on the DirectAdmin server, then use Admin Backup / Transfer > Restore and select cPanel as the source format. The importer recreates the user, restores the home directory, imports databases into MariaDB, and rebuilds DNS zones and mail accounts.
Hardening and Best Practices
DirectAdmin is secure by default, but a small set of additional hardening steps are worth the 10 minutes they take.
Enable BruteForceMonitor. DirectAdmin includes a built-in brute force detector that watches SSH, FTP, SMTP, IMAP, POP3, and panel logins. Enable it under Admin Settings > Brute Force Monitor and set the block duration to 30 minutes after 5 failed attempts. Blocked IPs are automatically pushed to the firewall.
Run securityIssues.sh. DirectAdmin ships with a hardening audit script:
cd /usr/local/directadmin/scripts
./securityIssuesIt scans for weak default permissions, insecure Exim settings, world-readable configuration files, and known issues with legacy PHP modules. Review and fix anything flagged.
Change the panel port. Port 2222 is well known. Change it to something unusual in Admin Settings > Admin Settings > Port Number and update your firewall rules accordingly.
Enable two-factor authentication. Under your admin profile, toggle 2FA on and scan the QR code with Google Authenticator or 1Password. Require 2FA for all admin and reseller accounts via Admin Settings > Two-Factor Authentication.
Firewall off everything else. Install ufw and lock down to only the ports your services actually need:
ufw default deny incoming
ufw default allow outgoing
ufw allow 22,2222/tcp
ufw allow 80,443/tcp
ufw allow 25,465,587/tcp
ufw allow 110,995,143,993/tcp
ufw allow 21/tcp
ufw allow 53
ufw enableSchedule regular updates. Add to /etc/cron.d/directadmin_stack_update:
0 4 0 root cd /usr/local/directadmin/custombuild && ./build update && ./build update_versions && ./build all dThis runs a full stack refresh every Sunday at 04:00, keeping PHP, web server, and MariaDB patched against known CVEs.
Troubleshooting
| Problem | Cause | Solution |
|---|---|---|
setup.sh fails with Unsupported OS | Running on Ubuntu 22.04 or older, or a non-LTS release | DirectAdmin supports Ubuntu 24.04 LTS. Verify with lsb_release -a and reprovision if needed. |
Invalid license after install | License IP does not match server's primary IPv4 | Check the IP in the DirectAdmin customer portal at directadmin.com and update it. Then run /usr/local/directadmin/scripts/getLicense.sh CLIENTID LICENSEID. |
| Panel at port 2222 refuses connections | Firewall blocking 2222, or directadmin service not running | systemctl status directadmin. Open port 2222 in UFW: ufw allow 2222/tcp. Restart: systemctl restart directadmin. |
| Let's Encrypt request fails | Hostname does not resolve publicly, or port 80 is blocked | Verify dig server.yourdomain.com +short returns the server IP. Ensure port 80 is open and no other service is bound there during the challenge. |
| New user's website shows default page | DNS not yet delegated, or web server config not rewritten | Run cd /usr/local/directadmin/custombuild && ./build rewrite_confs. Verify domain A records point to server IP. |
./build all d fails with compilation errors | Missing dev library or stale CustomBuild | ./build update then retry. If persistent, ./build clean and rebuild. |
| Exim not accepting mail on port 25 | Hosting provider blocks outbound 25, or firewall closed | Check with your provider -- many block port 25 by default. Open ticket to request port 25 unblocking, or use a smarthost relay. |
| Reseller cannot create users | Reseller package exhausted, or license account limit reached | Check Reseller Level > List Users for resource usage. Check panel footer for license account count vs. limit. |
Viewing DirectAdmin Logs
DirectAdmin's own logs live in /var/log/directadmin/:
tail -f /var/log/directadmin/error.log
tail -f /var/log/directadmin/errortaskq.log
tail -f /var/log/directadmin/security.logFor stack-level issues, look at /var/log/apache2/error_log, /var/log/nginx/error.log, /var/log/exim/mainlog, and /var/log/mysql/error.log.
FAQ
Is DirectAdmin free?
No. DirectAdmin is a commercial control panel licensed on a tiered per-account basis from directadmin.com. The three public tiers are Standard (unlimited accounts, full features), Lite (limited accounts, reduced features), and Pro Pack (Standard plus advanced enterprise features). Monthly pricing starts in the low-single-digit USD range for Lite and scales up by tier and account volume. Some regions also offer lifetime licenses. For free alternatives, see our guides on HestiaCP and CyberPanel.
What web servers does DirectAdmin support on Ubuntu 24.04?
Three options: Apache standalone, Nginx as reverse proxy in front of Apache, and OpenLiteSpeed. The choice is made during installation via CustomBuild 2.0 and can be changed at any time by editing /usr/local/directadmin/custombuild/options.conf and running ./build all d && ./build rewrite_confs. The default and most widely deployed setup is Nginx + Apache, which gives you Nginx's static file performance and Apache's full .htaccess compatibility for dynamic PHP.
How do I activate Let's Encrypt in DirectAdmin?
Let's Encrypt is bundled and enabled by default. For the panel's own certificate on port 2222, go to Admin Tools > Let's Encrypt and request a cert for your server hostname. For automatic certificates on every hosted domain, enable Admin Settings > Let's Encrypt > Automatic creation/renewal. Users can also request certificates manually from the SSL Certificates menu in the user panel. Renewal happens automatically via /etc/cron.d/directadmin_cron.
Can I migrate from cPanel to DirectAdmin?
Yes, and the tooling is first-class. DirectAdmin's Admin Backup / Transfer natively reads standard cpmove-username.tar.gz cPanel backup archives. Place the backup files in /home/admin/admin_backups/ on the DirectAdmin server and run the restore with cPanel selected as the source format. The importer recreates the user, restores the home directory, rebuilds MariaDB databases from the MySQL dump, restores mail (converting Maildir as needed), and rebuilds DNS zones. Plan for 2-5 minutes per GB of backup size.
How does DirectAdmin compare to Plesk and HestiaCP?
DirectAdmin is the lightest of the three, cheaper than Plesk, and has the most mature cPanel migration path. Its UI is functional rather than glossy and the plugin ecosystem is smaller. Best for: commercial hosters and agencies that value cost and performance over UX polish. See our Plesk install guide for comparison.
Plesk is the most polished commercially, with the best Windows support, the biggest extension marketplace, and heavy WordPress Toolkit integration. Pricing is between cPanel and DirectAdmin. Best for: mixed Windows/Linux shops and WordPress-heavy hosts that value UX.
HestiaCP is a free, open-source fork of VestaCP with active development, nginx-first defaults, and a clean UI. No licensing costs at all. Best for: developers and self-hosters who want a control panel without a subscription. See our HestiaCP install guide.
For VPS owners running a handful of sites on a budget, HestiaCP often wins. For commercial hosting businesses that will bill customers monthly, DirectAdmin's commercial support and stability justify the license cost.
How do I back up DirectAdmin itself (the panel configuration)?
The panel's own state lives in /usr/local/directadmin/, /var/log/directadmin/, and the users' /home/$user/ trees. Scheduled Admin Backup / Transfer jobs cover per-user data. For full server snapshots -- config, logs, packages, license state -- use your VPS provider's snapshot feature weekly, or run a filesystem-level backup of /usr/local/directadmin/, /etc/, and /home/ with restic or borg to off-site storage. The combination of DirectAdmin's native backups (for per-user restore) and a filesystem snapshot (for whole-server disaster recovery) covers every failure mode.
Next Steps
With DirectAdmin running on your VPS, here are recommended follow-ups:
- Onboard your first customer account -- Create a user package, provision a hosting account, delegate the customer's domain to your nameservers, and verify email delivery end-to-end. Treat the first account as your smoke test.
- Install SpamAssassin and ClamAV -- Run
./build set spamassassin yes && ./build spamassassin && ./build set clamav yes && ./build clamav && ./build rewrite_confsto add inbound spam and malware filtering to Exim. Essential for any production mail hosting.
- Configure off-site backup storage -- A backup that lives on the same server it is meant to protect is not a backup. Point Admin Backup / Transfer at a separate backup VPS or an S3-compatible endpoint and verify restores actually work end-to-end.
- Explore DirectAdmin's official documentation -- The official docs at docs.directadmin.com are well-organized and cover every panel feature in depth, including reseller customization, custom skin development, and cluster/multi-server setups.
- Compare against other control panels -- If you are still evaluating, read our Plesk install guide, CyberPanel install guide, and HestiaCP install guide. Each targets a different sweet spot, and hands-on testing on a throwaway VPS is the fastest way to decide.
Need a production-ready VPS for DirectAdmin?>
The CloudCore Professional plan gives you the 6 vCPU, 12 GB RAM, and 100 GB NVMe you need to host dozens of sites on DirectAdmin comfortably, with full root access, unmetered bandwidth, and 24/7 support.>
- 6 vCPU cores / 12 GB RAM / 100 GB NVMe
- Ubuntu 24.04 LTS pre-installed
- Full root SSH access
- Unmetered bandwidth
- Snapshot + backup options>
Launch your DirectAdmin VPS now and follow this guide end-to-end.