From e113b873b098f1a801e6f0f1be657f9e6c521a47 Mon Sep 17 00:00:00 2001 From: Chris Palmer Date: Tue, 19 Nov 2024 07:10:10 -0500 Subject: [PATCH] Restored function after fighting with web sockets all day --- .env.development | 13 +-- doc/nginx.dev.tabroom.com.sample | 180 +++++++++++++++++++++++++++++++ package-lock.json | 78 ++++++++------ src/routes/+page.ts | 6 +- vite.config.ts | 14 +-- 5 files changed, 242 insertions(+), 49 deletions(-) create mode 100644 doc/nginx.dev.tabroom.com.sample diff --git a/.env.development b/.env.development index e4e88d6..f5c6845 100644 --- a/.env.development +++ b/.env.development @@ -1,6 +1,7 @@ -VITE_WEB_URL=new.dev.tabroom.com -VITE_API_URL=http://api.dev.tabroom.com/v1 -VITE_S3_BASE=https://s3.amazonaws.com/tabroom-files -VITE_PORT=8002 -VITE_CLIENT_PORT=8003 -VITE_PREVIEW_PORT=8004 +VITE_WEB_URL = schemats.dev.tabroom.com +VITE_API_URL = https://api.dev.tabroom.com/v1 +VITE_S3_BASE = https://s3.amazonaws.com/tabroom-files +VITE_PORT = 9000 +// The port on the other side of the NGINX proxy with SSL +VITE_CLIENT_PORT = 443 +VITE_PREVIEW_PORT = 9003 diff --git a/doc/nginx.dev.tabroom.com.sample b/doc/nginx.dev.tabroom.com.sample new file mode 100644 index 0000000..2d1b78a --- /dev/null +++ b/doc/nginx.dev.tabroom.com.sample @@ -0,0 +1,180 @@ + +server { + listen 80; + listen [::]:80; + server_name mason.dev.tabroom.com mason.dev; + return 301 https://mason.dev.tabroom.com$request_uri; +} + +server { + root /www/tabroom; + server_name mason.dev mason.dev.tabroom.com; + + location / { + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $http_host; + proxy_pass http://mason.dev.tabroom.com:8000; + } + + location /v1 { + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $http_host; + proxy_pass http://legacyapi.dev.tabroom.com:8001/v1; + } + + access_log /var/log/nginx/mason-dev-access.log; + error_log /var/log/nginx/mason-dev-error.log; + + client_max_body_size 50m; + + listen [::]:443 ssl; + listen 443 ssl; + ssl_certificate /etc/ssl/certs/nsda/tabroom.com_ecc/fullchain.cer; + ssl_certificate_key /etc/ssl/certs/nsda/tabroom.com_ecc/tabroom.com.key; + include /etc/ssl/certs/nsda/options-ssl-nginx.conf; + ssl_dhparam /etc/ssl/certs/nsda/ssl-dhparams.pem; +} + +server { + listen 80; + listen [::]:80; + server_name legacyapi.dev.tabroom.com legacyapi.dev; + return 301 https://legacyapi.dev.tabroom.com$request_uri; +} + +server { + root /www/legacy-indexcards; + server_name legacyapi.dev.tabroom.com legacyapi.dev; + + location /v1 { + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $http_host; + proxy_pass http://legacyapi.dev.tabroom.com:8001/v1; + } + + access_log /var/log/nginx/legacyapi-dev-access.log; + error_log /var/log/nginx/legacyapi-dev-error.log; + + client_max_body_size 50m; + + listen [::]:443 ssl; + listen 443 ssl; + ssl_certificate /etc/ssl/certs/nsda/tabroom.com_ecc/fullchain.cer; + ssl_certificate_key /etc/ssl/certs/nsda/tabroom.com_ecc/tabroom.com.key; + include /etc/ssl/certs/nsda/options-ssl-nginx.conf; + ssl_dhparam /etc/ssl/certs/nsda/ssl-dhparams.pem; +} + +server { + listen 80; + listen [::]:80; + server_name schemats.dev.tabroom.com schemats.dev; + return 301 https://schemats.dev.tabroom.com$request_uri; +} + +server { + root /www/schemats; + server_name schemats.dev.tabroom.com schemats.dev; + + location / { + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $http_host; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_pass http://schemats.dev.tabroom.com:9000; + } + + location /v1 { + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $http_host; + proxy_pass http://api.dev.tabroom.com:9001/v1; + } + + location /ws { + proxy_pass http://schemats.dev.tabroom.com:9000; + include proxy_params; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + } + + access_log /var/log/nginx/schemats-dev-access.log; + error_log /var/log/nginx/schemats-dev-error.log; + + client_max_body_size 50m; + + listen [::]:443 ssl; + listen 443 ssl; + + ssl_certificate /etc/ssl/certs/nsda/tabroom.com_ecc/fullchain.cer; + ssl_certificate_key /etc/ssl/certs/nsda/tabroom.com_ecc/tabroom.com.key; + include /etc/ssl/certs/nsda/options-ssl-nginx.conf; + ssl_dhparam /etc/ssl/certs/nsda/ssl-dhparams.pem; + +} + +server { + listen 80; + listen [::]:80; + server_name api.dev.tabroom.com api.dev; + return 301 https://api.dev.tabroom.com$request_uri; +} + +server { + root /www/indexcards; + server_name api.dev.tabroom.com api.dev; + + location /v1 { + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $http_host; + proxy_pass http://api.dev.tabroom.com:9001/v1; + } + + access_log /var/log/nginx/api-dev-access.log; + error_log /var/log/nginx/api-dev-error.log; + + client_max_body_size 50m; + + listen [::]:443 ssl; + listen 443 ssl; + ssl_certificate /etc/ssl/certs/nsda/tabroom.com_ecc/fullchain.cer; + ssl_certificate_key /etc/ssl/certs/nsda/tabroom.com_ecc/tabroom.com.key; + include /etc/ssl/certs/nsda/options-ssl-nginx.conf; + ssl_dhparam /etc/ssl/certs/nsda/ssl-dhparams.pem; +} + +server { + + listen [::]:443 ssl; + listen 443 ssl; + + server_name preview.dev.tabroom.com preview.dev; + + location / { + proxy_pass http://schemats.dev.tabroom.com:9004; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Proto $scheme; + } + + ssl_certificate /etc/ssl/certs/nsda/tabroom.com_ecc/fullchain.cer; + ssl_certificate_key /etc/ssl/certs/nsda/tabroom.com_ecc/tabroom.com.key; + include /etc/ssl/certs/nsda/options-ssl-nginx.conf; + ssl_dhparam /etc/ssl/certs/nsda/ssl-dhparams.pem; +} + diff --git a/package-lock.json b/package-lock.json index d8c5402..6e3b777 100644 --- a/package-lock.json +++ b/package-lock.json @@ -448,9 +448,9 @@ } }, "node_modules/@fastify/busboy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", - "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", "engines": { "node": ">=14" } @@ -954,9 +954,9 @@ } }, "node_modules/@sveltejs/kit": { - "version": "1.27.6", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.27.6.tgz", - "integrity": "sha512-GsjTkMbKzXdbeRg0tk8S7HNShQ4879ftRr0ZHaZfjbig1xQwG57Bvcm9U9/mpLJtCapLbLWUnygKrgcLISLC8A==", + "version": "1.30.4", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.30.4.tgz", + "integrity": "sha512-JSQIQT6XvdchCRQEm7BABxPC56WP5RYVONAi+09S8tmzeP43fBsRlr95bFmsTQM2RHBldfgQk+jgdnsKI75daA==", "hasInstallScript": true, "dependencies": { "@sveltejs/vite-plugin-svelte": "^2.5.0", @@ -971,7 +971,7 @@ "set-cookie-parser": "^2.6.0", "sirv": "^2.0.2", "tiny-glob": "^0.2.9", - "undici": "~5.26.2" + "undici": "^5.28.3" }, "bin": { "svelte-kit": "svelte-kit.js" @@ -1626,6 +1626,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "peer": true, "dependencies": { "dequal": "^2.0.3" } @@ -1654,11 +1655,11 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -1855,9 +1856,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2908,9 +2909,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -3892,11 +3893,11 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -4606,9 +4607,9 @@ } }, "node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "version": "3.29.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", + "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", "bin": { "rollup": "dist/bin/rollup" }, @@ -5002,16 +5003,17 @@ } }, "node_modules/svelte": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.3.tgz", - "integrity": "sha512-sqmG9KC6uUc7fb3ZuWoxXvqk6MI9Uu4ABA1M0fYDgTlFYu1k02xp96u6U9+yJZiVm84m9zge7rrA/BNZdFpOKw==", + "version": "4.2.19", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.19.tgz", + "integrity": "sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==", "dependencies": { "@ampproject/remapping": "^2.2.1", "@jridgewell/sourcemap-codec": "^1.4.15", "@jridgewell/trace-mapping": "^0.3.18", + "@types/estree": "^1.0.1", "acorn": "^8.9.0", "aria-query": "^5.3.0", - "axobject-query": "^3.2.1", + "axobject-query": "^4.0.0", "code-red": "^1.0.3", "css-tree": "^2.3.1", "estree-walker": "^3.0.3", @@ -5157,6 +5159,14 @@ "node": ">=12" } }, + "node_modules/svelte/node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/svelte/node_modules/estree-walker": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", @@ -5404,9 +5414,9 @@ } }, "node_modules/undici": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.26.5.tgz", - "integrity": "sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==", + "version": "5.28.4", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", + "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", "dependencies": { "@fastify/busboy": "^2.0.0" }, @@ -5433,9 +5443,9 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/vite": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", - "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.5.tgz", + "integrity": "sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==", "dependencies": { "esbuild": "^0.18.10", "postcss": "^8.4.27", diff --git a/src/routes/+page.ts b/src/routes/+page.ts index 85ff74a..6f984dd 100644 --- a/src/routes/+page.ts +++ b/src/routes/+page.ts @@ -4,9 +4,9 @@ import type { ColumnDefinition } from 'tabulator-tables'; /** @type {import('./$types').PageLoad} */ export const load = async ({ fetch} ) => { - console.log(`Fetching from ${import.meta.env.VITE_API_URL}/invite/upcoming`); - const response = await fetch(`${import.meta.env.VITE_API_URL}/invite/upcoming`); - const rawData = await response.json(); + console.log(`Fetching from ${import.meta.env.VITE_API_URL}/public/invite/upcoming`); + const response = await fetch(`${import.meta.env.VITE_API_URL}/public/invite/upcoming`); + const rawData = await response.json(); interface Tourn { url : string, diff --git a/vite.config.ts b/vite.config.ts index 392f383..f66a4e8 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -12,16 +12,18 @@ export default ({ mode }) => { include: ['src/**/*.{test,spec}.{js,ts}'] }, server: { - host: env.VITE_WEB_URL || 'localhost', - port: parseInt(env.VITE_PORT) || 4000, + host : env.VITE_WEB_URL || 'localhost', + port : parseInt(env.VITE_PORT) || 9000, + strictPort : true, hmr: { - clientPort : parseInt(env.VITE_CLIENT_PORT) || 4001, + clientPort : parseInt(env.VITE_CLIENT_PORT) || 9000, }, - strictPort: false, + }, preview: { - port : parseInt(env.VITE_PREVIEW_PORT) || 4002, - strictPort : false, + port : parseInt(env.VITE_PREVIEW_PORT) || 9003, + strictPort : true, + open : false, }, }); };