Magento Open Source, what the stack is and how to put it together
Opselis
Magento Open Source is the store: catalogue, cart, orders. PHP-FPM, MariaDB, Redis, OpenSearch, cron and the indexer. How to set env.php, the queue and indexer mode, not Apache and files in pub alone.
Magento Open Source (formerly Community) is a store platform: catalogue, prices, cart, customer account, orders. The same application as Adobe Commerce, without the paid Adobe licence and without some B2B modules. It is not “PHP on shared hosting”. It needs PHP-FPM, a database, Redis, a search engine, cron and indexes. The admin panel (adminhtml) shows sales. Operations live in app/etc/env.php, crontab and the queue.
What it is for
You use Magento Open Source when catalogue and checkout should be this platform and a Commerce licence is out of budget. Listings and filters come from indexes and full page cache, not live SQL on every GET. Redis holds session and cache. OpenSearch (or Elasticsearch on older lines) holds search. RabbitMQ or the db mechanism runs consumers (email, export, index). Keep media off origin (S3 or CDN). Varnish sits in front of PHP and caches catalogue GETs.
How it works
An HTTP request hits nginx, then PHP-FPM. One request is usually one PHP thread. TTFB depends on CPU clock and on whether the page is in FPC. A price or attribute change without a reindex leaves the old category. Magento cron (bin/magento cron:run) every minute runs schedulers. The indexer in schedule mode works in the background. In realtime it blocks writes. Deploy: setup:di:compile, setup:static-content:deploy, setup:upgrade in a window, then reindex. Rollback is back to an artefact (code + env.php + dump), not FTP on prod.
How to set it up
Line 2.4 requirements: PHP 8.2 or 8.3, MariaDB 10.6+, Redis, OpenSearch 2.x, nginx, Composer 2. Install: composer create-project or an artefact from CI. In env.php: cache and session on Redis (separate Redis DBs, e.g. 0 cache, 1 session). http_cache_hosts toward Varnish if you have it. indexer on schedule. Search engine: OpenSearch, internal host, not a public URL.
Crontab for www-data: every minute php /var/www/magento/bin/magento cron:run. Consumers: bin/magento queue:consumers:start or supervisor, not in the same FPM pool as checkout. FPC: Admin, Stores, Configuration, Advanced, System, Full Page Cache, Varnish. 2FA on admin: Magento_TwoFactorAuth enabled. Admin path other than /admin. Staging: the same shape of env.php without production, a masked database.
Before a peak: bin/magento indexer:status, cache enabled, cron not lagging. Test the cart, not the homepage. Stack care: ecommerce.