Presslabs Dashboard Frequently Asked Questions

This section contains some FAQs from our clients.

About Presslabs Dashboard

What is the Presslabs Dashboard?

The Presslabs Dashboard is an elastic SaaS application designed to scale the most widely used CMS solution, nowadays, WordPress. This solution bets on the Kubernetes flexibility and the security offered by Google Cloud Platform, delivering a self-service cloud-native WordPress hosting platform, aimed at providing scalable, automatic and highly available solutions for keeping WordPress sites protected and speedy under heavy traffic.

Who is the Presslabs Dashboard for?

The Presslabs Dashboard is more demanding in terms of required technical skill. It's for experienced WordPress developers with moderate Kubernetes knowledge.

Why should I use the Presslabs Dashboard?

With the Presslabs Dashboard you're able to quickly create, deploy and scale WordPress sites right into your own Kubernetes cluster, without the need to increase your devops team. Also Presslabs Dashboard allows you to configure the resources used to scale your WordPress infrastructure and that helps to keep the site highly-available and speedy under backend-intensive traffic.

Is Presslabs Dashboard free?

It's not free, it's charged directly via the Google Cloud Platform. The Presslabs Stack is free and open-source, the Presslabs Dashboard is a commercial implementation of the Presslabs Stack.

See more pricing details here .

How long did it take you guys to build the Presslabs Dashboard?

Around 25,000 hours of development. A team of 8 engineers has worked on this platform for two and a half years.

About using Presslabs Dashboard

How do I get started using Presslabs Dashboard?

Visit our Installation page for more details on how to start using the Presslabs Dashboard.

Should I have a Google Account?

Yes, the Presslabs Dashboard is available only on Google Marketplace and you need to have a Google account and an active plan in order to be able to install it.

How can I deploy my code from Github ?

We provide a github action that can build your Dockerfile and update the site's runtime image. The DOCKER_USERNAME for should be _json_key and as the password, you’ll need to use the service’s account JSON key. Also, you need to grant access from the Kubernetes cluster to the Docker registry.

How should I do yarn-type building? Where in the setup does that action belong?

In the Dockerfile, you should have another step which builds the js, after that you can copy it. For example, you should install yarn before the first composer install, but run it after the second one. Your Dockerfile should be something like this:

FROM as builder

# install system packages
RUN apt-get update && apt-get install yarn



# warm-up composer cache
COPY --chown=www-data:www-data composer.json composer.lock /src/
RUN composer install --no-dev --no-interaction --no-progress --no-ansi --no-scripts

# wipe everything and composer install
COPY --chown=www-data:www-data . /src
RUN composer install --no-dev --no-interaction --no-progress --no-ansi --no-scripts

RUN cp -a /src/. /app

# run yarn build
RUN yarn build

COPY --from=builder --chown=www-data:www-data /app /app

When building your image don't forget to specify --build-arg COMPOSER_AUTH='{"github-oauth": {"": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}}' where the X's should be replaced with your github token .

Do I need to scale both in the cluster and in the Presslabs Dashboard?

You can enable the cluster autoscaler so that GKE scales your nodes dynamically and also set the scaling range for WordPress pods in the Presslabs Dashboard.

Should the autoscaler and Presslabs Dashboard scaling parameters match if I'm using a single site?

The cluster autoscaler should accommodate your WordPress autoscaling needs. For example, if you autoscale 3-5 c2-standard-4 nodes you have a range of approx 12-20 vCPUs (Google takes a percentage of each node's resources). In that range, you can autoscale 4-10 pods which request 2 vCPUs each

It depends on how you want to share the cluster between different sites. You autoscale on 2 dimensions - number of nodes and number of pods.

What can I do if I have a single multisite that has sub-sites and we just need a production and a single staging environment for that multisite?

In this case, you would create 2 Projects in the Presslabs Dashboard, so that each environment has a dedicated MySQL server and a dedicated storage bucket for images.

Is running Percona in the cluster faster than Google's Cloud SQL?

They should be about the same speed, but you have more control using Presslabs’ MySQL Operator for Kubernetes , based on Percona and Orchestrator. Also, from our experience, the DB costs are reduced to half.

1-X pods, where X is your peak requirement for WordPress. A good start is at least using X = 3 nodes. Taking into consideration all mentioned above, you also need capacity for MySQL and Memcached as well.

Is it possible to set up custom cron jobs?

The WordPress Cron is enabled, and you can use custom Kubernetes CronJobs and that has access to WP-CLI.

What is the easiest way to SSH into a pod that fails due to a PHP error?

In order to connect to a pod you can do so using kubectl exec the setup command can be found in Getting Started section, under Run WP-cli commands. Just modify the second command from Getting Started guide to run bash instead of wp, like: kubectl -n <project namespace> exec -it $POD_NAME -- bash this will place you inside one of the running pods.

How can I modify the site's chart values , when using the Presslabs Dashboard?

You cannot modify the site's chart values. The Presslabs Dashboard manages these values by its own.

Can a pod expand beyond one machine?

No.! Scaling is done horizontally by adding more replicas.

How is MySQL horizontally scaling done?

The MySQL cluster is provisioned and scaled horizontally using MySQL Operator and on the WordPress side the queries are routed between the master and slaves nodes using ProxySQL .

Is there any possibility to change the super admin access?

Starting from version 1.4 super admins can be changed from Dashboard UI in the system settings section /#/system/settings/adminUsers. For Presslabs Dashboard 1.3 or older the admins can be updated using kubectl. Go to Google Cloud account, on the application page and there are a few helpful commands in the notes section.

Does it usually take quite some time for the certificate request to complete?

If the DNS is propagated properly it should generate the certificate quite fast, but if the TTL for the DNS records is high, it could take some time.

Is there any command that I can run to get the status from the Certificate Manager?

Yes! You can run the following command:

kubectl -n <namespace> get certificates

The <namespace> can be found in the overview section of your site.

Do you have any recommendations for a production cluster setup?

We have a recommended setup with multiple pools dedicated to each kind of workload (e.g. web, database). Starting with version 1.4 you can distribute workloads on different servers pool. You can have at least 2 node pools , one for database and one for web. Also for development sites, you can use a preemptible node pool for cost optimization.

I have noticed that the Presslabs Dashboard serves media files directly from Google Storage bucket, but if I already use wp-stateless should I be able to keep that?

Yes, you can, but it’s highly recommended to use the bucket provided by Presslabs Dashboard.

Do you have any best-use Dockerfile for building WordPress images that are Presslabs Dashboard friendly?

You have to use the base image for building and developing classic WordPress sites provided by Presslabs Stack. Here you can find the repository .

How to pull private docker images?

First of all, you have to publish images in Google Cloud from where the k8s is able to pull the image.

What kind of full-page cache plugin should I use?

For sites running on Presslabs Dashboard, page cache could be handled with W3 Total Cache or Batcache .

If you use W3 Total Cache here’s a set-up recommendation:

  • Enable page cache and set page cache method to Memcached.

Can I use Redis Object Cache instead of Memcached?

We highly recommend using Memcached which is pre-installed in the Presslabs Dashboard. We do not recommend using Redis Object Cache due to poorer performance. But Redis can be installed into the cluster, manually by using Redis helm chart

Do you have any recommendations on the best MySQL cluster storage size to launch a site for production?

We recommend that the MySQL cluster being three times bigger than the Database size.