{"id":15450526,"url":"https://github.com/sci3ma/symfony-docker","last_synced_at":"2025-04-19T22:59:18.545Z","repository":{"id":175633257,"uuid":"340002731","full_name":"sci3ma/symfony-docker","owner":"sci3ma","description":"Docker stack for Symfony","archived":false,"fork":false,"pushed_at":"2024-12-14T14:13:25.000Z","size":31,"stargazers_count":5,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-19T22:59:13.622Z","etag":null,"topics":["aws","docker","elasticsearch","mailhog","minio","mysql","nginx","php","s3","sqs","symfony","symfony-docker","xdebug"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sci3ma.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2021-02-18T09:45:06.000Z","updated_at":"2024-12-30T14:20:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"97da221a-cb56-44aa-a3fe-877ef6f7fdbb","html_url":"https://github.com/sci3ma/symfony-docker","commit_stats":null,"previous_names":["sci3ma/symfony-docker"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sci3ma%2Fsymfony-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sci3ma%2Fsymfony-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sci3ma%2Fsymfony-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sci3ma%2Fsymfony-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sci3ma","download_url":"https://codeload.github.com/sci3ma/symfony-docker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249826669,"owners_count":21330674,"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":["aws","docker","elasticsearch","mailhog","minio","mysql","nginx","php","s3","sqs","symfony","symfony-docker","xdebug"],"created_at":"2024-10-01T21:06:04.085Z","updated_at":"2025-04-19T22:59:18.538Z","avatar_url":"https://github.com/sci3ma.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Symfony Docker\n\nComplete Docker stack for Symfony with NGINX, PHP, MySQL, LocalStack, MailHog, Redis, RabbitMQ, Elasticsearch and Keycloak using docker-compose tool.\n```\n+-------+---------+-------+------------+---------+-------+----------+---------------+----------+ \n|       |         |       |            |         |       |          |               |          |\n| NGINX | PHP-FPM | MySQL | LocakStack | MailHog | Redis | RabbitMQ | Elasticsearch | Keycloak |\n|       |         |       |            |         |       |          |               |          |\n+-------+---------+-------+------------+---------+-------+----------+---------------+----------+ \n|                                                                                              |\n|                                         Docker Engine                                        |\n|                                                                                              |\n+----------------------------------------------------------------------------------------------+\n|                                                                                              |\n|                                            Host OS                                           |\n|                                                                                              |\n+----------------------------------------------------------------------------------------------+\n```\n\n## Table of Contents\n1. [Requirements](#requirements)\n1. [Features](#features)\n1. [Configuration](#configuration)\n   1. [Configuration reference](#configuration-reference)\n   1. [Ports](#ports)\n1. [Installation](#installation)\n1. [Usage](#usage)\n   1. [Start](#start)\n   1. [Stop](#stop)\n   1. [Get into container](#get-into-container)\n   1. [Docker scripts](#docker-scripts)\n1. [To do](#to-do) \n\n\n## Requirements\nDocker Engine 19.03.0 or newer. \n\n## Features\n- [NGINX](https://www.nginx.com/) - web server\n- [PHP-FPM](https://www.php.net/manual/en/install.fpm.php) - PHP FastCGI Proces Manager\n- [Xdebug](https://xdebug.org/) - PHP extension for debugging and coverage\n- [MySQL](https://www.mysql.com/) - relational database\n- [LocalStack](https://www.localstack.cloud) - complete, localized AWS environment\n- [MailHog](https://github.com/mailhog/MailHog) - web and API based SMTP testing tool\n- [Redis](https://redis.com/) - in-memory data structure storage\n- [RabbitMQ](https://www.rabbitmq.com/) - open source message broker\n- [Elasticsearch](https://www.elastic.co/elasticsearch/) - search and analytics engine\n- [Keycloak](https://www.keycloak.org) - open source identity and access management solution\n\n\n## Configuration\n\n### Configuration reference\nYou can create `.env` file located in root folder and override default values.\n```dotenv\nPHP_CONTAINER_NAME=php                      # PHP-FPM container name\nNGINX_CONTAINER_NAME=nginx                  # NGINX container name\nDATABASE_CONTAINER_NAME=database            # Database container name\nS3_CONTAINER_NAME=minio                     # MinIO container name\nSTORAGE_LOGIN=storage_login                 # MinIO key/login\nSTORAGE_PASSWORD=storage_password           # MinIO secret/password\nMAILHOG_CONTAINER_NAME=mailhog              # MailHog container name\nDOCKER_HOST_UID=1000                        # Your system user ID (UID)\nDOCKER_HOST_GID=1000                        # Your system group ID (GID)\nRABBIT_MQ_CONTAINER_NAME=rabbit_mq          # RabbitMQ container name\nELASTICSEARCH_CONTAINER_NAME=elasticsearch  # Elasticsearch container name\nKEYCLOAK_CONTAINER_NAME=keycloak            # Keycloak container name\n```\nCheck your user ID:\n```bash\n$ id -u\n# or\n$ id -u \u003cusername\u003e\n```\nCheck your group ID:\n```bash\n$ id -g\n# or\n$ id -g \u003cusername\u003e\n```\n\n### Ports\n- NGINX works on port `8000`, `http://127.0.0.1:8000`\n- MySQL works on port `3306` inside docker network, and on port `13306` outside docker network.\n- LocalStack gateway works on port `4566`\n- MailHog web works on port `8025`, `http://127.0.0.1:8025`. SMTP works on port `1025`, `smtp://[mailhog_container_name]:1025`\n- Redis works on port `6379` inside docker network, and on port `16379` outside docker network.\n- RabbitMQ works on port `5672`, and RabbitMQ GUI work on port `15672` with `guest` login and password.\n- Elasticsearch works on port `9200` and requires default credentials, login: `elastic` and password: `password`.\n- Xdebug works on port `9001`, idkey is `PHPSTORM`\n- Keycloak works on port `8080`\n```\nNAME                COMMAND                  SERVICE             STATUS              PORTS\ndatabase            \"docker-entrypoint.s…\"   database            running             33060/tcp, 0.0.0.0:13306-\u003e3306/tcp, :::13306-\u003e3306/tcp\nelasticsearch       \"/bin/tini -- /usr/l…\"   elasticsearch       running             0.0.0.0:9200-\u003e9200/tcp, :::9200-\u003e9200/tcp, 9300/tcp\nkeycloak            \"/opt/keycloak/bin/k…\"   keycloak            running             8443/tcp, 0.0.0.0:8080-\u003e8080/tcp, :::8080-\u003e8080/tcp, 9000/tcp\nlocalstack          \"docker-entrypoint.sh\"   localstack          running (healthy)   0.0.0.0:4510-4559-\u003e4510-4559/tcp, :::4510-4559-\u003e4510-4559/tcp, 0.0.0.0:4566-\u003e4566/tcp, :::4566-\u003e4566/tcp, 5678/tcp\nmailhog             \"MailHog\"                mailhog             running             0.0.0.0:1025-\u003e1025/tcp, :::1025-\u003e1025/tcp, 0.0.0.0:8025-\u003e8025/tcp, :::8025-\u003e8025/tcp\nnginx               \"/docker-entrypoint.…\"   nginx               running             0.0.0.0:8000-\u003e80/tcp, :::8000-\u003e80/tcp, 0.0.0.0:1443-\u003e443/tcp, :::1443-\u003e443/tcp\nphp                 \"docker-php-entrypoi…\"   php                 running             9000/tcp\nrabbit_mq           \"docker-entrypoint.s…\"   rabbit_mq           running             4369/tcp, 5671/tcp, 0.0.0.0:5672-\u003e5672/tcp, :::5672-\u003e5672/tcp, 15671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672-\u003e15672/tcp, :::15672-\u003e15672/tcp\nredis               \"docker-entrypoint.s…\"   redis               running             0.0.0.0:16379-\u003e6379/tcp, :::16379-\u003e6379/tcp\n```\n\n## Installation\nTo install `Symfony Docker`, clone this repository, then build containers:\n```bash\n$ make build\n```\nand run:\n```bash\n$ make up\n```\nWhen containers are up and running create bucket and add policy using MinIO web interface: `http://127.0.0.1:9090`. To log in use `STORAGE_LOGIN` and `STORAGE_PASSWORD` values.\n\nPut your Symfony project into `/app` folder.\nTo set up database connection in Symfony just add in `.env` file:\n```dotenv\nDATABASE_URL=mysql://dbuser:password@database:3306/symfony?serverVersion=8.4\n```\nIf you want to connect to MySQL from outside e.g. in PHPSTROM or any other SQL Client use credentials:\n```\nMYSQL_DATABASE: symfony\nMYSQL_USER: dbuser\nMYSQL_PASSWORD: password\nMYSQL_HOST: ${DATABASE_CONTAINER_NAME:-database}\nMYSQL_PORT: 13306\n```\n\n\n## Usage\nType `make help` to check Makefile commands.\n\n### Start\nTo start docker containers in the background:\n```bash\n$ make up\n```\n\n### Stop\nStop docker containers and remove docker network run:\n```bash\n$ make down\n```\n\n### Get into container\nUsually you don't need to do anything inside container except in the php one. To get into any container run:\n```bash\n$ make sh\n```\n\n\n### To do\n- improve documentation\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsci3ma%2Fsymfony-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsci3ma%2Fsymfony-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsci3ma%2Fsymfony-docker/lists"}