What runs inside your environment

Each StoreFrame environment runs your Magento stack as a set of Docker containers — this chapter documents each one.

Each StoreFrame environment runs on its own VM. The Magento application lives inside a set of Docker containers — one concern per container, all joined on a private Docker network named after the environment's subdomain.

Hub Containers tab showing all running containers

Containers at a glance

ContainerImagePurpose
nginxstoreframe/nginx (custom OpenResty build)Edge proxy, TLS termination, Lua security pipeline
phpstoreframe/php:<version>-fpm or storeframe/php:<version>-frankenphpPHP runtime (PHP-FPM by default, or FrankenPHP)
mariadbmariadb:11.4 (version matches Magento release)Primary relational database
redisredis:7.2-alpineMagento application cache, full-page cache, and sessions
opensearchopensearchproject/opensearch:3Catalog search (OpenSearch for Magento 2.4.6+)
varnishvarnish:7.7HTTP accelerator and full-page cache reverse proxy
rabbitmqrabbitmq:4.1-management-alpineAsync message queue for Magento consumers
crowdseccrowdsecurity/crowdsecBehavioral firewall agent + AppSec WAF
node-clinode:24Front-end build tooling (npm, yarn, grunt) for Hyvä and Luma themes
heliostoreframe/helioMetrics, container logs, and platform log agent

A typical environment also runs supporting containers not covered in this chapter: php-cli (PHP for cron and command-line work), codeserver (browser-based code editor), mailpit (local mail catcher for development), and phpmyadmin.

Auto-tuning principle

StoreFrame does not use fixed configuration files. Most performance-critical settings — buffer pool size, PHP worker count, OPcache allocation — are calculated from the VM's actual RAM and vCPU count at provision time.

For example:

  • MariaDB's innodb_buffer_pool_size is set to 30% of VM RAM, leaving headroom for PHP workers, OpenSearch, and the OS.
  • PHP's pm.max_children is derived from 35% of RAM divided by the average worker memory, clamped to a CPU-based ceiling.
  • OPcache memory defaults to 2 GB but is overridable through the environment file (.env).

You can override most of these through .env. See Environment file (.env) for the full reference.

Service pages in this chapter

  • OpenResty + Lua security pipeline — edge proxy, bot detection, and proof-of-work challenge system
  • FrankenPHP — PHP runtime with worker mode
  • MariaDB — auto-tuned database with Magento-specific knobs
  • CrowdSec — behavioral firewall and AppSec WAF
  • Redis — session storage, cache backend, and full-page cache
  • OpenSearch — Magento product, category, and CMS page search
  • Varnish — full-page cache reverse proxy with ESI support
  • RabbitMQ — async message queue for Magento consumer jobs
  • Node.js — Hyvä theme Tailwind compilation and front-end tooling

On this page