Overview
System Requirements
Operating system
Operating systems supported by DirectAdmin and expected End-of-life dates can be found here.
DirectAdmin supports the following Linux distributions:
- Red Hat Enterprise Linux.
- Red Hat Enterprice Linux derivatives - CentOS Stream, Rocky Linux, AlmaLinux.
- Debian.
- Ubuntu.
Running on the following hardware architectures:
- 64bit AMD and Intel architecture, also know as
amd64
orx86-64
. - 64bit ARM architecture, also know as
arm64
.
Partition scheme
We suggest a simple partition structure of:
Partition | Size |
---|---|
/boot | 500 MB |
swap | 2 x RAM but no more than 16 GB |
/ | Rest of drive |
For a less simple partition structure:
Partition | Size |
---|---|
/boot | 500 MB |
swap | 2 x RAM but no more than 16 GB |
/tmp | 1 GB. |
/ | 6 - 10 GB |
/var | 8 - 20 GB. Logs, and Databases with CentOS |
/usr | 5 - 12+ GB. DA data, source code, mysql backups with custombuild option |
/home | Rest of drive. Roughly 80% for User data. Mount with nosuid in /etc/fstab if possible. |
Feel free to modify these numbers as needed. Debian store mysql databases in /home/mysql/
.
Please have Basic development/compiling tools such as gcc, g++, and perl.
** Please do not install services such as Apache, PHP, MySQL, Ftp, Sendmail, etc., as we will do this for you. All we need is a CLEAN install of your operating system. **
We do not recommend installing DirectAdmin on an existing live production server. DirectAdmin does not convert existing data upon install.
Hardware
We highly recommend a processor of at least 500 Mhz even though DirectAdmin will run on slower systems. The more cores the better.
A minimum 2 GB of memory is required (4+ GB is preferred), with at least 4 GB of swap memory.
A hard drive with at least 2 gigabytes of free space (after the Linux install) is also required, not including any website data.
If you are expecting high traffic levels then you will need more memory, processor power, and hard drive space than we recommend here.
Intel and AMD should work fine. Solaris/Sparc will not.
Software
Please ensure SSH is installed and working.
Please ensure named (Name Daemon) is selected during the Redhat install.
gcc and g++ are required to compile apache and php.
The system kernel and filesystem must support quotas. The kernel should support IPv6.
Authority Level
You must have root access on the server.
IP Addresses
At a bare minimum your server must have one static IPv4 IP address. However, for DNS control you will sometimes need at least two (2) IP addresses. With only one IP address you might be forced to use an external DNS service, depending on your registrar. -- this means web sites you create through the control panel will not propagate automatically.
DirectAdmin can be installed on a LAN using recommended auto mode.
Installing DirectAdmin: How is it done?
We will install DirectAdmin for you at no cost (free installs may not be included with bulk purchases). If you prefer to install DirectAdmin yourself, please refer to the DirectAdmin Installation Guide.
What Gets Installed?
Complete list of software which gets installed is located at: http://www.directadmin.com/technologies.php
Need More Information?
You can e-mail questions to sales@directadmin.com or send an inquiry by visiting the contacts page. We are available Monday through Friday, 9 AM - 5 PM Mountain Standard Time. You may also visit the forum to see if your question has been answered there.
Common installation guide
We recommend running auto-installation mode per the installation guide.
LAN (internal IP) installation
DirectAdmin can be installed on an internal IP address. Steps are same as in auto installation mode, but note:
When it asks for which ethernet device, make sure you pick the device that holds the LAN IP (often eth0, ens192, venet0, etc).
Enter the external license IP, and not the LAN IP when asked.
Running the installation with predefined options
As many people need to install DA frequently, they might have a usual set of options that they want to use, and they may want to automate this process. The setup.sh
does allow for this.
Basic options can be customized by exporting environment variables set to the desired values like so:
export php1_release=8.0
For PHP modules:
export php_imap=yes
Then run installation with the following command:
./setup.sh LICENSE_KEY
If more options have to be customized, it would be better to use a pre-defined options.conf
file. For example, you may pre-set the hostname:
Hostname:
If the /usr/local/directadmin/custombuild/options.conf
or the /usr/local/directadmin/conf/directadmin.conf
files exist, the installation process will not use defaults because it will instead use the settings from your predefined "options.conf" and/or "directadmin.conf" files. So, copy them from another server, or download from a URL where you placed the options.conf
and/or directadmin.conf
files prior to installation:
mkdir -p /usr/local/directadmin/custombuild
wget -O /usr/local/directadmin/custombuild/options.conf "http://yourdomain.com/options.conf"
mkdir -p /usr/local/directadmin/conf/
wget -O /usr/local/directadmin/conf/directadmin.conf "http://yourdomain.com/directadmin.conf"
A sample call for the setup.sh
script with environment variables:
cd /root/
wget -O setup.sh https://download.directadmin.com/setup.sh
chmod 755 setup.sh
DA_HOSTNAME="server.yourdomain.com" ./setup.sh LICENSE_KEY
Other environment variables that could be used:
DA_CHANNEL : Download channel: alpha, beta, current, stable
DA_COMMIT : Exact DA build to install, will use latest from update channel if empty
DA_OS_SLUG : Build targeting specific platform: linux_amd64, debian10_amd64, rhel8_amd64, ...
DA_EMAIL : Default email address
DA_HOSTNAME : Hostname to use for installation
DA_NS1 : pre-defined ns1
DA_NS2 : pre-defined ns2
Additional environment variables that could be set non-empty value to take effect (for example, DA_SKIP_CSF=true):
DA_SKIP_CSF : skip installation of CFS firewall
DA_SKIP_MYSQL_INSTALL : skip installation of MySQL/MariaDB
DA_SKIP_SECURE_PHP : skip disabling insecure PHP functions automatically
DA_SKIP_CUSTOMBUILD : skip all the CustomBuild actions
DA_INTERACTIVE_CUSTOMBUILD : run interactive CustomBuild installation if DA_SKIP_CUSTOMBUILD is unset"
DA_FOREGROUND_CUSTOMBUILD : run CustomBuild installation in foreground DA_SKIP_CUSTOMBUILD is unset"
And that way, when the setup.sh
runs CustomBuild, it will use your settings without any changes.
The mysql_inst and mariadb/mysql versions variables are handled properly with setup.sh
, so the setup.sh
script can be used to compile proper database service at installation time.
Options for script installation mode
Options must be set in-place before calling the setup.sh
in command-line mode.
- Configuration files
options.conf
anddirectadmin.conf
can be set in place with desired options before runningsetup.sh
. Doing so will do things like using your desired download server, using the desired php version/mode, webserver type, etc. Place the files in the following locations prior to running thesetup.sh
:
/usr/local/directadmin/custombuild/options.conf
/usr/local/directadmin/conf/directadmin.conf
Ensure these files have your desired settings defined, so that when CustomBuild runs, it will use those settings instead of the defaults.
See this article for information on setting mysql_inst before running the setup.sh
script.
- Custom Email and ns1/ns2 can be declared by exporting the following variables with your desired email and nameservers before running
setup.sh
:
export DA_EMAIL=email@example.com
export DA_NS1=ns1.example.com
export DA_NS2=ns2.example.com
- To use your desired hostname, specify it like this:
export DA_HOSTNAME="server.yourdomain.com"
- To skip mysql installation, export the following variable:
export DA_SKIP_MYSQL_INSTALL=true
Continue installation normally.
Note: If you use this option (set it before you run the setup.sh
), then it will be your responsibility to ensure that the database is set up and running prior to the setup.sh
being run, and that the da_admin has been set up in the mysql.conf
, ready for DA to use.
- [To install the pre-release version of DirectAdmin when installing for the first time], you can use the flag 'beta'.
DA_CHANNEL=beta ./setup.sh LICENSE_KEY
The same pre-release version can be obtained using 'channel=beta' when updating an existing DirectAdmin installation to a pre-release version.