Skip to content

Commit

Permalink
Merge pull request #2786 from element-hq/quenting/docker-cache-headers
Browse files Browse the repository at this point in the history
Precompress assets and set the right cache headers
  • Loading branch information
fkwp authored Nov 15, 2024
2 parents 4c1c818 + f022eb0 commit 20840d9
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 18 deletions.
6 changes: 0 additions & 6 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,3 @@ FROM nginxinc/nginx-unprivileged:alpine

COPY ./dist /app
COPY config/nginx.conf /etc/nginx/conf.d/default.conf

USER root

RUN rm -rf /usr/share/nginx/html

USER 101
13 changes: 3 additions & 10 deletions config/nginx.conf
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,16 @@ server {
server_name localhost;

root /app;
gzip_static on;

location / {
# disable cache entriely by default (apart from Etag which is accurate enough)
add_header Cache-Control 'private no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
if_modified_since off;
expires off;
# also turn off last-modified since they are just the timestamps of the file in the docker image
# and may or may not bear any resemblance to when the resource changed
add_header Last-Modified "";

try_files $uri $uri/ /index.html;
add_header Cache-Control "no-store, no-cache, must-revalidate";
}

# assets can be cached because they have hashed filenames
location /assets {
expires 1w;
add_header Cache-Control "public, no-transform";
add_header Cache-Control "public, immutable, max-age=31536000";
}

location /apple-app-site-association {
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@
"unique-names-generator": "^4.6.0",
"vaul": "^1.0.0",
"vite": "^5.0.0",
"vite-plugin-compression2": "^1.3.1",
"vite-plugin-html-template": "^1.1.0",
"vite-plugin-svgr": "^4.0.0",
"vitest": "^2.0.0",
Expand Down
5 changes: 5 additions & 0 deletions vite.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Please see LICENSE in the repository root for full details.
*/

import { defineConfig, loadEnv } from "vite";
import { compression } from "vite-plugin-compression2";
import svgrPlugin from "vite-plugin-svgr";
import htmlTemplate from "vite-plugin-html-template";
import { codecovVitePlugin } from "@codecov/vite-plugin";
Expand Down Expand Up @@ -38,6 +39,10 @@ export default defineConfig(({ mode }) => {
bundleName: "element-call",
uploadToken: process.env.CODECOV_TOKEN,
}),

compression({
exclude: [/config.json/],
}),
];

if (
Expand Down
19 changes: 17 additions & 2 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2542,7 +2542,7 @@
"@react-spring/shared" "~9.7.5"
"@react-spring/types" "~9.7.5"

"@rollup/pluginutils@^5.1.3":
"@rollup/pluginutils@^5.1.0", "@rollup/pluginutils@^5.1.3":
version "5.1.3"
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.3.tgz#3001bf1a03f3ad24457591f2c259c8e514e0dbdf"
integrity sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==
Expand Down Expand Up @@ -7913,6 +7913,11 @@ tapable@^2.2.0:
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==

tar-mini@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/tar-mini/-/tar-mini-0.2.0.tgz#2b2cdc215f5b83b0ab8ce363dc9ded22de51849b"
integrity sha512-+qfUHz700DWnRutdUsxRRVZ38G1Qr27OetwaMYTdg8hcPxf46U0S1Zf76dQMWRBmusOt2ZCK5kbIaiLkoGO7WQ==

teex@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/teex/-/teex-1.0.1.tgz#b8fa7245ef8e8effa8078281946c85ab780a0b12"
Expand Down Expand Up @@ -8416,6 +8421,16 @@ [email protected]:
pathe "^1.1.2"
vite "^5.0.0"

vite-plugin-compression2@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/vite-plugin-compression2/-/vite-plugin-compression2-1.3.1.tgz#ac2a512f8ca90a76687add6cf441000dd2c41485"
integrity sha512-UMr66CFu+RVPiD8E3iaX9BdZjCgO+lzzaAPAZvL5YgwH6FU4OR/MulJEyp9wq9EKoO6ErjUtPpaiDi3hvzv79Q==
dependencies:
"@rollup/pluginutils" "^5.1.0"
tar-mini "^0.2.0"
optionalDependencies:
vite "^5.3.4"

vite-plugin-html-template@^1.1.0:
version "1.2.2"
resolved "https://registry.yarnpkg.com/vite-plugin-html-template/-/vite-plugin-html-template-1.2.2.tgz#d263c18dcf5f5e54bc74894546fd0ed993191f2f"
Expand All @@ -8432,7 +8447,7 @@ vite-plugin-svgr@^4.0.0:
"@svgr/core" "^8.1.0"
"@svgr/plugin-jsx" "^8.1.0"

vite@^5.0.0:
vite@^5.0.0, vite@^5.3.4:
version "5.4.11"
resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.11.tgz#3b415cd4aed781a356c1de5a9ebafb837715f6e5"
integrity sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==
Expand Down

0 comments on commit 20840d9

Please sign in to comment.