Skip to content

Commit 8643b89

Browse files
author
DKravtsov
committed
Extended environment configuration, async messenger functionality, documentation, fixed rabbitmq volumes mapping issue.
1 parent 8384676 commit 8643b89

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+3258
-2404
lines changed

.env

+40-9
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,48 @@
1818
COMPOSE_PROJECT_NAME=backend
1919
###< docker compose configuration ###
2020

21-
###> docker configuration that can be overridden in .env.local ###
21+
###> NGinx docker configuration. Can be overridden in: .env.local, .env.staging, .env.prod. ###
2222
WEB_PORT_HTTP=80
2323
WEB_PORT_SSL=443
24+
###< Nginx docker configuration ###
25+
26+
###> XDebug docker configuration. Can be overridden in: .env.local. ###
2427
# XDEBUG_CONFIG possible values: main|osx. Use main value for Linux and Windows, osx value for MacOS.
2528
XDEBUG_CONFIG=main
2629
# Sometimes we need to use different xdebug versions, list of versions can be found here - https://pecl.php.net/package/xdebug
2730
XDEBUG_VERSION=3.3.2
31+
###< XDebug docker configuration ###
32+
33+
###> MySQL docker configuration. Can be overridden in: .env.local, .env.staging, .env.prod. ###
2834
# MySQL version, recommend values: 8.4.2|8.3.0|8.2.0|8.1.0|8.0.39
2935
MYSQL_VERSION=8.4.2
3036
# MySQL INNODB_USE_NATIVE_AIO possible values: 1|0. Set to 0 when AIO interface is not supported on OSX. https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_use_native_aio
3137
INNODB_USE_NATIVE_AIO=1
3238
# Sometimes AWS MySQL RDS has SQL_MODE="NO_ENGINE_SUBSTITUTION" (https://github.com/awsdocs/amazon-rds-user-guide/issues/160) but MySQL default described here - https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_sql_mode
3339
SQL_MODE="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
34-
###< docker configuration that can be overridden in .env.local ###
40+
MYSQL_ROOT_PASSWORD=secret
41+
MYSQL_PORT=33061
42+
###< MySQL docker configuration ###
43+
44+
###> RabbitMQ docker configuration. Can be overridden in: .env.local, .env.staging, .env.prod. ###
45+
RABBITMQ_ERLANG_COOKIE=7ead507151fc4461b9f45c1161384a04
46+
RABBITMQ_USER=guest
47+
RABBITMQ_PASS=guest
48+
RABBITMQ_MANAGEMENT_PORT=15672
49+
###< RabbitMQ docker configuration ###
50+
51+
###> Elasticsearch docker configuration. Can be overridden in: .env.local, .env.staging, .env.prod. ###
52+
ELK_VERSION=7.10.1
53+
ELASTICSEARCH_USERNAME=elastic
54+
ELASTICSEARCH_PASSWORD=changeme
55+
ELASTIC_HTTP_PORT=9200
56+
ELASTIC_TRANSPORT_PORT=9300
57+
KIBANA_PORT=5601
58+
###< Elasticsearch docker configuration ###
59+
60+
###> Redis docker configuration. Can be overridden in: .env.local. ###
61+
REDIS_PORT=6379
62+
###< Redis docker configuration ###
3563

3664
###> symfony/framework-bundle ###
3765
APP_ENV=dev
@@ -47,7 +75,7 @@ TRUSTED_PROXIES=127.0.0.1,REMOTE_ADDR
4775
#
4876
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
4977
# DATABASE_URL="postgresql://app:[email protected]:5432/app?serverVersion=15&charset=utf8"
50-
DATABASE_URL=mysql://root:secret@mysql:3306/symfony
78+
DATABASE_URL=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/symfony
5179
###< doctrine/doctrine-bundle ###
5280

5381
###> redis ###
@@ -62,17 +90,20 @@ APP_ERROR_RECEIVER_EMAIL=admin@localhost
6290
###< symfony/mailer ###
6391

6492
###> symfony/messenger ###
65-
MESSENGER_TRANSPORT_DSN=amqp://guest:guest@rabbitmq:5672/%2f/messages
93+
MESSENGER_TRANSPORT_DSN=amqp://${RABBITMQ_USER}:${RABBITMQ_PASS}@rabbitmq:5672/%2f/messages
94+
# Send "failed" messages for unlimited retry (messenger:failed:retry). Possible values: 0|1. In case 1 - failed messages will be sent for unlimited retry. In case 0 - only 1 retry is possible.
95+
MESSENGER_FAILED_IS_RETRYABLE=1
96+
# Time in miliseconds before retry for "failed" messages (messenger:failed:retry). Available in case MESSENGER_FAILED_IS_RETRYABLE=1.
97+
MESSENGER_FAILED_RETRY_WAITING_TIME=10000
98+
# How many days we should have failed messages inside messenger_messages table
99+
MESSENGER_MESSAGES_HISTORY_DAYS=7
66100
###< symfony/messenger ###
67101

68-
###> Elasticsearch configuration ###
69-
ELK_VERSION=7.10.1
102+
###> Elasticsearch app configuration ###
70103
ELASTICSEARCH_HOST=http://elasticsearch:9200
71104
ELASTICSEARCH_NUMBER_OF_SHARDS=1
72105
ELASTICSEARCH_NUMBER_OF_REPLICAS=0
73-
ELASTICSEARCH_USERNAME=elastic
74-
ELASTICSEARCH_PASSWORD=changeme
75-
###< Elasticsearch configuration ###
106+
###< Elasticsearch app configuration ###
76107

77108
###> lexik/jwt-authentication-bundle ###
78109
JWT_SECRET_KEY=config/jwt/private.pem

.env.prod

+16-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
# define your env variables for the prod env here
2+
MYSQL_ROOT_PASSWORD=secret
3+
4+
RABBITMQ_ERLANG_COOKIE=7ead507151fc4461b9f45c1161384a04
5+
RABBITMQ_USER=guest
6+
RABBITMQ_PASS=guest
7+
8+
# When editing Elastic creds, do not forget to change X-Pack security credentials for kibana (docker/prod/kibana.yml)
9+
ELASTICSEARCH_USERNAME=elastic
10+
ELASTICSEARCH_PASSWORD=changeme
11+
212
APP_ENV=prod
313
APP_SECRET=42f011ec3a7bde0bec87364b1d967194
414
APP_DEBUG=0
515

616
###> doctrine/doctrine-bundle ###
7-
DATABASE_URL=mysql://root:secret@mysql:3306/symfony
17+
DATABASE_URL=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/symfony
818
###< doctrine/doctrine-bundle ###
919

1020
###> redis ###
@@ -19,17 +29,19 @@ APP_ERROR_RECEIVER_EMAIL=admin@localhost
1929
###< symfony/mailer ###
2030

2131
###> symfony/messenger ###
22-
MESSENGER_TRANSPORT_DSN=amqp://guest:guest@rabbitmq:5672/%2f/messages
32+
MESSENGER_TRANSPORT_DSN=amqp://${RABBITMQ_USER}:${RABBITMQ_PASS}@rabbitmq:5672/%2f/messages
2333
###< symfony/messenger ###
2434

2535
###> Elasticsearch configuration ###
2636
ELASTICSEARCH_HOST=http://elasticsearch:9200
2737
ELASTICSEARCH_NUMBER_OF_SHARDS=1
2838
ELASTICSEARCH_NUMBER_OF_REPLICAS=0
29-
ELASTICSEARCH_USERNAME=elastic
30-
ELASTICSEARCH_PASSWORD=changeme
3139
###< Elasticsearch configuration ###
3240

41+
###> lexik/jwt-authentication-bundle ###
42+
JWT_PASSPHRASE=3a37d3afd9accc7959f952b2ae555d21
43+
###< lexik/jwt-authentication-bundle ###
44+
3345
###> symfony/lock ###
3446
LOCK_DSN=redis://redis:6379
3547
###< symfony/lock ###

.env.staging

+16-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
# define your env variables for the staging env here
2+
MYSQL_ROOT_PASSWORD=secret
3+
4+
RABBITMQ_ERLANG_COOKIE=7ead507151fc4461b9f45c1161384a04
5+
RABBITMQ_USER=guest
6+
RABBITMQ_PASS=guest
7+
8+
# When editing Elastic creds, do not forget to change X-Pack security credentials for kibana (docker/staging/kibana.yml)
9+
ELASTICSEARCH_USERNAME=elastic
10+
ELASTICSEARCH_PASSWORD=changeme
11+
212
APP_ENV=staging
313
APP_SECRET=42f011ec3a7bde0bec87364b1d967194
414
APP_DEBUG=0
515

616
###> doctrine/doctrine-bundle ###
7-
DATABASE_URL=mysql://root:secret@mysql:3306/symfony
17+
DATABASE_URL=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/symfony
818
###< doctrine/doctrine-bundle ###
919

1020
###> redis ###
@@ -19,15 +29,17 @@ APP_ERROR_RECEIVER_EMAIL=admin@localhost
1929
###< symfony/mailer ###
2030

2131
###> symfony/messenger ###
22-
MESSENGER_TRANSPORT_DSN=amqp://guest:guest@rabbitmq:5672/%2f/messages
32+
MESSENGER_TRANSPORT_DSN=amqp://${RABBITMQ_USER}:${RABBITMQ_PASS}@rabbitmq:5672/%2f/messages
2333
###< symfony/messenger ###
2434

2535
###> Elasticsearch configuration ###
2636
ELASTICSEARCH_HOST=http://elasticsearch:9200
27-
ELASTICSEARCH_USERNAME=elastic
28-
ELASTICSEARCH_PASSWORD=changeme
2937
###< Elasticsearch configuration ###
3038

39+
###> lexik/jwt-authentication-bundle ###
40+
JWT_PASSPHRASE=3a37d3afd9accc7959f952b2ae555d21
41+
###< lexik/jwt-authentication-bundle ###
42+
3143
###> symfony/lock ###
3244
LOCK_DSN=redis://redis:6379
3345
###< symfony/lock ###

.env.test

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ APP_DEBUG=0
66
SYMFONY_DEPRECATIONS_HELPER=999999
77

88
###> doctrine/doctrine-bundle ###
9-
DATABASE_URL=mysql://root:secret@mysql:3306/symfony_testing
9+
DATABASE_URL=mysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/symfony_testing
1010
###< doctrine/doctrine-bundle ###
1111

1212
###> symfony/mailer ###

0 commit comments

Comments
 (0)