Comprehensive Guide to Customizing Resellers in DirectAdmin: Limits, Default Pages, Global IPs, and Custom Email Headers

This article provides a complete overview of how to customize reseller behavior and capabilities in DirectAdmin. It covers limiting the number of users a reseller can create, customizing default and suspended pages, using global shared IPs, understanding IP assignment logic during reseller creation, legacy shared-IP behavior, and adding custom headers to welcome and lost-password emails.

DirectAdmin reseller customization, global IPsreseller limits, suspended pageswelcome email headers

~3 min read • Updated Mar 1, 2026

1. Limiting the Number of Users a Reseller Can Create


Starting from DirectAdmin version 1.59, the maximum number of users a reseller can create is controlled directly through Reseller Packages.


Simply edit the reseller package and set the desired user limit.


---

2. Customizing Default and Suspended Pages for Resellers


Since DirectAdmin version 1.51, each reseller has their own directories for default and suspended pages:


/home/resellername/domains/default/
/home/resellername/domains/suspended/

These directories contain copies of the default templates from:


/usr/local/directadmin/data/templates/suspended

To customize them globally, copy the templates to the custom directory:

/usr/local/directadmin/data/templates/custom/suspended

DirectAdmin also includes an .htaccess file to prevent browser caching, ensuring suspended pages disappear immediately when a domain is unsuspended.


---

3. Using Shared IPs Across Multiple Resellers (Global IPs)


Previously, only the server IP could be shared among multiple resellers. With the introduction of Global IPs, any shared IP can now be used by multiple resellers.


3.1 Enabling a Global IP


In Admin Level → IP Manager, select an IP and set:

global=yes

Once enabled:

  • The IP can be assigned to multiple resellers
  • It behaves as a shared IP
  • Accessing the IP directly loads the Admin’s shared area

This replaces the older workaround described in help item #538.


3.2 Behavior Notes


  • Reseller IP Manager hides user counts for global shared IPs
  • “Remove from Reseller” removes the IP from all reseller ip.list files
  • Setting a free IP to global automatically assigns it to Admin
  • You can now remove the server IP from a reseller

---

4. IP Selection During Reseller Creation


Two areas determine which IPs a reseller receives:


4.1 Reseller Package

  • IPs: Number of free IPs assigned
  • Share Server IP: Optional checkbox

4.2 Account IP (User-Level IP)

Options include:

  • Shared – Server: Uses server IP
  • Shared – Reseller’s IP: Uses one assigned IP
  • Assigned: Reseller owns one assigned IP
  • Shared – Global: Uses a specific global IP

To automatically assign global IPs:

da config-set auto_add_global_ip '1|random'

DirectAdmin ensures consistency between selected Account IP and auto-assigned global IPs.


---

5. API and JSON Behavior for Global IPs


To update global status via API:


Method 1: CMD_IP_MANAGER_DETAILS

action=global
ip=1.2.3.4
global=yes|no

Method 2: CMD_IP_MANAGER

action=select
set_global=1
select0=1.2.3.4
global=yes|no

Viewing IP details:

CMD_IP_MANAGER_DETAILS?ip=1.2.3.4&json=yes

JSON output includes:

"global": "yes"

It also lists all resellers/admins using that IP:

"resellers_with_ip": ["admin"]

---

6. Legacy Method (Pre-Global IP)


For older DirectAdmin versions, a workaround allowed all resellers to share a single shared IP.


Create:

/usr/local/directadmin/scripts/custom/user_create_post_confirmed.sh

With content:

#!/bin/sh
IPL=/usr/local/directadmin/data/users/$username/ip.list
SERVER=1.2.3.4
SHARED=1.2.3.5
if [ -s ${IPL} ]; then
    perl -pi -e "s/^${SERVER}\$/${SHARED}/" ${IPL}
    echo "Swapped server IP ${SERVER} with shared IP ${SHARED} for $username"
fi
exit 0;

Make executable:

chmod 755 /usr/local/directadmin/scripts/custom/user_create_post_confirmed.sh
---

7. Adding Custom Headers to Welcome and Lost Password Emails


You can add custom headers to welcome messages by inserting:

|?HEADER=Content-Type: text/plain; charset=utf-8|

Additional headers:

  • HEADER2
  • HEADER3
  • HEADER4

Example:

|?HEADER=MIME-Version: 1.0|
|?HEADER2=Content-Type: text/plain; charset=utf8|

Files affected:

  • u_welcome.txt
  • r_welcome.txt
  • a_welcome.txt
  • lost_password_email.txt

Written & researched by Dr. Shahin Siami