initial commit
This commit is contained in:
		
						commit
						8c911db092
					
				
							
								
								
									
										20
									
								
								.env
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								.env
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					# In all environments, the following files are loaded if they exist,
 | 
				
			||||||
 | 
					# the latter taking precedence over the former:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#  * .env                contains default values for the environment variables needed by the app
 | 
				
			||||||
 | 
					#  * .env.local          uncommitted file with local overrides
 | 
				
			||||||
 | 
					#  * .env.$APP_ENV       committed environment-specific defaults
 | 
				
			||||||
 | 
					#  * .env.$APP_ENV.local uncommitted environment-specific overrides
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Real environment variables win over .env files.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
 | 
				
			||||||
 | 
					# https://symfony.com/doc/current/configuration/secrets.html
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
 | 
				
			||||||
 | 
					# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					###> symfony/framework-bundle ###
 | 
				
			||||||
 | 
					APP_ENV=dev
 | 
				
			||||||
 | 
					APP_SECRET=f27f6cb11fb594fcb5ab4591ec0aac77
 | 
				
			||||||
 | 
					###< symfony/framework-bundle ###
 | 
				
			||||||
							
								
								
									
										13
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					###> symfony/framework-bundle ###
 | 
				
			||||||
 | 
					/.env.local
 | 
				
			||||||
 | 
					/.env.local.php
 | 
				
			||||||
 | 
					/.env.*.local
 | 
				
			||||||
 | 
					/config/secrets/prod/prod.decrypt.private.php
 | 
				
			||||||
 | 
					/public/bundles/
 | 
				
			||||||
 | 
					/var/
 | 
				
			||||||
 | 
					/vendor/
 | 
				
			||||||
 | 
					###< symfony/framework-bundle ###
 | 
				
			||||||
 | 
					.loki
 | 
				
			||||||
 | 
					.tempo
 | 
				
			||||||
 | 
					TODO.rs
 | 
				
			||||||
							
								
								
									
										25
									
								
								Dockerfile.fpm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								Dockerfile.fpm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					FROM php:8.3-fpm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN apt-get update && apt-get install -y unzip libzip-dev && rm -rf /var/cache/apt/*
 | 
				
			||||||
 | 
					RUN curl -sSL https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions -o - | sh -s \
 | 
				
			||||||
 | 
					       opentelemetry-php/ext-opentelemetry@main  opcache zip grpc
 | 
				
			||||||
 | 
					RUN curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer
 | 
				
			||||||
 | 
					RUN composer self-update
 | 
				
			||||||
 | 
					RUN usermod -a -G www-data root
 | 
				
			||||||
 | 
					RUN mkdir -p /var/www/html
 | 
				
			||||||
 | 
					RUN chown -R www-data:www-data /var/www/html
 | 
				
			||||||
 | 
					WORKDIR /var/www/html/
 | 
				
			||||||
 | 
					COPY composer.json composer.lock /var/www/html
 | 
				
			||||||
 | 
					COPY config /var/www/html/config
 | 
				
			||||||
 | 
					COPY bin /var/www/html/bin
 | 
				
			||||||
 | 
					COPY public /var/www/html/public
 | 
				
			||||||
 | 
					COPY src /var/www/html/src
 | 
				
			||||||
 | 
					COPY templates /var/www/html/templates
 | 
				
			||||||
 | 
					COPY src /var/www/html/src
 | 
				
			||||||
 | 
					# TODO: prod .env (type_of_image arg)
 | 
				
			||||||
 | 
					COPY .env  /var/www/html
 | 
				
			||||||
 | 
					WORKDIR /var/www/html
 | 
				
			||||||
 | 
					RUN chmod a+x bin
 | 
				
			||||||
 | 
					RUN composer install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# TODO: check-me
 | 
				
			||||||
							
								
								
									
										5
									
								
								Dockerfile.nginx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								Dockerfile.nginx
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					FROM nginx:1.25.3-alpine
 | 
				
			||||||
 | 
					#RUN mkdir -p /var/www/html/public
 | 
				
			||||||
 | 
					COPY public /var/www/html/public
 | 
				
			||||||
 | 
					COPY docker/nginx/default.conf /etc/nginx/conf.d/default.conf
 | 
				
			||||||
 | 
					EXPOSE 80
 | 
				
			||||||
							
								
								
									
										0
									
								
								Dockerfile.static
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								Dockerfile.static
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										17
									
								
								bin/console
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										17
									
								
								bin/console
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env php
 | 
				
			||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use App\Kernel;
 | 
				
			||||||
 | 
					use Symfony\Bundle\FrameworkBundle\Console\Application;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (!is_file(dirname(__DIR__).'/vendor/autoload_runtime.php')) {
 | 
				
			||||||
 | 
					    throw new LogicException('Symfony Runtime is missing. Try running "composer require symfony/runtime".');
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					return function (array $context) {
 | 
				
			||||||
 | 
					    $kernel = new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return new Application($kernel);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										80
									
								
								composer.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								composer.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,80 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "type": "project",
 | 
				
			||||||
 | 
					    "license": "proprietary",
 | 
				
			||||||
 | 
					    "minimum-stability": "beta",
 | 
				
			||||||
 | 
					    "prefer-stable": true,
 | 
				
			||||||
 | 
					    "require": {
 | 
				
			||||||
 | 
					        "php": ">=8.2",
 | 
				
			||||||
 | 
					        "ext-ctype": "*",
 | 
				
			||||||
 | 
					        "ext-grpc": "*",
 | 
				
			||||||
 | 
					        "ext-iconv": "*",
 | 
				
			||||||
 | 
					        "grpc/grpc": "^1.57",
 | 
				
			||||||
 | 
					        "guzzlehttp/promises": "*",
 | 
				
			||||||
 | 
					        "nyholm/psr7": "*",
 | 
				
			||||||
 | 
					        "open-telemetry/exporter-otlp": "^1.0",
 | 
				
			||||||
 | 
					        "open-telemetry/opentelemetry-auto-symfony": "^1.0@beta",
 | 
				
			||||||
 | 
					        "open-telemetry/opentelemetry-propagation-server-timing": "^0.0.1",
 | 
				
			||||||
 | 
					        "open-telemetry/opentelemetry-propagation-traceresponse": "^0.0.2",
 | 
				
			||||||
 | 
					        "open-telemetry/sdk": "^1.0",
 | 
				
			||||||
 | 
					        "open-telemetry/transport-grpc": "^1.0",
 | 
				
			||||||
 | 
					        "php-http/httplug": "*",
 | 
				
			||||||
 | 
					        "symfony/console": "7.0.*",
 | 
				
			||||||
 | 
					        "symfony/dotenv": "7.0.*",
 | 
				
			||||||
 | 
					        "symfony/flex": "^2",
 | 
				
			||||||
 | 
					        "symfony/framework-bundle": "7.0.*",
 | 
				
			||||||
 | 
					        "symfony/http-client": "*",
 | 
				
			||||||
 | 
					        "symfony/options-resolver": "7.0.*",
 | 
				
			||||||
 | 
					        "symfony/runtime": "7.0.*",
 | 
				
			||||||
 | 
					        "symfony/twig-bundle": "7.0.*",
 | 
				
			||||||
 | 
					        "symfony/yaml": "7.0.*"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "config": {
 | 
				
			||||||
 | 
					        "allow-plugins": {
 | 
				
			||||||
 | 
					            "php-http/discovery": true,
 | 
				
			||||||
 | 
					            "symfony/flex": true,
 | 
				
			||||||
 | 
					            "symfony/runtime": true
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "sort-packages": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "autoload": {
 | 
				
			||||||
 | 
					        "psr-4": {
 | 
				
			||||||
 | 
					            "App\\": "src/"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "autoload-dev": {
 | 
				
			||||||
 | 
					        "psr-4": {
 | 
				
			||||||
 | 
					            "App\\Tests\\": "tests/"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "replace": {
 | 
				
			||||||
 | 
					        "symfony/polyfill-ctype": "*",
 | 
				
			||||||
 | 
					        "symfony/polyfill-iconv": "*",
 | 
				
			||||||
 | 
					        "symfony/polyfill-php72": "*",
 | 
				
			||||||
 | 
					        "symfony/polyfill-php73": "*",
 | 
				
			||||||
 | 
					        "symfony/polyfill-php74": "*",
 | 
				
			||||||
 | 
					        "symfony/polyfill-php80": "*",
 | 
				
			||||||
 | 
					        "symfony/polyfill-php81": "*",
 | 
				
			||||||
 | 
					        "symfony/polyfill-php82": "*"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "scripts": {
 | 
				
			||||||
 | 
					        "auto-scripts": {
 | 
				
			||||||
 | 
					            "cache:clear": "symfony-cmd",
 | 
				
			||||||
 | 
					            "assets:install %PUBLIC_DIR%": "symfony-cmd"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "post-install-cmd": [
 | 
				
			||||||
 | 
					            "@auto-scripts"
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "post-update-cmd": [
 | 
				
			||||||
 | 
					            "@auto-scripts"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "conflict": {
 | 
				
			||||||
 | 
					        "symfony/symfony": "*"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "extra": {
 | 
				
			||||||
 | 
					        "symfony": {
 | 
				
			||||||
 | 
					            "allow-contrib": false,
 | 
				
			||||||
 | 
					            "require": "7.0.*"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										4245
									
								
								composer.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										4245
									
								
								composer.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										6
									
								
								config/bundles.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								config/bundles.php
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					return [
 | 
				
			||||||
 | 
					    Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
 | 
				
			||||||
 | 
					    Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
							
								
								
									
										19
									
								
								config/packages/cache.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								config/packages/cache.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					framework:
 | 
				
			||||||
 | 
					    cache:
 | 
				
			||||||
 | 
					        # Unique name of your app: used to compute stable namespaces for cache keys.
 | 
				
			||||||
 | 
					        #prefix_seed: your_vendor_name/app_name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # The "app" cache stores to the filesystem by default.
 | 
				
			||||||
 | 
					        # The data in this cache should persist between deploys.
 | 
				
			||||||
 | 
					        # Other options include:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Redis
 | 
				
			||||||
 | 
					        #app: cache.adapter.redis
 | 
				
			||||||
 | 
					        #default_redis_provider: redis://localhost
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues)
 | 
				
			||||||
 | 
					        #app: cache.adapter.apcu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Namespaced pools use the above "app" backend by default
 | 
				
			||||||
 | 
					        #pools:
 | 
				
			||||||
 | 
					            #my.dedicated.cache: null
 | 
				
			||||||
							
								
								
									
										23
									
								
								config/packages/framework.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								config/packages/framework.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					# see https://symfony.com/doc/current/reference/configuration/framework.html
 | 
				
			||||||
 | 
					framework:
 | 
				
			||||||
 | 
					    secret: '%env(APP_SECRET)%'
 | 
				
			||||||
 | 
					    #csrf_protection: true
 | 
				
			||||||
 | 
					    handle_all_throwables: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Enables session support. Note that the session will ONLY be started if you read or write from it.
 | 
				
			||||||
 | 
					    # Remove or comment this section to explicitly disable session support.
 | 
				
			||||||
 | 
					    session:
 | 
				
			||||||
 | 
					        handler_id: null
 | 
				
			||||||
 | 
					        cookie_secure: auto
 | 
				
			||||||
 | 
					        cookie_samesite: lax
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #esi: true
 | 
				
			||||||
 | 
					    #fragments: true
 | 
				
			||||||
 | 
					    php_errors:
 | 
				
			||||||
 | 
					        log: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					when@test:
 | 
				
			||||||
 | 
					    framework:
 | 
				
			||||||
 | 
					        test: true
 | 
				
			||||||
 | 
					        session:
 | 
				
			||||||
 | 
					            storage_factory_id: session.storage.factory.mock_file
 | 
				
			||||||
							
								
								
									
										10
									
								
								config/packages/http_discovery.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								config/packages/http_discovery.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					services:
 | 
				
			||||||
 | 
					    Psr\Http\Message\RequestFactoryInterface: '@http_discovery.psr17_factory'
 | 
				
			||||||
 | 
					    Psr\Http\Message\ResponseFactoryInterface: '@http_discovery.psr17_factory'
 | 
				
			||||||
 | 
					    Psr\Http\Message\ServerRequestFactoryInterface: '@http_discovery.psr17_factory'
 | 
				
			||||||
 | 
					    Psr\Http\Message\StreamFactoryInterface: '@http_discovery.psr17_factory'
 | 
				
			||||||
 | 
					    Psr\Http\Message\UploadedFileFactoryInterface: '@http_discovery.psr17_factory'
 | 
				
			||||||
 | 
					    Psr\Http\Message\UriFactoryInterface: '@http_discovery.psr17_factory'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    http_discovery.psr17_factory:
 | 
				
			||||||
 | 
					        class: Http\Discovery\Psr17Factory
 | 
				
			||||||
							
								
								
									
										11
									
								
								config/packages/nyholm_psr7.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								config/packages/nyholm_psr7.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					services:
 | 
				
			||||||
 | 
					    # Register nyholm/psr7 services for autowiring with PSR-17 (HTTP factories)
 | 
				
			||||||
 | 
					    Psr\Http\Message\RequestFactoryInterface: '@nyholm.psr7.psr17_factory'
 | 
				
			||||||
 | 
					    Psr\Http\Message\ResponseFactoryInterface: '@nyholm.psr7.psr17_factory'
 | 
				
			||||||
 | 
					    Psr\Http\Message\ServerRequestFactoryInterface: '@nyholm.psr7.psr17_factory'
 | 
				
			||||||
 | 
					    Psr\Http\Message\StreamFactoryInterface: '@nyholm.psr7.psr17_factory'
 | 
				
			||||||
 | 
					    Psr\Http\Message\UploadedFileFactoryInterface: '@nyholm.psr7.psr17_factory'
 | 
				
			||||||
 | 
					    Psr\Http\Message\UriFactoryInterface: '@nyholm.psr7.psr17_factory'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    nyholm.psr7.psr17_factory:
 | 
				
			||||||
 | 
					        class: Nyholm\Psr7\Factory\Psr17Factory
 | 
				
			||||||
							
								
								
									
										12
									
								
								config/packages/routing.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								config/packages/routing.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					framework:
 | 
				
			||||||
 | 
					    router:
 | 
				
			||||||
 | 
					        utf8: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Configure how to generate URLs in non-HTTP contexts, such as CLI commands.
 | 
				
			||||||
 | 
					        # See https://symfony.com/doc/current/routing.html#generating-urls-in-commands
 | 
				
			||||||
 | 
					        #default_uri: http://localhost
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					when@prod:
 | 
				
			||||||
 | 
					    framework:
 | 
				
			||||||
 | 
					        router:
 | 
				
			||||||
 | 
					            strict_requirements: null
 | 
				
			||||||
							
								
								
									
										6
									
								
								config/packages/twig.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								config/packages/twig.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					twig:
 | 
				
			||||||
 | 
					    default_path: '%kernel.project_dir%/templates'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					when@test:
 | 
				
			||||||
 | 
					    twig:
 | 
				
			||||||
 | 
					        strict_variables: true
 | 
				
			||||||
							
								
								
									
										5
									
								
								config/preload.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								config/preload.php
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (file_exists(dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php')) {
 | 
				
			||||||
 | 
					    require dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										5
									
								
								config/routes.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								config/routes.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					controllers:
 | 
				
			||||||
 | 
					    resource:
 | 
				
			||||||
 | 
					        path: ../src/Controller/
 | 
				
			||||||
 | 
					        namespace: App\Controller
 | 
				
			||||||
 | 
					    type: attribute
 | 
				
			||||||
							
								
								
									
										4
									
								
								config/routes/framework.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								config/routes/framework.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					when@dev:
 | 
				
			||||||
 | 
					    _errors:
 | 
				
			||||||
 | 
					        resource: '@FrameworkBundle/Resources/config/routing/errors.xml'
 | 
				
			||||||
 | 
					        prefix: /_error
 | 
				
			||||||
							
								
								
									
										25
									
								
								config/services.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								config/services.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					# This file is the entry point to configure your own services.
 | 
				
			||||||
 | 
					# Files in the packages/ subdirectory configure your dependencies.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Put parameters here that don't need to change on each machine where the app is deployed
 | 
				
			||||||
 | 
					# https://symfony.com/doc/current/best_practices.html#use-parameters-for-application-configuration
 | 
				
			||||||
 | 
					parameters:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					services:
 | 
				
			||||||
 | 
					    # default configuration for services in *this* file
 | 
				
			||||||
 | 
					    _defaults:
 | 
				
			||||||
 | 
					        autowire: true      # Automatically injects dependencies in your services.
 | 
				
			||||||
 | 
					        autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # makes classes in src/ available to be used as services
 | 
				
			||||||
 | 
					    # this creates a service per class whose id is the fully-qualified class name
 | 
				
			||||||
 | 
					    App\:
 | 
				
			||||||
 | 
					        resource: '../src/'
 | 
				
			||||||
 | 
					        exclude:
 | 
				
			||||||
 | 
					            - '../src/DependencyInjection/'
 | 
				
			||||||
 | 
					            - '../src/Entity/'
 | 
				
			||||||
 | 
					            - '../src/Kernel.php'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # add more service definitions when explicit configuration is needed
 | 
				
			||||||
 | 
					    # please note that last definitions always *replace* previous ones
 | 
				
			||||||
							
								
								
									
										97
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,97 @@
 | 
				
			|||||||
 | 
					version: '3.9'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					services:
 | 
				
			||||||
 | 
					  nginx:
 | 
				
			||||||
 | 
					    build:
 | 
				
			||||||
 | 
					      context: .
 | 
				
			||||||
 | 
					      dockerfile: ./Dockerfile.nginx
 | 
				
			||||||
 | 
					    ports:
 | 
				
			||||||
 | 
					      - '8000:80'
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
 | 
				
			||||||
 | 
					    links:
 | 
				
			||||||
 | 
					      - php-fpm
 | 
				
			||||||
 | 
					  php-fpm:
 | 
				
			||||||
 | 
					    build:
 | 
				
			||||||
 | 
					      context: .
 | 
				
			||||||
 | 
					      dockerfile: ./Dockerfile.fpm
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - ./:/var/www/html/
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      - OTEL_LOG_LEVEL=debug
 | 
				
			||||||
 | 
					      - OTEL_TRACES_EXPORTER=otlp
 | 
				
			||||||
 | 
					      - OTEL_METRICS_EXPORTER=otlp
 | 
				
			||||||
 | 
					      - OTEL_LOGS_EXPORTER=otlp
 | 
				
			||||||
 | 
					      - OTEL_PHP_AUTOLOAD_ENABLED=true
 | 
				
			||||||
 | 
					      - OTEL_PHP_TRACES_PROCESSOR=simple
 | 
				
			||||||
 | 
					      - OTEL_PHP_LOG_DESTINATION=stderr
 | 
				
			||||||
 | 
					      - OTEL_EXPORTER_OTLP_PROTOCOL=grpc
 | 
				
			||||||
 | 
					      - OTEL_EXPORTER_OTLP_ENDPOINT=http://otelcol:4317
 | 
				
			||||||
 | 
					    links:
 | 
				
			||||||
 | 
					      - otelcol
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ----------------- telemetry
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  tempo:
 | 
				
			||||||
 | 
					    image: grafana/tempo:latest
 | 
				
			||||||
 | 
					    command: [ "-config.file=/etc/tempo.yaml" ]
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - ./docker/telemetry/tempo.yaml:/etc/tempo.yaml
 | 
				
			||||||
 | 
					      - ./.tempo:/tmp/tempo
 | 
				
			||||||
 | 
					  loki:
 | 
				
			||||||
 | 
					    image: grafana/loki:2.9.2
 | 
				
			||||||
 | 
					    ports:
 | 
				
			||||||
 | 
					      - "3100:3100"
 | 
				
			||||||
 | 
					    command: -config.file=/etc/loki.yaml
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - ./.loki:/loki
 | 
				
			||||||
 | 
					      - ./docker/telemetry/loki.yaml:/etc/loki.yaml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  promtail:
 | 
				
			||||||
 | 
					    image: grafana/promtail:2.9.2
 | 
				
			||||||
 | 
					    command: -config.file=/etc/promtail/config.yaml
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - ./docker/telemetry/promtail.yaml:/etc/promtail/config.yaml
 | 
				
			||||||
 | 
					    links:
 | 
				
			||||||
 | 
					      - prometheus
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  prometheus:
 | 
				
			||||||
 | 
					    image: prom/prometheus:latest
 | 
				
			||||||
 | 
					    command:
 | 
				
			||||||
 | 
					      - --config.file=/etc/prometheus.yaml
 | 
				
			||||||
 | 
					      - --web.enable-remote-write-receiver
 | 
				
			||||||
 | 
					      - --enable-feature=exemplar-storage
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - ./docker/telemetry/prometheus.yaml:/etc/prometheus.yaml
 | 
				
			||||||
 | 
					    ports:
 | 
				
			||||||
 | 
					      - "9090:9090"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  grafana:
 | 
				
			||||||
 | 
					    image: grafana/grafana:10.1.1
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - ./docker/telemetry/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      - GF_AUTH_ANONYMOUS_ENABLED=true
 | 
				
			||||||
 | 
					      - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
 | 
				
			||||||
 | 
					      - GF_AUTH_DISABLE_LOGIN_FORM=true
 | 
				
			||||||
 | 
					      - GF_FEATURE_TOGGLES_ENABLE=traceqlEditor
 | 
				
			||||||
 | 
					    ports:
 | 
				
			||||||
 | 
					      - "3000:3000"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  otelcol:
 | 
				
			||||||
 | 
					    image: otel/opentelemetry-collector-contrib:latest
 | 
				
			||||||
 | 
					    deploy:
 | 
				
			||||||
 | 
					      resources:
 | 
				
			||||||
 | 
					        limits:
 | 
				
			||||||
 | 
					          memory: 125M
 | 
				
			||||||
 | 
					    restart: unless-stopped
 | 
				
			||||||
 | 
					    command: [ "--config=/etc/otelcol-config.yaml" ]
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - ./docker/telemetry/otelcol-config.yaml:/etc/otelcol-config.yaml
 | 
				
			||||||
 | 
					    depends_on:
 | 
				
			||||||
 | 
					      - loki
 | 
				
			||||||
 | 
					      - tempo
 | 
				
			||||||
 | 
					    links:
 | 
				
			||||||
 | 
					      - loki
 | 
				
			||||||
 | 
					      - tempo
 | 
				
			||||||
							
								
								
									
										19
									
								
								docker/nginx/default.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								docker/nginx/default.conf
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					server {
 | 
				
			||||||
 | 
					    index index.php index.html;
 | 
				
			||||||
 | 
					    server_name symfony_example_app;
 | 
				
			||||||
 | 
					    error_log  stderr debug;
 | 
				
			||||||
 | 
					    access_log  stderr;
 | 
				
			||||||
 | 
					    listen   80;
 | 
				
			||||||
 | 
					    root /var/www/html/public;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    location / {
 | 
				
			||||||
 | 
					        try_files $uri /index.php$is_args$args;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    location ~ ^/.+\.php(/|$) {
 | 
				
			||||||
 | 
					        fastcgi_pass php-fpm:9000;
 | 
				
			||||||
 | 
					        include fastcgi_params;
 | 
				
			||||||
 | 
					        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										43
									
								
								docker/telemetry/grafana-datasources.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								docker/telemetry/grafana-datasources.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,43 @@
 | 
				
			|||||||
 | 
					apiVersion: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					datasources:
 | 
				
			||||||
 | 
					- name: Prometheus
 | 
				
			||||||
 | 
					  type: prometheus
 | 
				
			||||||
 | 
					  uid: prometheus
 | 
				
			||||||
 | 
					  access: proxy
 | 
				
			||||||
 | 
					  orgId: 1
 | 
				
			||||||
 | 
					  url: http://prometheus:9090
 | 
				
			||||||
 | 
					  basicAuth: false
 | 
				
			||||||
 | 
					  isDefault: false
 | 
				
			||||||
 | 
					  version: 1
 | 
				
			||||||
 | 
					  editable: false
 | 
				
			||||||
 | 
					  jsonData:
 | 
				
			||||||
 | 
					    httpMethod: GET
 | 
				
			||||||
 | 
					- name: Tempo
 | 
				
			||||||
 | 
					  type: tempo
 | 
				
			||||||
 | 
					  access: proxy
 | 
				
			||||||
 | 
					  orgId: 1
 | 
				
			||||||
 | 
					  url: http://tempo:3200
 | 
				
			||||||
 | 
					  basicAuth: false
 | 
				
			||||||
 | 
					  isDefault: true
 | 
				
			||||||
 | 
					  version: 1
 | 
				
			||||||
 | 
					  editable: false
 | 
				
			||||||
 | 
					  apiVersion: 1
 | 
				
			||||||
 | 
					  uid: tempo
 | 
				
			||||||
 | 
					  jsonData:
 | 
				
			||||||
 | 
					    httpMethod: GET
 | 
				
			||||||
 | 
					    serviceMap:
 | 
				
			||||||
 | 
					      datasourceUid: prometheus
 | 
				
			||||||
 | 
					- name: Loki
 | 
				
			||||||
 | 
					  type: loki
 | 
				
			||||||
 | 
					  access: proxy
 | 
				
			||||||
 | 
					  orgId: 1
 | 
				
			||||||
 | 
					  url: http://loki:3100
 | 
				
			||||||
 | 
					  basicAuth: false
 | 
				
			||||||
 | 
					  isDefault: false
 | 
				
			||||||
 | 
					  version: 1
 | 
				
			||||||
 | 
					  editable: false
 | 
				
			||||||
 | 
					  apiVersion: 1
 | 
				
			||||||
 | 
					  uid: loki
 | 
				
			||||||
 | 
					  jsonData:
 | 
				
			||||||
 | 
					    httpMethod: GET
 | 
				
			||||||
							
								
								
									
										37
									
								
								docker/telemetry/loki.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								docker/telemetry/loki.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					auth_enabled: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					server:
 | 
				
			||||||
 | 
					  http_listen_port: 3100
 | 
				
			||||||
 | 
					  grpc_listen_port: 9096
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					common:
 | 
				
			||||||
 | 
					  instance_addr: 127.0.0.1
 | 
				
			||||||
 | 
					  path_prefix: /tmp/loki
 | 
				
			||||||
 | 
					  storage:
 | 
				
			||||||
 | 
					    filesystem:
 | 
				
			||||||
 | 
					      chunks_directory: /tmp/loki/chunks
 | 
				
			||||||
 | 
					      rules_directory: /tmp/loki/rules
 | 
				
			||||||
 | 
					  replication_factor: 1
 | 
				
			||||||
 | 
					  ring:
 | 
				
			||||||
 | 
					    kvstore:
 | 
				
			||||||
 | 
					      store: inmemory
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					query_range:
 | 
				
			||||||
 | 
					  results_cache:
 | 
				
			||||||
 | 
					    cache:
 | 
				
			||||||
 | 
					      embedded_cache:
 | 
				
			||||||
 | 
					        enabled: true
 | 
				
			||||||
 | 
					        max_size_mb: 100
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					schema_config:
 | 
				
			||||||
 | 
					  configs:
 | 
				
			||||||
 | 
					    - from: 2020-10-24
 | 
				
			||||||
 | 
					      store: tsdb
 | 
				
			||||||
 | 
					      object_store: filesystem
 | 
				
			||||||
 | 
					      schema: v12
 | 
				
			||||||
 | 
					      index:
 | 
				
			||||||
 | 
					        prefix: index_
 | 
				
			||||||
 | 
					        period: 24h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ruler:
 | 
				
			||||||
 | 
					  alertmanager_url: http://localhost:9093
 | 
				
			||||||
							
								
								
									
										50
									
								
								docker/telemetry/otelcol-config.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								docker/telemetry/otelcol-config.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					receivers:
 | 
				
			||||||
 | 
					  loki:
 | 
				
			||||||
 | 
					    protocols:
 | 
				
			||||||
 | 
					      grpc:
 | 
				
			||||||
 | 
					    use_incoming_timestamp: true
 | 
				
			||||||
 | 
					  otlp:
 | 
				
			||||||
 | 
					    protocols:
 | 
				
			||||||
 | 
					      grpc:
 | 
				
			||||||
 | 
					processors:
 | 
				
			||||||
 | 
					  attributes:
 | 
				
			||||||
 | 
					    actions:
 | 
				
			||||||
 | 
					      - action: insert
 | 
				
			||||||
 | 
					        key: loki.attribute.labels
 | 
				
			||||||
 | 
					        value: log.file, log.line, log.module_path, http.request_id, http.uri
 | 
				
			||||||
 | 
					      - action: insert
 | 
				
			||||||
 | 
					        from_attribute: log.file
 | 
				
			||||||
 | 
					        key: log.file
 | 
				
			||||||
 | 
					      - action: insert
 | 
				
			||||||
 | 
					        from_attribute: log.line
 | 
				
			||||||
 | 
					        key: log.line
 | 
				
			||||||
 | 
					      - action: insert
 | 
				
			||||||
 | 
					        from_attribute: log.module_path
 | 
				
			||||||
 | 
					        key: log.module_path
 | 
				
			||||||
 | 
					      - action: insert
 | 
				
			||||||
 | 
					        from_attribute: http.request_id
 | 
				
			||||||
 | 
					        key: http.request_id
 | 
				
			||||||
 | 
					      - action: insert
 | 
				
			||||||
 | 
					        from_attribute: http.uri
 | 
				
			||||||
 | 
					        key: http.uri
 | 
				
			||||||
 | 
					      - action: insert
 | 
				
			||||||
 | 
					        key: loki.format
 | 
				
			||||||
 | 
					        value: raw
 | 
				
			||||||
 | 
					exporters:
 | 
				
			||||||
 | 
					  loki:
 | 
				
			||||||
 | 
					    endpoint: http://loki:3100/loki/api/v1/push
 | 
				
			||||||
 | 
					  otlp:
 | 
				
			||||||
 | 
					    endpoint: tempo:4317
 | 
				
			||||||
 | 
					    tls:
 | 
				
			||||||
 | 
					      insecure: true
 | 
				
			||||||
 | 
					  logging:
 | 
				
			||||||
 | 
					    verbosity: Detailed
 | 
				
			||||||
 | 
					service:
 | 
				
			||||||
 | 
					  pipelines:
 | 
				
			||||||
 | 
					    logs:
 | 
				
			||||||
 | 
					      receivers: [otlp]
 | 
				
			||||||
 | 
					      processors: [attributes]
 | 
				
			||||||
 | 
					      exporters: [logging,loki]
 | 
				
			||||||
 | 
					    traces:
 | 
				
			||||||
 | 
					      receivers: [otlp]
 | 
				
			||||||
 | 
					      exporters: [logging,otlp]
 | 
				
			||||||
							
								
								
									
										11
									
								
								docker/telemetry/prometheus.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								docker/telemetry/prometheus.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					global:
 | 
				
			||||||
 | 
					  scrape_interval:     15s
 | 
				
			||||||
 | 
					  evaluation_interval: 15s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					scrape_configs:
 | 
				
			||||||
 | 
					  - job_name: 'prometheus'
 | 
				
			||||||
 | 
					    static_configs:
 | 
				
			||||||
 | 
					      - targets: [ 'localhost:9090' ]
 | 
				
			||||||
 | 
					  - job_name: 'tempo'
 | 
				
			||||||
 | 
					    static_configs:
 | 
				
			||||||
 | 
					      - targets: [ 'tempo:3200' ]
 | 
				
			||||||
							
								
								
									
										2
									
								
								docker/telemetry/promtail.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								docker/telemetry/promtail.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					clients:
 | 
				
			||||||
 | 
					  - url: http://otelcol:3500/loki/api/v1/push
 | 
				
			||||||
							
								
								
									
										73
									
								
								docker/telemetry/tempo.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								docker/telemetry/tempo.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,73 @@
 | 
				
			|||||||
 | 
					server:
 | 
				
			||||||
 | 
					  http_listen_port: 3200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					query_frontend:
 | 
				
			||||||
 | 
					  search:
 | 
				
			||||||
 | 
					    duration_slo: 5s
 | 
				
			||||||
 | 
					    throughput_bytes_slo: 1.073741824e+09
 | 
				
			||||||
 | 
					  trace_by_id:
 | 
				
			||||||
 | 
					    duration_slo: 5s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					distributor:
 | 
				
			||||||
 | 
					  receivers:                           # this configuration will listen on all ports and protocols that tempo is capable of.
 | 
				
			||||||
 | 
					    jaeger:                            # the receives all come from the OpenTelemetry collector.  more configuration information can
 | 
				
			||||||
 | 
					      protocols:                       # be found there: https://github.com/open-telemetry/opentelemetry-collector/tree/main/receiver
 | 
				
			||||||
 | 
					        thrift_http:                   #
 | 
				
			||||||
 | 
					        grpc:                          # for a production deployment you should only enable the receivers you need!
 | 
				
			||||||
 | 
					        thrift_binary:
 | 
				
			||||||
 | 
					        thrift_compact:
 | 
				
			||||||
 | 
					    zipkin:
 | 
				
			||||||
 | 
					    otlp:
 | 
				
			||||||
 | 
					      protocols:
 | 
				
			||||||
 | 
					        http:
 | 
				
			||||||
 | 
					        grpc:
 | 
				
			||||||
 | 
					    opencensus:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ingester:
 | 
				
			||||||
 | 
					  max_block_duration: 5m               # cut the headblock when this much time passes. this is being set for demo purposes and should probably be left alone normally
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					metrics_generator:
 | 
				
			||||||
 | 
					  processor:
 | 
				
			||||||
 | 
					    span_metrics:
 | 
				
			||||||
 | 
					      dimensions: [http.status_code, http.method]
 | 
				
			||||||
 | 
					      dimension_mappings:
 | 
				
			||||||
 | 
					        - name: http_status_code
 | 
				
			||||||
 | 
					          source_labels: [http_status_code]
 | 
				
			||||||
 | 
					        - name: http_method
 | 
				
			||||||
 | 
					          source_labels: [http_method]
 | 
				
			||||||
 | 
					      enable_target_info: true
 | 
				
			||||||
 | 
					  registry:
 | 
				
			||||||
 | 
					    external_labels:
 | 
				
			||||||
 | 
					      source: tempo
 | 
				
			||||||
 | 
					      cluster: docker-compose
 | 
				
			||||||
 | 
					  storage:
 | 
				
			||||||
 | 
					    path: /tmp/tempo/generator/wal
 | 
				
			||||||
 | 
					    remote_write:
 | 
				
			||||||
 | 
					      - url: http://prometheus:9090/api/v1/write
 | 
				
			||||||
 | 
					        send_exemplars: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					storage:
 | 
				
			||||||
 | 
					  trace:
 | 
				
			||||||
 | 
					    backend: local                     # backend configuration to use
 | 
				
			||||||
 | 
					    wal:
 | 
				
			||||||
 | 
					      path: /tmp/tempo/wal             # where to store the the wal locally
 | 
				
			||||||
 | 
					    local:
 | 
				
			||||||
 | 
					      path: /tmp/tempo/blocks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					overrides:
 | 
				
			||||||
 | 
					  defaults:
 | 
				
			||||||
 | 
					    metrics_generator:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      processors: [service-graphs, span-metrics] # enables metrics generator
 | 
				
			||||||
 | 
					    global:
 | 
				
			||||||
 | 
					      # Maximum size of a single trace in bytes.  A value of 0 disables the size
 | 
				
			||||||
 | 
					      # check.
 | 
				
			||||||
 | 
					      # This limit is used in 3 places:
 | 
				
			||||||
 | 
					      #  - During search, traces will be skipped when they exceed this threshold.
 | 
				
			||||||
 | 
					      #  - During ingestion, traces that exceed this threshold will be refused.
 | 
				
			||||||
 | 
					      #  - During compaction, traces that exceed this threshold will be partially dropped.
 | 
				
			||||||
 | 
					      # During ingestion, exceeding the threshold results in errors like
 | 
				
			||||||
 | 
					      #    TRACE_TOO_LARGE: max size of trace (5000000) exceeded while adding 387 bytes
 | 
				
			||||||
 | 
					      max_bytes_per_trace: 20000000
 | 
				
			||||||
							
								
								
									
										9
									
								
								public/index.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								public/index.php
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use App\Kernel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					return function (array $context) {
 | 
				
			||||||
 | 
					    return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										0
									
								
								src/Controller/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								src/Controller/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
								
								
									
										17
									
								
								src/Controller/IndexController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/Controller/IndexController.php
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace App\Controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
 | 
				
			||||||
 | 
					use Symfony\Component\HttpFoundation\Response;
 | 
				
			||||||
 | 
					use Symfony\Component\Routing\Attribute\Route;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class IndexController extends AbstractController {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #[Route('/', name: 'homepage')]
 | 
				
			||||||
 | 
					    public function indexAction(): Response
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $result = $this->render('index/homepage.html.twig');
 | 
				
			||||||
 | 
					        return $result;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										11
									
								
								src/Kernel.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/Kernel.php
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace App;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
 | 
				
			||||||
 | 
					use Symfony\Component\HttpKernel\Kernel as BaseKernel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Kernel extends BaseKernel
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    use MicroKernelTrait;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										95
									
								
								symfony.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								symfony.lock
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,95 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "nyholm/psr7": {
 | 
				
			||||||
 | 
					        "version": "1.8",
 | 
				
			||||||
 | 
					        "recipe": {
 | 
				
			||||||
 | 
					            "repo": "github.com/symfony/recipes",
 | 
				
			||||||
 | 
					            "branch": "main",
 | 
				
			||||||
 | 
					            "version": "1.0",
 | 
				
			||||||
 | 
					            "ref": "4a8c0345442dcca1d8a2c65633dcf0285dd5a5a2"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "files": [
 | 
				
			||||||
 | 
					            "config/packages/nyholm_psr7.yaml"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "php-http/discovery": {
 | 
				
			||||||
 | 
					        "version": "1.19",
 | 
				
			||||||
 | 
					        "recipe": {
 | 
				
			||||||
 | 
					            "repo": "github.com/symfony/recipes",
 | 
				
			||||||
 | 
					            "branch": "main",
 | 
				
			||||||
 | 
					            "version": "1.18",
 | 
				
			||||||
 | 
					            "ref": "f45b5dd173a27873ab19f5e3180b2f661c21de02"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "files": [
 | 
				
			||||||
 | 
					            "config/packages/http_discovery.yaml"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "symfony/console": {
 | 
				
			||||||
 | 
					        "version": "7.0",
 | 
				
			||||||
 | 
					        "recipe": {
 | 
				
			||||||
 | 
					            "repo": "github.com/symfony/recipes",
 | 
				
			||||||
 | 
					            "branch": "main",
 | 
				
			||||||
 | 
					            "version": "5.3",
 | 
				
			||||||
 | 
					            "ref": "da0c8be8157600ad34f10ff0c9cc91232522e047"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "files": [
 | 
				
			||||||
 | 
					            "bin/console"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "symfony/flex": {
 | 
				
			||||||
 | 
					        "version": "2.4",
 | 
				
			||||||
 | 
					        "recipe": {
 | 
				
			||||||
 | 
					            "repo": "github.com/symfony/recipes",
 | 
				
			||||||
 | 
					            "branch": "main",
 | 
				
			||||||
 | 
					            "version": "1.0",
 | 
				
			||||||
 | 
					            "ref": "146251ae39e06a95be0fe3d13c807bcf3938b172"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "files": [
 | 
				
			||||||
 | 
					            ".env"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "symfony/framework-bundle": {
 | 
				
			||||||
 | 
					        "version": "7.0",
 | 
				
			||||||
 | 
					        "recipe": {
 | 
				
			||||||
 | 
					            "repo": "github.com/symfony/recipes",
 | 
				
			||||||
 | 
					            "branch": "main",
 | 
				
			||||||
 | 
					            "version": "7.0",
 | 
				
			||||||
 | 
					            "ref": "de6e1b3e2bbbe69e36262d72c3f3db858b1ab391"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "files": [
 | 
				
			||||||
 | 
					            "config/packages/cache.yaml",
 | 
				
			||||||
 | 
					            "config/packages/framework.yaml",
 | 
				
			||||||
 | 
					            "config/preload.php",
 | 
				
			||||||
 | 
					            "config/routes/framework.yaml",
 | 
				
			||||||
 | 
					            "config/services.yaml",
 | 
				
			||||||
 | 
					            "public/index.php",
 | 
				
			||||||
 | 
					            "src/Controller/.gitignore",
 | 
				
			||||||
 | 
					            "src/Kernel.php"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "symfony/routing": {
 | 
				
			||||||
 | 
					        "version": "7.0",
 | 
				
			||||||
 | 
					        "recipe": {
 | 
				
			||||||
 | 
					            "repo": "github.com/symfony/recipes",
 | 
				
			||||||
 | 
					            "branch": "main",
 | 
				
			||||||
 | 
					            "version": "6.2",
 | 
				
			||||||
 | 
					            "ref": "e0a11b4ccb8c9e70b574ff5ad3dfdcd41dec5aa6"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "files": [
 | 
				
			||||||
 | 
					            "config/packages/routing.yaml",
 | 
				
			||||||
 | 
					            "config/routes.yaml"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "symfony/twig-bundle": {
 | 
				
			||||||
 | 
					        "version": "7.0",
 | 
				
			||||||
 | 
					        "recipe": {
 | 
				
			||||||
 | 
					            "repo": "github.com/symfony/recipes",
 | 
				
			||||||
 | 
					            "branch": "main",
 | 
				
			||||||
 | 
					            "version": "6.3",
 | 
				
			||||||
 | 
					            "ref": "b7772eb20e92f3fb4d4fe756e7505b4ba2ca1a2c"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "files": [
 | 
				
			||||||
 | 
					            "config/packages/twig.yaml",
 | 
				
			||||||
 | 
					            "templates/base.html.twig"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										16
									
								
								templates/base.html.twig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								templates/base.html.twig
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					    <head>
 | 
				
			||||||
 | 
					        <meta charset="UTF-8">
 | 
				
			||||||
 | 
					        <title>{% block title %}Welcome!{% endblock %}</title>
 | 
				
			||||||
 | 
					        <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text></svg>">
 | 
				
			||||||
 | 
					        {% block stylesheets %}
 | 
				
			||||||
 | 
					        {% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        {% block javascripts %}
 | 
				
			||||||
 | 
					        {% endblock %}
 | 
				
			||||||
 | 
					    </head>
 | 
				
			||||||
 | 
					    <body>
 | 
				
			||||||
 | 
					        {% block body %}{% endblock %}
 | 
				
			||||||
 | 
					    </body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										5
									
								
								templates/index/homepage.html.twig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								templates/index/homepage.html.twig
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					{% extends 'base.html.twig' %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% block body %}
 | 
				
			||||||
 | 
					Homepage
 | 
				
			||||||
 | 
					{% endblock %}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user