From 5d4ae88f4b9602135280cada7cf98816d6c66933 Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Wed, 16 Oct 2024 17:16:35 +0300 Subject: [PATCH 01/11] chore(imagick): imagick to add container --- phpdocker/php-fpm/Dockerfile | 1 + phpdocker/worker/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/phpdocker/php-fpm/Dockerfile b/phpdocker/php-fpm/Dockerfile index ec5ae24..7a7acce 100644 --- a/phpdocker/php-fpm/Dockerfile +++ b/phpdocker/php-fpm/Dockerfile @@ -10,6 +10,7 @@ RUN apt-get update && \ php8.2-sqlite3 \ php8.2-intl \ php8.2-pgsql \ + php8.2-imagick \ python3-pkg-resources supervisor ffmpeg jpegoptim \ php8.2-intl \ python3-pkg-resources supervisor \ diff --git a/phpdocker/worker/Dockerfile b/phpdocker/worker/Dockerfile index d1c30cf..f53e712 100644 --- a/phpdocker/worker/Dockerfile +++ b/phpdocker/worker/Dockerfile @@ -3,7 +3,7 @@ WORKDIR "/application" RUN apt-get update && \ apt-get -y --no-install-recommends install git \ - php8.2-gd php8.2-mysql php8.2-sqlite3 php8.2-pgsql ffmpeg jpegoptim \ + php8.2-gd php8.2-mysql php8.2-sqlite3 php8.2-pgsql php8.2-imagick ffmpeg jpegoptim \ python3-pkg-resources supervisor && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* From 412b413d6b61822c9a44c290f332a14584b01e45 Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Tue, 28 Jan 2025 14:21:54 +0300 Subject: [PATCH 02/11] feat(docker): added keys ssl --- .env.infra-example | 2 +- docker-compose.yml | 31 ++++---- phpdocker/nginx/alex.eatvio.local+4-key.pem | 28 ++++++++ phpdocker/nginx/alex.eatvio.local+4.pem | 25 +++++++ phpdocker/nginx/nginx.conf | 71 +++++++++++++++++++ .../nginx/socket.alex.eatvio.local+4-key.pem | 28 ++++++++ .../nginx/socket.alex.eatvio.local+4.pem | 25 +++++++ 7 files changed, 193 insertions(+), 17 deletions(-) create mode 100644 phpdocker/nginx/alex.eatvio.local+4-key.pem create mode 100644 phpdocker/nginx/alex.eatvio.local+4.pem create mode 100644 phpdocker/nginx/socket.alex.eatvio.local+4-key.pem create mode 100644 phpdocker/nginx/socket.alex.eatvio.local+4.pem diff --git a/.env.infra-example b/.env.infra-example index 55c0279..d33c253 100644 --- a/.env.infra-example +++ b/.env.infra-example @@ -11,4 +11,4 @@ MYSQL_ROOT_PASSWORD="nhbnhb22" MYSQL_DATABASE="eatvio" MYSQL_USER="eatvio_user" MYSQL_PASSWORD="eatvio_pass_nhbnhb22" -MY_APP_GIT_URL="ssh://git@10.55.5.123:222/eatvio/eatvio.git" +MY_APP_GIT_URL="ssh://git@10.55.5.123:222/alex_chevski/eatvio.git" diff --git a/docker-compose.yml b/docker-compose.yml index 7c4ce54..f43dfdb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,8 +15,7 @@ services: - "${SOKETI_PORT:-6001}:6001" - "${SOKETI_METRICS_SERVER_PORT:-9601}:9601" networks: - ns-eatvio: - ipv4_address: 172.118.0.5 + - ns-eatvio labels: - "traefik.enable=false" restart: always @@ -25,8 +24,7 @@ services: image: "mysql:8.0" working_dir: /application networks: - ns-eatvio: - ipv4_address: 172.118.0.3 + - ns-eatvio volumes: - ".:/application" - "./mysql_data:/var/lib/mysql" @@ -49,8 +47,7 @@ services: depends_on: - mysql networks: - ns-eatvio: - ipv4_address: 172.118.0.2 + - ns-eatvio volumes: - "./app:/application" - "./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/8.2/fpm/conf.d/99-overrides.ini" @@ -104,32 +101,34 @@ services: volumes: - "./app:/application" - "./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf" + - "./phpdocker/nginx/alex.eatvio.local+4.pem:/etc/nginx/alex.eatvio.local+4.pem" + - "./phpdocker/nginx/alex.eatvio.local+4-key.pem:/etc/nginx/alex.eatvio.local+4-key.pem" + - "./phpdocker/nginx/socket.alex.eatvio.local+4.pem:/etc/nginx/socket.alex.eatvio.local+4.pem" + - "./phpdocker/nginx/socket.alex.eatvio.local+4-key.pem:/etc/nginx/socket.alex.eatvio.local+4-key.pem" ports: - "1092:80" + - "10443:5000" networks: - web - ns-eatvio - labels: - - "traefik.docker.network=web" - - "traefik.enable=true" - - "traefik.frontend.rule=Host:dev2.eatvio.com,socket.eatvio.com" - - "traefik.port=80" - - "traefik.protocol=http" mailhog: image: "mailhog/mailhog" ports: - "8082:8025" networks: - ns-eatvio: - ipv4_address: 172.118.0.4 + - ns-eatvio typesense: image: typesense/typesense:26.0 restart: on-failure + expose: + - 8108 + ports: + - 8108:8108 networks: - ns-eatvio: - ipv4_address: 172.118.0.6 + - ns-eatvio + - web volumes: - ./typesense-data:/data command: "--data-dir /data --api-key=typesense --enable-cors" diff --git a/phpdocker/nginx/alex.eatvio.local+4-key.pem b/phpdocker/nginx/alex.eatvio.local+4-key.pem new file mode 100644 index 0000000..403d482 --- /dev/null +++ b/phpdocker/nginx/alex.eatvio.local+4-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDidLGXEA9IJ8gC +/GdlWLDhw4q84zNE2sv1tZ2WvwP8swZfWeoQeRDDRXNdWKaV2wJW2aYKeoD8Rw1S +FmfqO9lhhfT80OiYIiG8THbMvyfi0nzivG9Vo1J2GY8bBI4Mtws6LFmVJs0Lg3ce +HIgUd3O14VNrQrlowY1nzImBBO6UBW/Pce/R6PW2rEK64DqzY/jy+qKp14N0zOVv +4X7FLwE9Bf3XBxJ946VFf9t8ec+1pM7U42vCZNnrigikiYDLs8giBkDwOecf+jvf +2Sn6n0UKEakjI0gd/Kt+uBbGRtJQUka4XnFquLnQd4Q2m3TZ36r74I/GFtskASa7 +5DvJpXWbAgMBAAECggEAdH3VEUGYquST9j1DLxZFv41opCw4JnZrL1Wi4HYYpfiu +EYTebGTq45ipdN5yq2oDNQw3ZvKHwb8HMjAGeq8Y7xsK4LbSv9fnBMdM4Zx/9yWS +SszmdOZUOB6DyEE6lX3fz6ga2SghmIejUiEZO3YLVwe3ctjbKfFPPZMxNOaFmCyP +3LpVXvG0Nh5G1DRZXtJDCVv7O99cA8q+5EyUJ20XFjkY36MAzFN/SjN7teGW0RSq +ASFubAEODPryCfwnCWZTCE3KzLJuwId4Yzfyqfd1q55glOmdTKdGsmPxJgxYv7WZ +2JTlNsZIWuv/753XzSiJrMrAsgByIyB7tsehUSegaQKBgQDm2zplHGdUWRPoQsLj +uCtLCF+WhWfQ+Jz6mt5CuT7Glp1mfAwgtjXg9EmHztNaFENswUuk1y69wlV+vBKk +XGhb3gjZQsZHjFYinN8BLK3pjBte+IMnKkoyhLV9EMUKvXvCxdxZJ1cnWJR1FeKp +/xCM37cNZkXekAAltKw3U2IxXQKBgQD7HsT+NEWYSP1/1U0B6PJVi8kNUBY/G7DP +3A5Le/S8WjbBGVPkOw1lFOvlXVi6Hmdlgqb5nBk7QZCzc+Mk9Mc3dJ66c1/uEjU7 +67e1oHL7OoA/QJ9WXsi4CR+9f07taV/uUsnLVAmbodK94VNHeMgn16Z24Su0irCH +ehVOh9t7VwKBgQDDzNL1aSbWqoqw5tbnT5AgnqR8RP/thL+X6fxzOSzeQGaVwsaC +hCikeG1ZK3mlICSjvDpNQFkbhxT+XcOt9dZpfKOiqfkEPCneR5D5LQ0AVd3tKfgL +Ito1iMtpnOySlG3AoBKo5y4LaBzaRcquhnBiG2jli4XdI+OMF3YtoqJY3QKBgQDk +GGbGn6Q3VtUrsAtqmLTFj1rnhL8wQ26u3yr81XLPQwJJE0BoJltcXUyH4eod5E/2 +nF4ei/M/J6bP2YuQneX2MS+cHAAettszuj/78el+2Px0d7ZDNYUL5P23mlOOwhAo +4Xn5/jNb8fkCEBEc8lCcH/1MLesM6oy+Ad4onq51sQKBgQCEjjSZ/J6QdlECjcRa +EfmZI4gDdgcavbKPbyUM54OXsVH4JOO31Vr+GA0bdXIy+kfQ69P1mxAO6ZaS5iuz +iW63LsDGCDtNybVcPap0BS0pfG7uVkw6Fn3rL5vxF8buKGfcJb6NRZh5VDQTUqyh ++L9/5TWkjFcG9t+Aaj7/Pe3hBA== +-----END PRIVATE KEY----- diff --git a/phpdocker/nginx/alex.eatvio.local+4.pem b/phpdocker/nginx/alex.eatvio.local+4.pem new file mode 100644 index 0000000..2d48a52 --- /dev/null +++ b/phpdocker/nginx/alex.eatvio.local+4.pem @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIENDCCApygAwIBAgIRAO6EUiZfVufPFe8Xmg2neeMwDQYJKoZIhvcNAQELBQAw +TzEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMRIwEAYDVQQLDAlhbGV4 +QGFsZXgxGTAXBgNVBAMMEG1rY2VydCBhbGV4QGFsZXgwHhcNMjQwOTAyMDc0MzI0 +WhcNMjYxMjAyMDc0MzI0WjA9MScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQg +Y2VydGlmaWNhdGUxEjAQBgNVBAsMCWFsZXhAYWxleDCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAOJ0sZcQD0gnyAL8Z2VYsOHDirzjM0Tay/W1nZa/A/yz +Bl9Z6hB5EMNFc11YppXbAlbZpgp6gPxHDVIWZ+o72WGF9PzQ6JgiIbxMdsy/J+LS +fOK8b1WjUnYZjxsEjgy3CzosWZUmzQuDdx4ciBR3c7XhU2tCuWjBjWfMiYEE7pQF +b89x79Ho9basQrrgOrNj+PL6oqnXg3TM5W/hfsUvAT0F/dcHEn3jpUV/23x5z7Wk +ztTja8Jk2euKCKSJgMuzyCIGQPA55x/6O9/ZKfqfRQoRqSMjSB38q364FsZG0lBS +RrhecWq4udB3hDabdNnfqvvgj8YW2yQBJrvkO8mldZsCAwEAAaOBnDCBmTAOBgNV +HQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUwcxZ +u77uAlfsP52FQ+10ocE8KqgwUQYDVR0RBEowSIIRYWxleC5lYXR2aW8ubG9jYWyC +EGFsZXguZWF0dmlvLnRlc3SCCWxvY2FsaG9zdIcECjcFeYcQAAAAAAAAAAAAAAAA +AAAAATANBgkqhkiG9w0BAQsFAAOCAYEArx+/xKh7gO2rbB6bisYr5oLm6FLsbBZG +JWU7npue0LEiGvxy9jXwfF2subvX22wblHbuxUtKbWPMdAcMqcuQsFq8KeIcTZ9Z +NJ27cqLFbjzXFJIR+jnsrBNyUKvGnJKjXBS2rN/D51bLfNf/lkYoyzBtKf9VUPjs +mH94aByu3T8GoGDgOtBH7zc5GGzzAQ9i2Jgfpo//sxpiVPae5KX3r7cAdX50S/kN +WId2TxejtgnZsmuFuWha3qWIT0Bc69osJUrLQRoEO1vVGQpVL3qSdBsloFQZtCBY +hE3ZR/CnJqzm/iVR9x9OqAUdeKAA2EbAaBWOuJsyOQsWoJj4K4aFeFGoZ7OFU51f +9zS02vytWrhqSLItHTFPoOI8aw8CuY7cr4mWPyCTwjpEcpfP1upDsFqPP7aCjQDP +7HHsuiLaP1Wgr5LsO4WhDWjYzTvJnKbQWRX8AXeV2UUWJ3fMHDX3Sw0Jm0JoiNUO +muKBI6FMLIbqVEs/cOQaIXka4KSx4oA1 +-----END CERTIFICATE----- diff --git a/phpdocker/nginx/nginx.conf b/phpdocker/nginx/nginx.conf index 24046bb..b0f771e 100644 --- a/phpdocker/nginx/nginx.conf +++ b/phpdocker/nginx/nginx.conf @@ -39,6 +39,7 @@ server { include fastcgi_params; } } + server { listen 80; server_name socket.eatvio.com; @@ -60,3 +61,73 @@ server { error_log /dev/stdout info; access_log /dev/stdout; } + +server { + listen 5000 ssl; + server_name alex.eatvio.local; + + ssl_certificate /etc/nginx/alex.eatvio.local+4.pem; + ssl_certificate_key /etc/nginx/alex.eatvio.local+4-key.pem; + ssl_protocols TLSv1.2; + + charset UTF-8; + + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Host $server_name; + + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-Content-Type-Options "nosniff" always; + add_header Referrer-Policy "strict-origin-when-cross-origin" always; + + server_tokens off; + client_max_body_size 100M; + root /application/public; + index index.php; + + # try to serve file directly, fallback to index.php + location / { + try_files $uri /index.php$is_args$args; + } + + if (!-e $request_filename) { + rewrite ^.*$ /index.php last; + } + + location ~ \.php$ { + fastcgi_pass phpupstream; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PHP_VALUE "error_log=/var/log/nginx/application_php_errors.log"; + fastcgi_buffers 16 16k; + fastcgi_buffer_size 32k; + include fastcgi_params; + } +} + +server { + listen 5000 ssl; + server_name socket.alex.eatvio.local; + + ssl_certificate /etc/nginx/socket.alex.eatvio.local+4.pem; + ssl_certificate_key /etc/nginx/socket.alex.eatvio.local+4-key.pem; + ssl_protocols TLSv1.2; + + location / { + proxy_pass http://soketi:6001; + proxy_read_timeout 60; + proxy_connect_timeout 60; + proxy_redirect off; + + # Allow the use of websockets + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + } + + error_log /dev/stdout info; + access_log /dev/stdout; +} diff --git a/phpdocker/nginx/socket.alex.eatvio.local+4-key.pem b/phpdocker/nginx/socket.alex.eatvio.local+4-key.pem new file mode 100644 index 0000000..922e2fb --- /dev/null +++ b/phpdocker/nginx/socket.alex.eatvio.local+4-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDLhkQ7URIQtK2A +E1xQazxdfzIW6r4mKAnQpBJWbmCylv2/rsjfIEFaNpDIq7uIiR2RqXPlsy9FTaYg +yVLayzI4nDYgmpcoxQhOw9gX9P7O1UX/GS+vDvmsjq0H6Gg+Kb/Cxu7gstbLziXJ +5rdii/INrUHSzbmzdSsUGQyasVz82ify9Wf/gtC/0l23qflK/Tkwj31fTfOMLDch +4irue2HTHUdACKTiH3W9t1U4HMlyT6fOb3199hL3BNdN4s1+dg1nRqo9//lEuO8j +yS8u/an1j+slOo+wuk0EolCJJ7VJos05cET6VRmMcub4g7RImLFUFr+PWV0mMEh6 +ekCDylnDAgMBAAECggEAPpjsUYYs1UCNAJBz2zQwW91sTYojs96qriZYkYbfbO5t +20/p7l6gWxvfSikvw93QX2XMBMEo79rjFsB1IGBQ8QJyz3JcvahkVr17sFqlKH6G +SeC4PtKPTliPtZfwv/XdSg4fmLLIx+R+0OuKSeAbMcOxNCIcVKrb9hGCQ+37WLVA +G2zfKzEg0MDl9I3rA5rmR30rl0V2YDqMOsnQid9k+zG7yFGFmNLiu98VV3bVIgZ6 +7v/LSsjRMaldijn5PSSVvSjq69scJlTF9l+ZB0Mt3M9hF0jRxlFH3Tm304ZUXn1X +M5yHi5paY8qCyxVgnOdkll3W5jowlZMtxTMuv+WDcQKBgQDiRqAhVo9/66SPZbZI +b2Sn1GkaKBZX/FJl9K4DU2/lwXgRZLaa8G2mMiv0UckCTBtOid5ud4LiepJh6rja +ypCtqge4womaBN15cJdDOyYO4vSlyll9bi9+mcpJy7p3NKLaj1Ki1Qrqb3L+GlkH +5/j3uaT0JlmwJ9iCrn1Kq8oeeQKBgQDmQoo0DZ86GMbi6g1m2LOOs16zHtG69gNX +XRvUWK/HEcami7yLbpiOMUKkJA+r26vb7CaM3Xo2gz9TFspY0woUUL0lKaWKecWJ +CmnfxlJaQ19j50t8hYkdaCTczOtLWywzHoE25xKBiVJgw4tw2PjPt7NZo9aN+Dyt +sxVbtj17GwKBgQDaBGR7WrSu8zO+OqkUR8f68O1Hl4JXyjT2KXeUmssA25U9ZQWQ +acGsVUEGidqcDQpudOZNF3eTkbgDAi6UGIKn4WDJQx9jt/ZQ8Qu9ansz8rb4Gux4 +rzaxy6odyl7iRmP3JArh+1UmJrXsYSSROpAm18c4us7FrM6us0LjNHxtOQKBgQDb +zAKe463tyD751k/Kr+reugwY0b+ER1gzKfbpwWqxjR9iVZs6Qe0wNoeVpbKr63pm +6Up3RudlZ+2nw+aN2Y4SjGuxMMsLn2fXg/BCos5zyUIiXGRrThDv2Dzv5FBq03Ii +rejMXtEEg+/13FOb+hGwPnvego3JYX+Sk5M8w352pwKBgFBQp6lwvC9fH4xKlfzR +suWwt/uPb0uo0M6y5uosx1gDOmk86ucU6Ka34U+CLNywAIyaZem9wpRb1JyKCt3/ +SZt4Cs4zwOyr2Kw8QstqKkkSAs2RVfSN4YPM6fkDE59leg/7m5wTj0MW04Rn45mc +Vw15ekSv133tUKximh0t5cvM +-----END PRIVATE KEY----- diff --git a/phpdocker/nginx/socket.alex.eatvio.local+4.pem b/phpdocker/nginx/socket.alex.eatvio.local+4.pem new file mode 100644 index 0000000..61e3f7b --- /dev/null +++ b/phpdocker/nginx/socket.alex.eatvio.local+4.pem @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIEQjCCAqqgAwIBAgIRAK/w6zEhYEt/SZPQdtguFKYwDQYJKoZIhvcNAQELBQAw +TzEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMRIwEAYDVQQLDAlhbGV4 +QGFsZXgxGTAXBgNVBAMMEG1rY2VydCBhbGV4QGFsZXgwHhcNMjQwOTAyMDc0MzM2 +WhcNMjYxMjAyMDc0MzM2WjA9MScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQg +Y2VydGlmaWNhdGUxEjAQBgNVBAsMCWFsZXhAYWxleDCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAMuGRDtREhC0rYATXFBrPF1/MhbqviYoCdCkElZuYLKW +/b+uyN8gQVo2kMiru4iJHZGpc+WzL0VNpiDJUtrLMjicNiCalyjFCE7D2Bf0/s7V +Rf8ZL68O+ayOrQfoaD4pv8LG7uCy1svOJcnmt2KL8g2tQdLNubN1KxQZDJqxXPza +J/L1Z/+C0L/SXbep+Ur9OTCPfV9N84wsNyHiKu57YdMdR0AIpOIfdb23VTgcyXJP +p85vfX32EvcE103izX52DWdGqj3/+US47yPJLy79qfWP6yU6j7C6TQSiUIkntUmi +zTlwRPpVGYxy5viDtEiYsVQWv49ZXSYwSHp6QIPKWcMCAwEAAaOBqjCBpzAOBgNV +HQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUwcxZ +u77uAlfsP52FQ+10ocE8KqgwXwYDVR0RBFgwVoIYc29ja2V0LmFsZXguZWF0dmlv +LmxvY2Fsghdzb2NrZXQuYWxleC5lYXR2aW8udGVzdIIJbG9jYWxob3N0hwQKNwV5 +hxAAAAAAAAAAAAAAAAAAAAABMA0GCSqGSIb3DQEBCwUAA4IBgQCR6GilrCsiKLp0 +0VVaRSktjjjdddnW9QkZ//4JTwWFhadc1HB5enLS6RFFDNoo9LnWeQatK39tiRaN +9o4YPJlx6NcMgHDX0UnVPsyvVQkQ2+5U7nXkdR5XgQIAp8EexPK4g8Sj8pILYSE6 ++If+t6rpB0zCbcMHgInQPohRsCpMzl612G4/lzSjEc7NwAlyyPNXcT1n+YrfR28v +uVRDdSKQkJ8n4XTAJwHN19HomNfrASFG6P02bdd8AZKuNxc+yeucpsTHyAzc6N3Z +xXG2fTwfbTkQbie9guZQRmd7ZERA7usDwGhaAIW/CDNBUvdpFzvYNsp8mv9UhSZF +I8WAOLvLosX+9yiE0SB9sEqIjS1cuZv6jek1wDlU78rOywBUJbeNIB4k8YyPXU3g +MnXEm8qMW60zKWm0Z4ucP5AnbN/938mpJ4DFNH/wuA+bKLEI+cAkMF8BNhMcFZ0U +Jq1l75URBrteimBYxmH4GK5y1l2ZW1I5fBz2PCGj7ZGTHz3J9NQ= +-----END CERTIFICATE----- From 867b714748d7a1b5cb7d166b076a96a7c9445353 Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Tue, 28 Jan 2025 14:21:54 +0300 Subject: [PATCH 03/11] feat(docker): added keys ssl --- .env.infra-example | 2 +- docker-compose.yml | 31 ++++---- phpdocker/nginx/alex.eatvio.local+4-key.pem | 28 ++++++++ phpdocker/nginx/alex.eatvio.local+4.pem | 25 +++++++ phpdocker/nginx/nginx.conf | 71 +++++++++++++++++++ .../nginx/socket.alex.eatvio.local+4-key.pem | 28 ++++++++ .../nginx/socket.alex.eatvio.local+4.pem | 25 +++++++ 7 files changed, 193 insertions(+), 17 deletions(-) create mode 100644 phpdocker/nginx/alex.eatvio.local+4-key.pem create mode 100644 phpdocker/nginx/alex.eatvio.local+4.pem create mode 100644 phpdocker/nginx/socket.alex.eatvio.local+4-key.pem create mode 100644 phpdocker/nginx/socket.alex.eatvio.local+4.pem diff --git a/.env.infra-example b/.env.infra-example index 55c0279..d33c253 100644 --- a/.env.infra-example +++ b/.env.infra-example @@ -11,4 +11,4 @@ MYSQL_ROOT_PASSWORD="nhbnhb22" MYSQL_DATABASE="eatvio" MYSQL_USER="eatvio_user" MYSQL_PASSWORD="eatvio_pass_nhbnhb22" -MY_APP_GIT_URL="ssh://git@10.55.5.123:222/eatvio/eatvio.git" +MY_APP_GIT_URL="ssh://git@10.55.5.123:222/alex_chevski/eatvio.git" diff --git a/docker-compose.yml b/docker-compose.yml index 7c4ce54..f43dfdb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,8 +15,7 @@ services: - "${SOKETI_PORT:-6001}:6001" - "${SOKETI_METRICS_SERVER_PORT:-9601}:9601" networks: - ns-eatvio: - ipv4_address: 172.118.0.5 + - ns-eatvio labels: - "traefik.enable=false" restart: always @@ -25,8 +24,7 @@ services: image: "mysql:8.0" working_dir: /application networks: - ns-eatvio: - ipv4_address: 172.118.0.3 + - ns-eatvio volumes: - ".:/application" - "./mysql_data:/var/lib/mysql" @@ -49,8 +47,7 @@ services: depends_on: - mysql networks: - ns-eatvio: - ipv4_address: 172.118.0.2 + - ns-eatvio volumes: - "./app:/application" - "./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/8.2/fpm/conf.d/99-overrides.ini" @@ -104,32 +101,34 @@ services: volumes: - "./app:/application" - "./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf" + - "./phpdocker/nginx/alex.eatvio.local+4.pem:/etc/nginx/alex.eatvio.local+4.pem" + - "./phpdocker/nginx/alex.eatvio.local+4-key.pem:/etc/nginx/alex.eatvio.local+4-key.pem" + - "./phpdocker/nginx/socket.alex.eatvio.local+4.pem:/etc/nginx/socket.alex.eatvio.local+4.pem" + - "./phpdocker/nginx/socket.alex.eatvio.local+4-key.pem:/etc/nginx/socket.alex.eatvio.local+4-key.pem" ports: - "1092:80" + - "10443:5000" networks: - web - ns-eatvio - labels: - - "traefik.docker.network=web" - - "traefik.enable=true" - - "traefik.frontend.rule=Host:dev2.eatvio.com,socket.eatvio.com" - - "traefik.port=80" - - "traefik.protocol=http" mailhog: image: "mailhog/mailhog" ports: - "8082:8025" networks: - ns-eatvio: - ipv4_address: 172.118.0.4 + - ns-eatvio typesense: image: typesense/typesense:26.0 restart: on-failure + expose: + - 8108 + ports: + - 8108:8108 networks: - ns-eatvio: - ipv4_address: 172.118.0.6 + - ns-eatvio + - web volumes: - ./typesense-data:/data command: "--data-dir /data --api-key=typesense --enable-cors" diff --git a/phpdocker/nginx/alex.eatvio.local+4-key.pem b/phpdocker/nginx/alex.eatvio.local+4-key.pem new file mode 100644 index 0000000..403d482 --- /dev/null +++ b/phpdocker/nginx/alex.eatvio.local+4-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDidLGXEA9IJ8gC +/GdlWLDhw4q84zNE2sv1tZ2WvwP8swZfWeoQeRDDRXNdWKaV2wJW2aYKeoD8Rw1S +FmfqO9lhhfT80OiYIiG8THbMvyfi0nzivG9Vo1J2GY8bBI4Mtws6LFmVJs0Lg3ce +HIgUd3O14VNrQrlowY1nzImBBO6UBW/Pce/R6PW2rEK64DqzY/jy+qKp14N0zOVv +4X7FLwE9Bf3XBxJ946VFf9t8ec+1pM7U42vCZNnrigikiYDLs8giBkDwOecf+jvf +2Sn6n0UKEakjI0gd/Kt+uBbGRtJQUka4XnFquLnQd4Q2m3TZ36r74I/GFtskASa7 +5DvJpXWbAgMBAAECggEAdH3VEUGYquST9j1DLxZFv41opCw4JnZrL1Wi4HYYpfiu +EYTebGTq45ipdN5yq2oDNQw3ZvKHwb8HMjAGeq8Y7xsK4LbSv9fnBMdM4Zx/9yWS +SszmdOZUOB6DyEE6lX3fz6ga2SghmIejUiEZO3YLVwe3ctjbKfFPPZMxNOaFmCyP +3LpVXvG0Nh5G1DRZXtJDCVv7O99cA8q+5EyUJ20XFjkY36MAzFN/SjN7teGW0RSq +ASFubAEODPryCfwnCWZTCE3KzLJuwId4Yzfyqfd1q55glOmdTKdGsmPxJgxYv7WZ +2JTlNsZIWuv/753XzSiJrMrAsgByIyB7tsehUSegaQKBgQDm2zplHGdUWRPoQsLj +uCtLCF+WhWfQ+Jz6mt5CuT7Glp1mfAwgtjXg9EmHztNaFENswUuk1y69wlV+vBKk +XGhb3gjZQsZHjFYinN8BLK3pjBte+IMnKkoyhLV9EMUKvXvCxdxZJ1cnWJR1FeKp +/xCM37cNZkXekAAltKw3U2IxXQKBgQD7HsT+NEWYSP1/1U0B6PJVi8kNUBY/G7DP +3A5Le/S8WjbBGVPkOw1lFOvlXVi6Hmdlgqb5nBk7QZCzc+Mk9Mc3dJ66c1/uEjU7 +67e1oHL7OoA/QJ9WXsi4CR+9f07taV/uUsnLVAmbodK94VNHeMgn16Z24Su0irCH +ehVOh9t7VwKBgQDDzNL1aSbWqoqw5tbnT5AgnqR8RP/thL+X6fxzOSzeQGaVwsaC +hCikeG1ZK3mlICSjvDpNQFkbhxT+XcOt9dZpfKOiqfkEPCneR5D5LQ0AVd3tKfgL +Ito1iMtpnOySlG3AoBKo5y4LaBzaRcquhnBiG2jli4XdI+OMF3YtoqJY3QKBgQDk +GGbGn6Q3VtUrsAtqmLTFj1rnhL8wQ26u3yr81XLPQwJJE0BoJltcXUyH4eod5E/2 +nF4ei/M/J6bP2YuQneX2MS+cHAAettszuj/78el+2Px0d7ZDNYUL5P23mlOOwhAo +4Xn5/jNb8fkCEBEc8lCcH/1MLesM6oy+Ad4onq51sQKBgQCEjjSZ/J6QdlECjcRa +EfmZI4gDdgcavbKPbyUM54OXsVH4JOO31Vr+GA0bdXIy+kfQ69P1mxAO6ZaS5iuz +iW63LsDGCDtNybVcPap0BS0pfG7uVkw6Fn3rL5vxF8buKGfcJb6NRZh5VDQTUqyh ++L9/5TWkjFcG9t+Aaj7/Pe3hBA== +-----END PRIVATE KEY----- diff --git a/phpdocker/nginx/alex.eatvio.local+4.pem b/phpdocker/nginx/alex.eatvio.local+4.pem new file mode 100644 index 0000000..2d48a52 --- /dev/null +++ b/phpdocker/nginx/alex.eatvio.local+4.pem @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIENDCCApygAwIBAgIRAO6EUiZfVufPFe8Xmg2neeMwDQYJKoZIhvcNAQELBQAw +TzEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMRIwEAYDVQQLDAlhbGV4 +QGFsZXgxGTAXBgNVBAMMEG1rY2VydCBhbGV4QGFsZXgwHhcNMjQwOTAyMDc0MzI0 +WhcNMjYxMjAyMDc0MzI0WjA9MScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQg +Y2VydGlmaWNhdGUxEjAQBgNVBAsMCWFsZXhAYWxleDCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAOJ0sZcQD0gnyAL8Z2VYsOHDirzjM0Tay/W1nZa/A/yz +Bl9Z6hB5EMNFc11YppXbAlbZpgp6gPxHDVIWZ+o72WGF9PzQ6JgiIbxMdsy/J+LS +fOK8b1WjUnYZjxsEjgy3CzosWZUmzQuDdx4ciBR3c7XhU2tCuWjBjWfMiYEE7pQF +b89x79Ho9basQrrgOrNj+PL6oqnXg3TM5W/hfsUvAT0F/dcHEn3jpUV/23x5z7Wk +ztTja8Jk2euKCKSJgMuzyCIGQPA55x/6O9/ZKfqfRQoRqSMjSB38q364FsZG0lBS +RrhecWq4udB3hDabdNnfqvvgj8YW2yQBJrvkO8mldZsCAwEAAaOBnDCBmTAOBgNV +HQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUwcxZ +u77uAlfsP52FQ+10ocE8KqgwUQYDVR0RBEowSIIRYWxleC5lYXR2aW8ubG9jYWyC +EGFsZXguZWF0dmlvLnRlc3SCCWxvY2FsaG9zdIcECjcFeYcQAAAAAAAAAAAAAAAA +AAAAATANBgkqhkiG9w0BAQsFAAOCAYEArx+/xKh7gO2rbB6bisYr5oLm6FLsbBZG +JWU7npue0LEiGvxy9jXwfF2subvX22wblHbuxUtKbWPMdAcMqcuQsFq8KeIcTZ9Z +NJ27cqLFbjzXFJIR+jnsrBNyUKvGnJKjXBS2rN/D51bLfNf/lkYoyzBtKf9VUPjs +mH94aByu3T8GoGDgOtBH7zc5GGzzAQ9i2Jgfpo//sxpiVPae5KX3r7cAdX50S/kN +WId2TxejtgnZsmuFuWha3qWIT0Bc69osJUrLQRoEO1vVGQpVL3qSdBsloFQZtCBY +hE3ZR/CnJqzm/iVR9x9OqAUdeKAA2EbAaBWOuJsyOQsWoJj4K4aFeFGoZ7OFU51f +9zS02vytWrhqSLItHTFPoOI8aw8CuY7cr4mWPyCTwjpEcpfP1upDsFqPP7aCjQDP +7HHsuiLaP1Wgr5LsO4WhDWjYzTvJnKbQWRX8AXeV2UUWJ3fMHDX3Sw0Jm0JoiNUO +muKBI6FMLIbqVEs/cOQaIXka4KSx4oA1 +-----END CERTIFICATE----- diff --git a/phpdocker/nginx/nginx.conf b/phpdocker/nginx/nginx.conf index 24046bb..b0f771e 100644 --- a/phpdocker/nginx/nginx.conf +++ b/phpdocker/nginx/nginx.conf @@ -39,6 +39,7 @@ server { include fastcgi_params; } } + server { listen 80; server_name socket.eatvio.com; @@ -60,3 +61,73 @@ server { error_log /dev/stdout info; access_log /dev/stdout; } + +server { + listen 5000 ssl; + server_name alex.eatvio.local; + + ssl_certificate /etc/nginx/alex.eatvio.local+4.pem; + ssl_certificate_key /etc/nginx/alex.eatvio.local+4-key.pem; + ssl_protocols TLSv1.2; + + charset UTF-8; + + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Host $server_name; + + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-Content-Type-Options "nosniff" always; + add_header Referrer-Policy "strict-origin-when-cross-origin" always; + + server_tokens off; + client_max_body_size 100M; + root /application/public; + index index.php; + + # try to serve file directly, fallback to index.php + location / { + try_files $uri /index.php$is_args$args; + } + + if (!-e $request_filename) { + rewrite ^.*$ /index.php last; + } + + location ~ \.php$ { + fastcgi_pass phpupstream; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PHP_VALUE "error_log=/var/log/nginx/application_php_errors.log"; + fastcgi_buffers 16 16k; + fastcgi_buffer_size 32k; + include fastcgi_params; + } +} + +server { + listen 5000 ssl; + server_name socket.alex.eatvio.local; + + ssl_certificate /etc/nginx/socket.alex.eatvio.local+4.pem; + ssl_certificate_key /etc/nginx/socket.alex.eatvio.local+4-key.pem; + ssl_protocols TLSv1.2; + + location / { + proxy_pass http://soketi:6001; + proxy_read_timeout 60; + proxy_connect_timeout 60; + proxy_redirect off; + + # Allow the use of websockets + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_cache_bypass $http_upgrade; + } + + error_log /dev/stdout info; + access_log /dev/stdout; +} diff --git a/phpdocker/nginx/socket.alex.eatvio.local+4-key.pem b/phpdocker/nginx/socket.alex.eatvio.local+4-key.pem new file mode 100644 index 0000000..922e2fb --- /dev/null +++ b/phpdocker/nginx/socket.alex.eatvio.local+4-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDLhkQ7URIQtK2A +E1xQazxdfzIW6r4mKAnQpBJWbmCylv2/rsjfIEFaNpDIq7uIiR2RqXPlsy9FTaYg +yVLayzI4nDYgmpcoxQhOw9gX9P7O1UX/GS+vDvmsjq0H6Gg+Kb/Cxu7gstbLziXJ +5rdii/INrUHSzbmzdSsUGQyasVz82ify9Wf/gtC/0l23qflK/Tkwj31fTfOMLDch +4irue2HTHUdACKTiH3W9t1U4HMlyT6fOb3199hL3BNdN4s1+dg1nRqo9//lEuO8j +yS8u/an1j+slOo+wuk0EolCJJ7VJos05cET6VRmMcub4g7RImLFUFr+PWV0mMEh6 +ekCDylnDAgMBAAECggEAPpjsUYYs1UCNAJBz2zQwW91sTYojs96qriZYkYbfbO5t +20/p7l6gWxvfSikvw93QX2XMBMEo79rjFsB1IGBQ8QJyz3JcvahkVr17sFqlKH6G +SeC4PtKPTliPtZfwv/XdSg4fmLLIx+R+0OuKSeAbMcOxNCIcVKrb9hGCQ+37WLVA +G2zfKzEg0MDl9I3rA5rmR30rl0V2YDqMOsnQid9k+zG7yFGFmNLiu98VV3bVIgZ6 +7v/LSsjRMaldijn5PSSVvSjq69scJlTF9l+ZB0Mt3M9hF0jRxlFH3Tm304ZUXn1X +M5yHi5paY8qCyxVgnOdkll3W5jowlZMtxTMuv+WDcQKBgQDiRqAhVo9/66SPZbZI +b2Sn1GkaKBZX/FJl9K4DU2/lwXgRZLaa8G2mMiv0UckCTBtOid5ud4LiepJh6rja +ypCtqge4womaBN15cJdDOyYO4vSlyll9bi9+mcpJy7p3NKLaj1Ki1Qrqb3L+GlkH +5/j3uaT0JlmwJ9iCrn1Kq8oeeQKBgQDmQoo0DZ86GMbi6g1m2LOOs16zHtG69gNX +XRvUWK/HEcami7yLbpiOMUKkJA+r26vb7CaM3Xo2gz9TFspY0woUUL0lKaWKecWJ +CmnfxlJaQ19j50t8hYkdaCTczOtLWywzHoE25xKBiVJgw4tw2PjPt7NZo9aN+Dyt +sxVbtj17GwKBgQDaBGR7WrSu8zO+OqkUR8f68O1Hl4JXyjT2KXeUmssA25U9ZQWQ +acGsVUEGidqcDQpudOZNF3eTkbgDAi6UGIKn4WDJQx9jt/ZQ8Qu9ansz8rb4Gux4 +rzaxy6odyl7iRmP3JArh+1UmJrXsYSSROpAm18c4us7FrM6us0LjNHxtOQKBgQDb +zAKe463tyD751k/Kr+reugwY0b+ER1gzKfbpwWqxjR9iVZs6Qe0wNoeVpbKr63pm +6Up3RudlZ+2nw+aN2Y4SjGuxMMsLn2fXg/BCos5zyUIiXGRrThDv2Dzv5FBq03Ii +rejMXtEEg+/13FOb+hGwPnvego3JYX+Sk5M8w352pwKBgFBQp6lwvC9fH4xKlfzR +suWwt/uPb0uo0M6y5uosx1gDOmk86ucU6Ka34U+CLNywAIyaZem9wpRb1JyKCt3/ +SZt4Cs4zwOyr2Kw8QstqKkkSAs2RVfSN4YPM6fkDE59leg/7m5wTj0MW04Rn45mc +Vw15ekSv133tUKximh0t5cvM +-----END PRIVATE KEY----- diff --git a/phpdocker/nginx/socket.alex.eatvio.local+4.pem b/phpdocker/nginx/socket.alex.eatvio.local+4.pem new file mode 100644 index 0000000..61e3f7b --- /dev/null +++ b/phpdocker/nginx/socket.alex.eatvio.local+4.pem @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIEQjCCAqqgAwIBAgIRAK/w6zEhYEt/SZPQdtguFKYwDQYJKoZIhvcNAQELBQAw +TzEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMRIwEAYDVQQLDAlhbGV4 +QGFsZXgxGTAXBgNVBAMMEG1rY2VydCBhbGV4QGFsZXgwHhcNMjQwOTAyMDc0MzM2 +WhcNMjYxMjAyMDc0MzM2WjA9MScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQg +Y2VydGlmaWNhdGUxEjAQBgNVBAsMCWFsZXhAYWxleDCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAMuGRDtREhC0rYATXFBrPF1/MhbqviYoCdCkElZuYLKW +/b+uyN8gQVo2kMiru4iJHZGpc+WzL0VNpiDJUtrLMjicNiCalyjFCE7D2Bf0/s7V +Rf8ZL68O+ayOrQfoaD4pv8LG7uCy1svOJcnmt2KL8g2tQdLNubN1KxQZDJqxXPza +J/L1Z/+C0L/SXbep+Ur9OTCPfV9N84wsNyHiKu57YdMdR0AIpOIfdb23VTgcyXJP +p85vfX32EvcE103izX52DWdGqj3/+US47yPJLy79qfWP6yU6j7C6TQSiUIkntUmi +zTlwRPpVGYxy5viDtEiYsVQWv49ZXSYwSHp6QIPKWcMCAwEAAaOBqjCBpzAOBgNV +HQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUwcxZ +u77uAlfsP52FQ+10ocE8KqgwXwYDVR0RBFgwVoIYc29ja2V0LmFsZXguZWF0dmlv +LmxvY2Fsghdzb2NrZXQuYWxleC5lYXR2aW8udGVzdIIJbG9jYWxob3N0hwQKNwV5 +hxAAAAAAAAAAAAAAAAAAAAABMA0GCSqGSIb3DQEBCwUAA4IBgQCR6GilrCsiKLp0 +0VVaRSktjjjdddnW9QkZ//4JTwWFhadc1HB5enLS6RFFDNoo9LnWeQatK39tiRaN +9o4YPJlx6NcMgHDX0UnVPsyvVQkQ2+5U7nXkdR5XgQIAp8EexPK4g8Sj8pILYSE6 ++If+t6rpB0zCbcMHgInQPohRsCpMzl612G4/lzSjEc7NwAlyyPNXcT1n+YrfR28v +uVRDdSKQkJ8n4XTAJwHN19HomNfrASFG6P02bdd8AZKuNxc+yeucpsTHyAzc6N3Z +xXG2fTwfbTkQbie9guZQRmd7ZERA7usDwGhaAIW/CDNBUvdpFzvYNsp8mv9UhSZF +I8WAOLvLosX+9yiE0SB9sEqIjS1cuZv6jek1wDlU78rOywBUJbeNIB4k8YyPXU3g +MnXEm8qMW60zKWm0Z4ucP5AnbN/938mpJ4DFNH/wuA+bKLEI+cAkMF8BNhMcFZ0U +Jq1l75URBrteimBYxmH4GK5y1l2ZW1I5fBz2PCGj7ZGTHz3J9NQ= +-----END CERTIFICATE----- From 3d36a33485e6a78344e82d68159dfc1591f2e4e9 Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Wed, 22 Oct 2025 11:04:47 +0300 Subject: [PATCH 04/11] ci(config): update --- .env.infra-example | 3 + Makefile | 89 +++++++++++------- docker-compose.yml | 81 ++++++++-------- phpdocker/front-end/Dockerfile | 15 +-- phpdocker/front-end/laravel-worker.conf | 2 +- phpdocker/nginx/nginx.conf | 118 ++++++++---------------- phpdocker/php-fpm/Dockerfile | 23 ++--- phpdocker/php-fpm/laravel-worker.conf | 2 +- phpdocker/worker/Dockerfile | 8 +- 9 files changed, 175 insertions(+), 166 deletions(-) diff --git a/.env.infra-example b/.env.infra-example index d33c253..3a11084 100644 --- a/.env.infra-example +++ b/.env.infra-example @@ -12,3 +12,6 @@ MYSQL_DATABASE="eatvio" MYSQL_USER="eatvio_user" MYSQL_PASSWORD="eatvio_pass_nhbnhb22" MY_APP_GIT_URL="ssh://git@10.55.5.123:222/alex_chevski/eatvio.git" +PROD_DB_USER=readonly_user +PROD_DB_PASS=baexueShosei0AiD +PROD_DB_FILE="latest-prod-db.sql" diff --git a/Makefile b/Makefile index 71d10cd..8e7a496 100644 --- a/Makefile +++ b/Makefile @@ -4,104 +4,131 @@ clone: git clone ${MY_APP_GIT_URL} app start: - docker-compose up -d + docker compose up -d stop: - docker-compose down --remove-orphans -v + docker compose down --remove-orphans -v restart: stop start status: - docker-compose ps + docker compose ps bash: - docker-compose exec php-fpm bash + docker compose exec php-fpm bash worker-restart: - docker-compose exec worker supervisorctl restart laravel-worker:* + docker compose exec worker supervisorctl restart laravel-worker:* clear-images: - docker-compose exec php-fpm ./artisan clear:orphaned-images + docker compose exec php-fpm ./artisan clear:orphaned-images links-images: jdupes -r -1 -l app/storage/app tinker: - docker-compose exec php-fpm ./artisan tinker + docker compose exec php-fpm ./artisan tinker reseed-db: - docker-compose exec php-fpm bash -c "./artisan migrate:refresh; ./artisan db:seed" + docker compose exec php-fpm bash -c "./artisan migrate:refresh; ./artisan db:seed" setup-laravel-key: - docker-compose exec php-fpm php /application/artisan key:generate + docker compose exec php-fpm php /application/artisan key:generate setup-laravel-packages: - docker-compose exec php-fpm composer install + docker compose exec php-fpm composer install copy-laravel-env: - docker-compose exec php-fpm cp /application/.env.example /application/.env + docker compose exec php-fpm cp /application/.env.example /application/.env copy-infra-env: cp .env.infra-example .env run-migrations: - docker-compose exec php-fpm ./artisan migrate + docker compose exec php-fpm ./artisan migrate run-plan-seed: - docker-compose exec php-fpm ./artisan db:seed --class=PlanSeeder + docker compose exec php-fpm ./artisan db:seed --class=PlanSeeder run-user-seed: - docker-compose exec php-fpm ./artisan db:seed --class=UserSeeder + docker compose exec php-fpm ./artisan db:seed --class=UserSeeder seed-db: - docker-compose exec php-fpm ./artisan db:seed + docker compose exec php-fpm ./artisan db:seed fix-permissions: - docker-compose exec php-fpm chown -R www-data:www-data storage + docker compose exec php-fpm chown -R www-data:www-data storage fix-code-style: - docker-compose exec php-fpm vendor/bin/pint + docker compose exec php-fpm composer php-cs-fixer + +fix-view-style: + docker compose exec php-fpm composer run-script fix-blade-fomatting artisan: - docker-compose exec php-fpm ./artisan $(ARGS) + docker compose exec php-fpm ./artisan $(ARGS) mysql-console: - docker-compose exec mysql mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} + docker compose exec mysql mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} + +mysql-test-console: + docker compose exec mysql mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} eatvio_test + +mysql-eatvio-prod-console: + docker compose exec mysql mysql -u readonly_user -pbaexueShosei0AiD eatvio -h 10.55.5.7 -P 1094 + +mysql-dev2-console: + docker compose exec mysql mysql -u readonly_user -pbaexueShosei0AiD eatvio -h 10.55.5.15 -P 1094 + +mysql-save-prod-db: + mysqldump --single-transaction -u${PROD_DB_USER} -p${PROD_DB_PASS} -h10.55.5.7 -P1094 eatvio > ${PROD_DB_FILE} + +mysql-restore-saved-from-prod-db: + docker compose exec mysql bash -c "cat ./${PROD_DB_FILE} | mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE}" + +mysql-remove-latest-prod-db: + rm -f ${PROD_DB_FILE} + +mysql-import-db-from-prod: mysql-save-prod-db mysql-restore-saved-from-prod-db mysql-remove-latest-prod-db + +fetch-media-from-prod: + docker compose exec php-fpm ./artisan imports:images-from-prod + +import-prod-data: mysql-import-db-from-prod fetch-media-from-prod start-frontend: - docker-compose exec php-fpm npm run watch + docker compose exec php-fpm npm run watch build-frontend-prod: - docker-compose exec php-fpm npm run production + docker compose exec php-fpm npm run production make-storage-link: - docker-compose exec php-fpm ./artisan storage:link + docker compose exec php-fpm ./artisan storage:link node-frontend-deps: - docker-compose exec php-fpm npm i --legacy-peer-deps + docker compose exec php-fpm npm i --legacy-peer-deps test: - docker-compose exec php-fpm vendor/bin/paratest + docker compose exec php-fpm vendor/bin/paratest fix-insights: - docker-compose exec php-fpm ./artisan insights --fix + docker compose exec php-fpm ./artisan insights --fix insights: - docker-compose exec php-fpm vendor/bin/phpinsights --config-path=./config/insights.php --no-interaction --min-quality=80 --min-complexity=90 --min-architecture=75 --min-style=95 + docker compose exec php-fpm vendor/bin/phpinsights --config-path=./config/insights.php --no-interaction --min-quality=80 --min-complexity=90 --min-architecture=75 --min-style=95 rector: - docker-compose exec php-fpm vendor/bin/rector process --dry-run + docker compose exec php-fpm vendor/bin/rector process --dry-run static-analysis: - docker-compose exec php-fpm composer static-analysis + docker compose exec php-fpm composer static-analysis detect-magic-numbers: - docker-compose exec php-fpm vendor/bin/phpmnd app/ tests/ + docker compose exec php-fpm vendor/bin/phpmnd app/ tests/ ci: fix-code-style detect-magic-numbers test rector insights static-analysis local-ci: - docker-compose exec -T php-fpm composer ci + docker compose exec -T php-fpm composer ci init: clone copy-infra-env restart setup-laravel-packages copy-laravel-env setup-laravel-key run-migrations node-frontend-deps build-frontend-prod fix-permissions make-storage-link - diff --git a/docker-compose.yml b/docker-compose.yml index f43dfdb..cef89a6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ ---- -version: "3.1" services: soketi: image: "quay.io/soketi/soketi:latest-16-alpine" @@ -20,6 +18,12 @@ services: - "traefik.enable=false" restart: always + memcached: + image: "memcached:alpine" + networks: + - ns-eatvio + restart: always + mysql: image: "mysql:8.0" working_dir: /application @@ -46,31 +50,34 @@ services: - TZ=Europe/Moscow depends_on: - mysql + - worker + # - frontend + - memcached + - typesense networks: - ns-eatvio volumes: - "./app:/application" - - "./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/8.2/fpm/conf.d/99-overrides.ini" + - "./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/8.4/fpm/conf.d/99-overrides.ini" + - "./tbank_certs:/tbank_certs" + # - "./eatvio-3467b-firebase-adminsdk-fbsvc-6e149b2a5a.json:/eatvio-3467b-firebase-adminsdk-fbsvc-6e149b2a5a.json" labels: - "traefik.enable=false" restart: always - frontend: - build: phpdocker/front-end - command: "npm run watch" - working_dir: /application - environment: - - TZ=Europe/Moscow - depends_on: - - mysql - - php-fpm - networks: - - ns-eatvio - volumes: - - "./app:/application" - labels: - - "traefik.enable=false" - restart: always + # frontend: + # build: phpdocker/front-end + # command: "npm run dev" + # working_dir: /application + # environment: + # - TZ=Europe/Moscow + # networks: + # - ns-eatvio + # volumes: + # - "./app:/application" + # labels: + # - "traefik.enable=false" + # restart: unless-stopped worker: build: phpdocker/worker @@ -80,13 +87,14 @@ services: command: "service supervisor start" depends_on: - mysql - - php-fpm networks: - ns-eatvio volumes: - "./app:/application" - - "./phpdocker/worker/php-ini-overrides.ini:/etc/php/8.2/fpm/conf.d/99-overrides.ini" + - "./phpdocker/worker/php-ini-overrides.ini:/etc/php/8.4/fpm/conf.d/99-overrides.ini" - "./phpdocker/worker/laravel-worker.conf:/etc/supervisor/conf.d/laravel-worker.conf" + - "./tbank_certs:/tbank_certs" + # - "./eatvio-3467b-firebase-adminsdk-fbsvc-6e149b2a5a.json:/eatvio-3467b-firebase-adminsdk-fbsvc-6e149b2a5a.json" labels: - "traefik.enable=false" restart: always @@ -101,16 +109,18 @@ services: volumes: - "./app:/application" - "./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf" - - "./phpdocker/nginx/alex.eatvio.local+4.pem:/etc/nginx/alex.eatvio.local+4.pem" - - "./phpdocker/nginx/alex.eatvio.local+4-key.pem:/etc/nginx/alex.eatvio.local+4-key.pem" - - "./phpdocker/nginx/socket.alex.eatvio.local+4.pem:/etc/nginx/socket.alex.eatvio.local+4.pem" - - "./phpdocker/nginx/socket.alex.eatvio.local+4-key.pem:/etc/nginx/socket.alex.eatvio.local+4-key.pem" ports: - - "1092:80" - "10443:5000" + - "1092:80" networks: - web - ns-eatvio + labels: + - "traefik.docker.network=web" + - "traefik.enable=true" + - "traefik.frontend.rule=Host:dev2.eatvio.com,socket.eatvio.com" + - "traefik.port=80" + - "traefik.protocol=http" mailhog: image: "mailhog/mailhog" @@ -120,15 +130,17 @@ services: - ns-eatvio typesense: - image: typesense/typesense:26.0 - restart: on-failure - expose: - - 8108 - ports: - - 8108:8108 + image: typesense/typesense:29.0 + restart: always + healthcheck: + test: + - CMD + - wget + - "--no-verbose" + - "--spider" + - "http://localhost:8108/health" networks: - ns-eatvio - - web volumes: - ./typesense-data:/data command: "--data-dir /data --api-key=typesense --enable-cors" @@ -138,6 +150,3 @@ networks: external: true ns-eatvio: external: false - ipam: - config: - - subnet: 172.118.0.0/28 diff --git a/phpdocker/front-end/Dockerfile b/phpdocker/front-end/Dockerfile index 95fc7c4..a70b5d1 100644 --- a/phpdocker/front-end/Dockerfile +++ b/phpdocker/front-end/Dockerfile @@ -1,16 +1,17 @@ -FROM phpdockerio/php:8.2-fpm +FROM phpdockerio/php:8.4-fpm WORKDIR "/application" -RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - +RUN curl -sL https://deb.nodesource.com/setup_24.x | bash - RUN apt-get update && \ apt-get -y --no-install-recommends install \ git \ - php8.2-gd \ - php8.2-mysql \ - php8.2-sqlite3 \ - php8.2-pgsql \ - nodejs && npm install -g npm@10.1.0 \ + php8.4-gd \ + php8.4-mysql \ + php8.4-sqlite3 \ + php8.4-pgsql \ + nodejs && npm install -g npm@latest \ apt-get clean; \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* ENV PATH=node_modules/.bin:$PATH + diff --git a/phpdocker/front-end/laravel-worker.conf b/phpdocker/front-end/laravel-worker.conf index 3826cdc..fa6fcd8 100644 --- a/phpdocker/front-end/laravel-worker.conf +++ b/phpdocker/front-end/laravel-worker.conf @@ -15,7 +15,7 @@ stdout_logfile=/application/storage/logs/worker.log stopwaitsecs=3600 [program:php-fpm] -command=php-fpm8.2 -F +command=php-fpm8.3 -F process_name=%(program_name)s_%(process_num)02d stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 diff --git a/phpdocker/nginx/nginx.conf b/phpdocker/nginx/nginx.conf index b0f771e..5b8463e 100644 --- a/phpdocker/nginx/nginx.conf +++ b/phpdocker/nginx/nginx.conf @@ -2,29 +2,62 @@ upstream phpupstream { server php-fpm:9000 fail_timeout=5s max_fails=5; } +resolver 127.0.0.11 ipv6=off; + +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + server { listen 80; - server_name dev2.eatvio.com; + server_name my-dev.eatvio.test; # change me client_max_body_size 108M; + rewrite_log on; # access_log /var/log/nginx/application.access.log; access_log /dev/stdout; + error_log /dev/stdout info; root /application/public; index index.php; + # Vite HMR WebSocket and assets + # location /_vite { + # proxy_pass http://frontend:5173; + # proxy_http_version 1.1; + # + # # WebSocket support + # proxy_set_header Upgrade $http_upgrade; + # proxy_set_header Connection $connection_upgrade; + # + # # Headers + # proxy_set_header Host $host; + # proxy_set_header X-Real-IP $remote_addr; + # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + # proxy_set_header X-Forwarded-Proto $scheme; + # proxy_set_header X-Forwarded-Host $host; + # + # # Timeouts + # proxy_connect_timeout 7d; + # proxy_send_timeout 7d; + # proxy_read_timeout 7d; + # } + + # Production build assets + location /build { + try_files $uri $uri/ =404; + expires 1y; + add_header Cache-Control "public, immutable"; + } + # try to serve file directly, fallback to index.php location / { try_files $uri /index.php$is_args$args; } - if (!-e $request_filename) { - rewrite ^.*$ /index.php last; - } - - location ~ \.php$ { #resolver 127.0.0.11; #set $upstream php-fpm:9000; @@ -42,77 +75,7 @@ server { server { listen 80; - server_name socket.eatvio.com; - - location / { - proxy_pass http://172.118.0.5:6001; - proxy_read_timeout 60; - proxy_connect_timeout 60; - proxy_redirect off; - - # Allow the use of websockets - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection 'upgrade'; - proxy_set_header Host $host; - proxy_cache_bypass $http_upgrade; - } - - error_log /dev/stdout info; - access_log /dev/stdout; -} - -server { - listen 5000 ssl; - server_name alex.eatvio.local; - - ssl_certificate /etc/nginx/alex.eatvio.local+4.pem; - ssl_certificate_key /etc/nginx/alex.eatvio.local+4-key.pem; - ssl_protocols TLSv1.2; - - charset UTF-8; - - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Host $server_name; - - add_header X-Frame-Options "SAMEORIGIN" always; - add_header X-Content-Type-Options "nosniff" always; - add_header Referrer-Policy "strict-origin-when-cross-origin" always; - - server_tokens off; - client_max_body_size 100M; - root /application/public; - index index.php; - - # try to serve file directly, fallback to index.php - location / { - try_files $uri /index.php$is_args$args; - } - - if (!-e $request_filename) { - rewrite ^.*$ /index.php last; - } - - location ~ \.php$ { - fastcgi_pass phpupstream; - fastcgi_index index.php; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_param PHP_VALUE "error_log=/var/log/nginx/application_php_errors.log"; - fastcgi_buffers 16 16k; - fastcgi_buffer_size 32k; - include fastcgi_params; - } -} - -server { - listen 5000 ssl; - server_name socket.alex.eatvio.local; - - ssl_certificate /etc/nginx/socket.alex.eatvio.local+4.pem; - ssl_certificate_key /etc/nginx/socket.alex.eatvio.local+4-key.pem; - ssl_protocols TLSv1.2; + server_name ws-my-dev.eatvio.test; # change me location / { proxy_pass http://soketi:6001; @@ -131,3 +94,4 @@ server { error_log /dev/stdout info; access_log /dev/stdout; } + diff --git a/phpdocker/php-fpm/Dockerfile b/phpdocker/php-fpm/Dockerfile index 7a7acce..b1db016 100644 --- a/phpdocker/php-fpm/Dockerfile +++ b/phpdocker/php-fpm/Dockerfile @@ -1,21 +1,22 @@ -FROM phpdockerio/php:8.2-fpm +FROM phpdockerio/php:8.4-fpm WORKDIR "/application" -RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - +RUN curl -sL https://deb.nodesource.com/setup_24.x | bash - RUN apt-get update && \ apt-get -y --no-install-recommends install \ git \ - php8.2-gd \ - php8.2-mysql \ - php8.2-sqlite3 \ - php8.2-intl \ - php8.2-pgsql \ - php8.2-imagick \ + imagemagick php8.4-imagick \ + php8.4-gd \ + php8.4-mysql \ + php8.4-sqlite3 \ + php8.4-intl \ + php8.4-memcached \ + php8.4-pgsql \ + php8.4-xdebug \ python3-pkg-resources supervisor ffmpeg jpegoptim \ - php8.2-intl \ - python3-pkg-resources supervisor \ - nodejs && npm install -g npm@10.1.0 \ + nodejs && npm install -g npm@latest \ apt-get clean; \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* ENV PATH=node_modules/.bin:$PATH + diff --git a/phpdocker/php-fpm/laravel-worker.conf b/phpdocker/php-fpm/laravel-worker.conf index 3826cdc..fa6fcd8 100644 --- a/phpdocker/php-fpm/laravel-worker.conf +++ b/phpdocker/php-fpm/laravel-worker.conf @@ -15,7 +15,7 @@ stdout_logfile=/application/storage/logs/worker.log stopwaitsecs=3600 [program:php-fpm] -command=php-fpm8.2 -F +command=php-fpm8.3 -F process_name=%(program_name)s_%(process_num)02d stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 diff --git a/phpdocker/worker/Dockerfile b/phpdocker/worker/Dockerfile index f53e712..ace8161 100644 --- a/phpdocker/worker/Dockerfile +++ b/phpdocker/worker/Dockerfile @@ -1,9 +1,13 @@ -FROM phpdockerio/php:8.2-fpm +FROM phpdockerio/php:8.4-fpm WORKDIR "/application" RUN apt-get update && \ apt-get -y --no-install-recommends install git \ - php8.2-gd php8.2-mysql php8.2-sqlite3 php8.2-pgsql php8.2-imagick ffmpeg jpegoptim \ + php8.4-gd php8.4-mysql php8.4-sqlite3 php8.4-pgsql ffmpeg jpegoptim \ + php8.4-intl \ + php8.4-memcached \ + imagemagick php8.4-imagick \ python3-pkg-resources supervisor && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* + From 7d9cc1fd335f8fc3d5a830f87dc8c339b6a5aa32 Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Mon, 9 Feb 2026 13:12:22 +0300 Subject: [PATCH 05/11] ci(config): save --- Makefile | 6 ++++++ docker-compose.yml | 1 + phpdocker/nginx/nginx.conf | 14 ++++++++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 8e7a496..42b24a0 100644 --- a/Makefile +++ b/Makefile @@ -86,6 +86,9 @@ mysql-save-prod-db: mysql-restore-saved-from-prod-db: docker compose exec mysql bash -c "cat ./${PROD_DB_FILE} | mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE}" +mysql-restore-saved-from-dev2-db: + docker compose exec mysql bash -c "cat ./${DEV2_DB_FILE} | mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE}" + mysql-remove-latest-prod-db: rm -f ${PROD_DB_FILE} @@ -132,3 +135,6 @@ local-ci: docker compose exec -T php-fpm composer ci init: clone copy-infra-env restart setup-laravel-packages copy-laravel-env setup-laravel-key run-migrations node-frontend-deps build-frontend-prod fix-permissions make-storage-link + +artisan-mcp: + @docker compose exec -T php-fpm ./artisan boost:mcp diff --git a/docker-compose.yml b/docker-compose.yml index cef89a6..ffc0475 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -37,6 +37,7 @@ services: MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} + TZ: "Europe/Moscow" ports: - "1094:3306" labels: diff --git a/phpdocker/nginx/nginx.conf b/phpdocker/nginx/nginx.conf index 5b8463e..6206370 100644 --- a/phpdocker/nginx/nginx.conf +++ b/phpdocker/nginx/nginx.conf @@ -67,8 +67,18 @@ server { fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PHP_VALUE "error_log=/var/log/nginx/application_php_errors.log"; - fastcgi_buffers 16 16k; - fastcgi_buffer_size 32k; + + fastcgi_buffers 16 256k; + fastcgi_buffer_size 512k; + fastcgi_busy_buffers_size 1M; + + fastcgi_buffering off; + + # Таймауты FastCGI + fastcgi_read_timeout 300s; + fastcgi_connect_timeout 300s; + fastcgi_send_timeout 300s; + include fastcgi_params; } } From 791e12dc7bafa8e5d438573f006bc90a0ff0b914 Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Mon, 9 Feb 2026 13:23:56 +0300 Subject: [PATCH 06/11] feat(Makefile): save db from dev2 command --- .env.infra-example | 3 +++ Makefile | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/.env.infra-example b/.env.infra-example index 3a11084..fa34261 100644 --- a/.env.infra-example +++ b/.env.infra-example @@ -15,3 +15,6 @@ MY_APP_GIT_URL="ssh://git@10.55.5.123:222/alex_chevski/eatvio.git" PROD_DB_USER=readonly_user PROD_DB_PASS=baexueShosei0AiD PROD_DB_FILE="latest-prod-db.sql" +DEV2_DB_USER=readonly_user +DEV2_DB_PASS=baexueShosei0AiD +DEV2_DB_FILE="latest-dev2-db.sql" diff --git a/Makefile b/Makefile index 42b24a0..e7d059f 100644 --- a/Makefile +++ b/Makefile @@ -94,9 +94,20 @@ mysql-remove-latest-prod-db: mysql-import-db-from-prod: mysql-save-prod-db mysql-restore-saved-from-prod-db mysql-remove-latest-prod-db +mysql-save-dev2-db: + mysqldump --single-transaction -u${DEV2_DB_USER} -p${DEV2_DB_PASS} -h10.55.5.15 -P1094 eatvio > ${DEV2_DB_FILE} + +mysql-remove-latest-dev2-db: + rm -f ${DEV2_DB_FILE} + +mysql-import-db-from-dev2: mysql-save-dev2-db mysql-restore-saved-from-dev2-db mysql-remove-latest-dev2-db + fetch-media-from-prod: docker compose exec php-fpm ./artisan imports:images-from-prod +fetch-media-from-dev2: + docker compose exec php-fpm ./artisan imports:images-from-dev2 + import-prod-data: mysql-import-db-from-prod fetch-media-from-prod start-frontend: From ba0b4268cd88718d2408f954fef4c8b0bcd513c8 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 3 Mar 2026 15:57:57 +0300 Subject: [PATCH 07/11] feat(livekit): add service --- .env.infra-example | 18 +- docker-compose.yml | 77 +++++- phpdocker/README.html | 334 +++++++++++++----------- phpdocker/README.md | 1 + phpdocker/front-end/Dockerfile | 1 - phpdocker/front-end/laravel-worker.conf | 3 +- phpdocker/php-fpm/laravel-worker.conf | 3 +- phpdocker/php-fpm/php-ini-overrides.ini | 1 + phpdocker/typesense/Dockerfile | 3 + phpdocker/worker/laravel-worker.conf | 1 + phpdocker/worker/php-ini-overrides.ini | 1 + 11 files changed, 266 insertions(+), 177 deletions(-) create mode 100755 phpdocker/typesense/Dockerfile diff --git a/.env.infra-example b/.env.infra-example index 208a2b3..85db77a 100644 --- a/.env.infra-example +++ b/.env.infra-example @@ -11,19 +11,17 @@ MYSQL_ROOT_PASSWORD="nhbnhb22" MYSQL_DATABASE="eatvio" MYSQL_USER="eatvio_user" MYSQL_PASSWORD="eatvio_pass_nhbnhb22" -<<<<<<< HEAD -MY_APP_GIT_URL="ssh://git@10.55.5.123:222/alex_chevski/eatvio.git" -PROD_DB_USER=readonly_user -PROD_DB_PASS=baexueShosei0AiD -PROD_DB_FILE="latest-prod-db.sql" -DEV2_DB_USER=readonly_user -DEV2_DB_PASS=baexueShosei0AiD -DEV2_DB_FILE="latest-dev2-db.sql" -======= PROD_DB_USER=some_user PROD_DB_PASS=strong_pass PROD_DB_FILE="latest-prod-db.sql" PROD_DB_HOST="10.nn.n.n" PROD_DB_PORT="10nn" MY_APP_GIT_URL="ssh://git@10.55.5.123:222/eatvio/eatvio.git" ->>>>>>> eatvio-main +LIVEKIT_URL="livekit.eatv.io" +LIVEKIT_WS_URL="livekit.eatv.io" +LIVEKIT_TURN_DOMAIN="turn.eatv.io" +LIVEKIT_API_KEY=APITRajpYFYdtk9 +LIVEKIT_API_SECRET=VKCfO954C3OU0IeeXxZ1fiUDx9ZmWtvNNp9fCHRfO2JH +LIVEKIT_PORT=7880 +LIVEKIT_RTC_TCP_PORT=7881 +LIVEKIT_TURN_UDP_PORT=3478 diff --git a/docker-compose.yml b/docker-compose.yml index 43d0edb..5df96ab 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -23,6 +23,8 @@ services: networks: - ns-eatvio restart: always + labels: + - "traefik.enable=false" mysql: image: "mysql:8.0" @@ -37,6 +39,7 @@ services: MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} + TZ: "Evrope/Moscow" ports: - "1094:3306" labels: @@ -71,7 +74,7 @@ services: working_dir: /application environment: - TZ=Europe/Moscow - - CHOKIDAR_USEPOLLING=true + #- CHOKIDAR_USEPOLLING=true networks: - ns-eatvio volumes: @@ -119,7 +122,7 @@ services: labels: - "traefik.docker.network=web" - "traefik.enable=true" - - "traefik.frontend.rule=Host:dev2.eatvio.com,socket.eatvio.com" + - "traefik.frontend.rule=Host:wstesting.eatv.io,testing.eatv.io" - "traefik.port=80" - "traefik.protocol=http" @@ -131,24 +134,80 @@ services: - ns-eatvio typesense: - image: typesense/typesense:29.0 + build: ./phpdocker/typesense restart: always healthcheck: - test: - - CMD - - wget - - "--no-verbose" - - "--spider" - - "http://localhost:8108/health" + test: ["CMD", "curl", "-f", "http://localhost:8108/health"] networks: - ns-eatvio volumes: - ./typesense-data:/data command: "--data-dir /data --api-key=typesense --enable-cors" + livekit-redis: + image: redis:7-alpine + command: + [ + "redis-server", + "--appendonly", + "no", + "--maxmemory", + "500mb", + "--maxmemory-policy", + "allkeys-lru", + ] + networks: + - ns-eatvio + volumes: + - livekit_redis_data:/data + restart: always + labels: + - "traefik.enable=false" + + livekit: + image: livekit/livekit-server:latest + depends_on: + - livekit-redis + networks: + - ns-eatvio + - web + ports: + - "${LIVEKIT_PORT:-7880}:7880" + - "${LIVEKIT_RTC_TCP_PORT:-7881}:7881" + - "50000-50100:50000-50100/udp" + - "${LIVEKIT_TURN_UDP_PORT:-3478}:3478/udp" + environment: + LIVEKIT_CONFIG: | + port: 7880 + log_level: info + rtc: + tcp_port: 7881 + port_range_start: 50000 + port_range_end: 50100 + use_external_ip: true + redis: + address: livekit-redis:6379 + keys: + ${LIVEKIT_API_KEY}: ${LIVEKIT_API_SECRET} + turn: + enabled: true + domain: ${LIVEKIT_TURN_DOMAIN} + udp_port: 3478 + # tls_port: 5349 + restart: always + labels: + - "traefik.docker.network=web" + - "traefik.enable=true" + - "traefik.frontend.rule=Host:turn.eatv.io,livekit.eatv.io" + - "traefik.port=${LIVEKIT_PORT:-7880}" + - "traefik.protocol=http" + networks: web: external: true ns-eatvio: external: false +volumes: + livekit_redis_data: + diff --git a/phpdocker/README.html b/phpdocker/README.html index e5ec0b8..2dec403 100644 --- a/phpdocker/README.html +++ b/phpdocker/README.html @@ -1,208 +1,232 @@ - - PHPDocker.io Readme - - + + PHPDocker.io Readme + + + + -
+
-

PHPDocker.io generated environment

+

PHPDocker.io generated environment

-

Add to your project

+

Add to your project

-

Simply, unzip the file into your project, this will create docker-compose.yml on the root of your project and a folder -named phpdocker containing nginx and php-fpm config for it.

+

Simply, unzip the file into your project, this will create docker-compose.yml on the root of your + project and a folder + named phpdocker containing nginx and php-fpm config for it.

-

Ensure the webserver config on phpdocker/nginx/nginx.conf is correct for your project. PHPDocker.io will have -customised this file according to the front controller location relative to the docker-compose file you chose on the -generator (by default public/index.php).

+

Ensure the webserver config on phpdocker/nginx/nginx.conf is correct for your project. + PHPDocker.io will have + customised this file according to the front controller location relative to the docker-compose file you chose on + the + generator (by default public/index.php).

-

Note: you may place the files elsewhere in your project. Make sure you modify the locations for the php-fpm dockerfile, -the php.ini overrides and nginx config on docker-compose.yml if you do so.

+

Note: you may place the files elsewhere in your project. Make sure you modify the locations for the php-fpm + dockerfile, + the php.ini overrides and nginx config on docker-compose.yml if you do so.

-

How to run

+

How to run

-

Dependencies:

+

Dependencies:

- + -

Once you're done, simply cd to your project and run docker-compose up -d. This will initialise and start all the -containers, then leave them running in the background.

+

Once you're done, simply cd to your project and run docker-compose up -d. This will + initialise and start all the + containers, then leave them running in the background.

-

Services exposed outside your environment

+

Services exposed outside your environment

-

You can access your application via localhost. Mailhog and nginx both respond to any hostname, in case you want to -add your own hostname on your /etc/hosts

+

You can access your application via localhost. Mailhog and nginx both respond to + any hostname, in case you want to + add your own hostname on your /etc/hosts

- - - - - - - - - - - - - - - - - -
ServiceAddress outside containers
Webserverlocalhost:1092
MySQLhost: localhost; port: 1094
+ + + + + + + + + + + + + + + + + +
ServiceAddress outside containers
Webserverlocalhost:1092
MySQLhost: localhost; port: 1094
-

Hosts within your environment

+

Hosts within your environment

-

You'll need to configure your application to use any services you enabled:

+

You'll need to configure your application to use any services you enabled:

- - - - - - - - - - - - - - - - - - - - -
ServiceHostnamePort number
php-fpmphp-fpm9000
MySQLmysql3306 (default)
+ + + + + + + + + + + + + + + + + + + + +
ServiceHostnamePort number
php-fpmphp-fpm9000
MySQLmysql3306 (default)
-

Docker compose cheatsheet

+

Docker compose cheatsheet

-

Note: you need to cd first to where your docker-compose.yml file lives.

+

Note: you need to cd first to where your docker-compose.yml file lives.

-
    -
  • Start containers in the background: docker-compose up -d
  • -
  • Start containers on the foreground: docker-compose up. You will see a stream of logs for every container running. -ctrl+c stops containers.
  • -
  • Stop containers: docker-compose stop
  • -
  • Kill containers: docker-compose kill
  • -
  • View container logs: docker-compose logs for all containers or docker-compose logs SERVICE_NAME for the logs of -all containers in SERVICE_NAME.
  • -
  • Execute command inside of container: docker-compose exec SERVICE_NAME COMMAND where COMMAND is whatever you want -to run. Examples: +
      +
    • Start containers in the background: docker-compose up -d
    • +
    • Start containers on the foreground: docker-compose up. You will see a stream of logs for every + container running. + ctrl+c stops containers.
    • +
    • Stop containers: docker-compose stop
    • +
    • Kill containers: docker-compose kill
    • +
    • View container logs: docker-compose logs for all containers or docker-compose logs + SERVICE_NAME for the logs of + all containers in SERVICE_NAME.
    • +
    • Execute command inside of container: docker-compose exec SERVICE_NAME COMMAND where + COMMAND is whatever you want + to run. Examples: -
        -
      • Shell into the PHP container, docker-compose exec php-fpm bash
      • -
      • Run symfony console, docker-compose exec php-fpm bin/console
      • -
      • Open a mysql shell, docker-compose exec mysql mysql -uroot -pCHOSEN_ROOT_PASSWORD
      • -
    • -
    +
      +
    • Shell into the PHP container, docker-compose exec php-fpm bash
    • +
    • Run symfony console, docker-compose exec php-fpm bin/console
    • +
    • Open a mysql shell, docker-compose exec mysql mysql -uroot -pCHOSEN_ROOT_PASSWORD
    • +
    +
  • +
-

Application file permissions

+

Application file permissions

-

As in all server environments, your application needs the correct file permissions to work properly. You can change the -files throughout the container, so you won't care if the user exists or has the same ID on your host.

+

As in all server environments, your application needs the correct file permissions to work properly. You can + change the + files throughout the container, so you won't care if the user exists or has the same ID on your host.

-

docker-compose exec php-fpm chown -R www-data:www-data /application/public

+

docker-compose exec php-fpm chown -R www-data:www-data /application/public

-

Recommendations

+

Recommendations

-

It's hard to avoid file permission issues when fiddling about with containers due to the fact that, from your OS point -of view, any files created within the container are owned by the process that runs the docker engine (this is usually -root). Different OS will also have different problems, for instance you can run stuff in containers -using docker exec -it -u $(id -u):$(id -g) CONTAINER_NAME COMMAND to force your current user ID into the process, but -this will only work if your host OS is Linux, not mac. Follow a couple of simple rules and save yourself a world of -hurt.

+

It's hard to avoid file permission issues when fiddling about with containers due to the fact that, from your + OS point + of view, any files created within the container are owned by the process that runs the docker engine (this is + usually + root). Different OS will also have different problems, for instance you can run stuff in containers + using docker exec -it -u $(id -u):$(id -g) CONTAINER_NAME COMMAND to force your current user ID + into the process, but + this will only work if your host OS is Linux, not mac. Follow a couple of simple rules and save yourself a world + of + hurt.

-
    -
  • Run composer outside of the php container, as doing so would install all your dependencies owned by root within your -vendor folder.
  • -
  • Run commands (ie Symfony's console, or Laravel's artisan) straight inside of your container. You can easily open a -shell as described above and do your thing from there.
  • -
+
    +
  • Run composer outside of the php container, as doing so would install all your dependencies owned by + root within your + vendor folder.
  • +
  • Run commands (ie Symfony's console, or Laravel's artisan) straight inside of your container. You can easily + open a + shell as described above and do your thing from there.
  • +
-

Simple basic Xdebug configuration with integration to PHPStorm

+

Simple basic Xdebug configuration with integration to PHPStorm

-

Xdebug 2

+

Xdebug 2

-

To configure Xdebug 2 you need add these lines in php-fpm/php-ini-overrides.ini:

+

To configure Xdebug 2 you need add these lines in php-fpm/php-ini-overrides.ini:

-

For linux:

+

For linux:

-
xdebug.remote_enable = 1
-xdebug.remote_connect_back = 1
-xdebug.remote_autostart = 1
-
+
xdebug.remote_enable = 1
+          xdebug.remote_connect_back = 1
+          xdebug.remote_autostart = 1
+        
-

For macOS and Windows:

+

For macOS and Windows:

-
xdebug.remote_enable = 1
-xdebug.remote_host = host.docker.internal
-xdebug.remote_autostart = 1
-
+
xdebug.remote_enable = 1
+          xdebug.remote_host = host.docker.internal
+          xdebug.remote_autostart = 1
+        
-

Xdebug 3

+

Xdebug 3

-

To configure Xdebug 3 you need add these lines in php-fpm/php-ini-overrides.ini:

+

To configure Xdebug 3 you need add these lines in php-fpm/php-ini-overrides.ini:

-

For linux:

+

For linux:

-
xdebug.mode = debug
-xdebug.remote_connect_back = true
-xdebug.start_with_request = yes
-
+
xdebug.mode = debug
+          xdebug.remote_connect_back = true
+          xdebug.start_with_request = yes
+        
-

For macOS and Windows:

+

For macOS and Windows:

-
xdebug.mode = debug
-xdebug.remote_host = host.docker.internal
-xdebug.start_with_request = yes
-
+
xdebug.mode = debug
+          xdebug.remote_host = host.docker.internal
+          xdebug.start_with_request = yes
+        
-

Add the section “environment” to the php-fpm service in docker-compose.yml:

+

Add the section “environment” to the php-fpm service in docker-compose.yml:

-
environment:
-  PHP_IDE_CONFIG: "serverName=Docker"
-
+
environment:
+          PHP_IDE_CONFIG: "serverName=Docker"
+        
-

Create a server configuration in PHPStorm:

+

Create a server configuration in PHPStorm:

-
    -
  • In PHPStorm open Preferences | Languages & Frameworks | PHP | Servers
  • -
  • Add new server
  • -
  • The “Name” field should be the same as the parameter “serverName” value in “environment” in docker-compose.yml (i.e. * -Docker* in the example above)
  • -
  • A value of the "port" field should be the same as first port(before a colon) in "webserver" service in -docker-compose.yml
  • -
  • Select "Use path mappings" and set mappings between a path to your project on a host system and the Docker container.
  • -
  • Finally, add “Xdebug helper” extension in your browser, set breakpoints and start debugging
  • -
+
    +
  • In PHPStorm open Preferences | Languages & Frameworks | PHP | Servers
  • +
  • Add new server
  • +
  • The “Name” field should be the same as the parameter “serverName” value in “environment” in + docker-compose.yml (i.e. * + Docker* in the example above)
  • +
  • A value of the "port" field should be the same as first port(before a colon) in "webserver" service in + docker-compose.yml
  • +
  • Select "Use path mappings" and set mappings between a path to your project on a host system and the Docker + container.
  • +
  • Finally, add “Xdebug helper” extension in your browser, set breakpoints and start debugging
  • +
-
+
- + + diff --git a/phpdocker/README.md b/phpdocker/README.md index 3452aaa..5930545 100644 --- a/phpdocker/README.md +++ b/phpdocker/README.md @@ -142,3 +142,4 @@ environment: + diff --git a/phpdocker/front-end/Dockerfile b/phpdocker/front-end/Dockerfile index a70b5d1..9d0ea28 100644 --- a/phpdocker/front-end/Dockerfile +++ b/phpdocker/front-end/Dockerfile @@ -14,4 +14,3 @@ RUN apt-get update && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* ENV PATH=node_modules/.bin:$PATH - diff --git a/phpdocker/front-end/laravel-worker.conf b/phpdocker/front-end/laravel-worker.conf index fa6fcd8..0df562a 100644 --- a/phpdocker/front-end/laravel-worker.conf +++ b/phpdocker/front-end/laravel-worker.conf @@ -15,9 +15,10 @@ stdout_logfile=/application/storage/logs/worker.log stopwaitsecs=3600 [program:php-fpm] -command=php-fpm8.3 -F +command=php-fpm8.2 -F process_name=%(program_name)s_%(process_num)02d stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stdderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 + diff --git a/phpdocker/php-fpm/laravel-worker.conf b/phpdocker/php-fpm/laravel-worker.conf index fa6fcd8..0df562a 100644 --- a/phpdocker/php-fpm/laravel-worker.conf +++ b/phpdocker/php-fpm/laravel-worker.conf @@ -15,9 +15,10 @@ stdout_logfile=/application/storage/logs/worker.log stopwaitsecs=3600 [program:php-fpm] -command=php-fpm8.3 -F +command=php-fpm8.2 -F process_name=%(program_name)s_%(process_num)02d stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stdderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 + diff --git a/phpdocker/php-fpm/php-ini-overrides.ini b/phpdocker/php-fpm/php-ini-overrides.ini index 850ae11..28d6878 100644 --- a/phpdocker/php-fpm/php-ini-overrides.ini +++ b/phpdocker/php-fpm/php-ini-overrides.ini @@ -1,2 +1,3 @@ upload_max_filesize = 100M post_max_size = 108M + diff --git a/phpdocker/typesense/Dockerfile b/phpdocker/typesense/Dockerfile new file mode 100755 index 0000000..030c9ad --- /dev/null +++ b/phpdocker/typesense/Dockerfile @@ -0,0 +1,3 @@ +FROM typesense/typesense:29.0 +USER root +RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* diff --git a/phpdocker/worker/laravel-worker.conf b/phpdocker/worker/laravel-worker.conf index 8cc5818..7218686 100644 --- a/phpdocker/worker/laravel-worker.conf +++ b/phpdocker/worker/laravel-worker.conf @@ -53,3 +53,4 @@ numprocs=8 redirect_stderr=true stdout_logfile=/application/storage/logs/scout-worker.log stopwaitsecs=3600 + diff --git a/phpdocker/worker/php-ini-overrides.ini b/phpdocker/worker/php-ini-overrides.ini index 850ae11..28d6878 100644 --- a/phpdocker/worker/php-ini-overrides.ini +++ b/phpdocker/worker/php-ini-overrides.ini @@ -1,2 +1,3 @@ upload_max_filesize = 100M post_max_size = 108M + From 1889914d834277b356c9a4923bf5d2f84b41c5d7 Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Tue, 3 Mar 2026 17:01:58 +0300 Subject: [PATCH 08/11] refactor(docker-compose, nginx.conf): remove comments, default nginx config --- phpdocker/nginx/alex.eatvio.local+4-key.pem | 28 ------------------- phpdocker/nginx/alex.eatvio.local+4.pem | 25 ----------------- .../nginx/socket.alex.eatvio.local+4-key.pem | 28 ------------------- .../nginx/socket.alex.eatvio.local+4.pem | 25 ----------------- 4 files changed, 106 deletions(-) delete mode 100644 phpdocker/nginx/alex.eatvio.local+4-key.pem delete mode 100644 phpdocker/nginx/alex.eatvio.local+4.pem delete mode 100644 phpdocker/nginx/socket.alex.eatvio.local+4-key.pem delete mode 100644 phpdocker/nginx/socket.alex.eatvio.local+4.pem diff --git a/phpdocker/nginx/alex.eatvio.local+4-key.pem b/phpdocker/nginx/alex.eatvio.local+4-key.pem deleted file mode 100644 index 403d482..0000000 --- a/phpdocker/nginx/alex.eatvio.local+4-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDidLGXEA9IJ8gC -/GdlWLDhw4q84zNE2sv1tZ2WvwP8swZfWeoQeRDDRXNdWKaV2wJW2aYKeoD8Rw1S -FmfqO9lhhfT80OiYIiG8THbMvyfi0nzivG9Vo1J2GY8bBI4Mtws6LFmVJs0Lg3ce -HIgUd3O14VNrQrlowY1nzImBBO6UBW/Pce/R6PW2rEK64DqzY/jy+qKp14N0zOVv -4X7FLwE9Bf3XBxJ946VFf9t8ec+1pM7U42vCZNnrigikiYDLs8giBkDwOecf+jvf -2Sn6n0UKEakjI0gd/Kt+uBbGRtJQUka4XnFquLnQd4Q2m3TZ36r74I/GFtskASa7 -5DvJpXWbAgMBAAECggEAdH3VEUGYquST9j1DLxZFv41opCw4JnZrL1Wi4HYYpfiu -EYTebGTq45ipdN5yq2oDNQw3ZvKHwb8HMjAGeq8Y7xsK4LbSv9fnBMdM4Zx/9yWS -SszmdOZUOB6DyEE6lX3fz6ga2SghmIejUiEZO3YLVwe3ctjbKfFPPZMxNOaFmCyP -3LpVXvG0Nh5G1DRZXtJDCVv7O99cA8q+5EyUJ20XFjkY36MAzFN/SjN7teGW0RSq -ASFubAEODPryCfwnCWZTCE3KzLJuwId4Yzfyqfd1q55glOmdTKdGsmPxJgxYv7WZ -2JTlNsZIWuv/753XzSiJrMrAsgByIyB7tsehUSegaQKBgQDm2zplHGdUWRPoQsLj -uCtLCF+WhWfQ+Jz6mt5CuT7Glp1mfAwgtjXg9EmHztNaFENswUuk1y69wlV+vBKk -XGhb3gjZQsZHjFYinN8BLK3pjBte+IMnKkoyhLV9EMUKvXvCxdxZJ1cnWJR1FeKp -/xCM37cNZkXekAAltKw3U2IxXQKBgQD7HsT+NEWYSP1/1U0B6PJVi8kNUBY/G7DP -3A5Le/S8WjbBGVPkOw1lFOvlXVi6Hmdlgqb5nBk7QZCzc+Mk9Mc3dJ66c1/uEjU7 -67e1oHL7OoA/QJ9WXsi4CR+9f07taV/uUsnLVAmbodK94VNHeMgn16Z24Su0irCH -ehVOh9t7VwKBgQDDzNL1aSbWqoqw5tbnT5AgnqR8RP/thL+X6fxzOSzeQGaVwsaC -hCikeG1ZK3mlICSjvDpNQFkbhxT+XcOt9dZpfKOiqfkEPCneR5D5LQ0AVd3tKfgL -Ito1iMtpnOySlG3AoBKo5y4LaBzaRcquhnBiG2jli4XdI+OMF3YtoqJY3QKBgQDk -GGbGn6Q3VtUrsAtqmLTFj1rnhL8wQ26u3yr81XLPQwJJE0BoJltcXUyH4eod5E/2 -nF4ei/M/J6bP2YuQneX2MS+cHAAettszuj/78el+2Px0d7ZDNYUL5P23mlOOwhAo -4Xn5/jNb8fkCEBEc8lCcH/1MLesM6oy+Ad4onq51sQKBgQCEjjSZ/J6QdlECjcRa -EfmZI4gDdgcavbKPbyUM54OXsVH4JOO31Vr+GA0bdXIy+kfQ69P1mxAO6ZaS5iuz -iW63LsDGCDtNybVcPap0BS0pfG7uVkw6Fn3rL5vxF8buKGfcJb6NRZh5VDQTUqyh -+L9/5TWkjFcG9t+Aaj7/Pe3hBA== ------END PRIVATE KEY----- diff --git a/phpdocker/nginx/alex.eatvio.local+4.pem b/phpdocker/nginx/alex.eatvio.local+4.pem deleted file mode 100644 index 2d48a52..0000000 --- a/phpdocker/nginx/alex.eatvio.local+4.pem +++ /dev/null @@ -1,25 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIENDCCApygAwIBAgIRAO6EUiZfVufPFe8Xmg2neeMwDQYJKoZIhvcNAQELBQAw -TzEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMRIwEAYDVQQLDAlhbGV4 -QGFsZXgxGTAXBgNVBAMMEG1rY2VydCBhbGV4QGFsZXgwHhcNMjQwOTAyMDc0MzI0 -WhcNMjYxMjAyMDc0MzI0WjA9MScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQg -Y2VydGlmaWNhdGUxEjAQBgNVBAsMCWFsZXhAYWxleDCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBAOJ0sZcQD0gnyAL8Z2VYsOHDirzjM0Tay/W1nZa/A/yz -Bl9Z6hB5EMNFc11YppXbAlbZpgp6gPxHDVIWZ+o72WGF9PzQ6JgiIbxMdsy/J+LS -fOK8b1WjUnYZjxsEjgy3CzosWZUmzQuDdx4ciBR3c7XhU2tCuWjBjWfMiYEE7pQF -b89x79Ho9basQrrgOrNj+PL6oqnXg3TM5W/hfsUvAT0F/dcHEn3jpUV/23x5z7Wk -ztTja8Jk2euKCKSJgMuzyCIGQPA55x/6O9/ZKfqfRQoRqSMjSB38q364FsZG0lBS -RrhecWq4udB3hDabdNnfqvvgj8YW2yQBJrvkO8mldZsCAwEAAaOBnDCBmTAOBgNV -HQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUwcxZ -u77uAlfsP52FQ+10ocE8KqgwUQYDVR0RBEowSIIRYWxleC5lYXR2aW8ubG9jYWyC -EGFsZXguZWF0dmlvLnRlc3SCCWxvY2FsaG9zdIcECjcFeYcQAAAAAAAAAAAAAAAA -AAAAATANBgkqhkiG9w0BAQsFAAOCAYEArx+/xKh7gO2rbB6bisYr5oLm6FLsbBZG -JWU7npue0LEiGvxy9jXwfF2subvX22wblHbuxUtKbWPMdAcMqcuQsFq8KeIcTZ9Z -NJ27cqLFbjzXFJIR+jnsrBNyUKvGnJKjXBS2rN/D51bLfNf/lkYoyzBtKf9VUPjs -mH94aByu3T8GoGDgOtBH7zc5GGzzAQ9i2Jgfpo//sxpiVPae5KX3r7cAdX50S/kN -WId2TxejtgnZsmuFuWha3qWIT0Bc69osJUrLQRoEO1vVGQpVL3qSdBsloFQZtCBY -hE3ZR/CnJqzm/iVR9x9OqAUdeKAA2EbAaBWOuJsyOQsWoJj4K4aFeFGoZ7OFU51f -9zS02vytWrhqSLItHTFPoOI8aw8CuY7cr4mWPyCTwjpEcpfP1upDsFqPP7aCjQDP -7HHsuiLaP1Wgr5LsO4WhDWjYzTvJnKbQWRX8AXeV2UUWJ3fMHDX3Sw0Jm0JoiNUO -muKBI6FMLIbqVEs/cOQaIXka4KSx4oA1 ------END CERTIFICATE----- diff --git a/phpdocker/nginx/socket.alex.eatvio.local+4-key.pem b/phpdocker/nginx/socket.alex.eatvio.local+4-key.pem deleted file mode 100644 index 922e2fb..0000000 --- a/phpdocker/nginx/socket.alex.eatvio.local+4-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDLhkQ7URIQtK2A -E1xQazxdfzIW6r4mKAnQpBJWbmCylv2/rsjfIEFaNpDIq7uIiR2RqXPlsy9FTaYg -yVLayzI4nDYgmpcoxQhOw9gX9P7O1UX/GS+vDvmsjq0H6Gg+Kb/Cxu7gstbLziXJ -5rdii/INrUHSzbmzdSsUGQyasVz82ify9Wf/gtC/0l23qflK/Tkwj31fTfOMLDch -4irue2HTHUdACKTiH3W9t1U4HMlyT6fOb3199hL3BNdN4s1+dg1nRqo9//lEuO8j -yS8u/an1j+slOo+wuk0EolCJJ7VJos05cET6VRmMcub4g7RImLFUFr+PWV0mMEh6 -ekCDylnDAgMBAAECggEAPpjsUYYs1UCNAJBz2zQwW91sTYojs96qriZYkYbfbO5t -20/p7l6gWxvfSikvw93QX2XMBMEo79rjFsB1IGBQ8QJyz3JcvahkVr17sFqlKH6G -SeC4PtKPTliPtZfwv/XdSg4fmLLIx+R+0OuKSeAbMcOxNCIcVKrb9hGCQ+37WLVA -G2zfKzEg0MDl9I3rA5rmR30rl0V2YDqMOsnQid9k+zG7yFGFmNLiu98VV3bVIgZ6 -7v/LSsjRMaldijn5PSSVvSjq69scJlTF9l+ZB0Mt3M9hF0jRxlFH3Tm304ZUXn1X -M5yHi5paY8qCyxVgnOdkll3W5jowlZMtxTMuv+WDcQKBgQDiRqAhVo9/66SPZbZI -b2Sn1GkaKBZX/FJl9K4DU2/lwXgRZLaa8G2mMiv0UckCTBtOid5ud4LiepJh6rja -ypCtqge4womaBN15cJdDOyYO4vSlyll9bi9+mcpJy7p3NKLaj1Ki1Qrqb3L+GlkH -5/j3uaT0JlmwJ9iCrn1Kq8oeeQKBgQDmQoo0DZ86GMbi6g1m2LOOs16zHtG69gNX -XRvUWK/HEcami7yLbpiOMUKkJA+r26vb7CaM3Xo2gz9TFspY0woUUL0lKaWKecWJ -CmnfxlJaQ19j50t8hYkdaCTczOtLWywzHoE25xKBiVJgw4tw2PjPt7NZo9aN+Dyt -sxVbtj17GwKBgQDaBGR7WrSu8zO+OqkUR8f68O1Hl4JXyjT2KXeUmssA25U9ZQWQ -acGsVUEGidqcDQpudOZNF3eTkbgDAi6UGIKn4WDJQx9jt/ZQ8Qu9ansz8rb4Gux4 -rzaxy6odyl7iRmP3JArh+1UmJrXsYSSROpAm18c4us7FrM6us0LjNHxtOQKBgQDb -zAKe463tyD751k/Kr+reugwY0b+ER1gzKfbpwWqxjR9iVZs6Qe0wNoeVpbKr63pm -6Up3RudlZ+2nw+aN2Y4SjGuxMMsLn2fXg/BCos5zyUIiXGRrThDv2Dzv5FBq03Ii -rejMXtEEg+/13FOb+hGwPnvego3JYX+Sk5M8w352pwKBgFBQp6lwvC9fH4xKlfzR -suWwt/uPb0uo0M6y5uosx1gDOmk86ucU6Ka34U+CLNywAIyaZem9wpRb1JyKCt3/ -SZt4Cs4zwOyr2Kw8QstqKkkSAs2RVfSN4YPM6fkDE59leg/7m5wTj0MW04Rn45mc -Vw15ekSv133tUKximh0t5cvM ------END PRIVATE KEY----- diff --git a/phpdocker/nginx/socket.alex.eatvio.local+4.pem b/phpdocker/nginx/socket.alex.eatvio.local+4.pem deleted file mode 100644 index 61e3f7b..0000000 --- a/phpdocker/nginx/socket.alex.eatvio.local+4.pem +++ /dev/null @@ -1,25 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEQjCCAqqgAwIBAgIRAK/w6zEhYEt/SZPQdtguFKYwDQYJKoZIhvcNAQELBQAw -TzEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMRIwEAYDVQQLDAlhbGV4 -QGFsZXgxGTAXBgNVBAMMEG1rY2VydCBhbGV4QGFsZXgwHhcNMjQwOTAyMDc0MzM2 -WhcNMjYxMjAyMDc0MzM2WjA9MScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQg -Y2VydGlmaWNhdGUxEjAQBgNVBAsMCWFsZXhAYWxleDCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBAMuGRDtREhC0rYATXFBrPF1/MhbqviYoCdCkElZuYLKW -/b+uyN8gQVo2kMiru4iJHZGpc+WzL0VNpiDJUtrLMjicNiCalyjFCE7D2Bf0/s7V -Rf8ZL68O+ayOrQfoaD4pv8LG7uCy1svOJcnmt2KL8g2tQdLNubN1KxQZDJqxXPza -J/L1Z/+C0L/SXbep+Ur9OTCPfV9N84wsNyHiKu57YdMdR0AIpOIfdb23VTgcyXJP -p85vfX32EvcE103izX52DWdGqj3/+US47yPJLy79qfWP6yU6j7C6TQSiUIkntUmi -zTlwRPpVGYxy5viDtEiYsVQWv49ZXSYwSHp6QIPKWcMCAwEAAaOBqjCBpzAOBgNV -HQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUwcxZ -u77uAlfsP52FQ+10ocE8KqgwXwYDVR0RBFgwVoIYc29ja2V0LmFsZXguZWF0dmlv -LmxvY2Fsghdzb2NrZXQuYWxleC5lYXR2aW8udGVzdIIJbG9jYWxob3N0hwQKNwV5 -hxAAAAAAAAAAAAAAAAAAAAABMA0GCSqGSIb3DQEBCwUAA4IBgQCR6GilrCsiKLp0 -0VVaRSktjjjdddnW9QkZ//4JTwWFhadc1HB5enLS6RFFDNoo9LnWeQatK39tiRaN -9o4YPJlx6NcMgHDX0UnVPsyvVQkQ2+5U7nXkdR5XgQIAp8EexPK4g8Sj8pILYSE6 -+If+t6rpB0zCbcMHgInQPohRsCpMzl612G4/lzSjEc7NwAlyyPNXcT1n+YrfR28v -uVRDdSKQkJ8n4XTAJwHN19HomNfrASFG6P02bdd8AZKuNxc+yeucpsTHyAzc6N3Z -xXG2fTwfbTkQbie9guZQRmd7ZERA7usDwGhaAIW/CDNBUvdpFzvYNsp8mv9UhSZF -I8WAOLvLosX+9yiE0SB9sEqIjS1cuZv6jek1wDlU78rOywBUJbeNIB4k8YyPXU3g -MnXEm8qMW60zKWm0Z4ucP5AnbN/938mpJ4DFNH/wuA+bKLEI+cAkMF8BNhMcFZ0U -Jq1l75URBrteimBYxmH4GK5y1l2ZW1I5fBz2PCGj7ZGTHz3J9NQ= ------END CERTIFICATE----- From b71f5862094f41f75f84254561bbdca3e92d93b5 Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Tue, 3 Mar 2026 17:32:21 +0300 Subject: [PATCH 09/11] refactor(configs): remove trailing newlines from docker and config files --- Makefile | 2 -- docker-compose.yml | 1 - phpdocker/front-end/laravel-worker.conf | 1 - phpdocker/nginx/nginx.conf | 1 - phpdocker/php-fpm/Dockerfile | 1 - phpdocker/php-fpm/laravel-worker.conf | 1 - phpdocker/php-fpm/php-ini-overrides.ini | 1 - phpdocker/worker/Dockerfile | 1 - phpdocker/worker/laravel-worker.conf | 1 - phpdocker/worker/php-ini-overrides.ini | 1 - 10 files changed, 11 deletions(-) diff --git a/Makefile b/Makefile index 70e2155..81c8ef8 100644 --- a/Makefile +++ b/Makefile @@ -184,5 +184,3 @@ pull-services: docker compose pull force-rebuild-services: stop rebuild-services pull-services start - - diff --git a/docker-compose.yml b/docker-compose.yml index 5df96ab..e7bb157 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -210,4 +210,3 @@ networks: volumes: livekit_redis_data: - diff --git a/phpdocker/front-end/laravel-worker.conf b/phpdocker/front-end/laravel-worker.conf index 0df562a..3826cdc 100644 --- a/phpdocker/front-end/laravel-worker.conf +++ b/phpdocker/front-end/laravel-worker.conf @@ -21,4 +21,3 @@ stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stdderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 - diff --git a/phpdocker/nginx/nginx.conf b/phpdocker/nginx/nginx.conf index cbe0da5..eba6cbb 100644 --- a/phpdocker/nginx/nginx.conf +++ b/phpdocker/nginx/nginx.conf @@ -94,4 +94,3 @@ server { error_log /dev/stdout info; access_log /dev/stdout; } - diff --git a/phpdocker/php-fpm/Dockerfile b/phpdocker/php-fpm/Dockerfile index b1db016..8ac338a 100644 --- a/phpdocker/php-fpm/Dockerfile +++ b/phpdocker/php-fpm/Dockerfile @@ -19,4 +19,3 @@ RUN apt-get update && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* ENV PATH=node_modules/.bin:$PATH - diff --git a/phpdocker/php-fpm/laravel-worker.conf b/phpdocker/php-fpm/laravel-worker.conf index 0df562a..3826cdc 100644 --- a/phpdocker/php-fpm/laravel-worker.conf +++ b/phpdocker/php-fpm/laravel-worker.conf @@ -21,4 +21,3 @@ stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stdderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 - diff --git a/phpdocker/php-fpm/php-ini-overrides.ini b/phpdocker/php-fpm/php-ini-overrides.ini index 28d6878..850ae11 100644 --- a/phpdocker/php-fpm/php-ini-overrides.ini +++ b/phpdocker/php-fpm/php-ini-overrides.ini @@ -1,3 +1,2 @@ upload_max_filesize = 100M post_max_size = 108M - diff --git a/phpdocker/worker/Dockerfile b/phpdocker/worker/Dockerfile index ace8161..6a57d1e 100644 --- a/phpdocker/worker/Dockerfile +++ b/phpdocker/worker/Dockerfile @@ -10,4 +10,3 @@ RUN apt-get update && \ python3-pkg-resources supervisor && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* - diff --git a/phpdocker/worker/laravel-worker.conf b/phpdocker/worker/laravel-worker.conf index 7218686..8cc5818 100644 --- a/phpdocker/worker/laravel-worker.conf +++ b/phpdocker/worker/laravel-worker.conf @@ -53,4 +53,3 @@ numprocs=8 redirect_stderr=true stdout_logfile=/application/storage/logs/scout-worker.log stopwaitsecs=3600 - diff --git a/phpdocker/worker/php-ini-overrides.ini b/phpdocker/worker/php-ini-overrides.ini index 28d6878..850ae11 100644 --- a/phpdocker/worker/php-ini-overrides.ini +++ b/phpdocker/worker/php-ini-overrides.ini @@ -1,3 +1,2 @@ upload_max_filesize = 100M post_max_size = 108M - From a3ce339243cbfac0d14ca26d1d52c3e9a7feb49b Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Tue, 3 Mar 2026 17:33:20 +0300 Subject: [PATCH 10/11] refactor(configs): remove trailing newlines from docker and config files --- phpdocker/README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/phpdocker/README.md b/phpdocker/README.md index 5930545..dfc0309 100644 --- a/phpdocker/README.md +++ b/phpdocker/README.md @@ -139,7 +139,3 @@ environment: docker-compose.yml * Select "Use path mappings" and set mappings between a path to your project on a host system and the Docker container. * Finally, add “Xdebug helper” extension in your browser, set breakpoints and start debugging - - - - From fc51f7003e0e5640f9feec09f5c9110690b5f163 Mon Sep 17 00:00:00 2001 From: alex-chevski Date: Thu, 5 Mar 2026 12:14:00 +0300 Subject: [PATCH 11/11] fix(docker): enable CHOKIDAR_USEPOLLING for hot reload --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index e7bb157..5ed9410 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -74,7 +74,7 @@ services: working_dir: /application environment: - TZ=Europe/Moscow - #- CHOKIDAR_USEPOLLING=true + - CHOKIDAR_USEPOLLING=true networks: - ns-eatvio volumes: