---
title: WordPress Hosting
---

Deploy fully managed WordPress instances with MariaDB, SFTP access, and automatic SSL.

## Creating a WordPress Site

1. Go to your project → **Add Service** → **WordPress**
2. Enter:
   - **Site Name** — display name
   - **Site Title** — WordPress site title
   - **Deployment URL** — your subdomain (e.g., `myblog.zevcloud.app`)
   - **Admin Email** — WordPress admin login email
3. Select a plan
4. Click **Create**

ZevCloud will:
- Provision a WordPress container with PHP 8.x
- Provision a MariaDB 11 database
- Set up an SFTP server for file access
- Auto-install WordPress with your admin credentials
- Configure SSL via Let's Encrypt
- Email you the login details

## What's Included

| Component | Details |
|-----------|---------|
| WordPress | Latest version, PHP 8.x |
| Database | MariaDB 11, auto-configured |
| SFTP | Dedicated SFTP access for file management |
| SSL | Automatic via Let's Encrypt |
| Storage | Persistent volumes for files and database |

## Managing Your WordPress

### Dashboard Overview

The WordPress service detail page shows:
- **Site URL** and **WP Admin** links
- **Admin credentials** (username, password — revealable)
- **SFTP credentials** (host, port, username, password)
- **Database credentials** (host, database, username, password)
- **Container status** (WordPress, MariaDB, SFTP)

### Auto-Login to wp-admin

Click **"WP Admin"** in the dashboard header to automatically log into your WordPress admin panel — no password needed. A one-time token is generated and you're redirected.

### File Management

**Via Dashboard:**
Navigate to the **Files** tab to browse your WordPress files. You can view the directory structure and navigate through `wp-content`, themes, plugins, etc.

**Via SFTP:**
Connect using any SFTP client (FileZilla, Cyberduck, WinSCP):

```
Host: your-slug.zevcloud.app (or deployment domain)
Port: 2222 (unique per site)
Username: sftp_yourslug
Password: (shown in dashboard)
Protocol: SFTP
```

Files are served from `/var/www/html`.

### Database Access

Database credentials are shown in the **Database** tab. The database is accessible:
- **Internally** — from other services on ZevCloud using the container hostname
- **Via Terminal** — use the Terminal tab to run `mysql -u user -p dbname`

### Logs

View WordPress access and error logs in the **Logs** tab. Logs are pulled directly from the container.

### Terminal

Run commands inside your WordPress container from the **Terminal** tab. Useful for:
- WP-CLI commands: `wp plugin list`, `wp theme activate`
- Debugging: `cat wp-config.php`
- File operations: `ls wp-content/plugins`

## Custom Domains

1. Go to the **Domains** tab
2. Click **"Add Domain"**
3. Enter your domain (e.g., `myblog.com`)
4. Add the DNS records shown (CNAME or A record)
5. Click **Verify**

Once verified, your WordPress `siteurl` and `home` are automatically updated to the custom domain.

> **Warning:**
>
> When you add a custom domain to WordPress, the WordPress database is updated with the new URL. The original deployment URL still works as a fallback.

## Backups

Database backups can be performed via the Terminal:

```bash
# Export database
wp db export /tmp/backup.sql --allow-root

# Or using mysqldump
mysqldump -u user -p wordpress > /tmp/backup.sql
```

Download via SFTP or the Files tab.

## Updating WordPress

WordPress core updates can be done via:
- **wp-admin** → Dashboard → Updates
- **Terminal**: `wp core update --allow-root`
- **SFTP**: Upload updated files

Plugin and theme updates work the same way through wp-admin.
