From 0f057a9b671b5c5120388b0008d20969e80b8c58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wojciech=20Mi=C4=99dzybrodzki?= Date: Mon, 11 Nov 2024 13:09:12 +0100 Subject: [PATCH] chore: boilerplate manifest robots security favicon nginx static files expire --- .ops/server.conf.template | 29 ++++++++++++++++++ config/packages/monolog.yaml | 3 +- docker-compose.yaml | 16 +++++++--- public/boilerplate/.well-known/security.txt | 7 +++++ public/boilerplate/android-chrome-192x192.png | Bin 0 -> 10743 bytes public/boilerplate/android-chrome-512x512.png | Bin 0 -> 29559 bytes public/boilerplate/app.webmanifest | 1 + public/boilerplate/apple-touch-icon.png | Bin 0 -> 9620 bytes public/boilerplate/favicon-16x16.png | Bin 0 -> 622 bytes public/boilerplate/favicon-32x32.png | Bin 0 -> 1405 bytes public/boilerplate/favicon.ico | Bin 0 -> 15406 bytes public/boilerplate/robots.txt | 5 +++ src/Operations/UI/Alive.php | 3 +- 13 files changed, 57 insertions(+), 7 deletions(-) create mode 100644 public/boilerplate/.well-known/security.txt create mode 100644 public/boilerplate/android-chrome-192x192.png create mode 100644 public/boilerplate/android-chrome-512x512.png create mode 100644 public/boilerplate/app.webmanifest create mode 100644 public/boilerplate/apple-touch-icon.png create mode 100644 public/boilerplate/favicon-16x16.png create mode 100644 public/boilerplate/favicon-32x32.png create mode 100644 public/boilerplate/favicon.ico create mode 100644 public/boilerplate/robots.txt diff --git a/.ops/server.conf.template b/.ops/server.conf.template index c02b1c9..e22e3ef 100644 --- a/.ops/server.conf.template +++ b/.ops/server.conf.template @@ -26,4 +26,33 @@ server { location ~ \.php$ { return 404; } + + location = /manifest.json { + return 302 http://${REDIRECT_DOMAIN}/app.webmanifest; + } + + location = /app.webmanifest { + root /app/public/boilerplate; + expires 24h; + add_header Cache-Control "public"; + default_type "application/manifest+json"; + log_not_found off; + access_log off; + } + + location ~* \/(robots\.txt|\.well-known\/security\.txt)$ { + root /app/public/boilerplate; + expires 24h; + add_header Cache-Control "public"; + log_not_found off; + access_log off; + } + + location ~* \/(favicon.ico|favicon\-(.*)\.png|android\-(.*)\.png|apple\-touch\-icon.png) { + root /app/public/boilerplate; + expires 60m; + add_header Cache-Control "public"; + log_not_found off; + access_log off; + } } diff --git a/config/packages/monolog.yaml b/config/packages/monolog.yaml index e3890e3..7a22a19 100644 --- a/config/packages/monolog.yaml +++ b/config/packages/monolog.yaml @@ -7,7 +7,7 @@ when@dev: handlers: main: type: stream - path: "%kernel.logs_dir%/%kernel.environment%.log" + path: php://stderr level: debug channels: ["!event"] console: @@ -51,3 +51,4 @@ when@prod: type: stream channels: [deprecation] path: php://stderr + formatter: monolog.formatter.json diff --git a/docker-compose.yaml b/docker-compose.yaml index 716f74c..ed5b296 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,4 +1,3 @@ -version: '3.8' secrets: jwt_public: file: ./.ops/jwt/public.pem @@ -12,11 +11,16 @@ services: dockerfile: Dockerfile context: . target: test + tags: + - "ghcr.io/wojciechem/legacy:dev-local" env_file: - .env secrets: - jwt_public - jwt_private + volumes: + - ./vendor:/app/vendor + - ./src:/app/src nginx: image: nginx:1.25.1 @@ -31,18 +35,20 @@ services: - NGINX_HOST=localhost - APP_HOST=webapp - APP_PORT=9000 + - REDIRECT_DOMAIN=localhost:8765 webapp-frankenphp: - image: ghcr.io/wojciechem/legacy:dev-local + image: ghcr.io/wojciechem/legacy:dev-local-frankenphp build: dockerfile: Dockerfile context: . + target: test args: - BASE_IMAGE=dunglas/frankenphp:main - profiles: - - dev +# profiles: +# - dev ports: - target: 80 - published: 8765 + published: 8766 protocol: tcp diff --git a/public/boilerplate/.well-known/security.txt b/public/boilerplate/.well-known/security.txt new file mode 100644 index 0000000..43df68c --- /dev/null +++ b/public/boilerplate/.well-known/security.txt @@ -0,0 +1,7 @@ +Contact: mailto:sekurs@miedzybrodzki.net + +# I tend to forget various expiration dates. All data in this file is likely still up-to-date even if it says otherwise. +Expires: 2026-11-11T09:00:00.000Z + +# I will still welcome message in any other language and read it using a translator +Preferred-Languages: en,pl diff --git a/public/boilerplate/android-chrome-192x192.png b/public/boilerplate/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..bf4327d75b587e87aab08af4be36d9c505addedc GIT binary patch literal 10743 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⋘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 Xcc*Zdgd`+Ez@L(wx@_e$^N{}oCSxdU literal 0 HcmV?d00001 diff --git a/public/boilerplate/app.webmanifest b/public/boilerplate/app.webmanifest new file mode 100644 index 0000000..d4ba49e --- /dev/null +++ b/public/boilerplate/app.webmanifest @@ -0,0 +1 @@ +{"name":"Legacy","short_name":"legacy","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/public/boilerplate/apple-touch-icon.png b/public/boilerplate/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..787aac4af378945d3d35ae4c22a2c210d41f91e1 GIT binary patch literal 9620 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 literal 0 HcmV?d00001 diff --git a/public/boilerplate/favicon-16x16.png b/public/boilerplate/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..318342d3c05884b4aa2f11e2af743c19be6a30a9 GIT binary patch literal 622 zcmV-!0+IcRP)V#veo%k$|(ti{T#~bk*JAXUA(rbwsg5`akSo`r`w;OFxG%ck^=``J#8L%KYhTpb9QNaP)Yp#g>04irSTQ9uD-A7M# z&eBPMK5id2>o=?)&A7OGGm&WdP^Xlr4OvUV*+!}|{TLnSQ_dnY&a*6~fR`5yNKXo) zRIg`VarR4#7B=H5jgmqyp~GMY*bBRxo0%bU+UW86N>;_xks>$2>i zvsS!4Y8%?%XzYU)QB{|yC|D@_U}>wzT)dO@~07*qo IM6N<$g5c;O%K!iX literal 0 HcmV?d00001 diff --git a/public/boilerplate/favicon-32x32.png b/public/boilerplate/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..b3f45edd9074053d6da16433572e920ea98d1bbc GIT binary patch literal 1405 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 Qx?ARt{X4b-O<#fk0XEw@@c;k- literal 0 HcmV?d00001 diff --git a/public/boilerplate/robots.txt b/public/boilerplate/robots.txt new file mode 100644 index 0000000..ff0def0 --- /dev/null +++ b/public/boilerplate/robots.txt @@ -0,0 +1,5 @@ +# I salute our robot overlords +# Unite! Join the man-machine brotherhood +User-agent: * +Disallow: /tmp/ +Disallow: /temp/ diff --git a/src/Operations/UI/Alive.php b/src/Operations/UI/Alive.php index b919be4..483c708 100644 --- a/src/Operations/UI/Alive.php +++ b/src/Operations/UI/Alive.php @@ -8,11 +8,12 @@ use Symfony\Component\Routing\Annotation\Route; #[Route('/aliveness')] +#[Route('/alive')] #[AsController] final class Alive { public function __invoke(): JsonResponse { - return new JsonResponse(['alive' => true]); + return new JsonResponse(['alive' => true], headers: []); } }