EasypanelDocs

WordPress Service

Deploy and manage WordPress, its runtime, and common site operations.

The WordPress service provides a managed WordPress runtime with NGINX, PHP, Git, a browser IDE, domains, scripts, resource limits, and common WP-CLI operations. It can manage WordPress core, users, roles, options, themes, plugins, media, the database, caches, and site migrations from the Easypanel interface.

Requirements

A WordPress service uses MySQL or MariaDB. You can select an existing database service from the same project or choose Create new database. When you create a new database, Easypanel adds a MariaDB service named <wordpress-service>-db with generated credentials.

Keep the database private unless an external database client requires remote access.

Create a WordPress service

  1. Open a project and select New Service.
  2. Select WordPress and enter a service name.
  3. Choose the initial WordPress version. Use latest, nightly, or a specific version such as 6.6.2.
  4. Select an existing MySQL or MariaDB service, or select Create new database.
  5. Create the service. Easypanel initializes the files, builds the WordPress image, deploys it, and configures the database connection.
  6. Optionally clone site files from the Git section.
  7. Open the generated service domain, or add a domain when the project does not have automatic service domains, then complete the WordPress installation in the browser.

Git content is cloned into the service's code directory when you configure it.

An existing database may already contain data. Back it up before connecting it to a new WordPress service or importing another site.

Overview

The overview shows the service state and provides start, stop, restart, rebuild, and delete actions. Rebuild the WordPress image after changing PHP or NGINX runtime settings.

Stopping a service removes its running deployment but keeps its configuration. Restarting enables and redeploys it.

Git

Use Git to clone themes, plugins, or a complete site repository into the WordPress code directory. Configure the repository URL and branch during initialization or clone them later.

For a private repository, add the service's SSH key as a read-only deploy key. The Git settings also configure the author name and email used by Git commands inside the service.

Avoid committing generated uploads, caches, secrets, or environment-specific wp-config.php values.

Domains

Add a domain to make the site public. A domain can configure:

  • the hostname and path;
  • HTTP or HTTPS;
  • an internal HTTP or HTTPS connection;
  • the target service port;
  • a certificate resolver;
  • wildcard routing and Traefik middlewares.

WordPress URLs stored in the database must agree with the primary public domain. When moving to a different hostname, use Search Replace to update old URLs after previewing the changes.

Scripts

Scripts execute shell content inside the WordPress container. They can run manually, on a cron schedule, or through a webhook token. Typical uses include WP-CLI maintenance, cache warming, and scheduled imports.

Treat webhook tokens as secrets, and make scheduled scripts safe to run more than once.

Redirects

Redirect rules use a regular expression and replacement URL. Rules can be enabled or disabled and can send temporary or permanent redirects.

Test temporary redirects before making them permanent. A redirect loop can prevent access to both the public site and WordPress administration.

Basic Auth

Basic Auth adds a proxy-level username and password prompt in front of every attached domain. Use it for staging sites or private previews. It is separate from WordPress users and does not replace WordPress roles and permissions.

Resources

CPU and memory reservations describe the service's expected baseline. Limits protect the rest of the server from unexpected usage.

Allow enough memory for PHP, WordPress updates, plugin operations, imports, thumbnail regeneration, and traffic spikes. A low memory limit can terminate these operations before they finish.

IDE

The optional browser IDE opens the WordPress files, using /code as its default folder. Access is protected by a generated token. Rotate the token after disclosure and disable the IDE when it is not needed.

Update

The Update section updates WordPress core and applies any required database upgrade.

Before updating:

  1. Export the database and site files.
  2. Review theme and plugin compatibility.
  3. Enable maintenance mode when the update may affect visitors.
  4. Apply the core update.
  5. Verify the public site, administration area, and scheduled jobs.

Do not interrupt a core update or its database migration.

PHP

The PHP section controls:

  • the PHP version;
  • maximum upload size and execution time;
  • OPcache;
  • custom php.ini content;
  • optional ionCube and SQL Server extensions.

Save the configuration, rebuild the WordPress image, and verify the service after changing the PHP version or extensions. Confirm that every active plugin and theme supports the selected PHP version.

NGINX

The NGINX section controls the document root and server configuration. The default document root is /code.

The configuration supports the {{ document_root }} and {{ fpm_socket }} placeholders used by the generated WordPress runtime. An invalid configuration can prevent the service from starting, so keep a copy of the last working version.

Environment

Environment variables use .env syntax and are available to the WordPress container:

WP_ENV=production
CUSTOM_API_KEY=change-me

Restart or redeploy after changing environment values. Store secrets in Easypanel instead of committing them to Git.

WP Config

WP Config edits the raw wp-config.php file. Use it for WordPress constants and configuration that cannot be expressed through environment variables.

Saving invalid PHP or removing Easypanel's database configuration can make the site unavailable. Export the current file before editing it.

Users

The Users section lists WordPress accounts and their roles. You can create, update, or delete users and set a new password while editing an account.

Use unique administrator accounts, grant the least-privileged suitable role, and remove accounts that no longer require access.

Roles

Roles lists the roles defined by WordPress and installed plugins. You can create custom roles and delete roles that are no longer needed.

Check whether users depend on a role before deleting it. Role capabilities may also be managed by plugins and can change when a plugin is disabled.

Options

Options exposes names and raw values from the WordPress options table. You can create, edit, or delete an option.

WordPress core and plugins may store serialized or structured values in the options table. Editing them as plain text can corrupt configuration. Back up the database and change only options whose format you understand.

Themes

Themes lists installed themes, versions, activation status, and available updates. You can search the WordPress theme directory, install and activate a theme, or activate an existing theme.

Test theme updates on a staging copy when the site contains template overrides or custom code.

Plugins

Plugins lists installed plugins, versions, activation status, and available updates. You can search the WordPress plugin directory, install and activate a plugin, or activate and deactivate installed plugins.

Update plugins in small groups and verify the site between changes. Deactivating security, caching, or migration plugins can immediately change site behavior.

Maintenance

Maintenance toggles WordPress maintenance mode. Enable it during operations that must not serve partially migrated or inconsistent content, then disable it after verifying the site.

Maintenance mode is independent from stopping the Easypanel service: the container continues running while WordPress displays its maintenance response.

Media

Regenerate Media rebuilds image thumbnails for the complete media library. It can take a long time on large sites and can consume significant CPU and storage I/O.

Run it during a low-traffic window and leave enough free disk space for generated files.

Database

Optimize Database runs WordPress database table optimization. Back up the database first and schedule the operation outside peak traffic for large sites.

Use the database service's Backups section for recurring backups. The WordPress Import Export section provides on-demand transfer of a site. See Database Backups for scheduling and restore guidance, and protect persistent uploads separately with a Volume Backup.

Cache

The Cache section can flush the WordPress object cache and delete all transient entries. Both actions can temporarily increase database and application load as the site rebuilds cached data.

Use cache flushing after configuration or deployment changes, not as a routine fix for unrelated errors.

Profiling

Profiling reports timing and cache metrics for three WordPress execution stages:

  • Bootstrap
  • Main Query
  • Template

Use it to identify whether slow requests are dominated by WordPress startup, database queries, or theme rendering. Repeat measurements before and after a change instead of relying on a single request.

Search Replace

Search Replace updates matching content throughout the WordPress database. It is commonly used when changing a domain or URL scheme.

Always run Dry Run first. Review the preview, export the database, then run the replacement only when the search and replacement values are correct.

Search and replace affects every matching database value and cannot be undone from Easypanel. Restoring a backup may be the only recovery from an incorrect replacement.

Import Export

Import Export supports four operations:

  • download a database export;
  • upload a database import;
  • download the WordPress files;
  • upload a files archive.

Use both the database and files exports for a complete site transfer. Keep the two exports from the same point in time so uploads, plugin versions, and database records remain consistent.

Imports overwrite site state. Enable maintenance mode, create a fresh backup, verify upload size and free disk space, and keep the browser open until the operation completes.

Service deletion

Destroying a WordPress service permanently removes its files, generated image, and domains. Export the database and site files, then verify the downloads before confirming deletion. Delete the database service separately only when no other service uses it.