{"id":25961584,"url":"https://github.com/damalis/full-stack-apache2-magento-for-everyone-with-docker-compose","last_synced_at":"2026-02-08T20:31:55.207Z","repository":{"id":65044423,"uuid":"577676287","full_name":"damalis/full-stack-apache2-magento-for-everyone-with-docker-compose","owner":"damalis","description":"If You want to build a website with Magento at short time; install full stack apache2 Magento with Docker Compose. Plus, manage docker containers with Portainer.","archived":false,"fork":false,"pushed_at":"2024-07-07T07:39:17.000Z","size":203,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-15T05:42:06.975Z","etag":null,"topics":["apache2","backup","certbot","ecommerce","ecommerce-platform","elasticsearch","framework","hacktoberfest","letsencrypt","magento","magento2","mail","mailhog","mariadb","mysql","php-fpm","phpmyadmin","portainer-ce","ssl","varnish"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/damalis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["damalis"]}},"created_at":"2022-12-13T09:21:02.000Z","updated_at":"2024-07-05T17:52:41.000Z","dependencies_parsed_at":"2024-02-16T12:24:04.810Z","dependency_job_id":"28c20fd7-7822-465b-b6e4-193fb6adc54f","html_url":"https://github.com/damalis/full-stack-apache2-magento-for-everyone-with-docker-compose","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damalis%2Ffull-stack-apache2-magento-for-everyone-with-docker-compose","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damalis%2Ffull-stack-apache2-magento-for-everyone-with-docker-compose/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damalis%2Ffull-stack-apache2-magento-for-everyone-with-docker-compose/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/damalis%2Ffull-stack-apache2-magento-for-everyone-with-docker-compose/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/damalis","download_url":"https://codeload.github.com/damalis/full-stack-apache2-magento-for-everyone-with-docker-compose/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241908042,"owners_count":20040566,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apache2","backup","certbot","ecommerce","ecommerce-platform","elasticsearch","framework","hacktoberfest","letsencrypt","magento","magento2","mail","mailhog","mariadb","mysql","php-fpm","phpmyadmin","portainer-ce","ssl","varnish"],"created_at":"2025-03-04T19:27:15.709Z","updated_at":"2026-02-08T20:31:50.189Z","avatar_url":"https://github.com/damalis.png","language":"Shell","funding_links":["https://github.com/sponsors/damalis"],"categories":[],"sub_categories":[],"readme":"# [full stack apache2 Magento for everyone with docker compose](https://github.com/damalis/full-stack-apache2-magento-for-everyone-with-docker-compose)\n\nIf You want to build a website with Magento at short time;\n\n#### Full stack Apache2 Magento:\n\u003cp align=\"left\"\u003e \u003ca href=\"http://www.magento.com\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/168457?s=200\u0026v=4\" alt=\"Magento\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://www.docker.com/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/docker/docker.png\" alt=\"docker\" width=\"40\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://mariadb.org/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/5877084?s=200\u0026v=4\" alt=\"mariadb\" height=\"50\" width=\"50\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://dev.mysql.com/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/2452804?s=200\u0026v=4\" alt=\"mysql\" height=\"50\" width=\"50\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://www.apache.org\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/47359?s=200\u0026v=4\" alt=\"apache2\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://www.php.net\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/25158?s=200\u0026v=4\" alt=\"php\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://valkey.io\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/164458127?s=200\u0026v=4\" alt=\"valkey\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://www.varnish-software.com/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/577014?s=200\u0026v=4\" alt=\"varnish\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://opensearch.org/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/80134844?s=200\u0026v=4\" alt=\"opensearch\" height=\"40\" width=\"40\"/\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"#\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/bash/bash.png\" alt=\"Bash\" height=\"50\" width=\"50\" /\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://www.php.net\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/25158?s=200\u0026v=4\" alt=\"php\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://github.com/mailhog\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/10258541?s=200\u0026v=4\" alt=\"mailhog\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://www.phpmyadmin.net/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/1351977?s=200\u0026v=4\" alt=\"phpmyadmin\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://certbot.eff.org/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/17889013?s=200\u0026v=4\" alt=\"certbot\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://letsencrypt.org/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/9289019?s=200\u0026v=4\" alt=\"letsencrypt\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://www.portainer.io/?hsLang=en\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/22225832?s=200\u0026v=4\" alt=\"portainer\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://www.offen.dev/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/47735043?s=200\u0026v=4\" alt=\"backup\" height=\"35\" width=\"35\"/\u003e \u003c/a\u003e \u003c/p\u003e\n\nPlus, manage docker containers with Portainer.\n\n#### Supported CPU architectures:\n\u003cp align=\"left\"\u003e arm64/aarch64, x86-64 \u003c/p\u003e\n\n#### Supported Linux Package Manage Systems:\n\u003cp align=\"left\"\u003e apk, dnf, yum, apt/apt-get, zypper, pacman \u003c/p\u003e\n \n#### Supported Linux Operation Systems:\n\u003cp align=\"left\"\u003e \u003ca href=\"https://alpinelinux.org/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/7600810?s=200\u0026v=4\" alt=\"alpine linux\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://fedoraproject.org/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/github/explore/e6b1e7f0fb8d0bf920bd719c7289243138bdc1b4/topics/fedora/fedora.png\" alt=\"fedora\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://www.centos.org/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/79192?s=200\u0026v=4\" alt=\"centos\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://www.debian.org/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/1854028?s=200\u0026v=4\" alt=\"debian\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://ubuntu.com/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/4604537?s=200\u0026v=4\" alt=\"ubuntu\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://www.raspberrypi.com/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/1294177?s=200\u0026v=4\" alt=\"ubuntu\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/33972111?s=200\u0026v=4\" alt=\"redhat on s390x (IBM Z)\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://www.suse.com/products/server/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://avatars.githubusercontent.com/u/623819?s=200\u0026v=4\" alt=\"opensuse on s390x (IBM Z)\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp; \n\u003ca href=\"https://archlinux.org/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://gitlab.archlinux.org/uploads/-/system/group/avatar/23/iconfinder_archlinux_386451.png?width=48\" alt=\"arch linux\" height=\"40\" width=\"40\"/\u003e \u003c/a\u003e \u003c/p\u003e\n\n##### Note: Fedora 37, 39 and alpine linux x86-64 compatible, could not try sles IBM Z s390x, rhel IBM Z s390x and raspberrypi.\n\n#### With this project you can quickly run the following:\n\n- [Magento](https://github.com/magento) - [php-fpm](https://hub.docker.com/_/php?tab=tags\u0026page=1\u0026name=fpm)\n- [webserver (apache2/httpd)](https://hub.docker.com/_/httpd)\n- [certbot (letsencrypt)](https://hub.docker.com/r/certbot/certbot)\n- [phpMyAdmin](https://hub.docker.com/r/phpmyadmin/phpmyadmin/)\n- [databaseMariadb](https://hub.docker.com/_/mariadb) [databaseMysql](https://hub.docker.com/_/mysql)\n- [valkey](https://hub.docker.com/r/valkey/valkey)\n- [varnish](https://hub.docker.com/_/varnish)\n- [opensearch](https://hub.docker.com/r/opensearchproject/opensearch)\n- [mailhog](https://github.com/mailhog)\n- [backup](https://hub.docker.com/r/offen/docker-volume-backup)\n\n#### For certbot (letsencrypt) certificate:\n\n- [Set DNS configuration of your domain name](https://support.google.com/a/answer/48090?hl=en)\n\n#### IPv4/IPv6 Firewall\nCreate rules to open ports to the internet, or to a specific IPv4 address or range.\n\n- http: 80\n- https: 443\n- portainer: 9001\n- phpmyadmin: 9090\n\n#### Magento authentication keys\n\nThe repo.magento.com repository is where Adobe Commerce and Magento Open Source and third-party Composer packages are stored and requires authentication.\nUse your Commerce Marketplace account to generate a pair of 32-character authentication keys to access the repository\n\nGet your authentication keys: [https://experienceleague.adobe.com/docs/commerce-operations/installation-guide/prerequisites/authentication-keys.html?lang=en](https://experienceleague.adobe.com/docs/commerce-operations/installation-guide/prerequisites/authentication-keys.html?lang=en)\n\n#### How you set vm.max_map_count depends on your platform\n\nThe following requirements and recommendations apply when running Opensearch in Docker in production.\n\n[https://docs.opensearch.org/docs/2.19/install-and-configure/install-opensearch/index/#important-settings](https://docs.opensearch.org/docs/2.19/install-and-configure/install-opensearch/index/#important-settings)\n\n#### 4 GB RAM (8 GB recommended) and CPU 2 cores (2 GHz each) (4 cores (2 GHz or more each) recommended)\n\nUpgrading the applications and extensions you obtain from the Commerce Marketplace and other sources can require up to 4 GB of RAM. If you are using a system with less than 4 GB of RAM, we recommend you create a [swap file](https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-20-04); otherwise, your install might fail.\n\n#### Contents:\n\n- [Auto Configuration and Installation](#automatic)\n- [Requirements](#requirements)\n- [Manual Configuration and Installation](#manual)\n- [Portainer Installation](#portainer)\n- [Usage](#usage)\n\t- [Website](#website)\n\t- [Webserver](#webserver)\n\t- [Database](#database)\n\t- [Valkey](#valkey)\n\t- [Varnish](#varnish)\n\t- [Opensearch](#opensearch)\n\t- [Mail](#mail)\n\t- [phpMyAdmin](#phpmyadmin)\n\t- [backup](#backup)\n\n## Automatic\n\n### Exec install shell script for auto installation and configuration\n\ndownload with\n\n```\ngit clone https://github.com/damalis/full-stack-apache2-magento-for-everyone-with-docker-compose.git\n```\n\nOpen a terminal and `cd` to the folder in which `docker-compose.yml` is saved and run:\n\n```\ncd full-stack-apache2-magento-for-everyone-with-docker-compose\nchmod +x install.sh\n./install.sh\n```\n\n## Requirements\n\nMake sure you have the latest versions of **Docker** and **Docker Compose** installed on your machine.\n\n- [How install docker](https://docs.docker.com/engine/install/)\n- [How install docker compose](https://docs.docker.com/compose/install/)\n\nClone this repository or copy the files from this repository into a new folder.\n\nMake sure to [add your user to the `docker` group](https://docs.docker.com/install/linux/linux-postinstall/#manage-docker-as-a-non-root-user).\n\n## Manual\n\n### Configuration\n\ndownload with\n\n```\ngit clone https://github.com/damalis/full-stack-apache2-magento-for-everyone-with-docker-compose.git\n```\n\nOpen a terminal and `cd` to the folder in which `docker-compose.yml` is saved and run:\n\n```\ncd full-stack-apache2-magento-for-everyone-with-docker-compose\n```\n\nCopy the example environment into `.env`\n\n```\ncp env.example .env\n```\n\nEdit the `.env` file to change values of ```LOCAL_TIMEZONE```, ```DOMAIN_NAME```, ```DIRECTORY_PATH```, ```LETSENCRYPT_EMAIL```, ```DB_USER```, ```DB_PASSWORD```, ```DB_NAME```, ```MYSQL_ROOT_PASSWORD```, ```DATABASE_IMAGE_NAME```, ```DATABASE_CONT_NAME```, ```DATABASE_VERSION```, ```DATABASE_PACKAGE_MANAGER```, ```DATABASE_ADMIN_COMMANDLINE```, ```PMA_CONTROLUSER```, ```PMA_CONTROLPASS```, ```PMA_HTPASSWD_USERNAME```, ```PMA_HTPASSWD_PASSWORD``` and ```VARNISH_VERSION```.\n\nLOCAL_TIMEZONE=[to see local timezones](https://docs.diladele.com/docker/timezones.html)\n\nDIRECTORY_PATH=```pwd``` at command line\\\nDATABASE_IMAGE_NAME=```mariadb``` or ```mysql```\\\nDATABASE_CONT_NAME=```mariadb```, ```mysql``` or ```custom name```\\\nDATABASE_VERSION=```11.4.7``` for mariadb, ```8.4``` for mysql\\\nDATABASE_PACKAGE_MANAGER=```apt-get update \u0026\u0026 apt-get install -y gettext-base``` for mariadb, ```microdnf install -y gettext``` for mysql\\\nDATABASE_ADMIN_COMMANDLINE=```mariadb-admin``` for mariadb, ```mysqladmin``` for mysql\\\nVARNISH_VERSION=```latest``` for centos version 9+ and fedora, ```stable``` for the others\\\nSSL_SNIPPET=```echo 'Generated Self-signed SSL Certificate for localhost'``` for localhost\\\nSSL_SNIPPET=```certbot certonly --webroot --webroot-path /tmp/acme-challenge --rsa-key-size 4096 --non-interactive --agree-tos --no-eff-email --force-renewal --email ${LETSENCRYPT_EMAIL} -d ${DOMAIN_NAME} -d www.${DOMAIN_NAME} -d mail.${DOMAIN_NAME}``` for remotehost\n\nand\n\n```\ncp ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf\n```\nchange example.com to your domain name in ```./phpmyadmin/apache2/sites-available/default-ssl.conf``` file.\n\n```\ncp ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template\n```\nchange pma_controluser and db_authentication_password in ```./database/phpmyadmin/sql/create_tables.sql.template``` file.\n\n### Installation\n\nFirstly: will create external volume\n\n```\ndocker volume create --driver local --opt type=none --opt device=${PWD}/certbot --opt o=bind certbot-etc\n```\n\nfor localhost ssl: Generate Self-signed SSL Certificate with guide [mkcert repository](https://github.com/FiloSottile/mkcert).\n\n```\ndocker compose up -d\n```\n\nthen reloading for webserver ssl configuration\n\n```\ndocker container restart webserver\n```\n\nThe containers are now built and running. You should be able to access the Magento installation with the configured IP in the browser address. `https://example.com`.\n\nFor convenience you may add a new entry into your hosts file.\n\n## Portainer\n\n```\ndocker compose -f portainer-docker-compose.yml -p portainer up -d \n```\n\nmanage docker with [Portainer](https://www.portainer.io/) is the definitive container management tool for Docker, Docker Swarm with it's highly intuitive GUI and API. \n\nYou can also visit `https://example.com:9001` to access portainer after starting the containers.\n\n## Usage\n\n#### You could manage docker containers without command line with portainer.\n\n### Show both running and stopped containers\n\nThe docker ps command only shows running containers by default. To see all containers, use the -a (or --all) flag:\n\n```\ndocker ps -a\n```\n\n### Starting containers\n\nYou can start the containers with the `up` command in daemon mode (by adding `-d` as an argument) or by using the `start` command:\n\n```\ndocker compose start\n```\n\n### Stopping containers\n\n```\ndocker compose stop\n```\n\n### Removing containers\n\nTo stop and remove all the containers use the `down` command:\n\n```\ndocker compose down\n```\n\nto remove portainer and the other containers:\n\n```\ndocker rm -f $(docker ps -a -q)\n```\n\nUse `-v` if you need to remove the database volume which is used to persist the database:\n\n```\ndocker compose down -v\n```\n\nto remove external certbot-etc and portainer and the other volumes:\n\n```\ndocker volume rm $(docker volume ls -q)\n```\n\nDelete all images, containers, volumes, and networks that are not associated with a container (dangling):\n\n```\ndocker system prune\n```\n\nTo additionally remove any stopped containers and all unused images (not just dangling ones), add the -a flag to the command:\n\n```\ndocker system prune -a\n```\n\nto remove portainer and the other images:\n\n```\ndocker rmi $(docker image ls -q)\n```\n\n### Logs containers\n\nTo fetch the logs of a container.\n\n```\ndocker container logs container_name_or_id\n```\n\n### Project from existing source\n\nCopy all files into a new directory:\n\nYou can now use the `up` command:\n\n```\ndocker compose up -d\n```\n\n### Docker run reference\n\n[https://docs.docker.com/engine/reference/run/](https://docs.docker.com/engine/reference/run/)\n\n### Website\n\nYou should see the \"Luma...\" page in your browser. If not, please check if your PHP installation satisfies Magento's requirements or ```docker container restart varnish```\n\n```\nhttps://example.com\n```\n\nHow to retrieve admin URI?\n\nYou can get it from ```./magento/app/etc/env.php``` file,\n\nYou have to get frontname from this file and suffix in your base url.\n\n```\n'backend' =\u003e \n  array (\n    'frontName' =\u003e 'admin',\n  ),\n```\n\nOr\n\n```\nbin/magento info:adminuri\n```\n\n```\nUsername: admin\nPassword: admin123\n```\n\n#### How to Disable 2F Authentication in Magento?\n\nexec \n```\nbin/magento module:disable {Magento_AdminAdobeImsTwoFactorAuth,Magento_TwoFactorAuth} --clear-static-content\nbin/magento setup:di:compile\nbin/magento setup:static-content:deploy -f\nbin/magento indexer:reindex\nbin/magento cache:flush\nbin/magento setup:upgrade\n```\nin magento container.\n\nadd or remove code in the ./php-fpm/php/conf.d/security.ini file for custom php.ini configurations\n\n[https://www.php.net/manual/en/configuration.file.php](https://www.php.net/manual/en/configuration.file.php)\n\nYou should make changes custom host configurations ```./php-fpm/php-fpm.d/z-www.conf``` then must restart service, FPM uses php.ini syntax for its configuration file - php-fpm.conf, and pool configuration files.\n\n[https://www.php.net/manual/en/install.fpm.configuration.php](https://www.php.net/manual/en/install.fpm.configuration.php)\n\n```\ndocker container restart magento\n```\n\nadd and/or remove magento site folders and files with any ftp client program in ```./magento``` folder.\n\u003cbr /\u003eYou can also visit `https://example.com` to access website after starting the containers.\n\n#### Webserver\n\nadd or remove code in the ```./webserver/extra/httpd-ssl.conf``` file for custom apache2/httpd configurations\n\n[https://httpd.apache.org/docs/2.4/](https://httpd.apache.org/docs/2.4/)\n\n#### Database\n\n[https://mariadb.com/kb/en/configuring-mariadb-with-option-files/](https://mariadb.com/kb/en/configuring-mariadb-with-option-files/)\n\n[https://dev.mysql.com/doc/](https://dev.mysql.com/doc/)\n\n#### Valkey\n\nyou can usually find your Valkey configuration in the following file: ```./valkey/valkey.conf```\nTo optimize the Valkey instance for your requirements, you get best results by using a dedicated instance for each session, Commerce cache and FPC.\n\n[https://experienceleague.adobe.com/docs/commerce-operations/configuration-guide/cache/redis/config-redis.html?lang=en](https://experienceleague.adobe.com/docs/commerce-operations/configuration-guide/cache/redis/config-redis.html?lang=en)\n\n#### Varnish\n\nConfigure Varnish: [https://experienceleague.adobe.com/docs/commerce-operations/configuration-guide/cache/varnish/config-varnish.html?lang=en](https://experienceleague.adobe.com/docs/commerce-operations/configuration-guide/cache/varnish/config-varnish.html?lang=en)\n\nafter every change in the Magento and the varnish configuration or if You get error \"502 Bad Gateway\":\n\n```\ndocker container restart varnish\n```\n\n#### Opensearch\n\nMagento Open Source 2.4; installations must be configured to use Opensearch.\n\n[https://experienceleague.adobe.com/docs/commerce-operations/configuration-guide/search/configure-search-engine.html?lang=en](https://experienceleague.adobe.com/docs/commerce-operations/configuration-guide/search/configure-search-engine.html?lang=en)\n\n#### Mail\n\nSMTP settings; ```Host: mail, Port: 1025```\n\nThe authorize screen, ```username: ${PMA_HTPASSWD_USERNAME}``` and ```password: ${PMA_HTPASSWD_PASSWORD}``` in the `.env` file.\n\n### phpMyAdmin\n\nYou can add your own custom config.inc.php settings (such as Configuration Storage setup) by creating a file named config.user.inc.php with the various user defined settings in it, and then linking it into the container using:\n\n```\n./phpmyadmin/config.user.inc.php\n```\n\nYou can also visit `https://example.com:9090` to access phpMyAdmin after starting the containers.\n\nThe first authorize screen(htpasswd;username or password) and phpmyadmin login screen the username and the password is the same as supplied in the `.env` file.\n\n### backup\n\nThis will back up the all files and folders in database/dump sql and html volumes, once per day, and write it to ./backups with a filename like backup-2023-01-01T10-18-00.tar.gz\n\n#### can run on a custom cron schedule\n\n```BACKUP_CRON_EXPRESSION: '20 01 * * *'``` the UTC timezone.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdamalis%2Ffull-stack-apache2-magento-for-everyone-with-docker-compose","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdamalis%2Ffull-stack-apache2-magento-for-everyone-with-docker-compose","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdamalis%2Ffull-stack-apache2-magento-for-everyone-with-docker-compose/lists"}