FAQ & Troubleshooting
Infrastructure & Architecture
Q: What exactly is the function of Nginx within the application (reverse proxy, load balancer, etc.)? Or does load balancing happen one level higher within the VPN of the Upsun region (keyword Availability Zones)?
Nginx is used as a web server and the reverse proxy for PHP/FPM, so the actual Pimcore application.
There is no loadbalancing in case of a Grid project, as there is only 1 instance running at the same time for each containers.
Q: What are the scaling options for the individual services ie MariaDB, within a Pimcore application? Which services can actually be scaled (e.g. multiple containers)? What exactly happens there?
Currently on Pimcore PaaS there is no option to have multiple instance of the same app container - horizontal scaling.
We can only provide more resources via T-shirt sizing or with flexible resources - vertical scaling.
Take note that you need to respect your plan sizing and properly size all resources.
However, the underlying infrastructure is able to provide both vertical or horizontal scaling, this is exposed in Upsun, but not yet in Pimcore PaaS. We are also working on autoscaling support. It should arrive soon on Pimcore PaaS but we don't have an exact ETA. You can learn more about how autoscaling works on the underlying infrastructure here: https://devcenter.upsun.com/posts/autoscaling-deep-dive/
Q: What are the PHP workers underneath the services for or what is their function?
Worker instances are well explained here https://fixed.docs.upsun.com/create-apps/workers.html#workers-vs-cron-jobs
In our use case, workers are handling message transports - message:consume commands.
Q: Is Mercure always installed/activated in a Pimcore PaaS application or only when Pimcore Direct Edit is used?
Mercure is available as a stand-alone app within the applications.yaml and can be used as needed.
By default it's commented out.
Configuration & Setup
Q: How do I configure a custom domain?
Custom domains are configured in your .platform/routes.yaml file and then added via the Pimcore PaaS Console. Follow the domain setup guide for full instructions on DNS configuration and TLS certificates.
Q: Does the deploy hook run on every push, including branch pushes?
The deploy hook runs whenever a new commit is pushed to any branch (including non-production branches), as each new commit triggers a new build and deployment. However, a redeploy without code changes only triggers the post_deploy hook — the build and deploy hooks are skipped. Ensure that commands in your deploy hook (such as database migrations) can handle being run on each new deployment safely. See the hooks comparison for details.
Q: What prerequisites and training should my team have before starting with Pimcore PaaS?
Initial setup should be performed by developers with Pimcore, Git and CI/CD experience. If your team is new to Pimcore, complete the Pimcore Academy and consult the Upsun (Platform.sh) documentation and Pimcore docs before starting. This prevents configuration errors and accelerates implementation.
Q: Why do runtime writes to the filesystem fail after deployment?
After the build phase, the container filesystem is read-only. Attempting to write to non-mounted paths will fail — code changes can only be deployed via Git push. Any runtime writes must target the designated mount points configured in applications.yaml. Review the Working with definition files section to understand which directories are writable at runtime.
The PaaS install profile addresses this by implementing InstallStepFilterInterface to skip steps that would write to the read-only filesystem (e.g., WriteEnv, WriteDoctrineConfig, RegisterBundles). See the Install Profile documentation for details.
Resource Sizing & Performance
Q: How much memory should I allocate for my database?
Allocating insufficient RAM for your database leads to performance degradation — increased I/O latency and slower queries which can degrade entire system performance. Allocate RAM that at least matches your database size +10% to avoid performance issues. Monitor your database size and adjust resources accordingly. Use the Pimcore PaaS Console to check current resource usage and plan capacity.
Q: How do I choose the right plan tier for my asset workload?
Underestimating asset sizing when selecting your plan tier can dramatically impact performance. Asset manipulation is a resource-heavy operation, and an inadequate plan can cause system-wide slowdowns. To avoid this:
- Estimate your asset sizing before selecting a plan tier
- Review Pimcore's guide on performance considerations for image processing
- Consider enabling flexible resources for dynamic scaling
- Monitor resource usage regularly and adjust your plan as your asset library grows
See Also
- Configuration Guide — Infrastructure setup and customization
- Good to Know — Operational best practices
- Performance Issues with Image Manipulation — Troubleshooting image processing
- Environment Variables Reference — Complete guide to all environment variables