Website
- Domain
- {{ selectedWebsite.domain }}
- Document root
- {{ selectedWebsite.document_root }}
- Status
- {{ selectedWebsite.status }}
- PHP version
- PHP {{ selectedWebsite.php_version }}
{{ home.hosting_account_suspension_mode === 'hard' ? 'The hosting stack and its services are currently turned off.' : 'Websites and hosting services are currently unavailable.' }} Please contact support to restore access.
Your hosting account is currently being updated or rebuilt. Settings are being applied in the background — please try again in a few minutes.
Your backup is running in the background with limited resource usage.
{{ websites.length }} website{{ websites.length !== 1 ? 's' : '' }} · {{ databases.length }} database{{ databases.length !== 1 ? 's' : '' }} · {{ mailboxes.length }} mailbox{{ mailboxes.length !== 1 ? 'es' : '' }}
Last {{ Math.min(activity.length, 5) }} events on your account
Last {{ recentSyncJobs.length }} jobs
{{ websites.length }} website{{ websites.length === 1 ? '' : 's' }} on this account
| Domain | Status | SSL | Actions |
|---|---|---|---|
| Loading websites… | |||
|
{{ site.domain }}
|
{{ site.status }} Uses parent domain DNS {{ site.dns_provider_label || 'DNS' }} syncing | {{ site.ssl_status }} | |
| {{ websites.length ? 'No websites match your search.' : 'No websites yet. Add one above.' }} | |||
Website-specific controls and hosting information.
No subdomains are attached to this website.
Choose a website from the Websites list to see its details.
Domains assigned to your client account by MangoPanel.
| Domain | Status | Renewal | Transfer lock | Actions | ||
|---|---|---|---|---|---|---|
| {{ domain.domain_name }}{{ domain.nameservers && domain.nameservers.length ? domain.nameservers.join(', ') : 'Nameservers pending' }} | {{ domain.status }} | {{ domain.expiry_at ? domain.expiry_at.slice(0, 10) : '—' }} | {{ domainDaysRemaining(domain) < 0 ? 'Expired ' + Math.abs(domainDaysRemaining(domain)) + ' days ago' : domainDaysRemaining(domain) + ' days' }}— | {{ domain.auto_renew ? 'Auto-renew on' : 'Manual' }} | {{ domain.transfer_lock ? 'Locked' : 'Unlocked' }} |
Domains assigned to your client account will appear here.
Create a separate site or mount a subdomain inside an existing domain directory.
{{ subdomainUsage.used }} used of {{ subdomainUsage.limit }} · unlimited
| Subdomain | Parent domain | Hosting | Directory | DNS | SSL | Actions |
|---|---|---|---|---|---|---|
| {{ subdomain.domain }} | {{ subdomain.parent_domain || '—' }} | {{ subdomain.hosting_mode === 'inside' ? 'Inside existing domain' : 'Separate website' }} | {{ subdomain.document_root }} | {{ subdomain.dns_provider || '—' }} · {{ subdomain.dns_status || 'pending' }} | {{ subdomain.ssl_status }} |
Add one to host a new site with minimal setup.
Everything you need to know about your current server resources and configurations.
Live account usage sampled from Docker containers when available and file storage on disk.
{{ analytics.filters.find((item) => item.key === analytics.filter)?.label || "Top list" }}
Analytics is disabled by this hosting plan. Contact your administrator to choose a plan that includes analytics.
Analytics is paused for this site. Existing history stays visible, but new requests will not be collected until you turn it back on.
| Time | Request | Status | IP | Country | Bandwidth |
|---|---|---|---|---|---|
| {{ log.created_at }} | {{ log.method }}{{ log.path }} | {{ log.status_code }} | {{ log.ip_address || "Unknown" }} | {{ log.country }} | {{ formatBytes(log.bytes_sent) }} |
| IP address | Requests | Last seen |
|---|---|---|
| {{ ip.ip_address }} | {{ ip.requests }} | {{ ip.last_seen_at }} |
| Path | Requests | Bandwidth |
|---|---|---|
| {{ item.path }} | {{ item.requests }} | {{ formatBytes(item.bandwidth_bytes) }} |
Manage your MySQL databases, users, and remote access grants.
{{ databasesLoading ? 'Loading databases…' : filteredDatabases.length + ' database' + (filteredDatabases.length === 1 ? '' : 's') }}
| Name | Website | Status | Connection Details | Actions |
|---|---|---|---|---|
| {{ database.name }} | {{ database.website_domain }} | {{ database.status }} |
for sites on this server
Host : {{ database.connection?.host || 'db' }};
port - {{ database.connection?.port || 3306 }}
|
|
| Loading databases… | ||||
| {{ databases.length ? 'No databases match this domain.' : 'No databases created yet. Click "Create Database" to start.' }} | ||||
{{ databasesLoading ? 'Loading users…' : databaseUsers.length + ' user' + (databaseUsers.length === 1 ? '' : 's') }}
| Username | Status | Actions |
|---|---|---|
| {{ user.username }} | {{ user.status }} | |
| Loading database users… | ||
| No database users yet. | ||
Manage which users can access which databases.
| Database | User | Privileges | Status | Actions |
|---|---|---|---|---|
| {{ grant.database_name }} | {{ grant.username }} | {{ grant.privileges }} | {{ grant.status }} | |
| Loading access grants… | ||||
| No user access grants configured. | ||||
Manage and restart isolated background services. A full stack reboot will abruptly kill all running processes.
Worker limits apply to each site independently. Unlimited remains constrained by the hosting account’s available CPU and memory.
| Website | Maximum PHP workers |
|---|---|
| {{ site.domain }} |
Account events and sync jobs
| Job | Status | Result | Updated |
|---|---|---|---|
| {{ formatJobType(job.type) }}#{{ job.id }} · {{ job.target_type }} | {{ job.status }} | {{ formatJobDetail(job) }} | {{ job.updated_at || job.created_at }} |
| No sync jobs yet. | |||
{{ mailboxes.length }} mailbox{{ mailboxes.length === 1 ? '' : 'es' }} on this account
| Quota | Status | Actions | |
|---|---|---|---|
| {{ mailbox.email }} | {{ mailbox.quota_mb }} MB | {{ mailbox.status }} | |
| No mailboxes yet. Add one above. | |||
{{ mailboxes[0].mail_host }}{{ mailboxes[0].mail_username || mailboxes[0].email }}{{ mailboxes[0].smtp_host }}:{{ mailboxes[0].smtp_port }} · {{ mailboxes[0].smtp_encryption || 'STARTTLS' }}{{ mailboxes[0].imap_host }}:{{ mailboxes[0].imap_port }} · {{ mailboxes[0].imap_encryption || 'STARTTLS' }}{{ mailboxes[0].pop_host }}:{{ mailboxes[0].pop_port }} · {{ mailboxes[0].pop_encryption || 'STARTTLS' }}SMTP {{ mailboxes[0].smtp_tls_port }} · IMAP {{ mailboxes[0].imap_tls_port }} · POP {{ mailboxes[0].pop_tls_port }}{{ mailboxes[0].jmap_url || 'Not configured yet' }}{{ mailboxes[0].webmail_login_url }}SPF, DKIM, and DMARC setup for the domains on this account
MX target: {{ activeAccount.runtime.mail_host }}. Point your domain MX here to receive mail.
| Domain | SPF | DKIM | DMARC | Catch-all | Status | Actions |
|---|---|---|---|---|---|---|
| {{ domain.name }} Mail domain #{{ domain.mail_domain_id || 'pending' }} Edge {{ mailEdgeRouteForDomain(domain).edge_host }} · {{ mailEdgeRouteForDomain(domain).provider }} · {{ mailEdgeRouteForDomain(domain).status }} | {{ domain.auth?.spf?.configured ? 'Configured' : 'Needs update' }} {{ domain.spf_policy }} |
{{ domain.auth?.dkim?.configured ? 'Configured' : 'Needs update' }}
{{ domain.dkim_selector || 'mango' }}._domainkey
|
{{ domain.auth?.dmarc?.configured ? 'Configured' : 'Needs update' }} {{ domain.dmarc_policy }} | {{ domain.catch_all_enabled ? 'Enabled' : 'Disabled' }} {{ domain.catch_all_destination || 'No destination' }} Disabled | {{ domain.auth?.status || 'missing' }} {{ domain.auth.notes[0] }} | |
| No mail domain records yet. | ||||||
{{ mailRouting.mail_aliases.length }} alias{{ mailRouting.mail_aliases.length === 1 ? '' : 'es' }}
| Source | Destination | Status | Actions |
|---|---|---|---|
| {{ alias.source_email }} | {{ alias.destination_email }} | {{ alias.status }} | |
| No aliases yet. | |||
{{ mailRouting.mail_forwarders.length }} forwarder{{ mailRouting.mail_forwarders.length === 1 ? '' : 's' }}
| Source | Destination | Status | Actions |
|---|---|---|---|
| {{ forwarder.source_email }} | {{ forwarder.destination_email }} | {{ forwarder.status }} | |
| No forwarders yet. | |||
{{ mailRouting.mail_autoresponders.length }} rule{{ mailRouting.mail_autoresponders.length === 1 ? '' : 's' }} tied to a mailbox
| Mailbox | Subject | Status | Actions |
|---|---|---|---|
| {{ autoresponder.mailbox_email }} | {{ autoresponder.subject }} {{ autoresponder.body.slice(0, 90) }}{{ autoresponder.body.length > 90 ? '…' : '' }} | {{ autoresponder.enabled ? 'Enabled' : 'Disabled' }} | |
| No autoresponders yet. | |||
Recent routing and configuration activity
| Action | Direction | Source | Destination | Status | Created |
|---|---|---|---|---|---|
| {{ log.action }} | {{ log.direction }} | {{ log.source_email || '—' }} | {{ log.destination_email || '—' }} | {{ log.status }} | {{ log.created_at }} |
| No mail delivery logs yet. | |||||
Run a PHP script or custom command on a schedule for your hosting account.
{{ cronJobs.length }} scheduled task{{ cronJobs.length === 1 ? '' : 's' }}
| Schedule | Command to run | Next run | Last run | Status | Actions |
|---|---|---|---|---|---|
{{ job.schedule }} | {{ job.command }}Last output: {{ job.last_output.slice(0, 80) }}No output yet |
{{ job.next_run_at || 'pending' }} | {{ job.last_run_at || 'never' }} | {{ job.status }}Exit {{ job.last_exit_code }} | |
| No cron jobs yet. Create one above to automate a command. | |||||
{{ cronOutputJob.last_output || 'No output recorded.' }}Backup plugin archives, cache, and database export files are excluded to keep backups light.
A backup is in progress. Hosting services remain available while the backup runs in the background.
Backups are saved copies of your website that help you restore it if needed.
Manual backups can be created on demand and are ideal before updates, new features, or major changes.
Automated backups are a reliable and easy way to protect websites that aren’t updated often.
{{ restoreHistory.length }} restore event{{ restoreHistory.length === 1 ? '' : 's' }}
| Status | Website | Backup | Database | Requested | Completed |
|---|---|---|---|---|---|
| {{ restore.status }}{{ restore.error }} | {{ restore.website_domain || 'Account' }} | #{{ restore.backup_id }} {{ restore.backup_created_at }} | {{ restore.include_database ? 'Included' : 'Files only' }} | {{ restore.created_at }} | {{ restore.completed_at || '—' }} |
| No restore events yet. Completed backups can be restored from Restore and download. | |||||
{{ filteredBackups.length }} backup record{{ filteredBackups.length === 1 ? '' : 's' }}
| ID | Type | Status | Created | Artifact / actions |
|---|---|---|---|---|
| #{{ backup.id }} | {{ backup.kind }} | {{ backup.status }} | {{ backup.website_domain || 'Account' }}{{ backup.created_at }} | {{ backup.artifact_path || '—' }} |
| {{ backupSiteId === 'all' ? 'No backups yet. Click Create backup to create one.' : 'No backups are available for this site yet.' }} | ||||
{{ gitDeployments.length }} connected repositor{{ gitDeployments.length === 1 ? 'y' : 'ies' }}
Updates are pulled automatically every 5 minutes. You can also click Update / Pull to run one immediately. The last successful pull time is shown below.
| Repository | Website | Branch | Status | Actions |
|---|---|---|---|---|
| {{ dep.repository_url }}{{ dep.deploy_path }}Last commit: {{ dep.last_commit.slice(0, 10) }}Last pull (server UTC): {{ dep.last_deployed_at || 'Never' }} | {{ dep.website_domain || 'Account path' }} | {{ dep.branch }} |
{{ dep.status }} | |
| No deployments yet. Connect a repository above. | ||||
Use these credentials with any SFTP client (FileZilla, Cyberduck, WinSCP) or SSH terminal.
SSH and SFTP login into the container is currently disabled for security. Click "Enable SSH Access" above to activate connection ports.
{{ sshInfo.host }}
{{ sshInfo.port }}
{{ sshInfo.user }}
{{ sshInfo.path }}
Authentication uses your SSH password set below. You can also use SSH key-based authentication for added security.
A password is set. You can change or regenerate it below. No password set yet. Generate one or enter a custom password.
✓ New SSH password (copy it now — it won't be shown again):
{{ sshState.newPassword }}
ssh -p {{ sshInfo.port }} {{ sshInfo.user }}@{{ sshInfo.host }}
sftp -P {{ sshInfo.port }} {{ sshInfo.user }}@{{ sshInfo.host }}
Must be 8–64 characters.
{{ sshState.passwordError }}
Manage free Let's Encrypt / AutoSSL certificates or install custom SSL certificates for your domains.
MangoPanel automatically issues and renews free SSL certificates for domains pointing to this server. You can also paste your own custom SSL certificate and private key below.
| Domain | SSL Status | Certificate Type | Actions |
|---|---|---|---|
| {{ site.domain }} {{ site.document_root }} | {{ site.ssl_status === 'custom' ? 'Custom SSL Active' : ((site.ssl_status === 'active' || site.ssl_status === 'local-dev') ? 'SSL Active' : (site.ssl_status === 'pending' ? 'Pending' : 'Missing / Unsecured')) }} | {{ site.ssl_status === 'custom' ? 'Custom Certificate' : ((site.ssl_status === 'active' || site.ssl_status === 'local-dev') ? 'Let\'s Encrypt / AutoSSL' : 'None') }} |
|
| No websites found. Add a website first to manage SSL certificates. | |||
Select the PHP version for each website. Changes are applied on the next request.
PHP versions are set per domain. Applying a change briefly restarts this account's web container, so other domains in the same account may be temporarily unavailable.
No websites yet. to configure PHP.
Click "Configure INI" next to a website above to modify its configuration.
| Directive | Recommended value | Description |
|---|---|---|
memory_limit | 256M | Maximum memory a script can allocate |
max_execution_time | {{ (phpInfo && phpInfo.directives && phpInfo.directives.max_execution_time) || '120' }}s | Maximum script execution time (seconds) |
upload_max_filesize | 64M | Maximum upload file size |
post_max_size | 64M | Maximum POST data size |
max_input_vars | 5000 | Maximum input variables |
Create and manage records with provider-aware controls.
{{ selectedDomain.dns_warnings[0].message }}
| Type | Name | Content | TTL | Priority | Routing | Actions |
|---|---|---|---|---|---|---|
| {{ record.type }} | {{ record.name }} |
{{ record.value }} |
{{ record.ttl }}s | {{ record.priority ?? '—' }} | {{ record.proxied ? 'Proxied' : 'DNS only' }}— | Locked |
| No DNS records for this domain yet. | ||||||
No domains available. Add a website first.
Runtime PHP configuration for {{ phpInfo.website?.domain || selectedWebsite?.domain || 'your hosting environment' }}.
To change the PHP version for a site, go to .
| Directive | Value |
|---|---|
memory_limit | {{ phpInfo.directives?.memory_limit || '256M' }} |
max_execution_time | {{ phpInfo.directives?.max_execution_time || '120' }} |
upload_max_filesize | {{ phpInfo.directives?.upload_max_filesize || '64M' }} |
post_max_size | {{ phpInfo.directives?.post_max_size || '64M' }} |
error_reporting | {{ phpInfo.directives?.error_reporting || 'E_ALL & ~E_DEPRECATED' }} |
display_errors | {{ phpInfo.directives?.display_errors || 'Off' }} |
session.gc_maxlifetime | {{ phpInfo.directives?.['session.gc_maxlifetime'] || '1440' }} |
date.timezone | {{ phpInfo.directives?.['date.timezone'] || 'UTC' }} |
Manage cache layers for {{ selectedWebsite?.domain || 'all sites' }}.
Clears local cache layers for {{ selectedWebsite?.domain || 'all sites' }}. Pages will be regenerated on next visit.
Restrict access to directories with HTTP basic authentication.
| Directory | Username | Actions |
|---|---|---|
{{ dir.path }} |
{{ dir.username }} | |
| No protected directories yet. | ||
Allow or block specific IP addresses and CIDR ranges from accessing your account.
| IP / CIDR | Status | Actions |
|---|---|---|
{{ rule.ip }} |
{{ rule.source === 'automatic_probe' ? 'Blocked for 5 min' : 'Blocked' }}{{ rule.reason }} | |
| No blocked IPs. | ||
| IP / CIDR | Status | Actions |
|---|---|---|
{{ rule.ip }} |
Allowed | |
| No allowed IPs. | ||
Prevent other websites from embedding your images and media files directly.
Enable hotlink protection to prevent bandwidth theft from external image embedding.
Control whether visitors can browse directory contents when no index file exists.
| Domain | Document Root | Directory Listing | Actions |
|---|---|---|---|
| {{ site.domain }} | {{ site.document_root }} | {{ site.index_enabled ? 'Enabled' : 'Disabled' }} | |
| No websites configured yet. | |||
Disabling directory listing (recommended) returns a 403 error when visitors browse to a directory without an index file.
Repair file ownership and permissions on all account files. Use this if you see permission errors or 403 Forbidden pages.
{{ fixOwnershipResult.message }}
Select a specific website to fix permissions for that site only, or choose 'All Websites & Account Files' to fix permissions across all sites.
Manage your account password and personalize your dashboard theme.
Keep your contact and invoice details up to date. Email changes require your current password and authenticator code.
Activity and account timestamps are displayed in this time zone.
Choose a visual style for your client panel dashboard. The theme switches instantly and persists across sessions.
Send all of the visitors of a domain or particular page to a different URL.
| Domain | Directory | Redirects To | Type | Match | Actions |
|---|---|---|---|---|---|
| {{ r.domain }} | {{ r.source_path }} |
{{ r.target_url }} | {{ r.type }} | {{ r.match_type }} | |
| No redirects configured. | |||||
Monitor your account's disk space usage per directory.
| Directory | Size |
|---|---|
{{ dir.path }} |
{{ dir.size }} |
| Loading disk usage... | |
Disk usage calculations include the `public_html` directories of all your websites. System directories, logs, and database files may contribute additional space usage not reflected here.
Enable or disable ModSecurity for your domains. ModSecurity protects your website from various attacks.
| Domain | Status | Actions |
|---|---|---|
| {{ site.domain }} | {{ (site.modsec_enabled === undefined || site.modsec_enabled) ? 'Enabled' : 'Disabled' }} | |
| No websites configured yet. | ||
ModSecurity is enabled per website. On this server, a warmed 50-request comparison measured approximately 0 ms additional median latency (about 3 ms average variation) versus ModSecurity disabled. Actual application latency can vary. Disabling ModSecurity may resolve issues with certain scripts but leaves your site vulnerable to attacks.
Create a database, a user, and link them together in 3 easy steps.
User {{ wizardDbUser }} will be granted all privileges on database {{ wizardDbName }}.
User {{ wizardDbUser }} was added to the database {{ wizardDbName }}.
Create and manage API tokens to authenticate with the MangoPanel REST API.
API access is disabled for your hosting plan. Please contact your administrator or upgrade your plan to access the API.
Please copy your new API token now. You won't be able to see it again!
{{ newApiTokenRaw }}
| Name | Created | Actions |
|---|---|---|
| {{ t.name }} | {{ new Date(t.created_at).toLocaleString() }} | |
| No API tokens configured. | ||
Protect your account with an additional layer of security using an authenticator app.
Two-factor authentication is currently disabled.
Open your authenticator app (like Google Authenticator or Authy) and scan this QR code.
Or enter the secret manually: {{ tfaSetup.secret }}
Your account is protected. You will be required to enter a code from your authenticator app each time you sign in.
To disable 2FA, confirm your password and enter a code from your authenticator app.
Grant granular access to team members or external developers, or manage accounts shared with you.
Users who have been given access to this hosting account.
You haven't shared this hosting account with anyone yet. Click "Add Collaborator" to grant access to a team member or developer.
| Collaborator | Invited Email | Website Scope | Subdomain Scope | Database Scope | Status | Actions |
|---|---|---|---|---|---|---|
| {{ c.invited_name || c.target_full_name || 'Collaborator' }} | {{ c.invited_email }} | All Websites {{ c.permissions.website_ids.length }} Website(s) No Websites | All Subdomains {{ c.permissions.subdomain_ids.length }} Subdomain(s) No Subdomains | All Databases {{ c.permissions.database_ids.length }} DB(s) No DBs | {{ c.status }} |
|
Hosting accounts owned by other users that you have collaborator access to.
Other account owners haven't granted you access to their hosting accounts yet.
| Account | Owner | Plan | Actions |
|---|---|---|---|
| {{ sa.account_number }} | {{ sa.owner_name }} ({{ sa.owner_email }}) | {{ sa.plan_name }} |
|
Connect an FTP client to upload and manage files for this hosting account.
Enable FTP access before connecting an FTP client. SFTP remains separately controlled from SSH / SFTP Access.
Use the host, port, username, and password below in FileZilla, Cyberduck, or another FTP client. Select passive transfer mode.
Use the external host and port shown above. If passive transfers fail, allow the displayed passive port range through your firewall.
Never share your FTP password.Create a login restricted to one directory. The account prefix is added automatically.
Each account can access only its configured directory.
Manage WordPress websites installed through MangoPanel.
| Website | Title | Status | Installed | Actions |
|---|---|---|---|---|
| {{ site.domain }} | {{ site.site_title || 'WordPress' }} | {{ site.status }}Cache: {{ site.litespeed_cache_status || 'pending' }} · Security: {{ site.cloudflare_security_status || 'pending' }} | {{ site.installed_at || '—' }} | |
| Loading WordPress sites… | ||||
| No WordPress sites found. Create one or use Detect WordPress. | ||||
One-click installation for popular CMS and scripts.