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.
Containers at a glance
| Container | Image | Purpose |
|---|---|---|
nginx | storeframe/nginx (custom OpenResty build) | Edge proxy, TLS termination, Lua security pipeline |
php | storeframe/php:<version>-fpm or storeframe/php:<version>-frankenphp | PHP runtime (PHP-FPM by default, or FrankenPHP) |
mariadb | mariadb:11.4 (version matches Magento release) | Primary relational database |
redis | redis:7.2-alpine | Magento application cache, full-page cache, and sessions |
opensearch | opensearchproject/opensearch:3 | Catalog search (OpenSearch for Magento 2.4.6+) |
varnish | varnish:7.7 | HTTP accelerator and full-page cache reverse proxy |
rabbitmq | rabbitmq:4.1-management-alpine | Async message queue for Magento consumers |
crowdsec | crowdsecurity/crowdsec | Behavioral firewall agent + AppSec WAF |
node-cli | node:24 | Front-end build tooling (npm, yarn, grunt) for Hyvä and Luma themes |
helio | storeframe/helio | Metrics, 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_sizeis set to 30% of VM RAM, leaving headroom for PHP workers, OpenSearch, and the OS. - PHP's
pm.max_childrenis 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