Loading dashboard data...
{{ activeMenuItem.label }} {{ activeMenuItem.description }}

Notifications

No notifications yet.
  • {{ n.text }} {{ n.time }}
{{ userInitial }}
{{ currentUserEmail }} Client account

Hosting Account Suspended

{{ 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.

Maintenance Activity in Progress

Your hosting account is currently being updated or rebuilt. Settings are being applied in the background — please try again in a few minutes.

Backup in progress

Your backup is running in the background with limited resource usage.

Welcome back, {{ (currentUserEmail || '').split('@')[0] }}

{{ websites.length }} website{{ websites.length !== 1 ? 's' : '' }} · {{ databases.length }} database{{ databases.length !== 1 ? 's' : '' }} · {{ mailboxes.length }} mailbox{{ mailboxes.length !== 1 ? 'es' : '' }}

Open Website

Resource Summary

Disk Usage
{{ home.resources.disk_used_mb }} MB of {{ home.resources.disk_limit_mb }} MB
Inodes
{{ home.resources.inodes_used }} of {{ home.resources.inodes_limit }}
CPU
{{ cpuLoadDisplay }} {{ cpuLoadStatus }} load
Memory
{{ home.resources.memory_percent != null ? Number(home.resources.memory_percent).toFixed(1) + '%' : home.resources.memory }} {{ home.resources.memory }} status

Needs Attention

  • {{ warning.message }}

{{ group }}

Recent Activity

Last {{ Math.min(activity.length, 5) }} events on your account

  • {{ item.action }} {{ item.created_at }}

Recent Sync

Last {{ recentSyncJobs.length }} jobs

  • {{ formatJobType(job.type) }} {{ job.status }} {{ formatJobDetail(job) }}

Websites

{{ websites.length }} website{{ websites.length === 1 ? '' : 's' }} on this account

Showing {{ filteredWebsites.length }} of {{ websites.length }}
Domain Status SSL Actions
Loading websites…
{{ site.domain }} {{ site.status }} Uses parent domain DNS {{ site.dns_provider_label || 'DNS' }} syncing {{ site.ssl_status }}
More actions
{{ websites.length ? 'No websites match your search.' : 'No websites yet. Add one above.' }}

Website not found

Choose a website from the Websites list to see its details.

Files Management

Manage files for your hosting account and websites.

Access Root Filesystem of this hosting

Access files of all domains

Access files of domain {{ (selectedWebsiteId && selectedWebsite) ? selectedWebsite.domain : '[select domain]' }}

Fix Permissions & Ownership

Domains Registered with Us

Domains assigned to your client account by MangoPanel.

Domain StatusRenewalTransfer lockActions
{{ 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' }}

No domains registered with us

Domains assigned to your client account will appear here.

Domains

  • {{ domain.name }} {{ domain.kind }} {{ domain.status }} {{ domain.dns_provider_label || domain.dns_provider }} · {{ domain.dns_status }} {{ (domain.nameservers || []).join(', ') || 'Nameservers pending provider sync' }}
    Last checked {{ domain.last_nameserver_check_at }} {{ domain.dns_warnings[0].message }}
  • No domains yet.
Domains

Subdomains

Create a separate site or mount a subdomain inside an existing domain directory.

{{ subdomainUsage.used }} used of {{ subdomainUsage.limit }} · unlimited

SubdomainParent domainHostingDirectoryDNSSSLActions
{{ 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 }}

No subdomains yet

Add one to host a new site with minimal setup.

{{ activeAccount.plan_name }} Plan

Hosting Plan Details

Everything you need to know about your current server resources and configurations.

Website Details

Website IP address {{ selectedWebsite?.server_ip || selectedWebsite?.ip_address || activeAccount?.node_ip || serverIp }}
Current nameserver 1 {{ (selectedWebsite?.nameservers && selectedWebsite.nameservers[0]) || activeAccount?.nameserver_1 || 'ns1.' + (selectedWebsite?.domain || 'example.com') }}
Current nameserver 2 {{ (selectedWebsite?.nameservers && selectedWebsite.nameservers[1]) || activeAccount?.nameserver_2 || 'ns2.' + (selectedWebsite?.domain || 'example.com') }}

Server Details

Server Name {{ activeAccount?.node_name || activeAccount?.node_hostname || 'primary' }}
Server Location {{ activeAccount?.node_location || 'Default' }}
Backups location {{ activeAccount?.backup_location || 'Local' }}

Hosting Details

{{ metric.label }} {{ metric.value }}

📈 Container Resource & CPU Usage Graph

Live & historical usage sampled from container stack
{{ series.label }}
{{ formatSampleTime(latestResourceUsage.sampled_at) }}

🧠 Dedicated RAM Memory Usage

Memory consumption (RAM MB) vs limit over time
RAM: {{ formatResource(latestResourceUsage.memory_mb, "MB") }} Limit: {{ formatResource(latestResourceUsage.memory_limit_mb || activeAccount.memory_mb, "MB") }}
{{ resourceChartPoints.length }} points

🌐 Bandwidth & Network Traffic History

HTTP transfer volume & traffic bytes (MB) over time
Bandwidth: {{ formatResource(latestResourceUsage.bandwidth_mb || (analytics && analytics.summary ? analytics.summary.bandwidth_bytes / (1024*1024) : 0), "MB") }} Quota: {{ activeAccount.bandwidth_mb > 0 ? formatResource(activeAccount.bandwidth_mb, "MB") : 'Unlimited' }}
{{ resourceChartPoints.length }} data points

FTP Details

FTP IP {{ selectedWebsite?.server_ip || selectedWebsite?.ip_address || activeAccount?.node_ip || serverIp }}
FTP Hostname ftp.{{ selectedWebsite ? selectedWebsite.domain : (selectedWebsiteLabel !== 'All sites' ? selectedWebsiteLabel : (websites.length ? websites[0].domain : 'example.com')) }}
FTP Username {{ activeAccount.username }}
File Upload Path public_html

Node.js Details

Supported frontend frameworks {{ activeAccount.frontend_frameworks || 'Angular, Astro, Next.js, Nuxt, Parcel, React, Vue.js, etc.' }}
Supported backend frameworks {{ activeAccount.backend_frameworks || 'Express, Fastify, Hono, NestJS, Nuxt, React Router, SvelteKit' }}
Supported Node.js versions {{ activeAccount.nodejs_versions || '24.x, 22.x, 20.x and 18.x' }}
Supported package managers {{ activeAccount.package_managers || 'npm (default), yarn and pnpm' }}
CPU{{ formatResource(latestResourceUsage.cpu_percent, "%") }}{{ latestResourceUsage.source || "collector" }}
RAM{{ formatResource(latestResourceUsage.memory_mb, "MB") }}of {{ formatResource(latestResourceUsage.memory_limit_mb, "MB") }}
Storage{{ formatResource(latestResourceUsage.storage_mb, "MB") }}of {{ formatResource(latestResourceUsage.storage_limit_mb, "MB") }}

Resource Usage History

Live account usage sampled from Docker containers when available and file storage on disk.

{{ series.label }} Last sample {{ formatSampleTime(latestResourceUsage.sampled_at) }}
Loading analytics data...

Analytics

{{ analytics.domain || selectedWebsite?.domain || "No domain selected" }}

Turn this off to stop new access-log collection for the selected site and reduce account overhead. Analytics and access-log collection are unavailable under this hosting plan.
Domain shown{{ analytics.domain || "-" }}selected website
Bandwidth{{ formatBytes(analytics.summary.bandwidth_bytes) }}bytes served
Total requests{{ analytics.summary.total_requests }}all logged responses
Unique IPs{{ analytics.summary.unique_ip_addresses }}distinct visitors
Error 4xx{{ analytics.summary.error_4xx }}client errors
Error 5xx{{ analytics.summary.error_5xx }}server errors

Filter by

{{ analytics.filters.find((item) => item.key === analytics.filter)?.label || "Top list" }}

  1. {{ country.country }}{{ country.requests }}
  2. No access logs yet0

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.

TimeRequestStatusIPCountryBandwidth
{{ log.created_at }} {{ log.method }}{{ log.path }} {{ log.status_code }} {{ log.ip_address || "Unknown" }} {{ log.country }} {{ formatBytes(log.bytes_sent) }}
Total requests{{ analytics.summary.total_requests }}
Successful requests{{ Math.max(analytics.summary.total_requests - analytics.summary.error_4xx - analytics.summary.error_5xx, 0) }}
Error requests{{ analytics.summary.error_4xx + analytics.summary.error_5xx }}
IP addressRequestsLast seen
{{ ip.ip_address }}{{ ip.requests }}{{ ip.last_seen_at }}
PathRequestsBandwidth
{{ item.path }}{{ item.requests }}{{ formatBytes(item.bandwidth_bytes) }}

Security

  • {{ warning.message }}
  • No current warningsYour account looks good.

Databases

Manage your MySQL databases, users, and remote access grants.

Databases

{{ databasesLoading ? 'Loading databases…' : filteredDatabases.length + ' database' + (filteredDatabases.length === 1 ? '' : 's') }}

NameWebsiteStatusConnection DetailsActions
{{ 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.' }}

Database Users

{{ databasesLoading ? 'Loading users…' : databaseUsers.length + ' user' + (databaseUsers.length === 1 ? '' : 's') }}

UsernameStatusActions
{{ user.username }} {{ user.status }}
Loading database users…
No database users yet.

User Access Grants

Manage which users can access which databases.

DatabaseUserPrivilegesStatusActions
{{ grant.database_name }} {{ grant.username }} {{ grant.privileges }} {{ grant.status }}
Loading access grants…
No user access grants configured.

Background Services

Manage and restart isolated background services. A full stack reboot will abruptly kill all running processes.

{{ svc.name }}

{{ svc.description }}
{{ serviceStatusLabel(svc.id) }}

PHP workers settings

Worker limits apply to each site independently. Unlimited remains constrained by the hosting account’s available CPU and memory.

WebsiteMaximum PHP workers
{{ site.domain }}

Activity Log

Account events and sync jobs

  • {{ item.action }} {{ item.created_at }}
  • No activity yet.
JobStatusResultUpdated
{{ formatJobType(job.type) }}#{{ job.id }} · {{ job.target_type }} {{ job.status }} {{ formatJobDetail(job) }} {{ job.updated_at || job.created_at }}
No sync jobs yet.

Email & Mailboxes

{{ mailboxes.length }} mailbox{{ mailboxes.length === 1 ? '' : 'es' }} on this account

EmailQuotaStatusActions
{{ mailbox.email }} {{ mailbox.quota_mb }} MB {{ mailbox.status }}
No mailboxes yet. Add one above.

Mail Client Settings

  • Mail host{{ mailboxes[0].mail_host }}
  • Username{{ mailboxes[0].mail_username || mailboxes[0].email }}
  • Submission{{ mailboxes[0].smtp_host }}:{{ mailboxes[0].smtp_port }} · {{ mailboxes[0].smtp_encryption || 'STARTTLS' }}
  • IMAP{{ mailboxes[0].imap_host }}:{{ mailboxes[0].imap_port }} · {{ mailboxes[0].imap_encryption || 'STARTTLS' }}
  • POP{{ mailboxes[0].pop_host }}:{{ mailboxes[0].pop_port }} · {{ mailboxes[0].pop_encryption || 'STARTTLS' }}
  • Secure portsSMTP {{ mailboxes[0].smtp_tls_port }} · IMAP {{ mailboxes[0].imap_tls_port }} · POP {{ mailboxes[0].pop_tls_port }}
  • JMAP{{ mailboxes[0].jmap_url || 'Not configured yet' }}
  • Direct login{{ mailboxes[0].webmail_login_url }}
  • Sending limits{{ mailRouting.daily_email_limit || 0 }} messages per day from the plan

Mail Authentication

SPF, DKIM, and DMARC setup for the domains on this account

{{ mailRouting.daily_email_limit || 0 }} sends/day

MX target: {{ activeAccount.runtime.mail_host }}. Point your domain MX here to receive mail.

DomainSPFDKIMDMARCCatch-allStatusActions
{{ 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.

Aliases

{{ mailRouting.mail_aliases.length }} alias{{ mailRouting.mail_aliases.length === 1 ? '' : 'es' }}

SourceDestinationStatusActions
{{ alias.source_email }} {{ alias.destination_email }} {{ alias.status }}
No aliases yet.

Forwarders

{{ mailRouting.mail_forwarders.length }} forwarder{{ mailRouting.mail_forwarders.length === 1 ? '' : 's' }}

SourceDestinationStatusActions
{{ forwarder.source_email }} {{ forwarder.destination_email }} {{ forwarder.status }}
No forwarders yet.

Autoresponders

{{ mailRouting.mail_autoresponders.length }} rule{{ mailRouting.mail_autoresponders.length === 1 ? '' : 's' }} tied to a mailbox

MailboxSubjectStatusActions
{{ autoresponder.mailbox_email }} {{ autoresponder.subject }} {{ autoresponder.body.slice(0, 90) }}{{ autoresponder.body.length > 90 ? '…' : '' }} {{ autoresponder.enabled ? 'Enabled' : 'Disabled' }}
No autoresponders yet.

Delivery Logs

Recent routing and configuration activity

ActionDirectionSourceDestinationStatusCreated
{{ log.action }} {{ log.direction }} {{ log.source_email || '—' }} {{ log.destination_email || '—' }} {{ log.status }} {{ log.created_at }}
No mail delivery logs yet.

Create a new cron job

Run a PHP script or custom command on a schedule for your hosting account.

/usr/bin/php

Scheduled cron jobs

{{ cronJobs.length }} scheduled task{{ cronJobs.length === 1 ? '' : 's' }}

ScheduleCommand to runNext runLast runStatusActions
{{ 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.

Output for {{ cronOutputJob.command }}

{{ cronOutputJob.last_output || 'No output recorded.' }}

Backups

Git Deployments

{{ 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.

RepositoryWebsiteBranchStatusActions
{{ 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.

SSH / SFTP Access

Use these credentials with any SFTP client (FileZilla, Cyberduck, WinSCP) or SSH terminal.

{{ sshState.enabled ? 'Enabled' : 'Disabled' }}
SSH & SFTP Logins Off by Default

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.

SSH / SFTP Password

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 }}

Quick connect commands

ssh -p {{ sshInfo.port }} {{ sshInfo.user }}@{{ sshInfo.host }}
sftp -P {{ sshInfo.port }} {{ sshInfo.user }}@{{ sshInfo.host }}

SSL / TLS Certificates

Manage free Let's Encrypt / AutoSSL certificates or install custom SSL certificates for your domains.

Automatic SSL Protection

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.

PHP Configuration

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.

{{ site.domain }}
{{ sitePhpTimeout(site) }}s timeout

No websites yet. to configure PHP.

Supported versions: PHP 7.4 (legacy), 8.0, 8.1, 8.2, 8.3, 8.4 (latest). We recommend PHP 8.3+ for best performance and security.

Common PHP INI settings

Click "Configure INI" next to a website above to modify its configuration.

DirectiveRecommended valueDescription
memory_limit256MMaximum memory a script can allocate
max_execution_time{{ (phpInfo && phpInfo.directives && phpInfo.directives.max_execution_time) || '120' }}sMaximum script execution time (seconds)
upload_max_filesize64MMaximum upload file size
post_max_size64MMaximum POST data size
max_input_vars5000Maximum input variables
Domains & DNS

DNS Zone Editor

Create and manage records with provider-aware controls.

No domains available. Add a website first.

PHP Info

Runtime PHP configuration for {{ phpInfo.website?.domain || selectedWebsite?.domain || 'your hosting environment' }}.

{{ phpInfo.website?.php_version || phpInfo.version || selectedWebsite?.php_version || phpVersions[phpVersions.length - 1] }}
{{ phpInfo.sapi || 'FPM/FastCGI' }}
{{ (phpInfo.extensions || []).join(', ') || 'Loading runtime details...' }}
{{ phpInfo.opcache?.enabled ? 'Enabled' : 'Disabled' }}

To change the PHP version for a site, go to .

DirectiveValue
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' }}

Cache Manager

Manage cache layers for {{ selectedWebsite?.domain || 'all sites' }}.

OPcache {{ cachePending('opcache') ? 'pending' : cacheStatus.opcode_cache }}
PHP bytecode caching
Object Cache (Global) {{ cachePending('object') ? 'pending' : cacheStatus.object_cache }}
(Global) Redis service is shared by all sites in this account.
Reverse-Proxy Cache (Global) {{ cachePending('reverse_proxy') ? 'pending' : cacheStatus.reverse_proxy }}
(Global) Edge response caching is configured for all sites in this account.
LiteSpeed Cache {{ cachePending('litespeed') ? 'pending' : cacheStatus.litespeed }}
OpenLiteSpeed page cache
Cloudflare Cache {{ cachePending('cloudflare') ? 'pending' : cacheStatus.cloudflare_cache }}
Cloudflare development-mode bypass
Last Purged {{ cacheStatus.last_purged || 'Never' }}
Manual cache clear

Purge Cache

Clears local cache layers for {{ selectedWebsite?.domain || 'all sites' }}. Pages will be regenerated on next visit.

Password Protect Directories

Restrict access to directories with HTTP basic authentication.

DirectoryUsernameActions
{{ dir.path }} {{ dir.username }}
No protected directories yet.

IP Manager

Allow or block specific IP addresses and CIDR ranges from accessing your account.

Blocked IPs

IP / CIDRStatusActions
{{ rule.ip }} {{ rule.source === 'automatic_probe' ? 'Blocked for 5 min' : 'Blocked' }}{{ rule.reason }}
No blocked IPs.

Allowed IPs

IP / CIDRStatusActions
{{ rule.ip }} Allowed
No allowed IPs.

Hotlink Protection

Prevent other websites from embedding your images and media files directly.

Enable hotlink protection to prevent bandwidth theft from external image embedding.

Folder Index Manager

Control whether visitors can browse directory contents when no index file exists.

DomainDocument RootDirectory ListingActions
{{ 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.

Fix Permissions

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.

What this does:
  • Resets file ownership to your account user
  • Sets directories to 755 and files to 644
  • Ensures container services have read access to serve website files
  • Preserves .htaccess and config file permissions

Account Settings

Manage your account password and personalize your dashboard theme.

Profile & Billing

Keep your contact and invoice details up to date. Email changes require your current password and authenticator code.

Loading profile…

Time zone

Activity and account timestamps are displayed in this time zone.

Change Password

Panel Theme

Choose a visual style for your client panel dashboard. The theme switches instantly and persists across sessions.

Default Theme
Dark Theme
Cyberpunk Theme
AWS Console Theme

Redirects

Send all of the visitors of a domain or particular page to a different URL.

DomainDirectoryRedirects ToTypeMatchActions
{{ r.domain }} {{ r.source_path }} {{ r.target_url }} {{ r.type }} {{ r.match_type }}
No redirects configured.

Disk Usage

Monitor your account's disk space usage per directory.

DirectorySize
{{ 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.

ModSecurity

Enable or disable ModSecurity for your domains. ModSecurity protects your website from various attacks.

DomainStatusActions
{{ 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.

MySQL® Database Wizard

Create a database, a user, and link them together in 3 easy steps.

Step 1: Create a Database

Step 2: Create a Database User

Step 3: Add User to the Database

User {{ wizardDbUser }} will be granted all privileges on database {{ wizardDbName }}.

Database Created Successfully!

User {{ wizardDbUser }} was added to the database {{ wizardDbName }}.

API Tokens

Create and manage API tokens to authenticate with the MangoPanel REST API.

API Access Disabled

API access is disabled for your hosting plan. Please contact your administrator or upgrade your plan to access the API.

Token Generated!

Please copy your new API token now. You won't be able to see it again!

{{ newApiTokenRaw }}
NameCreatedActions
{{ t.name }} {{ new Date(t.created_at).toLocaleString() }}
No API tokens configured.

Two-Factor Authentication (2FA)

Protect your account with an additional layer of security using an authenticator app.

Two-factor authentication is currently disabled.

1. Scan the QR Code

Open your authenticator app (like Google Authenticator or Authy) and scan this QR code.

QR Code

Or enter the secret manually: {{ tfaSetup.secret }}

2. Verify Setup

Two-Factor Authentication is Enabled

Your account is protected. You will be required to enter a code from your authenticator app each time you sign in.

Disable 2FA

To disable 2FA, confirm your password and enter a code from your authenticator app.

🤝

Account Sharing

Grant granular access to team members or external developers, or manage accounts shared with you.

Active Collaborators

Users who have been given access to this hosting account.

👥

No Collaborators Invited

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 }}

Accounts Shared With You

Hosting accounts owned by other users that you have collaborator access to.

📬

No Accounts Shared With You

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 }}

FTP access

Connect an FTP client to upload and manage files for this hosting account.

{{ ftpState.enabled ? 'Enabled' : 'Disabled' }}
FTP access is disabled

Enable FTP access before connecting an FTP client. SFTP remains separately controlled from SSH / SFTP Access.

FTP host{{ ftpInfo.host }}
FTP port{{ ftpInfo.port }}
Passive ports{{ ftpInfo.passiveMin }}–{{ ftpInfo.passiveMax }}
SecurityFTP with explicit TLS supported

How to connect

Use the host, port, username, and password below in FileZilla, Cyberduck, or another FTP client. Select passive transfer mode.

Common connection errors

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 new FTP account

Create a login restricted to one directory. The account prefix is added automatically.

/home/{{ activeAccount?.username || 'account' }}/

Your FTP accounts

Each account can access only its configured directory.

No FTP accounts have been created yet.

WordPress Manager

Manage WordPress websites installed through MangoPanel.

WordPress detection in progress
{{ wordpressDetectionRun.completed_sites || 0 }} completed · {{ Math.max(0, (wordpressDetectionRun.total_sites || 0) - (wordpressDetectionRun.completed_sites || 0)) }} remaining
{{ wordpressDetectionRun.status }}
Working on {{ wordpressDetectionRun.current_domain }}
{{ task.domain }}{{ task.step || task.status }}
WebsiteTitleStatusInstalledActions
{{ 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.

App Installer

One-click installation for popular CMS and scripts.

Building your website…