Dashboard User Guide Overview

The Presslabs Dashboard is a Cloud-native WordPress Hosting Solution based on Kubernetes. It allows you to run your WordPress infrastructure as a Kubernetes app inside your very own Google Cloud account.

What you can do with the Presslabs Dashboard:

  • set up users and projects at organization level
  • spin up or migrate a new site
  • scale the WordPress backend
  • take control over the full automation flows for deployment and development
  • control completely how your data is handled, stored and distributed
  • take the shortcut to cloud-native container orchestration

You can install it with a single single click from the Google Cloud Kubernetes Marketplace after some prerequisites are met.

One-time setup

  • You’ll need to install the gcloud and kubectl client tools.
  • The Application CustomResourceDefinition (CRD) is automatically installed when you install the Presslabs Dashboard.
  • The Presslabs Dashboard is a commercial app and you’ll pay directly to Google for using it, along with the charges for using the Google Kubernetes Engine. This makes it easier to use, as there are no steps required for acquiring and deploying a license Secret from GCP Marketplace.

Installation

Follow carefully the prerequisites for installing the Presslabs dashboard than proceed with the one-click install.

Basic Usage

After you’ve installed the Presslabs Dashboard, you can go to dash.presslabs.me to access it. Here you need to login using Auth0, either with your Google account, or with username and password, depending on how you’d set up you Auth0 account.

In Dashboard, the entities are structured as follows:

  • the organization is the base entity, for example a WordPress Development agency
  • the project is part of an organization, a specific project they are working on that can contain several sites
  • a site is part of a project

Check our tutorial on how to create your first site that will guide you in creating your first organization, project and site.

Backup and restore

As to what site data is concerned, the standard features of Google Cloud Storage can be used. User data is entirely stored on Auth0.

Scaling

The Dashboard application itself can’t be scaled, only the sites managed by the Dashboard. The sites scale up and down automatically and from the Resources section of your site you have the possibility to adjust the number of pods used to scale the site and configure resource allocation inside pods and PHP runtime:

Manage you site's resources

Deletion

How to delete sites, projects and organizations

You can delete sites, projects and organizations from the Settings section of each entity.

Once you delete a site, all the allocated resources will also be deleted:

Delete a site

Once you delete a project, all sites that belong to it will also be deleted:

Delete a project

Once you delete an organization, all sites, projects and users belonging to it will also be deleted:

Delete an organization

How to delete the Presslabs Dashboard App

Here are the steps to properly remove the Presslabs Dashboard App:

  1. Remove all projects and organizations:

    kubectl delete ns -l presslabs.com/kind=project
    kubectl delete ns -l presslabs.com/kind=organization
  2. Delete the Presslabs Dashboard

    You can delete the Presslabs Dashboard with the following command line:

    kubectl delete application \
    --namespace ${NAMESPACE} \
    --selector app.kubernetes.io/name=presslabs-dashboard

    Or you can delete it from Google Cloud. Go to your Dashboard Application on Google Cloud platform -> Kubernetes Engine -> Applications and press the Delete button:

    Delete the Presslabs Dashboard

  3. Remove the CRDs:

    kubectl delete crd accountbindings.dashboard.presslabs.com invites.dashboard.presslabs.com mysqlbackups.mysql.presslabs.org mysqlclusters.mysql.presslabs.org mysqldatabases.dashboard.presslabs.com mysqlusers.dashboard.presslabs.com projects.dashboard.presslabs.com wordpresses.wordpress.presslabs.org  certificaterequests.cert-manager.io certificates.cert-manager.io challenges.acme.cert-manager.io clusterissuers.cert-manager.io issuers.cert-manager.io managedcertificates.networking.gke.io orders.acme.cert-manager.io
  4. Remove the PVC:

    kubectl delete pvc data-${APP_INSTANCE_NAME}-mysql-operator-0