diff --git a/.npmrc b/.npmrc deleted file mode 100644 index b6f27f1..0000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -engine-strict=true diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f5845f0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +# Using `bun` runtime: https://hub.docker.com/r/oven/bun/tags +FROM oven/bun:1 AS ecsess-website +WORKDIR /ecsess + +COPY . /ecsess +RUN bun install +RUN bun run build + +EXPOSE 4173/tcp +CMD ["bun", "run", "vite", "preview", "--host"] +# ENTRYPOINT [ "bun", "run", "vite", "preview", "--host" ] \ No newline at end of file diff --git a/README.md b/README.md index cab7b33..1f2af87 100644 --- a/README.md +++ b/README.md @@ -45,3 +45,16 @@ bun run dev bun run build bun run preview # to preview the production build ``` + +# Deployment +- Other than the deployment on EUS server with AWS Caddy, there are alternative ways to deploy the website! +## Docker +- Edit the `.env` file to include the `SANITY_ID` of the CMS +- From the root directory of the project +```sh +# Build the website with `nightly` tag +docker build -t ecsess-website:nightly . +docker run -p 4173:4173 ecsess-website:nightly +``` +- The site should now be running on `localhost:4173` + diff --git a/bun.lock b/bun.lock index 44d2653..8833ac2 100644 --- a/bun.lock +++ b/bun.lock @@ -16,7 +16,6 @@ "@sveltejs/vite-plugin-svelte": "^5.1.0", "@tailwindcss/typography": "^0.5.16", "@tailwindcss/vite": "^4.1.8", - "mdsvex": "^0.12.6", "prettier": "^3.5.3", "prettier-plugin-svelte": "^3.4.0", "prettier-plugin-tailwindcss": "^0.6.12", @@ -217,14 +216,10 @@ "@types/follow-redirects": ["@types/follow-redirects@1.14.4", "", { "dependencies": { "@types/node": "*" } }, "sha512-GWXfsD0Jc1RWiFmMuMFCpXMzi9L7oPDVwxUnZdg89kDNnqsRfUKXEtUYtA98A6lig1WXH/CYY/fvPW9HuN5fTA=="], - "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], - "@types/node": ["@types/node@22.15.30", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA=="], "@types/resolve": ["@types/resolve@1.20.2", "", {}, "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q=="], - "@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], - "@zag-js/accordion": ["@zag-js/accordion@1.15.0", "", { "dependencies": { "@zag-js/anatomy": "1.15.0", "@zag-js/core": "1.15.0", "@zag-js/dom-query": "1.15.0", "@zag-js/types": "1.15.0", "@zag-js/utils": "1.15.0" } }, "sha512-EKNeuKx+lOQ/deCe/ApCjVPxpxpDwT2NXvMPL+YvqXmSv7hAnTLs9fDKjbDUQUMmsyx32BsBd8t6d17DL3rPXg=="], "@zag-js/anatomy": ["@zag-js/anatomy@1.15.0", "", {}, "sha512-r0l5I7mSsF35HdwXm22TppNhfVftFuqvKfHvTUw+wQZhni4eUL93HypJD0Fl7mDhtP5zfVGfBwR048OzD0+tCw=="], @@ -399,8 +394,6 @@ "magic-string": ["magic-string@0.30.17", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA=="], - "mdsvex": ["mdsvex@0.12.6", "", { "dependencies": { "@types/mdast": "^4.0.4", "@types/unist": "^2.0.3", "prism-svelte": "^0.4.7", "prismjs": "^1.17.1", "unist-util-visit": "^2.0.1", "vfile-message": "^2.0.4" }, "peerDependencies": { "svelte": "^3.56.0 || ^4.0.0 || ^5.0.0-next.120" } }, "sha512-pupx2gzWh3hDtm/iDW4WuCpljmyHbHi34r7ktOqpPGvyiM4MyfNgdJ3qMizXdgCErmvYC9Nn/qyjePy+4ss9Wg=="], - "mimic-response": ["mimic-response@3.1.0", "", {}, "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="], "minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="], @@ -433,10 +426,6 @@ "prettier-plugin-tailwindcss": ["prettier-plugin-tailwindcss@0.6.12", "", { "peerDependencies": { "@ianvs/prettier-plugin-sort-imports": "*", "@prettier/plugin-pug": "*", "@shopify/prettier-plugin-liquid": "*", "@trivago/prettier-plugin-sort-imports": "*", "@zackad/prettier-plugin-twig": "*", "prettier": "^3.0", "prettier-plugin-astro": "*", "prettier-plugin-css-order": "*", "prettier-plugin-import-sort": "*", "prettier-plugin-jsdoc": "*", "prettier-plugin-marko": "*", "prettier-plugin-multiline-arrays": "*", "prettier-plugin-organize-attributes": "*", "prettier-plugin-organize-imports": "*", "prettier-plugin-sort-imports": "*", "prettier-plugin-style-order": "*", "prettier-plugin-svelte": "*" }, "optionalPeers": ["@ianvs/prettier-plugin-sort-imports", "@prettier/plugin-pug", "@shopify/prettier-plugin-liquid", "@trivago/prettier-plugin-sort-imports", "@zackad/prettier-plugin-twig", "prettier-plugin-astro", "prettier-plugin-css-order", "prettier-plugin-import-sort", "prettier-plugin-jsdoc", "prettier-plugin-marko", "prettier-plugin-multiline-arrays", "prettier-plugin-organize-attributes", "prettier-plugin-organize-imports", "prettier-plugin-sort-imports", "prettier-plugin-style-order", "prettier-plugin-svelte"] }, "sha512-OuTQKoqNwV7RnxTPwXWzOFXy6Jc4z8oeRZYGuMpRyG3WbuR3jjXdQFK8qFBMBx8UHWdHrddARz2fgUenild6aw=="], - "prism-svelte": ["prism-svelte@0.4.7", "", {}, "sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ=="], - - "prismjs": ["prismjs@1.30.0", "", {}, "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw=="], - "proxy-compare": ["proxy-compare@3.0.1", "", {}, "sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q=="], "readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], @@ -487,18 +476,8 @@ "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], - "unist-util-is": ["unist-util-is@4.1.0", "", {}, "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg=="], - - "unist-util-stringify-position": ["unist-util-stringify-position@2.0.3", "", { "dependencies": { "@types/unist": "^2.0.2" } }, "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g=="], - - "unist-util-visit": ["unist-util-visit@2.0.3", "", { "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", "unist-util-visit-parents": "^3.0.0" } }, "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q=="], - - "unist-util-visit-parents": ["unist-util-visit-parents@3.1.1", "", { "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" } }, "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg=="], - "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], - "vfile-message": ["vfile-message@2.0.4", "", { "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^2.0.0" } }, "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ=="], - "vite": ["vite@6.3.5", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ=="], "vitefu": ["vitefu@1.0.6", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" }, "optionalPeers": ["vite"] }, "sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA=="], diff --git a/package.json b/package.json index fea770b..8c37820 100644 --- a/package.json +++ b/package.json @@ -1,27 +1,6 @@ { "name": "ecsess-website", "version": "0.0.1", - "devDependencies": { - "@portabletext/svelte": "^3.0.0", - "@skeletonlabs/skeleton": "^3.1.3", - "@skeletonlabs/skeleton-svelte": "^1.2.3", - "@sveltejs/adapter-auto": "^6.0.1", - "@sveltejs/adapter-node": "^5.2.12", - "@sveltejs/kit": "^2.21.3", - "@sveltejs/vite-plugin-svelte": "^5.1.0", - "@tailwindcss/typography": "^0.5.16", - "@tailwindcss/vite": "^4.1.8", - "mdsvex": "^0.12.6", - "prettier": "^3.5.3", - "prettier-plugin-svelte": "^3.4.0", - "prettier-plugin-tailwindcss": "^0.6.12", - "svelte": "^5.33.18", - "svelte-check": "^4.2.1", - "tailwindcss": "^4.1.8", - "typescript": "^5.8.3", - "vite": "^6.3.5" - }, - "private": true, "scripts": { "dev": "vite dev", "build": "vite build", @@ -32,6 +11,26 @@ "format": "prettier --write .", "lint": "prettier --check ." }, + "devDependencies": { + "@portabletext/svelte": "^3.0.0", + "@skeletonlabs/skeleton": "^3.1.3", + "@skeletonlabs/skeleton-svelte": "^1.2.3", + "@sveltejs/adapter-auto": "^6.0.1", + "@sveltejs/adapter-node": "^5.2.12", + "@sveltejs/kit": "^2.21.3", + "@sveltejs/vite-plugin-svelte": "^5.1.0", + "@tailwindcss/typography": "^0.5.16", + "@tailwindcss/vite": "^4.1.8", + "prettier": "^3.5.3", + "prettier-plugin-svelte": "^3.4.0", + "prettier-plugin-tailwindcss": "^0.6.12", + "svelte": "^5.33.18", + "svelte-check": "^4.2.1", + "tailwindcss": "^4.1.8", + "typescript": "^5.8.3", + "vite": "^6.3.5" + }, + "private": true, "type": "module", "dependencies": { "@sanity/client": "^7.5.0" diff --git a/src/app.css b/src/app.css index 936a9b8..335871b 100644 --- a/src/app.css +++ b/src/app.css @@ -23,5 +23,5 @@ h1 { } .page-title { - @apply text-7xl font-bold py-4; + @apply text-4xl md:text-6xl font-bold py-4; } diff --git a/src/routes/r/[shortname]/+page.server.js b/src/routes/r/[shortname]/+page.server.js index 2957fd7..68be477 100644 --- a/src/routes/r/[shortname]/+page.server.js +++ b/src/routes/r/[shortname]/+page.server.js @@ -18,5 +18,6 @@ export const load = async ({ params }) => { return { shortname: shortname, + availableShortnames: CMSresponse, } }; diff --git a/src/routes/r/[shortname]/+page.svelte b/src/routes/r/[shortname]/+page.svelte index 0ed1b0e..243578b 100644 --- a/src/routes/r/[shortname]/+page.svelte +++ b/src/routes/r/[shortname]/+page.svelte @@ -4,9 +4,18 @@
-

Where am I?

-

- Oops! We don't have a page for "r/{data.shortname}". -

-

Please try again!

+

Can't redirect you to "r/{data.shortname}"!

+
+
+ Maybe you were trying to get to: + +
diff --git a/svelte.config.js b/svelte.config.js index 7d05d9c..8b42889 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,21 +1,18 @@ -import { mdsvex } from 'mdsvex'; -import adapter from '@sveltejs/adapter-node'; -// import adapter from '@sveltejs/adapter-static'; +import adapter from '@sveltejs/adapter-auto'; /** @type {import('@sveltejs/kit').Config} */ const config = { kit: { adapter: adapter(), alias: { - // So you can import with `from 'components/...'` - 'components': 'src/components/', - 'assets': 'src/assets', - 'utils': 'src/utils' - } + // So you can import with `from 'components/...'` + components: 'src/components/', + assets: 'src/assets', + utils: 'src/utils' + } }, - - preprocess: [mdsvex()], - extensions: ['.svelte', '.svx'] + preprocess: [], + extensions: ['.svelte'] }; export default config;