Domains ​

Overview ​
URL: /client/domains
Location in Sidebar: Domains > Domains
The Domains page allows you to manage all domains associated with your hosting account. Create new domains, view SSL status, and configure domain settings.
Domain Management ​
Create Domain ​
Click the "Create Domain" button to add a new domain to your account.
Creating a Domain ​
The Create Domain form allows you to add a new domain, subdomain, or parked domain to your account. The form includes a "Domain type" dropdown that changes available fields based on your selection.
Domain Type Options:
Domain When creating a standard domain, fill in:
- Domain (text, required) - Enter the domain you want to create. Placeholder: "example.com". Help text: "Enter the domain that you would like to create."
- Domain path (text) - Auto-filled based on your domain name
Subdomain When creating a subdomain, fill in:
- Subdomain (text, required) - Placeholder: "blog"
- To Domain (dropdown, required) - Select the parent domain
- Domain path (text) - Auto-filled based on your subdomain
Parked Domain When creating a parked domain, fill in:
- Domain (text, required) - Placeholder: "example.com"
- Park on Domain (dropdown, required) - Select the main domain to park this domain on
After completing the form, click "Create Domain" to add it to your account or "Cancel" to exit the form.
Since panel 1.9.3, a domain, subdomain, or parked domain named like the server's own hostname is refused with "Domain is reserved by system", and so is renaming a domain to that name.
When the plan limit is reached ​
Your hosting plan sets how many addon domains, subdomains, and parked domains the account can have. Since panel 1.9.3 the main domain of your account does not count as an addon domain: a plan that allows 3 addon domains lets you add three domains besides it. Since panel 1.9.3, when a new domain would go over that number, the form names the limit that was reached, for example "Domain not created: You have reached the limit of subdomains for this hosting plan." Nothing is created. Remove a domain of that type you no longer need, or ask your hosting provider for a plan with a higher limit.
The client REST API (POST /api/client/domains) and the administrator REST API (POST /api/hosting-account/domains) refuse the request with HTTP 422 and the limit's sentence as message, without the form's "Domain not created:" prefix, for example "You have reached the limit of subdomains for this hosting plan."
When the web server cannot load the new domain ​
Since panel 1.9.3, a new domain is created even when the web server cannot load it straight away. The panel then shows a warning instead of a success message: the domain is created but not served yet, with the reason and the next step. You do not need to create the domain again: it starts working once the cause is repaired. The Served column keeps showing the state.
The webmail subdomain ​
Domains and subdomains are provisioned with a webmail.<domain> address that serves webmail, so you and your mailbox users can reach it where you would expect, for example webmail.example.com, instead of at the panel address and port. Parked domains do not get one.
It comes with the domain and needs no setup: it is served by the domain's own virtual host rather than being listed as a separate domain of yours, and it gets an A record in the zone the panel manages.
If you create webmail.<domain> yourself as a real subdomain, your site wins and the built-in webmail address steps aside; delete that subdomain again and webmail comes back. Because webmail needs it, the webmail record stays in the parent zone in that case, while deleting any other subdomain removes its records from the parent zone as usual.
For the subdomain to work from the internet, its DNS record has to resolve to this server. Domains whose zone AdminBolt manages get the record automatically; if you host DNS elsewhere, add the record there.
Internationalised domain names (IDN) ​
You can create domains that use non-ASCII characters, such as пример.example or münchen.example. Enter the name in its readable Unicode form. AdminBolt stores it in Punycode (the ASCII-compatible xn-- encoding) and shows it back to you in Unicode in the domains table and elsewhere in the panel. Both forms refer to the same domain, so SSL, email, and DNS keep working as usual.
Files on the server are the exception: the document root and every path derived from it use the stored Punycode form, because that is what the filesystem holds. A domain shown as пример.example has its files under xn--e1afmkfd.example. The Create Domain form previews the path it will use while you type, so you can see the exact folder name before you confirm.

This matters wherever you work with paths rather than with the domain name: File Manager, FTP, SSH, cron jobs, and the paths that appear in log entries. Search for the xn-- form in those places, not the Unicode one.
Domain Table ​
The domains table displays all domains on your account with the following columns:
- Domain - Domain name (sortable)
- Document Root - Directory path where domain files are located
- Type - Server type (e.g. PHP-FPM)
- Version - Server version (e.g. 8.4)
- Served - whether the web server serves the domain; see Whether a domain is served
- Maintenance - whether maintenance mode is on, and until when
- Actions - Edit or Delete options
SSL status ​
Next to each domain name, a badge shows Secured when the domain has a certificate in use and Not secured when it does not. Since panel 1.9.4, a domain that AutoSSL is still getting a certificate for reads Certificate pending instead, with the reason and the next attempt when you hover over it. See Pending certificates.
Search and Filter ​
Use the search bar to find specific domains by name. Results update as you type.
Pagination ​
Select the number of domains to display per page: 5, 10, 25, 50, or All. The table updates to show the selected number of rows.
Row Actions ​
Each domain row includes these actions:
- Edit - Modify domain settings
- Maintenance mode - Take the site offline for visitors while you work on it (see Maintenance mode)
- Delete - Remove the domain from your account
Edit Domain ​
The Edit Domain dialog has two tabs:
- Configuration - www alias, application type, and PHP settings for the domain
- Filesystem Backups - create, restore, and delete archives of the domain's files; see Filesystem Backups
Since panel 1.9.3, a PHP version change is checked against the build the site actually runs. When the site still uses another build than the one you chose, the change is rolled back and Failed to update PHP version. names both, for example that the site still uses Remi PHP 8.4 instead of alt-php 8.4. The domain keeps its previous version.
On a CloudLinux server, changing the PHP version of your account's main domain also sets the version of the PHP Selector, and a later pick in the PHP Selector moves your websites again.
The environment variables, the health-check ping, and the time limit for a single request of a domain's PHP-FPM pool are set by your hosting provider. They are not on this form, and the client API ignores them with a warning.
Creating a domain over the API ​
Since panel 1.9.3, POST /api/client/domains with php_version_id sets the new domain up on that PHP version, and the domain in the answer carries it. A version that is not offered to your account answers 422 and creates nothing. The answer also holds php_configuration, the outcome of the PHP step, and php_version_applied; when the PHP step fails, the domain is still created, php_version_applied is false, and php_correlation_id is the ID to quote to support.
Whether a domain is served ​
Since panel 1.9.3 the Served column shows whether the web server has loaded the domain's configuration:
| Badge | Meaning |
|---|---|
| Pending | The domain was recently created or changed, and the web server has not loaded it yet. This lasts a few seconds and needs no action. |
| Yes | The web server serves the domain. |
| Not served yet (red) | The web server has not loaded the domain. Hover the badge for the reason and the next step. |
The usual reason for Not served yet is that the web server refused to load its configuration, because another file broke it. The panel keeps trying, so the domain starts working as soon as the configuration is repaired: nothing has to be created again.
What the next step says depends on who is looking:
- The account owner is asked to contact the server administrator, who repairs the web server configuration.
- An administrator who opened the account with Login is sent to Logs > Panel Error, where the entry about this domain's web server reload shows the web server's own error. When the reload never happened, the administrator is asked to check on Health that the web server is running first.
The REST APIs report the same state. Each domain returned by GET /api/client/domains and GET /api/client/domains/{id}, and by the administrator API GET /api/hosting-account/domains and GET /api/hosting-account/domains/{id}, carries:
| Field | Meaning |
|---|---|
served | true when the domain is served, null while it waits for the web server, and false when it is not served. |
not_served_reason | Why the domain is not served. Empty unless served is false. |
not_served_next_step | What to do about it. Empty unless served is false. |
not_served_log_id | Administrator API only: the correlation ID of the panel log entry that holds the web server's own error. |
Maintenance mode ​
Maintenance mode takes one domain's site offline for visitors while you work on it. Available since panel 1.9.0.
While it is on, every request to the domain answers with an HTTP 503 status and a maintenance page. The response carries a Retry-After header, which tells browsers and search engine crawlers when to try again. Your own rewrite rules in .htaccess cannot bypass the page. Certificate issuance keeps working while the mode is on, so an SSL certificate can still be issued or renewed.
Turning it on ​
- On the domain's row, click Maintenance mode.
- Switch Maintenance mode on.
- Set Retry-After (minutes): how long browsers and crawlers should wait before they try again. The default is 60 minutes.
- Optionally set Turn off automatically after (hours), up to 720 hours. Leave it empty to keep maintenance mode on until you turn it off.
- Optionally enter Page HTML: the page visitors see, as plain HTML up to 256 KB. Leave it empty to serve the panel's default maintenance page.
- Click Save.
The Maintenance column then shows On, or On until a time when you set an automatic end. It shows Off for a domain that is not in maintenance. When that time passes, maintenance mode turns itself off and the site is served again.
Turning it off ​
Open Maintenance: on on the domain's row, switch Maintenance mode off, and save. The site is served again straight away.
When the change is still pending ​
If the web server has not applied the change yet, the column shows Turning on, retrying or Turning off, retrying. The panel retries on its own, and the column updates when it is done. If it stays pending, contact your hosting provider and give them the correlation ID from the notification.
Maintenance mode works on Apache, LiteSpeed Enterprise, and OpenLiteSpeed. It applies to the domain's own site. Webmail and the panel address are not affected.
Maintenance mode over the API ​
Since panel 1.9.4, the client REST API reads and sets maintenance mode under /api/client/domains/{domain_id}/maintenance, with the limits of the form above:
| Method | What it does |
|---|---|
GET | Read the domain's maintenance mode. |
PUT | Turn it on, or change its page (html), the Retry-After time (retry_after_minutes), or the automatic end (auto_disable_hours). Fields left out keep their value. auto_disable_hours: null removes the automatic end. |
DELETE | Turn it off. The site is served again. |
When the web server has not applied the change yet, the answer is 202 with status: pending, and the panel retries as described in When the change is still pending. A change while another change of the same domain is in progress answers 409, and nothing is saved. The endpoints need the Domains feature of your hosting plan; see API Keys.